Skip to content
readme.md 2.24 KiB
Newer Older
Eugene Dubovskiy's avatar
Eugene Dubovskiy committed
# 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());
```
Output:
Eugene Dubovskiy's avatar
Eugene Dubovskiy committed
```
    h1.Sample header
    Sample paragraph
    ||Header 1||Header 2||
    |Cell 1|Cell 2|
```

# Manual markup building

Example:
Eugene Dubovskiy's avatar
Eugene Dubovskiy committed
```
    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());
```