Пример #1
0
        private DocEntry ConstructEntry(FileInfo entryFileInfo)
        {
            DocFileContent content = ReadFileContent(entryFileInfo);

            return(new DocEntry {
                Name = Path.GetFileNameWithoutExtension(entryFileInfo.Name), ContentMd = content.Md, ContentHtml = content.Html
            });
        }
Пример #2
0
        private DocChapter ConstructChapter(DirectoryInfo chapterDir)
        {
            DocChapter result = new DocChapter {
                Name = chapterDir.Name, Entries = new List <DocEntry>()
            };
            List <FileInfo> entryFiles = new List <FileInfo>(chapterDir.EnumerateFiles());

            //Read index
            if (entryFiles.Any(file => file.Name.ToLower().Equals("index.md")))
            {
                try
                {
                    DocFileContent indexContent =
                        ReadFileContent(entryFiles.First(file => file.Name.ToLower().Equals("index.md")));
                    result.ContentMd   = indexContent.Md;
                    result.ContentHtml = indexContent.Html;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not read index for chapter " + chapterDir.Name + ": " + e);
                }
            }

            IEnumerable <string> entryNames = File.ReadAllLines(Path.Combine(chapterDir.FullName, "entries.txt"));

            foreach (string entryName in entryNames)
            {
                if (string.IsNullOrEmpty(entryName) || !entryFiles.Any(dir => dir.Name.ToLower().Equals(entryName.ToLower() + ".md")))
                {
                    Console.WriteLine("No file found for chapter: " + entryName);
                    continue;
                }
                FileInfo entryFile = entryFiles.First(dir => dir.Name.ToLower().Equals(entryName.ToLower() + ".md"));
                try
                {
                    DocEntry docEntry = ConstructEntry(entryFile);
                    result.Entries.Add(docEntry);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not create chapter " + entryName + ": " + e);
                }
            }

            return(result);
        }