private MetaContent BuildMetaContent(string file) { MetaContent metaContent; var content = File.ReadAllText(file); var isPage = file.Contains(Paths.PagesPath); Trace.TraceInformation("Reading file {0}", file); if (isPage) { var parsed = pageParser.ParsePage(content); metaContent = new MetaContent(file) { Page = parsed }; metaContent.Page.Url = metaContent.GetTargetFileName(Paths).Replace(Paths.OutputPath, "").Replace('\\', '/'); } else { var parsed = pageParser.ParsePost(content); metaContent = new MetaContent(file) { Post = parsed }; metaContent.Post.Url = metaContent.GetTargetFileName(Paths).Replace(Paths.OutputPath, "").Replace('\\', '/'); } return(metaContent); }
public void Should_throw_invalidpageexception() { const string data = "invalid yaml front matter"; var parser = new ContentParser(); Assert.Throws <InvalidPageException>(() => parser.ParsePage(data)); }
public void Should_throw_invalidpageexception_when_having_empty_lines() { var sampleData = "---" + Environment.NewLine + " " + Environment.NewLine + "title: Test" + Environment.NewLine + "---"; var parser = new ContentParser(); Assert.Throws <InvalidPageException>(() => parser.ParsePage(sampleData)); }
public void Can_parse_content() { var page = parser.ParsePage(sample.Text); page.Title .Should() .BeEquivalentTo(sample.Title); page.Date .Should() .Be(sample.Date); page.Tags .ShouldAllBeEquivalentTo(sample.Tags); page.Content .Should() .BeEquivalentTo(sample.Content); }