private DocEntry ConstructEntry(FileInfo entryFileInfo) { DocFileContent content = ReadFileContent(entryFileInfo); return(new DocEntry { Name = Path.GetFileNameWithoutExtension(entryFileInfo.Name), ContentMd = content.Md, ContentHtml = content.Html }); }
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); }