public void Parse(string sourceFile) { var markdown = File.ReadAllText($"TestFiles\\Inputs\\{sourceFile}.md"); var result = _parser.Parse(markdown); var resultJson = JsonConvert.SerializeObject(result, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var expectedJson = File.ReadAllText($"TestFiles\\Outputs\\{sourceFile}.json"); Assert.That(resultJson, Is.EqualTo(expectedJson)); }
private static async Task <PageTreeItem <PageNode> > LoadPages(string rootDirectory) { return(await Statik.Statik.GetPageDirectoryLoader() .LoadFiles( new PhysicalFileProvider(rootDirectory), new PageDirectoryLoaderOptions { IndexPageMatcher = new Matcher(StringComparison.Ordinal).AddInclude("index.md"), NormalPageMatcher = new Matcher(StringComparison.Ordinal).AddInclude("*.md") }) .Convert(async x => { if (x.Data == null || x.Data.IsDirectory) { return null; } Services.MarkdownParseResult markdown; using (var stream = x.Data.CreateReadStream()) using (var reader = new StreamReader(stream)) { markdown = Parser.Parse(await reader.ReadToEndAsync()); } if (markdown.Yaml == null) { throw new Exception($"Front matter is required for {x.Data.PhysicalPath}"); } var pageNode = new PageNode(); pageNode.Title = markdown.Yaml.title; if (string.IsNullOrEmpty(pageNode.Title)) { throw new Exception($"\"Title\" required for {x.Data.PhysicalPath}"); } var order = (int?)markdown.Yaml.order; if (order.HasValue) { pageNode.Order = order.Value; } pageNode.Markdown = markdown.Markdown; return pageNode; })); }
public void ConvertMarkdownToExcel( [Option("i", "input markdown file path.")] string markdownFilePath, [Option("o", "output Excel file path.")] string excelFilePath ) { var markdown = _markdownReader.ReadToEnd(markdownFilePath); var usdm = _markdownParser.Parse(markdown); var book = _excelDecoder.Decode(usdm); _excelWriter.Write(book, excelFilePath); }
public IPost GetPost(string content) { if (content is null) { throw new ArgumentNullException(nameof(content)); } var postMetadata = GetPostMetadata(content); var html = _markdownParser.Parse(content); var post = new Post(postMetadata, html); return(post); }