public void EscapedArticleMacrosTest() { MarkdownArticleProcessor ar = new MarkdownArticleProcessor(getAttributeSet()); ArticleDto a = ar.ParseArticleRawText( @"--- Title:Xbox Controller Repair Date:2014-08-02 Category:Electronics Tags:Gaming,Electronics --- ##The internals ![:youtube 800 600](https://www.youtube.com/embed/Di5AT4MI6BY) \![:noMatchMacro parm1]", "Some\\File.md"); MacroInvocation mi = ar.LocateMacrosInContent(a)[0]; MarkdownMacro mdm = new MarkdownMacro("youtube", "<iframe width=\"%p1%\" height=\"%p2%\" src=\"%v1%\" frameborder=\"0\"></iframe>"); ArticleDto[] allArticles = new ArticleDto[1]; allArticles[0] = a; IList <MacroInvocation> miList = MarkdownUtil.LocateMarkdownMacros(a.Content); Assert.AreEqual(1, miList.Count); Assert.AreEqual("youtube", miList[0].MacroName); }
public void FinaliseArticleHtml(ArticleDto article) { Markdown md = new Markdown(); article.Content = MarkdownUtil.ReplaceEscapedMacros(article.Content); article.Content = md.Transform(article.Content); }
public void ExtractRuntimeData() { if (!string.IsNullOrEmpty(Raw.ShortComment)) { ShortCommentHtml = MarkdownUtil.ToHtml(Raw.ShortComment); } }
public void Test5() { var markdown = ":smiley:".Trim(); var expected = "<p>:smiley:</p>"; var result = new MarkdownUtil().Transform(markdown); result .Should() .Be(expected); }
public void Test2() { var markdown = "| Column | Column |\r\n| - | - |\r\n| A | B |"; var expected = "<table>\n<thead>\n<tr>\n<th>Column</th>\n<th>Column</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>B</td>\n</tr>\n</tbody>\n</table>"; var result = new MarkdownUtil().Transform(markdown); result .Should() .Be(expected); }
public void Test1() { var markdown = "# Header 1 \r\n## Header 2\r\n### Header 3\r\n#### Header 4\r\n##### Header 5\r\n###### Header 6"; var expected = "<h1 id=\"header-1\"><a href=\"#header-1\">Header 1</a></h1>\n<h2 id=\"header-2\"><a href=\"#header-2\">Header 2</a></h2>\n<h3 id=\"header-3\"><a href=\"#header-3\">Header 3</a></h3>\n<h4 id=\"header-4\"><a href=\"#header-4\">Header 4</a></h4>\n<h5 id=\"header-5\"><a href=\"#header-5\">Header 5</a></h5>\n<h6 id=\"header-6\"><a href=\"#header-6\">Header 6</a></h6>"; var result = new MarkdownUtil().Transform(markdown); result .Should() .Be(expected); }
public void Test6() { var result = new MarkdownUtil().Transform( @"# heading one ## heading two ### heading three #### heading four ##### heading five ###### heading six"); var pageDoc = new HtmlDocument(); pageDoc.LoadHtml(result); var root = pageDoc.DocumentNode; var nodes = root.Descendants() .Where(n => n.NodeType == HtmlNodeType.Element) .ToList(); nodes.Count.Should().Be(12); nodes.ElementAt(0) .Id.Should().Be("heading-one"); nodes.ElementAt(0) .Name.Should().Be("h1"); nodes.ElementAt(2) .Id.Should().Be("heading-two"); nodes.ElementAt(2) .Name.Should().Be("h2"); nodes.ElementAt(4) .Id.Should().Be("heading-three"); nodes.ElementAt(4) .Name.Should().Be("h3"); nodes.ElementAt(6) .Id.Should().Be("heading-four"); nodes.ElementAt(6) .Name.Should().Be("h4"); nodes.ElementAt(8) .Id.Should().Be("heading-five"); nodes.ElementAt(8) .Name.Should().Be("h5"); nodes.ElementAt(10) .Id.Should().Be("heading-six"); nodes.ElementAt(10) .Name.Should().Be("h6"); }
public void Test3() { var markdown = @" | | | | |-|-|-| |__Bold Key__| Value1 | | Normal Key | Value2 | ".Trim(); var expected = "<table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Bold Key</strong></td>\n<td>Value1</td>\n<td></td>\n</tr>\n<tr>\n<td>Normal Key</td>\n<td>Value2</td>\n<td></td>\n</tr>\n</tbody>\n</table>"; var result = new MarkdownUtil().Transform(markdown); result .Should() .Be(expected); }
static string getDesc(string title, string desc, string contactInfo) { SendTitle = title; SendDesc = desc; string realDesc = string.Format( $"{MarkdownUtil.H2("Version")}:\n{BuildConfig.FullVersionName}\n" + $"{MarkdownUtil.H2("Contact")}:\n{contactInfo}\n" + $"{MarkdownUtil.H2("GMMode")}:\n{BaseGlobal.DiffMgr.IsSettedGMMod()}\n" + $"{MarkdownUtil.H2("Name")}:\n{BaseGlobal.PlatSDKMgr.GetName()}\n" + $"{MarkdownUtil.H2("Desc")}:\n{SendDesc}\n" + $"{MarkdownUtil.H2("Error")}:\n{IMUIErrorCatcher.GetErrorString()}\n" + $"{MarkdownUtil.H2("SystemInfo")}:\n{Util.AdvSystemInfo}" ); return(realDesc); }
public void Test4() { var markdown = @" ```cs public class Program { public static void Main(string[] args) {} } ``` ".Trim(); var expected = "<pre><code class=\"language-cs\">public class Program\n{\n\tpublic static void Main(string[] args) {}\n}\n</code></pre>"; var result = new MarkdownUtil().Transform(markdown); result .Should() .Be(expected); }
public void ExtractRuntimeData() { if (!string.IsNullOrEmpty(Raw.MarkdownContent)) { HtmlContent = MarkdownUtil.ToHtml(Raw.MarkdownContent); var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(HtmlContent); SetTableNodes(htmlDoc); var paraNodes = htmlDoc.DocumentNode .Descendants() .Where(_ => StringUtil.EqualsIgnoreCase(_.Name, "p") && _.Descendants().FirstOrDefault(c => StringUtil.EqualsIgnoreCase(c.Name, "img")) == null) .Take(2) .ToList(); HtmlExcerpt = paraNodes.Count switch { 1 => $"<p>{paraNodes[0].InnerText}</p>", 2 => $"<p>{paraNodes[0].InnerText}</p><p>{paraNodes[1].InnerText}</p>", _ => HtmlExcerpt }; } }