Exemple #1
0
        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);
        }
Exemple #3
0
 public void ExtractRuntimeData()
 {
     if (!string.IsNullOrEmpty(Raw.ShortComment))
     {
         ShortCommentHtml = MarkdownUtil.ToHtml(Raw.ShortComment);
     }
 }
Exemple #4
0
    public void Test5()
    {
        var markdown = ":smiley:".Trim();
        var expected = "<p>:smiley:</p>";
        var result   = new MarkdownUtil().Transform(markdown);

        result
        .Should()
        .Be(expected);
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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);
    }
Exemple #7
0
    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");
    }
Exemple #8
0
    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);
    }
Exemple #9
0
        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);
        }
Exemple #10
0
    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);
    }
Exemple #11
0
 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
         };
     }
 }