Skip to content

Commit 2396c65

Browse files
committed
Several refactor and bug fixes
1 parent fc79d5e commit 2396c65

30 files changed

+155
-206
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<svg class="wds-icon"><use xlink:href="#wds-brand-fandom-logo-light"></use></svg>
2+
3+
[<svg class="wds-icon global-top-navigation__start-new-wiki__icon"><use xlink:href="#wds-icons-add-small"></use></svg> Start a Wiki](//createnewwiki-143.fandom.com/Special:CreateNewWiki)
4+
5+
[<svg class="wds-icon wds-icon-small sign-in__icon"><use xlink:href="#wds-icons-avatar"></use></svg> Sign In](https://auth.fandom.com/signin?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena)
6+
Don't have an account?
7+
[Register](https://auth.fandom.com/register?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena)
8+
* * *
9+
[Sign In](https://auth.fandom.com/signin?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
paragraph text
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>text in unknown tag</p><p>paragraph text</p>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
<unknown-tag>text in unknown tag</unknown-tag>
1+
text in unknown tag
22
paragraph text
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
```xml
2-
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
3-
```
1+
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
```csharp
1+
```
22
var test = "hello world";
33
```
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This text has image <img alt="alt" src="http://test.com/images/test.png">. Next line of text

src/ReverseMarkdown.Test/ConverterTests.cs

Lines changed: 33 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -641,70 +641,45 @@ public Task When_UnorderedListIsInTable_LeaveListAsHtml()
641641
public Task Check_Converter_With_Unknown_Tag_ByPass_Option()
642642
{
643643
var html = "<unknown-tag>text in unknown tag</unknown-tag>";
644-
var config = new Config
645-
{
646-
UnknownTags = Config.UnknownTagsOption.Bypass
647-
};
648-
return CheckConversion(html, config);
644+
return CheckConversion(html);
649645
}
650646

651647
[Fact]
652648
public Task WhenStyletagWithBypassOption_ReturnEmpty()
653649
{
654650
var html = @"<body><style type=""text/css"">.main {background-color: #ffffff;}</style></body>";
655-
var config = new Config()
656-
{
657-
UnknownTags = Config.UnknownTagsOption.Bypass
658-
};
659-
return CheckConversion(html, config);
651+
return CheckConversion(html);
660652
}
661653

662654
[Fact]
663-
public Task Check_Converter_With_Unknown_Tag_Drop_Option()
655+
public Task Check_Converter_With_Drop_Tag()
664656
{
665-
var html = "<unknown-tag>text in unknown tag</unknown-tag><p>paragraph text</p>";
666-
var config = new Config
657+
var html = "<drop-tag>text in unknown tag</drop-tag><p>paragraph text</p>";
658+
var config = new Config()
667659
{
668-
UnknownTags = Config.UnknownTagsOption.Drop
660+
DropTags = ["drop-tag"]
669661
};
670662
return CheckConversion(html, config);
671663
}
672664

673665
[Fact]
674-
public Task Check_Converter_With_Unknown_Tag_PassThrough_Option()
666+
public Task Check_Converter_With_PassThrough_Tag()
675667
{
676-
var html = "<unknown-tag>text in unknown tag</unknown-tag><p>paragraph text</p>";
668+
var html = "<p>text in unknown tag</p><p>paragraph text</p>";
677669
var config = new Config
678670
{
679-
UnknownTags = Config.UnknownTagsOption.PassThrough
671+
PassThroughTags = ["p"]
680672
};
681673
return CheckConversion(html, config);
682674
}
683675

684-
[Fact]
685-
public Task Check_Converter_With_Unknown_Tag_Raise_Option()
686-
{
687-
var html = "<unknown-tag>text in unknown tag</unknown-tag><p>paragraph text</p>";
688-
var config = new Config
689-
{
690-
UnknownTags = Config.UnknownTagsOption.Raise
691-
};
692-
var converter = new Converter(config);
693-
return Verifier.Throws(() => converter.Convert(html), settings: _verifySettings)
694-
.IgnoreMember<Exception>(e => e.StackTrace);
695-
}
696-
697676
[Fact]
698677
public Task WhenTable_ThenConvertToGFMTable()
699678
{
700679
var html =
701680
"<table><tr><th>col1</th><th>col2</th><th>col3</th></tr><tr><td>data1</td><td>data2</td><td>data3</td></tr></table>";
702-
703-
var config = new Config
704-
{
705-
UnknownTags = Config.UnknownTagsOption.Bypass
706-
};
707-
return CheckConversion(html, config);
681+
682+
return CheckConversion(html);
708683
}
709684

710685
[Fact]
@@ -715,7 +690,6 @@ public Task
715690
"<table><tr><td>data1</td><td>data2</td><td>data3</td></tr><tr><td>data4</td><td>data5</td><td>data6</td></tr></table>";
716691
var config = new Config
717692
{
718-
UnknownTags = Config.UnknownTagsOption.Bypass,
719693
TableWithoutHeaderRowHandling = Config.TableWithoutHeaderRowHandlingOption.EmptyRow
720694
};
721695
return CheckConversion(html, config);
@@ -727,24 +701,15 @@ public Task
727701
{
728702
var html =
729703
"<table><colgroup><col><col><col></colgroup><tr><td>data1</td><td>data2</td><td>data3</td></tr><tr><td>data4</td><td>data5</td><td>data6</td></tr></table>";
730-
var config = new Config
731-
{
732-
UnknownTags = Config.UnknownTagsOption.Bypass,
733-
// TableWithoutHeaderRowHandling = Config.TableWithoutHeaderRowHandlingOption.Default - this is default
734-
};
735-
return CheckConversion(html, config);
704+
return CheckConversion(html);
736705
}
737706

738707
[Fact]
739708
public Task WhenTable_Cell_Content_WithNewline_Add_BR_ThenConvertToGFMTable()
740709
{
741710
var html =
742711
$"<table><tr><th>col1</th><th>col2</th><th>col3</th></tr><tr><td>data line1{Environment.NewLine}line2</td><td>data2</td><td>data3</td></tr></table>";
743-
var config = new Config
744-
{
745-
UnknownTags = Config.UnknownTagsOption.Bypass
746-
};
747-
return CheckConversion(html, config);
712+
return CheckConversion(html);
748713
}
749714

750715
[Fact]
@@ -771,11 +736,7 @@ public Task WhenTable_ContainsTheadTd_ConvertToGFMTable()
771736
{
772737
var html =
773738
"<table><thead><tr><td>col1</td><td>col2</td></tr></thead><tbody><tr><td>data1</td><td>data2</td></tr><tbody></table>";
774-
var config = new Config
775-
{
776-
GithubFlavored = true,
777-
};
778-
return CheckConversion(html, config);
739+
return CheckConversion(html);
779740
}
780741

781742
[Fact]
@@ -784,7 +745,7 @@ public Task WhenTable_CellContainsBr_PreserveBrAndConvertToGFMTable()
784745
var html = "<table><tr><th>col1</th></tr><tr><td>line 1<br>line 2</td></tr></table>";
785746
var config = new Config
786747
{
787-
GithubFlavored = true,
748+
GithubFlavored = true
788749
};
789750
return CheckConversion(html, config);
790751
}
@@ -795,7 +756,6 @@ public Task WhenTable_HasEmptyRow_DropsEmptyRow()
795756
var html = "<table><tr><td>abc</td></tr><tr></tr></table>";
796757
var config = new Config
797758
{
798-
GithubFlavored = true,
799759
TableWithoutHeaderRowHandling = Config.TableWithoutHeaderRowHandlingOption.EmptyRow,
800760
};
801761
return CheckConversion(html, config);
@@ -902,10 +862,6 @@ public void TestConversionWithPastedHtmlContainingUnicodeSpaces()
902862

903863
var config = new Config
904864
{
905-
GithubFlavored = true,
906-
UnknownTags =
907-
Config.UnknownTagsOption
908-
.PassThrough, // Include the unknown tag completely in the result (default as well)
909865
SmartHrefHandling = true // remove markdown output for links where appropriate
910866
};
911867
var converter = new Converter(config);
@@ -939,11 +895,7 @@ public Task When_FencedCodeBlocks_Shouldnt_Have_Trailing_Line()
939895
{
940896
var html =
941897
$@"<pre><code class=""language-xml hljs""><span class=""hljs-tag"">&lt;<span class=""hljs-name"">AspNetCoreHostingModel</span>&gt;</span>InProcess<span class=""hljs-tag"">&lt;/<span class=""hljs-name"">AspNetCoreHostingModel</span>&gt;</span>{Environment.NewLine}</code></pre>";
942-
var config = new Config
943-
{
944-
GithubFlavored = true,
945-
};
946-
return CheckConversion(html, config);
898+
return CheckConversion(html);
947899
}
948900

949901
[Fact]
@@ -1021,25 +973,15 @@ public Task WhenTableCellsWithDataAndP_ThenNewlineBeforeP()
1021973
public Task WhenUnclosedStyleTag_WithBypassUnknownTags_ThenConvertToMarkdown()
1022974
{
1023975
var html = "<html><head><style></head><body><p>Test content</p></body></html>";
1024-
1025-
var config = new Config
1026-
{
1027-
UnknownTags = Config.UnknownTagsOption.Bypass
1028-
};
1029-
return CheckConversion(html, config);
976+
return CheckConversion(html);
1030977
}
1031978

1032979
[Fact(Skip =
1033980
"Issue 61. Unclosed CDATA tags are invalid and HtmlAgilityPack won't parse it correctly. Browsers doesn't parse them correctly too.")]
1034981
public Task WhenUnclosedScriptTag_WithBypassUnknownTags_ThenConvertToMarkdown()
1035982
{
1036983
var html = "<html><body><script><p>Test content</p></body></html>";
1037-
1038-
var config = new Config
1039-
{
1040-
UnknownTags = Config.UnknownTagsOption.Bypass
1041-
};
1042-
return CheckConversion(html, config);
984+
return CheckConversion(html);
1043985
}
1044986

1045987
[Fact]
@@ -1075,8 +1017,7 @@ public Task
10751017
var html = @"<pre>var test = ""hello world"";</pre>";
10761018
var config = new Config
10771019
{
1078-
GithubFlavored = true,
1079-
DefaultCodeBlockLanguage = "csharp"
1020+
GithubFlavored = true
10801021
};
10811022
return CheckConversion(html, config);
10821023
}
@@ -1120,7 +1061,7 @@ public Task When_Table_Within_List_Should_Be_Indented()
11201061
}
11211062

11221063
[Fact]
1123-
public Task When_Tag_In_PassThoughTags_List_Then_Use_PassThroughConverter()
1064+
public Task When_Tag_In_PassThoughTags_List_Then_Use_PassThroughTag()
11241065
{
11251066
var html =
11261067
@"This text has image <img alt=""alt"" src=""http://test.com/images/test.png"">. Next line of text";
@@ -1356,12 +1297,8 @@ public Task WhenTable_WithColSpan_TableHeaderColumnSpansHandling_ThenConvertToGF
13561297
{
13571298
var html =
13581299
"<table><tr><th>col1</th><th colspan=\"2\">col2</th><th>col3</th></tr><tr><td>data1</td><td>data2.1</td><td>data2.2</td><td>data3</td></tr></table>";
1359-
1360-
var config = new Config
1361-
{
1362-
UnknownTags = Config.UnknownTagsOption.Bypass
1363-
};
1364-
return CheckConversion(html, config);
1300+
1301+
return CheckConversion(html);
13651302
}
13661303

13671304
[Fact]
@@ -1381,7 +1318,7 @@ public Task Bug391_AnchorTagUnnecessarilyIndented()
13811318
public Task Bug393_RegressionWithVaryingNewLines()
13821319
{
13831320
const string html = "This is regular text\r\n<p class=\"c1\">This is HTML: <ul><li>Line 1</li><li>Line 2</li><li><mark>Line 3 has an unknown tag</mark></li></ul></p>";
1384-
var config = new Config { UnknownTags = Config.UnknownTagsOption.Bypass, ListBulletChar = '*' };
1321+
var config = new Config { ListBulletChar = '*' };
13851322
return CheckConversion(html, config);
13861323
}
13871324

@@ -1475,7 +1412,7 @@ public void SlackFlavored_Unsupported_Table_Tr()
14751412
public Task Bug403_unexpectedBehaviourWhenTableBodyRowsWithTHCells()
14761413
{
14771414
var html = $"<table>{Environment.NewLine}<tr><th>Heading1</th><th>Heading2</th></tr>{Environment.NewLine}<tr><th>data 1</th><td>data 2</td></tr>{Environment.NewLine}<tr><th>data 3</th><td>data 4</td></tr>{Environment.NewLine}</table>";
1478-
var config = new Config { UnknownTags = Config.UnknownTagsOption.Bypass, ListBulletChar = '*', GithubFlavored = true};
1415+
var config = new Config { ListBulletChar = '*', GithubFlavored = true};
14791416
return CheckConversion(html, config);
14801417
}
14811418

@@ -1492,5 +1429,14 @@ public Task Bug400_MissingSpanSpaceWithItalics()
14921429
var html = "<h3 data-reset-style=\"true\" data-anchor-id=\"8b5e184d-26f7-4d9a-80e0-bab2cd825457\"><i style=\"font-size: 14pt;\">What we thought:<span>&nbsp;</span></i><span style=\"color: rgb(41, 63, 77); font-size: 14pt; font-weight: normal;\">When we built Pages, we assumed that customers would use them like newsletters to share relevant, continually-updated information with field teams.</span><div style=\"text-align: left;\"><span style=\"line-height: 16px;\"><span><span height=\"18\" width=\"18\"><span></span></span><span></span></span></span></div></h3>";
14931430
return CheckConversion(html);
14941431
}
1432+
1433+
[Fact]
1434+
public Task Bug401_HandlingUnknownTagsProperlyAsByPass()
1435+
{
1436+
var html =
1437+
"<nav class=\"global-top-navigation\" id=\"global-top-navigation\" aria-label=\"Fandom top navigation\"><ahref=\"https: www.fandom.com=\"\" \"class=\"global-top-navigation__fandom-logo\" data-tracking-label=\"fandom-logo\" data-testid=\"fandom-logo\" aria-label=\"Fandom homepage\"><svg class=\"wds-icon\"><use xlink:href=\"#wds-brand-fandom-logo-light\"></use></svg><div class=\"search-container\"></div><div class=\"global-top-navigation__action-wrapper\">\t<div class=\"global-top-navigation__item global-top-navigation__start-new-wiki\"><a href=\"//createnewwiki-143.fandom.com/Special:CreateNewWiki\" class=\"global-top-navigation__link global-top-navigation__start-new-wiki__anchor\" data-tracking-label=\"start-a-wiki\" data-testid=\"start-new-wiki\">\t<span class=\"global-top-navigation__button-label global-top-navigation__start-new-wiki__label\">\t\t<svg class=\"wds-icon global-top-navigation__start-new-wiki__icon\"><use xlink:href=\"#wds-icons-add-small\"></use></svg>\t\t\tStart a Wiki\t</span></a>\n</div>\t\t\t\t<div class=\"global-action__item sign-in\"><div class=\"wds-dropdown sign-in__dropdown\">\t<a class=\"global-action__link wds-button sign-in__anchor\" href=\"https://auth.fandom.com/signin?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena\" data-tracking-label=\"account.sign-in\">\t\t<span class=\"global-action__button-label sign-in__label\">\t\t\t<svg class=\"wds-icon wds-icon-small sign-in__icon\"><use xlink:href=\"#wds-icons-avatar\"></use></svg>\t\t\t\tSign In\t\t\t</span>\t</a>\t<div class=\"wds-dropdown__content wds-is-not-scrollable wds-is-right-aligned sign-in__dropdown-content\" dir=\"ltr\">\t\t<div class=\"sign-in__register-text\">\t\t\tDon&#039;t have an account?\t\t\t</div>\t\t<a class=\"wds-button wds-is-full-width global-action__register-link\" href=\"https://auth.fandom.com/register?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena\" rel=\"nofollow\" data-tracking-label=\"account.register\" aria-label=\"Register\">\t\t\tRegister\t\t\t</a>\t\t<hr>\t\t<a class=\"wds-button wds-is-full-width wds-is-secondary global-action__sign-in-link\" href=\"https://auth.fandom.com/signin?source=mw&amp;redirect=https%3A%2F%2Fomniheroesgame.fandom.com%2Fwiki%2FAthena\" rel=\"nofollow\" data-tracking-label=\"account.sign-in\" aria-label=\"Sign In\">\t\t\tSign In\t\t\t</a>\t</div></div>\n</div>\t\t</div>\n</ahref=\"https:></nav>\n";
1438+
var config = new Config { SkipNav = false };
1439+
return CheckConversion(html, config);
1440+
}
14951441
}
14961442
}

src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1010
<PrivateAssets>all</PrivateAssets>
1111
</PackageReference>
12-
<PackageReference Include="Verify.Xunit" Version="30.1.0" />
12+
<PackageReference Include="Verify.Xunit" Version="30.11.0" />
1313
<PackageReference Include="xunit" Version="2.9.3" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4">
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
<PrivateAssets>all</PrivateAssets>
1717
</PackageReference>
18-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
18+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
1919
</ItemGroup>
2020
<ItemGroup>
2121
<None Update="ConverterTests.When_Span_with_newline_Should_Convert_Properly.verified.md">
@@ -62,6 +62,18 @@
6262
</None>
6363
<None Update="ConverterTests.Bug400_MissingSpanSpaceWithItalics.verified.md">
6464
<DependentUpon>ConverterTests.cs</DependentUpon>
65+
</None>
66+
<None Update="ConverterTests.Check_Converter_With_Drop_Tag.verified.md">
67+
<DependentUpon>ConverterTests.WhenThereIsUnorderedList_ThenConvertToMarkdownList.verified.md</DependentUpon>
68+
</None>
69+
<None Update="ConverterTests.Check_Converter_With_PassThrough_Tag.verified.md">
70+
<DependentUpon>ConverterTests.WhenThereIsUnorderedListAndBulletIsAsterisk_ThenConvertToMarkdownList.verified.md</DependentUpon>
71+
</None>
72+
<None Update="ConverterTests.When_Tag_In_PassThoughTags_List_Then_Use_PassThroughTag.verified.md">
73+
<DependentUpon>ConverterTests.WhenThereIsUnorderedListWithNestedOrderedList_ThenConvertToMarkdownListWithNestedList.verified.md</DependentUpon>
74+
</None>
75+
<None Update="ConverterTests.Bug401_HandlingUnknownTagsProperlyAsByPass.verified.md">
76+
<DependentUpon>ConverterTests.WhenThereIsSingleAsteriskInText_ThenConvertToMarkdownEscapedAsterisk.verified.md</DependentUpon>
6577
</None>
6678
</ItemGroup>
6779
</Project>

src/ReverseMarkdown.Test/Snippets.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public void UsageWithConfig()
2828

2929
var config = new ReverseMarkdown.Config
3030
{
31-
// Include the unknown tag completely in the result (default as well)
32-
UnknownTags = Config.UnknownTagsOption.PassThrough,
3331
// generate GitHub flavoured markdown, supported for BR, PRE and table tags
3432
GithubFlavored = true,
3533
// will ignore all comments

0 commit comments

Comments
 (0)