Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Jira Markup Converter
Jira Markup Converter is a library to perform conversion from html to markup data.
Conversion of following Jira elements is supported:
* Paragraph
* Headers: H1-H6
* Text effects: block quote, citation, strikethrough, italic, underline, bold, subscript, superscript, color
* Lists: numbered, bulleted
* Tables
# Example of converter usage
Lets assume that we have following input:
```
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>Sample header</h1>
<p>Sample paragraph</p>
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
</body>
</html>
```
Code to convert html to jira markup will look like:
```
var htmlString = File.ReadAllText("HtmlSample.html");
// Create converter class
var converter = new MarkupConverter();
// Create Jira markup object which can be translated into markup string or modified if needed.
var jiraMarkupObject = converter.ConvertFromHtml(htmlString);
// Get markup string from object by calling ToMarkupString().
Console.WriteLine(jiraMarkupObject.ToMarkupString());
```
```
h1.Sample header
Sample paragraph
||Header 1||Header 2||
|Cell 1|Cell 2|
```
# Manual markup building
```
var rootNode = new RootNode();
rootNode.AddChildNode(new HeaderNode("Sample header", Header.H1));
rootNode.AddChildNode(new ParagraphNode("Sample paragraph"));
var headerRowNode = new TableRowNode(TableRowType.Header);
headerRowNode.AddChildNode(new TableCellNode("Header 1"));
headerRowNode.AddChildNode(new TableCellNode("Header 2"));
var dataRowNode = new TableRowNode(TableRowType.Data);
dataRowNode.AddChildNode(new TableCellNode("Cell 1"));
dataRowNode.AddChildNode(new TableCellNode("Cell 2"));
var tableNode = new TableNode();
tableNode.AddChildNode(headerRowNode);
tableNode.AddChildNode(dataRowNode);
rootNode.AddChildNode(tableNode);
Console.WriteLine(rootNode.ToMarkupString());
```