コード例 #1
0
 public static String ToShortTagFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info
     )
 {
     return("tags");
 }
コード例 #2
0
 public static String ToShortNotesFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info
     )
 {
     return(String.Format("{0}notes.md", info.Prefix));
 }
コード例 #3
0
 public static String ToLongTagFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info
     )
 {
     return(String.Format("{0}\\{1}", info.BaseDir, LO.ToShortTagFilename(info)));
 }
コード例 #4
0
 public static IEnumerable <String> BuildSourceFilenamesNovel(
     this LitOptions LO,
     MDAnnSourceInfo info
     )
 {
     return(new String[] { String.Format("{0}\\{1}", info.BaseDir, info.Prefix) });
 }
コード例 #5
0
 public static String ToLongFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info,
     MDSourceFile source
     )
 {
     return(String.Format("{0}\\{1}", info.BaseDir, ToShortFilenameDefault(LO, info, source)));
 }
コード例 #6
0
 public static void WriteToFileSystemDefault(this LitOptions LO,
                                             MDAnnSource sourceObjects,
                                             MDAnnSourceInfo info
                                             )
 {
     foreach (var source in sourceObjects.Sources)
     {
         System.IO.File.WriteAllLines(LO.ToLongSourceFilename(info, source), source.Lines);
     }
     System.IO.File.WriteAllLines(LO.ToLongNotesFilename(info), sourceObjects.Notes.Lines);
     System.IO.File.WriteAllLines(LO.ToLongTagFilename(info), sourceObjects.TagFile.Lines);
 }
コード例 #7
0
 public static String ToShortFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info,
     MDSourceFile source
     )
 {
     return(ToShortFilenameDefault(
                LO,
                info,
                source.Metadata,
                source.Author
                ));
 }
コード例 #8
0
        /// <summary>
        /// Takes the source info, and compiles it all together into a LitAnnSource object
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static MDAnnSource BuildAnnSourceDefault(
            this LitOptions LO,
            MDAnnSourceInfo info
            )
        {
            var retVal = new MDAnnSource();

            var files = LO.BuildSourceFilenames(info);

            retVal.Sources = LO.BuildSourceFiles(info, files);
            retVal.Notes   = LO.BuildNotesFile(info, files);

            return(retVal);
        }
コード例 #9
0
        public static MDNotesFile BuildNotesFileDefault(this LitOptions LO, MDAnnSourceInfo info, IEnumerable <String> files)
        {
            var retVal         = new MDNotesFile();
            var pattern        = String.Format(@"{0}notes.md", info.Prefix);
            var NotesFileLines = files.Where(s => System.Text.RegularExpressions.Regex.IsMatch(s, pattern));

            if (NotesFileLines.Count() > 0)
            {
                var NotesFile = new MDNotesFile();
                NotesFile.Lines = new List <string>(System.IO.File.ReadAllLines(NotesFileLines.First()));
                retVal          = NotesFile;
            }
            return(retVal);
        }
コード例 #10
0
 public static String ToShortFilenameDefault(
     this LitOptions LO,
     MDAnnSourceInfo info,
     LitSceneMetadata metadata,
     LitAuthor author
     )
 {
     return(ToShortFilenameDefault(
                LO,
                info.Prefix,
                metadata.Descriptor,
                author.Author
                ));
 }
コード例 #11
0
 public static List <MDSourceFile> BuildSourceFilesNovel(
     this LitOptions LO,
     MDAnnSourceInfo info,
     IEnumerable <String> filenames
     )
 {
     return(new List <MDSourceFile>(new MDSourceFile[] {
         new MDSourceFile()
         {
             Lines = new List <String>(
                 System.IO.File.ReadAllLines(filenames.First())
                 )
         }
     }));
 }
コード例 #12
0
 public static void WriteToFileSystemRaw(
     this LitOptions LO,
     MDAnnSource sourceObjects,
     MDAnnSourceInfo info
     )
 {
     foreach (var source in sourceObjects.Sources)
     {
         String dir = String.Format("{0}\\{1}", info.BaseDir, info.Prefix);
         if (!System.IO.Directory.Exists(dir))
         {
             System.IO.Directory.CreateDirectory(dir);
         }
         System.IO.File.WriteAllLines(
             LO.ToLongSourceFilename(info, source),
             source.Lines
             );
     }
 }
コード例 #13
0
        public static MDTagFile WriteTagFileDefault(
            this LitOptions LO,
            LitNovel novel,
            MDAnnSourceInfo info
            )
        {
            var    retVal = new MDTagFile();
            var    Tags   = new List <MDTag>();
            string Filename;

            foreach (var author in novel.Authors)
            {
                foreach (var metadata in novel.SceneMetadata)
                {
                    Filename = LO.ToShourtSourceFilename(info, metadata, author);
                    var query = novel.Scenes.Where(s => s.Metadata == metadata);
                    foreach (var scene in query)
                    {
                        Tags.AddRange(LO.GetAllTags(scene, Filename));
                    }
                }
            }
            Filename = LO.ToShortNotesFilename(info);
            foreach (var litRef in novel.References)
            {
                foreach (var Tag in litRef.Tags)
                {
                    Tags.Add(new MDTag()
                    {
                        TagName = Tag.Tag,
                        TagFile = Filename,
                        TagLine = LO.WriteRefTagEX(litRef)
                    });
                }
            }

            retVal.Lines = Tags.Select(t => LO.WriteTagLine(t)).ToList();
            return(retVal);
        }
コード例 #14
0
        public static List <MDSourceFile> BuildSourceFilesDefault(this LitOptions LO, MDAnnSourceInfo info, IEnumerable <String> files)
        {
            var    retVal  = new List <MDSourceFile>();
            string pattern = String.Format(@"{0}(\d[\d\.]+)\.([^\.]+)\.md", info.Prefix);
            var    query   = files
                             .Select(s => new {
                File  = s,
                Match = System.Text.RegularExpressions.Regex.Match(s, pattern)
            })
                             .Where(f => f.Match.Success);
            MDSourceFile SourceObj;

            foreach (var file in query)
            {
                SourceObj       = new MDSourceFile();
                SourceObj.Lines = new List <String>(
                    System.IO.File.ReadAllLines(file.File)
                    );
                SourceObj.Metadata = new LitSceneMetadata()
                {
                    Descriptor = file.Match.Groups[1].Value
                };
                SourceObj.Author = new LitAuthor()
                {
                    Author = file.Match.Groups[2].Value
                };
                retVal.Add(SourceObj);
            }
            return(retVal);
        }
コード例 #15
0
        public static IEnumerable <String> BuildSourceFilenamesDefault(this LitOptions LO, MDAnnSourceInfo info)
        {
            var files = System.IO.Directory.GetFiles(info.BaseDir, info.Prefix + "*.md");

            Array.Sort(files);
            return(files);
        }