diff --git a/JiraMarkupConverter.Tests/MarkupConverterTests.cs b/JiraMarkupConverter.Tests/MarkupConverterTests.cs
index 40153731bd718553eea8e4cef02161a154b98c2b..62b1f375efa5f15ea307fe3c889f24453fff83fd 100644
--- a/JiraMarkupConverter.Tests/MarkupConverterTests.cs
+++ b/JiraMarkupConverter.Tests/MarkupConverterTests.cs
@@ -62,5 +62,43 @@ namespace JiraMarkupConverter.Tests
expectedObj.ShouldEqual(result);
}
+
+ [Theory]
+ [InlineData(
+@"
+
+
+
+
+
+
+
+ Sample header
+ Sample paragraph
+
+
+ Header 1 |
+ Header 2 |
+
+
+ Cell 1 |
+ Cell 2 |
+
+
+
+",
+@"h1.Sample header
+Sample paragraph
+||Header 1||Header 2||
+|Cell 1|Cell 2|
+")]
+ public void ConvertFromHtml_MarkupConvertedToString_ResultMatchesToExpected(string html, string expectedMarkup)
+ {
+ var sut = new MarkupConverter();
+ var jiraMarkupObject = sut.ConvertFromHtml(html);
+ var actual = jiraMarkupObject.ToMarkupString();
+
+ Assert.Equal(expectedMarkup, actual);
+ }
}
}
diff --git a/JiraMarkupConverter.Tests/Nodes/HeadersTests.cs b/JiraMarkupConverter.Tests/Nodes/HeadersTests.cs
index d8c2e567d29dc782153f76071b661400c9c61db2..b1f7f6e6e7c651492f80e750c475343056b14a00 100644
--- a/JiraMarkupConverter.Tests/Nodes/HeadersTests.cs
+++ b/JiraMarkupConverter.Tests/Nodes/HeadersTests.cs
@@ -8,7 +8,7 @@ namespace JiraMarkupConverter.Tests.Nodes
[Fact]
public void ToMarkupString_SomeHeaders_ReturnsValidString()
{
- var jira = "\r\nh1.This is a header1.\r\nh2.This is a header2.";
+ var jira = "h1.This is a header1.\r\nh2.This is a header2.\r\n";
var node = new RootNode();
node.AddChildNode(new HeaderNode("This is a header1.", Header.H1));
node.AddChildNode(new HeaderNode("This is a header2.", Header.H2));
diff --git a/JiraMarkupConverter.Tests/Nodes/ParagraphTests.cs b/JiraMarkupConverter.Tests/Nodes/ParagraphTests.cs
index 85fdbf24072a61a6293c76b7abb666a477ff2efe..ab880201d2cbecaf2ce77f09480127308758801d 100644
--- a/JiraMarkupConverter.Tests/Nodes/ParagraphTests.cs
+++ b/JiraMarkupConverter.Tests/Nodes/ParagraphTests.cs
@@ -8,7 +8,7 @@ namespace JiraMarkupConverter.Tests.Nodes
[Fact]
public void ToMarkupString_HtmlContainsSomeParagraph_ReturnsValidString()
{
- var jira = "\r\nThis is a paragraph.\r\n\r\nThis is second paragraph.\r\n";
+ var jira = "This is a paragraph.\r\nThis is second paragraph.\r\n";
var node = new RootNode();
node.AddChildNode(new ParagraphNode("This is a paragraph."));
node.AddChildNode(new ParagraphNode("This is second paragraph."));
diff --git a/JiraMarkupConverter.Tests/Nodes/TableTests.cs b/JiraMarkupConverter.Tests/Nodes/TableTests.cs
index ad8f4f4ad46cdf3dc8f50c7a5a4f10dd3c0bbb00..e2a1304ff4bc9fe9688983d8b481c4d6ebcdae00 100644
--- a/JiraMarkupConverter.Tests/Nodes/TableTests.cs
+++ b/JiraMarkupConverter.Tests/Nodes/TableTests.cs
@@ -20,7 +20,7 @@ namespace JiraMarkupConverter.Tests.Nodes
[Fact]
public void ToMarkupString_CreateTable_ReturnsValidString()
{
- var jira = $"\r\n\r\n||Firstname||Lastname||Age||\r\n|Jill|Smith|50|\r\n|Eve|Jackson|94|\r\n";
+ var jira = $"||Firstname||Lastname||Age||\r\n|Jill|Smith|50|\r\n|Eve|Jackson|94|\r\n";
var node = new TableNode();
var rowHeader = new TableRowNode(TableRowType.Header);
var rowDataFirst = new TableRowNode(TableRowType.Data);
diff --git a/JiraMarkupConverter/MarkupConverter.cs b/JiraMarkupConverter/MarkupConverter.cs
index 586e278c728735bcf86a21c5fb802e14ff58ff17..12e90d3e4570e69b72b9dc67e4209ee083e19f1c 100644
--- a/JiraMarkupConverter/MarkupConverter.cs
+++ b/JiraMarkupConverter/MarkupConverter.cs
@@ -51,7 +51,7 @@ namespace JiraMarkupConverter
{ "th", new DefaultNodeFactory(() => new TableCellNode()) },
{ "td", new DefaultNodeFactory(() => new TableCellNode()) },
{ "tr", new TableRowNodeFactory() },
- { "table", new DefaultNodeFactory(() => new TableCellNode()) },
+ { "table", new DefaultNodeFactory(() => new TableNode()) },
};
///
diff --git a/JiraMarkupConverter/Nodes/HeaderNode.cs b/JiraMarkupConverter/Nodes/HeaderNode.cs
index b8f199efcf3f7916d36817d064efbf9872ff918d..e5083001c478691cd547dbcf9bc2acacc7ff8193 100644
--- a/JiraMarkupConverter/Nodes/HeaderNode.cs
+++ b/JiraMarkupConverter/Nodes/HeaderNode.cs
@@ -51,10 +51,12 @@ namespace JiraMarkupConverter.Nodes
{
var headerMarkupString = _headerToMarkupMap.GetValueOrDefault(Header);
- builder.AppendLine();
builder.Append(headerMarkupString);
+
this.RenderChildNodes(builder);
+ builder.AppendLine();
+
return builder;
}
}
diff --git a/JiraMarkupConverter/Nodes/ParagraphNode.cs b/JiraMarkupConverter/Nodes/ParagraphNode.cs
index fc5f4082f64de163fcf4e0f70c1f67f77014a543..6ac933859ef256f3ace2b711d0cc76102664d910 100644
--- a/JiraMarkupConverter/Nodes/ParagraphNode.cs
+++ b/JiraMarkupConverter/Nodes/ParagraphNode.cs
@@ -26,7 +26,6 @@ namespace JiraMarkupConverter.Nodes
/// String with markup.
public override StringBuilder ToMarkupString(StringBuilder builder)
{
- builder.AppendLine();
this.RenderChildNodes(builder);
builder.AppendLine();
diff --git a/JiraMarkupConverter/Nodes/TableNode.cs b/JiraMarkupConverter/Nodes/TableNode.cs
index 6081135fabaec0e743ee903441694078ecf0fbc1..224accba1f8628d8b1df19bf7ca3a7210c43d1a0 100644
--- a/JiraMarkupConverter/Nodes/TableNode.cs
+++ b/JiraMarkupConverter/Nodes/TableNode.cs
@@ -21,9 +21,7 @@ namespace JiraMarkupConverter.Nodes
/// String with markup.
public override StringBuilder ToMarkupString(StringBuilder builder)
{
- builder.AppendLine();
this.RenderChildNodes(builder);
- builder.AppendLine();
return builder;
}
diff --git a/JiraMarkupConverter/Nodes/TableRowNode.cs b/JiraMarkupConverter/Nodes/TableRowNode.cs
index cd8278250849f6e10d59c02d77e481db37eee2de..f566e8e8501fce052699a6bd5a5c3910a8a77f7c 100644
--- a/JiraMarkupConverter/Nodes/TableRowNode.cs
+++ b/JiraMarkupConverter/Nodes/TableRowNode.cs
@@ -41,7 +41,6 @@ namespace JiraMarkupConverter.Nodes
public override StringBuilder ToMarkupString(StringBuilder builder)
{
var rowTypeMarkupString = _rowTypeToMarkupMap.GetValueOrDefault(this.TypeRow);
- builder.AppendLine();
foreach (var child in ChildNodes)
{
@@ -50,6 +49,7 @@ namespace JiraMarkupConverter.Nodes
}
builder.Append(rowTypeMarkupString);
+ builder.AppendLine();
return builder;
}
diff --git a/readme.md b/readme.md
index 8d37c0de2467387de77db40a64044ecd397c09bb..d5af08b83699256355b8bd165d98f8146cd8d251 100644
--- a/readme.md
+++ b/readme.md
@@ -48,19 +48,17 @@ Code to convert html to jira markup will look like:
// Get markup string from object by calling ToMarkupString().
Console.WriteLine(jiraMarkupObject.ToMarkupString());
```
-Output of this code:
+Output:
```
h1.Sample header
Sample paragraph
-
-
||Header 1||Header 2||
|Cell 1|Cell 2|
```
# Manual markup building
-Library support also building and modifying of nodes before convertion to markup string:
+Example:
```
var rootNode = new RootNode();