Beispiel #1
0
        public void should_parse_advanced_markdown_with_tasks_autoids_css_and_autolinking()
        {
            // given - strikethroughs aren't working yet with Markdig
            string markdown     = @"- [ ] Task 1
- [ ] Task 2

# myh1 with a class { .main }

http://www.google.com
";
            string expectedHtml = @"<ul class=""contains-task-list"">
<li class=""task-list-item""> Task 1</li>
<li class=""task-list-item""> Task 2</li>
</ul>
<h1 id=""myh1-with-a-class"" class=""main"">myh1 with a class</h1>
<p><a href=""http://www.google.com"" rel=""nofollow"">http://www.google.com</a></p>" + "\n";

            var parser = new MarkdigParser();

            // when
            string actualHtml = parser.ToHtml(markdown);

            // then
            expectedHtml = expectedHtml.Replace("\n", "", StringComparison.Ordinal)
                           .Replace("\r", "", StringComparison.Ordinal);
            actualHtml = actualHtml.Replace("\n", "", StringComparison.Ordinal)
                         .Replace("\r", "", StringComparison.Ordinal);
            expectedHtml.ShouldBe(actualHtml);
        }
Beispiel #2
0
        public void should_bind_imageparsed_and_linkparsed_funcs()
        {
            // given
            Func <HtmlImageTag, HtmlImageTag> imageParsed = (imageTag) =>
            {
                imageTag.Title = "new title";
                imageTag.Alt   = "new alt";
                imageTag.Src   = "/new src";
                return(imageTag);
            };

            Func <HtmlLinkTag, HtmlLinkTag> linkParsed = (linkTag) =>
            {
                linkTag.CssClass = "new css";
                linkTag.Href     = "/new href";
                linkTag.Text     = "new text";

                return(linkTag);
            };

            string expectedHtml = "<p><a href=\"/new%20href\" class=\"new css\">new text</a>" +
                                  "<img src=\"/new%20src\" class=\"img-responsive\" border=\"0\" alt=\"new alt\" title=\"new title\" /></p>\n";
            var parser = new MarkdigParser();

            parser.ImageParsed = imageParsed;
            parser.LinkParsed  = linkParsed;

            // when
            string actualHtml = parser.ToHtml("[googz](http://www.google.com)![img](/myimage.jpg)");

            // then
            expectedHtml.ShouldBe(actualHtml);
        }
Beispiel #3
0
        public void should_handle_empty_strings()
        {
            // given
            var parser = new MarkdigParser();

            // when
            string html = parser.ToHtml(null);

            // then
            html.ShouldBeEmpty();
        }
Beispiel #4
0
        public void should_parse_basic_markdown()
        {
            // given
            string expectedHtml = "<p><a href=\"http://www.google.com\" class=\"main\" rel=\"nofollow\">i am a link</a></p>\n";
            string markdown     = "[i am a link](http://www.google.com){.main}";
            var    parser       = new MarkdigParser();

            // when
            string html = parser.ToHtml(markdown);

            // then
            expectedHtml.ShouldBe(html);
        }
Beispiel #5
0
        public void should_retain_anchor_tags_and_querystrings()
        {
            // Arrange
            string expectedHtml = "<p><a href=\"?a=%23myvalue#myanchortag\">hello world</a></p>\n";
            string markdown     = "[hello world](?a=%23myvalue#myanchortag)";
            var    parser       = new MarkdigParser();

            // when
            string html = parser.ToHtml(markdown);

            // then
            expectedHtml.ShouldBe(html);
        }
Beispiel #6
0
        public void should_ignore_null_imageparsed_and_linkparsed_funcs()
        {
            // given
            string expectedHtml = "<p><a href=\"http://www.google.com\" rel=\"nofollow\">googz</a>" +
                                  "<img src=\"/myimage.jpg\" class=\"img-responsive\" border=\"0\" alt=\"img\" title=\"img\" /></p>\n";
            var parser = new MarkdigParser();

            // when
            string actualHtml = parser.ToHtml("[googz](http://www.google.com)![img](/myimage.jpg)");

            // then
            expectedHtml.ShouldBe(actualHtml);
        }
Beispiel #7
0
        public void containspagelink_should_return_false_when_title_does_not_exist_in_markdown()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = "here is a nice [the link text](the-internal-wiki-page-title)";

            // Act
            bool hasLink = updater.ContainsPageLink(text, "page title");

            // Assert
            Assert.False(hasLink);
        }
Beispiel #8
0
        public void containspagelink_should_return_false_when_title_does_not_exist_in_creole()
        {
            // Arrange
            var parser = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = "here is a nice [[the internal wiki page title|the link text]]";

            // Act
            bool hasLink = updater.ContainsPageLink(text, "page title");

            // Assert
            Assert.False(hasLink);
        }
Beispiel #9
0
        public void containspagelink_should_return_false_when_title_has_no_dashes_in_markdown()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = "here is a nice [the link text](Markdown enforces dashes for spaces in urls)";

            // Act
            bool hasLink = updater.ContainsPageLink(text, "Markdown enforces dashes for spaces in urls");

            // Assert
            Assert.False(hasLink);
        }
Beispiel #10
0
        public void replacepagelinks_should_rename_basic_markdown_title()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text           = "here is a nice [the link text](the-internal-wiki-page-title)";
            string expectedMarkup = "here is a nice [the link text](buy-stuff-online)";

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            expectedMarkup.ShouldBe(actualMarkup);
        }
Beispiel #11
0
        public void replacepagelinks_should_not_rename_title_that_is_not_found_in_markdown()
        {
            // Arrange
            MarkdigParser     parser  = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"*here* is a nice **[the link text](the-internal-wiki-page-title)** and
                            another one: *here is a nice [the link text](the-internal-wiki-page-title) and
							a different one: *here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "page title", "buy stuff online");

            // Assert
            text.ShouldBe(actualMarkup);
        }
Beispiel #12
0
        public void replacepagelinks_should_rename_title_inside_markdown_markup_block()
        {
            // Arrange
            var parser = new MarkdigParser();
            MarkupLinkUpdater updater = new MarkupLinkUpdater(parser);

            string text = @"//here is a nice **[the link text](the-internal-wiki-page-title)** and//
                            another one: *here is a nice [the link text](the-internal-wiki-page-title) and
							*a different one: here is a nice [the link text](different-title)"                            ;

            string expectedMarkup = @"//here is a nice **[the link text](buy-stuff-online)** and//
                            another one: *here is a nice [the link text](buy-stuff-online) and
							*a different one: here is a nice [the link text](different-title)"                            ;

            // Act
            string actualMarkup = updater.ReplacePageLinks(text, "the internal wiki page title", "buy stuff online");

            // Assert
            expectedMarkup.ShouldBe(actualMarkup);
        }