NeoDoc - blog - docs - tests - todo
@neodoc.style

Tests

Work-In-Progress

This page contains the current set of test fixtures for NeoDoc's parser. New tests are still being added as the work to extract the parser from the static site builder its embedded in continues.

When NeoDoc parses content it returns an AST. Each portion consistes of a "container", a "type", a "subtype", and a "template".

The tests are strcutred using the container, type, and subtype for the trees. The template level is taken up with "err", "err-batch", "ok", and "ok-batch" details that for the result from a given test. (The "-batch" versions come from supplemental test generators.)

Each tests displays a given input string, the expected AST output.

NeoDoc provides default HTML outputs. The expected output for each given input is displayed as well.

The full json fixture for each tests is also available below the HTML.

Emphasis

Currently, the content/shorthand/emphasis/ok portion of the tree has the most tests. It'll give you an idea of where things are headed.

The Tests

block
paragraph
normal
ok
P block - single line
given input
alfa bravo charlie
expected ast
{
  "container": "block",
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo charlie",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "normal",
  "template": "default",
  "type": "paragraph"
}
default html
<p>alfa bravo charlie</p>
full json fixture
{
  "description": "P block - single line",
  "parser": "block",
  "given": "alfa bravo charlie",
  "status": {
    "ok": {
      "container": "block",
      "payload": [{
        "type": "text",
        "container": "content",
        "payload": "alfa bravo charlie",
        "subtype": "normal",
        "template": "default"
      }],
      "subtype": "normal",
      "template": "default",
      "type": "paragraph"
    }
  },
  "remainder": "",
  "html": { "ok": "<p>alfa bravo charlie</p>" }
}
content
shorthand
code
ok
Single word in shorthand: code
given input
``alfa``
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "code",
  "template": "default",
  "type": "shorthand"
}
default html
<code>alfa</code>
full json fixture
{
  description: "Single word in shorthand: code",
  parser: "shorthand",
  given: "``alfa``",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "code",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<code>alfa</code>"
  }
}
emphasis
err
Empty line (\n\n) fails
given input
;;alfa

;;
expected ast
ERROR
default html
full json fixture
{
  description: "Empty line (\\n\\n) fails",
  given: ";;alfa\n\n;;",
  parser: "shorthand",
  status: {
    "err": {}
  }
}
Empty line (\r\n\r\n) fails
given input
;;alfa
expected ast
ERROR
default html
full json fixture
{
  description: "Empty line (\\r\\n\\r\\n) fails",
  given: ";;alfa\r\n\r\n",
  parser: "shorthand",
  status: {
    "err": {}
  }
}
End of file (eof) fails
given input
;;alfa
expected ast
ERROR
default html
full json fixture
{
  description: "End of file (eof) fails",
  given: ";;alfa",
  parser: "shorthand",
  status: {
    "err": {}
  }
}
ok
End at empty line (\r\n\r\n): emphasis
given input
;;alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
remainder
default html
<em>alfa</em>
full json fixture
{
  description: "End at empty line (\\r\\n\\r\\n): emphasis",
  given: ";;alfa;;\r\n\r\n",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "<em>alfa</em>" }
}
End at empty line (\n\n\n\n): emphasis
given input
;;alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
remainder
default html
<em>alfa</em>
full json fixture
{
  description: "End at empty line (\\n\\n\\n\\n): emphasis",
  given: ";;alfa;;\n\n\n\n",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "\n\n\n\n",
  html: { ok: "<em>alfa</em>" }
}
Leading space is trimmed: emphasis
given input
;;  alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Leading space is trimmed: emphasis",
  given: ";;  alfa;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa</em>" }
}
Leading spaces and single newlines (\n) are trimmed: emphasis
given input
;;  
  alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Leading spaces and single newlines (\\n) are trimmed: emphasis",
  given: ";;  \n  alfa;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa</em>" }
}
Leading spaces and single newlines (\r\n) are trimmed: emphasis
given input
;;  
  alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Leading spaces and single newlines (\\r\\n) are trimmed: emphasis",
  given: ";;  \r\n  alfa;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa</em>" }
}
Multiple attrs and flags in shorthand: emphasis
given input
;;alfa|bravo|charlie: delta|echo|foxtrot: golf;;
expected ast
{
  "attrs": [
    {
      "key": "charlie",
      "payload": [
        {
          "container": "content",
          "payload": "delta",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "key": "foxtrot",
      "payload": [
        {
          "container": "content",
          "payload": "golf",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "payload": [
        {
          "container": "content",
          "payload": "echo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Multiple attrs and flags in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo|charlie: delta|echo|foxtrot: golf;;",
  status: {
    ok: {
      attrs: [
        {
          key: "charlie",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "delta",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          key: "foxtrot",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "golf",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "bravo",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "echo",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Multiple attrs in shorthand: emphasis
given input
;;alfa|bravo: charlie|delta: echo;;
expected ast
{
  "attrs": [
    {
      "key": "bravo",
      "payload": [
        {
          "container": "content",
          "payload": "charlie",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "key": "delta",
      "payload": [
        {
          "container": "content",
          "payload": "echo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Multiple attrs in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo: charlie|delta: echo;;",
  status: {
    ok: {
      attrs: [
        {
          key: "bravo",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "charlie",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          key: "delta",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "echo",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Multiple flags in shorthand: emphasis
given input
;;alfa|bravo|charlie;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "payload": [
        {
          "container": "content",
          "payload": "charlie",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Multiple flags in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo|charlie;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "bravo",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "charlie",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Multiple words on multiple lines: emphasis
given input
;;alfa bravo
charlie;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo charlie",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo charlie</em>
full json fixture
{
  description: "Multiple words on multiple lines: emphasis",
  parser: "shorthand",
  given: ";;alfa bravo\ncharlie;;",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo charlie",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa bravo charlie</em>"
  }
}
Multiple words on single line: emphasis
given input
;;alfa bravo charlie;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo charlie",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo charlie</em>
full json fixture
{
  description: "Multiple words on single line: emphasis",
  parser: "shorthand",
  given: ";;alfa bravo charlie;;",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo charlie",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa bravo charlie</em>"
  }
}
Non-ASCII characters
given input
;;テスト;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "テスト",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>テスト</em>
full json fixture
{
  description: "Non-ASCII characters",
  given: ";;テスト;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      type: "shorthand",
      payload: [{
        container: "content",
        payload: "テスト",
        subtype: "normal",
        template: "default",
        type: "text"
      }],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>テスト</em>" }
}
Section/attribute tokens are valid: emphasis
given input
;;--;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "--",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>--</em>
full json fixture
{
  description: "Section/attribute tokens are valid: emphasis",
  given: ";;--;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "--",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>--</em>" }
}
Escaped backslash is valid: emphasis
given input
;;\\;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "\\",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>\</em>
full json fixture
{
  description: "Escaped backslash is valid: emphasis",
  given: ";;\\\\;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "\\",
          subtype: "escaped",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>\\</em>" }
}
Single windows newlines (\r\n) padded by spaces are merged to a single space: emphasis
given input
;;alfa  
  bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo</em>
full json fixture
{
  description: "Single windows newlines (\\r\\n) padded by spaces are merged to a single space: emphasis",
  given: ";;alfa  \r\n  bravo;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa bravo</em>" }
}
Single newlines (\n) padded by spaces are merged to a single space: emphasis
given input
;;alfa  
  bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo</em>
full json fixture
{
  description: "Single newlines (\\n) padded by spaces are merged to a single space: emphasis",
  given: ";;alfa  \n  bravo;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa bravo</em>" }
}
Single windows newlines (\r\n) convert to a space: emphasis
given input
;;alfa
bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo</em>
full json fixture
{
  description: "Single windows newlines (\\r\\n) convert to a space: emphasis",
  given: ";;alfa\r\nbravo;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa bravo</em>" }
}
Single newline (\n) converts to a space: emphasis
given input
;;alfa
bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa bravo</em>
full json fixture
{
  description: "Single newline (\\n) converts to a space: emphasis",
  given: ";;alfa\nbravo;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa bravo",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa bravo</em>" }
}
Single word with attr in shorthand: emphasis
given input
;;alfa|bravo: charlie;;
expected ast
{
  "attrs": [
    {
      "key": "bravo",
      "payload": [
        {
          "container": "content",
          "payload": "charlie",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Single word with attr in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo: charlie;;",
  status: {
    ok: {
      attrs: [
        {
          key: "bravo",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "charlie",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Single word with flag in shorthand: emphasis
given input
;;alfa|bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Single word with flag in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "bravo",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Single word in shorthand: emphasis
given input
;;alfa;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Single word in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa;;",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "emphasis",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Trailing space is trimmed: emphasis
given input
;;alfa  ;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Trailing space is trimmed: emphasis",
  given: ";;alfa  ;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa</em>" }
}
Trailing spaces and single newline is trimmed: emphasis
given input
;;alfa  
  ;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Trailing spaces and single newline is trimmed: emphasis",
  given: ";;alfa  \n  ;;",
  parser: "shorthand",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default",
          type: "text"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand"
    }
  },
  remainder: "",
  html: { ok: "<em>alfa</em>" }
}
Whitespace around metadata pipes in shorthand: emphasis
given input
;;alfa 
 | 
 bravo x 
 | 
 charlie: 
 delta x 
 | 
 echo x 
 | 
 foxtrot: 
 golf x 
 ;;
expected ast
{
  "attrs": [
    {
      "key": "charlie",
      "payload": [
        {
          "container": "content",
          "payload": "delta x",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "key": "foxtrot",
      "payload": [
        {
          "container": "content",
          "payload": "golf x",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo x",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    },
    {
      "payload": [
        {
          "container": "content",
          "payload": "echo x",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Whitespace around metadata pipes in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa \n | \n bravo x \n | \n charlie: \n delta x \n | \n echo x \n | \n foxtrot: \n golf x \n ;;",
  status: {
    ok: {
      attrs: [
        {
          key: "charlie",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "delta x",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          key: "foxtrot",
          payload: [
            {
              type: "text",
              container: "content",
              payload: "golf x",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "bravo x",
              subtype: "normal",
              template: "default"
            }
          ]
        },
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "echo x",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
URL flag in shorthand: emphasis
given input
;;alfa|https://www.example.com/;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "https",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": ":",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "//www.example.com/",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "URL flag in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|https://www.example.com/;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "https",
              subtype: "normal",
              template: "default"
            },
            {
              type: "text",
              container: "content",
              payload: ":",
              subtype: "normal",
              template: "default"
            },
            {
              type: "text",
              container: "content",
              payload: "//www.example.com/",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Escaped colon at end of flag in shorthand: emphasis
given input
;;alfa|bravo\: charlie;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": ":",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": " charlie",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  description: "Escaped colon at end of flag in shorthand: emphasis",
  parser: "shorthand",
  given: ";;alfa|bravo\\: charlie;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [
        {
          payload: [
            {
              type: "text",
              container: "content",
              payload: "bravo",
              subtype: "normal",
              template: "default"
            },
            {
              type: "text",
              container: "content",
              payload: ":",
              subtype: "escaped",
              template: "default"
            },
            {
              type: "text",
              container: "content",
              payload: " charlie",
              subtype: "normal",
              template: "default"
            }
          ]
        }
      ],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa</em>"
  }
}
Escaped colon in shorthand text: emphasis
given input
;;alfa\|bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "|",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa|bravo</em>
full json fixture
{
  description: "Escaped colon in shorthand text: emphasis",
  parser: "shorthand",
  given: ";;alfa\\|bravo;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        },
        {
          type: "text",
          container: "content",
          payload: "|",
          subtype: "escaped",
          template: "default"
        },
        {
          type: "text",
          container: "content",
          payload: "bravo",
          subtype: "normal",
          template: "default"
        },
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>alfa|bravo</em>"
  }
}
Escaped characters in shorthand text: emphasis
given input
;;alfa\*\@\^\!\>\`\~\+\_bravo;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "*",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "@",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "^",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "!",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": ">",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "`",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "~",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "+",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "_",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    },
    {
      "container": "content",
      "payload": "bravo",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa*@^!&gt;`~+_bravo</em>
full json fixture
{
  "description": "Escaped characters in shorthand text: emphasis",
  "parser": "shorthand",
  "given": ";;alfa\\*\\@\\^\\!\\>\\`\\~\\+\\_bravo;;",
  "status": {
    "ok": {
      "attrs": [],
      "container": "content",
      "flags": [],
      "payload": [
        {
          "type": "text",
          "container": "content",
          "payload": "alfa",
          "subtype": "normal",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "*",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "@",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "^",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "!",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": ">",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "`",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "~",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "+",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "_",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default"
        }
      ],
      "subtype": "emphasis",
      "template": "default",
      "type": "shorthand"
    }
  },
  "remainder": "",
  "html": {
    "ok": "<em>alfa*@^!&gt;`~+_bravo</em>"
  }
}
Escaped characters in shorthand flag: emphasis
given input
;;alfa|\*\@\^\!\>\`\~\+\_;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "*",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "@",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "^",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "!",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": ">",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "`",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "~",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "+",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "_",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  "description": "Escaped characters in shorthand flag: emphasis",
  "parser": "shorthand",
  "given": ";;alfa|\\*\\@\\^\\!\\>\\`\\~\\+\\_;;",
  "status": {
    "ok": {
      "attrs": [],
      "container": "content",
      "flags": [{
          payload: [
        {
          "type": "text",
          "container": "content",
          "payload": "*",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "@",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "^",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "!",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": ">",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "`",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "~",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "+",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "_",
          "subtype": "escaped",
          "template": "default"
        },
          ]
        }
      ],
      "payload": [
        {
          "type": "text",
          "container": "content",
          "payload": "alfa",
          "subtype": "normal",
          "template": "default"
        },

      ],
      "subtype": "emphasis",
      "template": "default",
      "type": "shorthand"
    }
  },
  "remainder": "",
  "html": {
    "ok": "<em>alfa</em>"
  }
}
Escaped characters in shorthand flag: emphasis
given input
;;alfa|bravo: \*\@\^\!\>\`\~\+\_;;
expected ast
{
  "attrs": [
    {
      "key": "bravo",
      "payload": [
        {
          "container": "content",
          "payload": "*",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "@",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "^",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "!",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": ">",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "`",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "~",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "+",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        },
        {
          "container": "content",
          "payload": "_",
          "subtype": "escaped",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>alfa</em>
full json fixture
{
  "description": "Escaped characters in shorthand flag: emphasis",
  "parser": "shorthand",
  "given": ";;alfa|bravo: \\*\\@\\^\\!\\>\\`\\~\\+\\_;;",
  "status": {
    "ok": {
      "attrs": [{
        key: "bravo", 
          payload: [
        {
          "type": "text",
          "container": "content",
          "payload": "*",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "@",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "^",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "!",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": ">",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "`",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "~",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "+",
          "subtype": "escaped",
          "template": "default"
        },
        {
          "type": "text",
          "container": "content",
          "payload": "_",
          "subtype": "escaped",
          "template": "default"
        },
          ]
        }
      ],
      "container": "content",
      "flags": [],
      "payload": [
        {
          "type": "text",
          "container": "content",
          "payload": "alfa",
          "subtype": "normal",
          "template": "default"
        },

      ],
      "subtype": "emphasis",
      "template": "default",
      "type": "shorthand"
    }
  },
  "remainder": "",
  "html": {
    "ok": "<em>alfa</em>"
  }
}
Nest another shorthand: emphasis
given input
;;**alfa**;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "attrs": [],
      "container": "content",
      "flags": [],
      "payload": [
        {
          "container": "content",
          "payload": "alfa",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ],
      "subtype": "strong",
      "template": "default",
      "type": "shorthand"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em><strong>alfa</strong></em>
full json fixture
{
  "description": "Nest another shorthand: emphasis",
  "parser": "shorthand",
  "given": ";;**alfa**;;",
  "status": {
    "ok": {
      "attrs": [],
      "container": "content",
      "flags": [],
      "payload": [
        {
          "attrs": [],
          "container": "content",
          "flags": [],
          "payload": [
            {
              "container": "content",
              "payload": "alfa",
              "subtype": "normal",
              "template": "default",
              "type": "text",
            }
          ] ,
          "subtype": "strong",
          "template": "default",
          "type": "shorthand",
        },

      ],
      "subtype": "emphasis",
      "template": "default",
      "type": "shorthand"
    }
  },
  "remainder": "",
  "html": {
    "ok": "<em><strong>alfa</strong></em>"
  }
}
ok-batch
Escaped inline shorthand character: emphasis - `
given input
;;\`;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "`",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>`</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - `",
  parser: "shorthand",
  given: ";;\\`;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "`",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>`</em>"
  }
}
Escaped inline shorthand character: emphasis - ;
given input
;;\;;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": ";",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>;</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - ;",
  parser: "shorthand",
  given: ";;\\;;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: ";",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>;</em>"
  }
}
Escaped inline shorthand character: emphasis - ^
given input
;;\^;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "^",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>^</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - ^",
  parser: "shorthand",
  given: ";;\\^;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "^",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>^</em>"
  }
}
Escaped inline shorthand character: emphasis - @
given input
;;\@;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "@",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>@</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - @",
  parser: "shorthand",
  given: ";;\\@;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "@",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>@</em>"
  }
}
Escaped inline shorthand character: emphasis - %
given input
;;\%;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "%",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>%</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - %",
  parser: "shorthand",
  given: ";;\\%;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "%",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>%</em>"
  }
}
Escaped inline shorthand character: emphasis - +
given input
;;\+;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "+",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>+</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - +",
  parser: "shorthand",
  given: ";;\\+;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "+",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>+</em>"
  }
}
Escaped inline shorthand character: emphasis - >
given input
;;\>;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": ">",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>&gt;</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - >",
  parser: "shorthand",
  given: ";;\\>;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: ">",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>&gt;</em>"
  }
}
Escaped inline shorthand character: emphasis - !
given input
;;\!;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "!",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>!</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - !",
  parser: "shorthand",
  given: ";;\\!;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "!",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>!</em>"
  }
}
Escaped inline shorthand character: emphasis - ~
given input
;;\~;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "~",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>~</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - ~",
  parser: "shorthand",
  given: ";;\\~;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "~",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>~</em>"
  }
}
Escaped inline shorthand character: emphasis - *
given input
;;\*;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "*",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>*</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - *",
  parser: "shorthand",
  given: ";;\\*;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "*",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>*</em>"
  }
}
Escaped inline shorthand character: emphasis - _
given input
;;\_;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "_",
      "subtype": "escaped",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>_</em>
full json fixture
{
  description: "Escaped inline shorthand character: emphasis - _",
  parser: "shorthand",
  given: ";;\\_;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          container: "content",
          payload: "_",
          subtype: "escaped",
          template: "default",
          type: "text",
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>_</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;`;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "`",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>`</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;`;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "`",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>`</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;^;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "^",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>^</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;^;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "^",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>^</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;@;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "@",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>@</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;@;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "@",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>@</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;%;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "%",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>%</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;%;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "%",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>%</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;+;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "+",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>+</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;+;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "+",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>+</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;>;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": ">",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>&gt;</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;>;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: ">",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>&gt;</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;!;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "!",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>!</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;!;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "!",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>!</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;~;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "~",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>~</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;~;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "~",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>~</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;*;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "*",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>*</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;*;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "*",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>*</em>"
  }
}
Single inline shorthand character: emphasis
given input
;;_;;
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "_",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "emphasis",
  "template": "default",
  "type": "shorthand"
}
default html
<em>_</em>
full json fixture
{
  description: "Single inline shorthand character: emphasis",
  parser: "shorthand",
  given: ";;_;;",
  status: {
    ok: {
      attrs: [],
      container: "content",
      flags: [],
      payload: [
        {
          type: "text",
          container: "content",
          payload: "_",
          subtype: "normal",
          template: "default"
        }
      ],
      subtype: "emphasis",
      template: "default",
      type: "shorthand",
    }
  },
  remainder: "",
  html: {
    ok: "<em>_</em>"
  }
}
footnote
ok
Single word in shorthand: footnote
given input
^^alfa^^
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "footnote",
  "template": "default",
  "type": "shorthand"
}
default html
<sup id="neo-footnote-alfa" class="neo-footnote"><a href="#neo-footnote-target-alfa">alfa</a></sup>
full json fixture
{
  description: "Single word in shorthand: footnote",
  parser: "shorthand",
  given: "^^alfa^^",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "footnote",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<sup id=\"neo-footnote-alfa\" class=\"neo-footnote\"><a href=\"#neo-footnote-target-alfa\">alfa</a></sup>"
  }
}
footnote_target
ok
Single word in shorthand: footnote_target
given input
@@alfa@@
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "footnote_target",
  "template": "default",
  "type": "shorthand"
}
default html
<a href="#neo-footnote-alfa" id="neo-footnote-target-alfa" class="neo-footnote-target">alfa</a>
full json fixture
{
  description: "Single word in shorthand: footnote_target",
  parser: "shorthand",
  given: "@@alfa@@",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "footnote_target",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<a href=\"#neo-footnote-alfa\" id=\"neo-footnote-target-alfa\" class=\"neo-footnote-target\">alfa</a>"
  }
}
image
ok
Single image shorthand with alt text: image
given input
!!image_target|alfa bravo!!
expected ast
ERROR
default html
<img src="image_target" class="neo-image" alt="alfa bravo" />
full json fixture
{
  description: "Single image shorthand with alt text: image",
  parser: "shorthand",
  given: "!!image_target|alfa bravo!!",
  status: {
    todo: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "image_target",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "image",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<img src=\"image_target\" class=\"neo-image\" alt=\"alfa bravo\" />"
  }
}
Single image shorthand: image
given input
!!image_target!!
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "image_target",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "image",
  "template": "default",
  "type": "shorthand"
}
default html
<img src="image_target" class="neo-image" />
full json fixture
{
  description: "Single image shorthand: image",
  parser: "shorthand",
  given: "!!image_target!!",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "image_target",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "image",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<img src=\"image_target\" class=\"neo-image\" />"
  }
}
link
ok
Single word in shorthand: link
given input
>>alfa|bravo>>
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [
    {
      "payload": [
        {
          "container": "content",
          "payload": "bravo",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ]
    }
  ],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "link",
  "template": "default",
  "type": "shorthand"
}
default html
<a href="bravo" class="neo-link">alfa</a>
full json fixture
{
  description: "Single word in shorthand: link",
  parser: "shorthand",
  given: ">>alfa|bravo>>",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [
        { 
          payload: [
          {
            container: "content",
            payload: "bravo",
            subtype: "normal",
            template: "default",
            type: "text"
          }
        ]}
      ],
      subtype: "link",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<a href=\"bravo\" class=\"neo-link\">alfa</a>"
  }
}
mark
ok
Single word in shorthand: mark
given input
++alfa++
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "mark",
  "template": "default",
  "type": "shorthand"
}
default html
<mark>alfa</mark>
full json fixture
{
  description: "Single word in shorthand: mark",
  parser: "shorthand",
  given: "++alfa++",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "mark",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<mark>alfa</mark>"
  }
}
strike
ok
Single word in shorthand: strike
given input
~~alfa~~
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "strike",
  "template": "default",
  "type": "shorthand"
}
default html
<strike>alfa</strike>
full json fixture
{
  description: "Single word in shorthand: strike",
  parser: "shorthand",
  given: "~~alfa~~",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "strike",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<strike>alfa</strike>"
  }
}
strong
ok
Single word in shorthand: strong
given input
**alfa**
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "strong",
  "template": "default",
  "type": "shorthand"
}
default html
<strong>alfa</strong>
full json fixture
{
  description: "Single word in shorthand: strong",
  parser: "shorthand",
  given: "**alfa**",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "strong",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<strong>alfa</strong>"
  }
}
underline
ok
Single word in shorthand: underline
given input
__alfa__
expected ast
{
  "attrs": [],
  "container": "content",
  "flags": [],
  "payload": [
    {
      "container": "content",
      "payload": "alfa",
      "subtype": "normal",
      "template": "default",
      "type": "text"
    }
  ],
  "subtype": "underline",
  "template": "default",
  "type": "shorthand"
}
default html
<span style="text-decoration: underline">alfa</span>
full json fixture
{
  description: "Single word in shorthand: underline",
  parser: "shorthand",
  given: "__alfa__",
  status: {
    ok: {
      attrs: [],
      type: "shorthand",
      container: "content",
      payload: [
        {
          type: "text",
          container: "content",
          payload: "alfa",
          subtype: "normal",
          template: "default"
        }
      ],
      flags: [],
      subtype: "underline",
      template: "default"
    }
  },
  remainder: "",
  html: {
    ok: "<span style=\"text-decoration: underline\">alfa</span>"
  }
}
text
escaped
ok-batch
Shorthand escaped character at eof: code
given input
\`
expected ast
{
  "container": "content",
  "payload": "`",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand escaped character at eof: code",
  given: "\\`",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "`",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "`" }
}
Shorthand escaped character at eof: emphasis
given input
\;
expected ast
{
  "container": "content",
  "payload": ";",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand escaped character at eof: emphasis",
  given: "\\;",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: ";",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: ";" }
}
Shorthand escaped character at eof: footnote_link
given input
\^
expected ast
{
  "container": "content",
  "payload": "^",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand escaped character at eof: footnote_link",
  given: "\\^",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "^",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "^" }
}
Shorthand escaped character at eof: footnote_return
given input
\@
expected ast
{
  "container": "content",
  "payload": "@",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand escaped character at eof: footnote_return",
  given: "\\@",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "@",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "@" }
}
Shorthand escaped character at eof: image
given input
\%
expected ast
{
  "container": "content",
  "payload": "%",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand escaped character at eof: image",
  given: "\\%",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "%",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "%" }
}
Shorthand escaped character at eof: kbd
given input
\+
expected ast
{
  "container": "content",
  "payload": "+",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand escaped character at eof: kbd",
  given: "\\+",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "+",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "+" }
}
Shorthand escaped character at eof: link
given input
\>
expected ast
{
  "container": "content",
  "payload": ">",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand escaped character at eof: link",
  given: "\\>",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: ">",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: ">" }
}
Shorthand escaped character at eof: mark
given input
\!
expected ast
{
  "container": "content",
  "payload": "!",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand escaped character at eof: mark",
  given: "\\!",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "!",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "!" }
}
Shorthand escaped character at eof: strike
given input
\~
expected ast
{
  "container": "content",
  "payload": "~",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand escaped character at eof: strike",
  given: "\\~",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "~",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "~" }
}
Shorthand escaped character at eof: strong
given input
\*
expected ast
{
  "container": "content",
  "payload": "*",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand escaped character at eof: strong",
  given: "\\*",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "*",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "*" }
}
Shorthand escaped character at eof: underline
given input
\_
expected ast
{
  "container": "content",
  "payload": "_",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand escaped character at eof: underline",
  given: "\\_",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "_",
      subtype: "escaped",
      template: "default",
      type: "text",
    }
  },
  remainder: "",
  html: { ok: "_" }
}
normal
err
Empty line (\n) fails
given input
expected ast
ERROR
default html
full json fixture
{
  description: "Empty line (\\n) fails",
  given: "\n\n",
  parser: "text",
  status: {
    "err": {}
  }
}
Empty line (\r\n) fails
given input
expected ast
ERROR
default html
full json fixture
{
  description: "Empty line (\\r\\n) fails",
  given: "\r\n\r\n",
  parser: "text",
  status: {
    "err": {}
  }
}
End of file (eof) fails
given input
expected ast
ERROR
default html
full json fixture
{
  description: "End of file (eof) fails",
  given: "",
  parser: "text",
  status: {
    "err": {}
  }
}
err-batch
Shorthand tag fails: code
given input
``
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: code",
  given: "``",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: emphasis
given input
;;
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: emphasis",
  given: ";;",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: footnote_link
given input
^^
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: footnote_link",
  given: "^^",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: footnote_return
given input
@@
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: footnote_return",
  given: "@@",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: image
given input
%%
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: image",
  given: "%%",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: kbd
given input
++
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: kbd",
  given: "++",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: link
given input
>>
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: link",
  given: ">>",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: mark
given input
!!
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: mark",
  given: "!!",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: strike
given input
~~
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: strike",
  given: "~~",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: strong
given input
**
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: strong",
  given: "**",
  parser: "text",
  status: {
    "err": {}
  }
}
Shorthand tag fails: underline
given input
__
expected ast
ERROR
default html
full json fixture
{
  description: "Shorthand tag fails: underline",
  given: "__",
  parser: "text",
  status: {
    "err": {}
  }
}
ok
End at empty line (\r\n\r\n)
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
alfa
full json fixture
{
  description: "End at empty line (\\r\\n\\r\\n)",
  given: "alfa\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "alfa" }
}
End at empty line (\n\n)
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
alfa
full json fixture
{
  description: "End at empty line (\\n\\n)",
  given: "alfa\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "alfa" }
}
Leading space is preserved
given input
 alfa
expected ast
{
  "container": "content",
  "payload": " alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
 alfa
full json fixture
{
  description: "Leading space is preserved",
  given: " alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: " alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: " alfa" }
}
Leading spaces and single newlines (\n) are merged
given input
  alfa
expected ast
{
  "container": "content",
  "payload": " alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
 alfa
full json fixture
{
  description: "Leading spaces and single newlines (\\n) are merged",
  given: "  \n  alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: " alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: " alfa" }
}
Leading spaces and single newlines (\r\n) are merged
given input
  alfa
expected ast
{
  "container": "content",
  "payload": " alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
 alfa
full json fixture
{
  description: "Leading spaces and single newlines (\\r\\n) are merged",
  given: "  \r\n  alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: " alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: " alfa" }
}
Multiple leading spaces are merged
given input
   alfa
expected ast
{
  "container": "content",
  "payload": " alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
 alfa
full json fixture
{
  description: "Multiple leading spaces are merged",
  given: "   alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: " alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: " alfa" }
}
Multiple trailing spaces are merged
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa
full json fixture
{
  description: "Multiple trailing spaces are merged",
  given: "alfa    ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "alfa " }
}
Multiple words
given input
alfa bravo
expected ast
{
  "container": "content",
  "payload": "alfa bravo",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa bravo
full json fixture
{
  description: "Multiple words",
  given: "alfa bravo",
  parser: "text",
  status: {
    ok: {
      payload: "alfa bravo",
      subtype: "normal",
      template: "default",
      type: "text",
      container: "content"
    }
  },
  remainder: "",
  html: { ok: "alfa bravo" }
}
Non-ASCII characters
given input
テスト
expected ast
{
  "container": "content",
  "payload": "テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
テスト
full json fixture
{
  description: "Non-ASCII characters",
  given: "テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "テスト" }
}
Section/attribute tokens are valid text
given input
--
expected ast
{
  "container": "content",
  "payload": "--",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
--
full json fixture
{
  description: "Section/attribute tokens are valid text",
  given: "--",
  parser: "text",
  status: {
    ok: {
      payload: "--",
      subtype: "normal",
      template: "default",
      type: "text",
      container: "content"
    }
  },
  remainder: "",
  html: { ok: "--" }
}
Single escaped backslash at eof
given input
\\
expected ast
{
  "container": "content",
  "payload": "\\",
  "subtype": "escaped",
  "template": "default",
  "type": "text"
}
default html
\
full json fixture
{
  description: "Single escaped backslash at eof",
  given: "\\\\",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "\\",
      subtype: "escaped",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "\\" }
}
Single newlines (\r\n) padded by spaces are merged to a single space
given input
alfa  
  bravo
expected ast
{
  "container": "content",
  "payload": "alfa bravo",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa bravo
full json fixture
{
  description: "Single newlines (\\r\\n) padded by spaces are merged to a single space",
  given: "alfa  \r\n  bravo",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa bravo",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "alfa bravo" }
}
Single newlines (\n) padded by spaces are merged to a single space
given input
alfa  
  bravo
expected ast
{
  "container": "content",
  "payload": "alfa bravo",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa bravo
full json fixture
{
  description: "Single newlines (\\n) padded by spaces are merged to a single space",
  given: "alfa  \n  bravo",
  parser: "text",
  status: {
    ok: {
      payload: "alfa bravo",
      subtype: "normal",
      template: "default",
      type: "text",
      container: "content"
    }
  },
  remainder: "",
  html: { ok: "alfa bravo" }
}
Single newlines (\r\n) convert to a space
given input
alfa
bravo
expected ast
{
  "container": "content",
  "payload": "alfa bravo",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa bravo
full json fixture
{
  description: "Single newlines (\\r\\n) convert to a space",
  given: "alfa\r\nbravo",
  parser: "text",
  status: {
    ok: {
      payload: "alfa bravo",
      subtype: "normal",
      template: "default",
      type: "text",
      container: "content"
    }
  },
  remainder: "",
  html: { ok: "alfa bravo" }
}
Single newlines (\n) convert to a space
given input
alfa
bravo
expected ast
{
  "container": "content",
  "payload": "alfa bravo",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa bravo
full json fixture
{
  description: "Single newlines (\\n) convert to a space",
  given: "alfa\nbravo",
  parser: "text",
  status: {
    ok: {
      payload: "alfa bravo",
      subtype: "normal",
      template: "default",
      type: "text",
      container: "content"
    }
  },
  remainder: "",
  html: { ok: "alfa bravo" }
}
Single word at eof
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa
full json fixture
{
  description: "Single word at eof",
  parser: "text",
  given: "alfa",
  status: {
    ok: {
      container: "content",
      type: "text",
      payload: "alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "alfa" }
}
Space before empty line (\n) is removed
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
alfa
full json fixture
{
  description: "Space before empty line (\\n) is removed",
  given: "alfa    \n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "alfa" }
}
Space before empty line (\r\n) is removed
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
alfa
full json fixture
{
  description: "Space before empty line (\\r\\n) is removed",
  given: "alfa    \r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "alfa" }
}
Trailing space is preserved
given input
alfa
expected ast
{
  "container": "content",
  "payload": "alfa ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
alfa
full json fixture
{
  description: "Trailing space is preserved",
  given: "alfa ",
  parser: "text",
  status: {
    ok: {
      container: "content",
      payload: "alfa ",
      subtype: "normal",
      type: "text",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "alfa " }
}
ok-batch
Shorthand single character at eof: code
given input
`
expected ast
{
  "container": "content",
  "payload": "`",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand single character at eof: code",
  given: "`",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "`" }
}
Shorthand single character at eof: emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": ";",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand single character at eof: emphasis",
  given: ";",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ";" }
}
Shorthand single character at eof: footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand single character at eof: footnote_link",
  given: "^",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^" }
}
Shorthand single character at eof: footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand single character at eof: footnote_return",
  given: "@",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@" }
}
Shorthand single character at eof: image
given input
%
expected ast
{
  "container": "content",
  "payload": "%",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand single character at eof: image",
  given: "%",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "%" }
}
Shorthand single character at eof: kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand single character at eof: kbd",
  given: "+",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+" }
}
Shorthand single character at eof: link
given input
>
expected ast
{
  "container": "content",
  "payload": ">",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand single character at eof: link",
  given: ">",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ">" }
}
Shorthand single character at eof: mark
given input
!
expected ast
{
  "container": "content",
  "payload": "!",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand single character at eof: mark",
  given: "!",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "!" }
}
Shorthand single character at eof: strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand single character at eof: strike",
  given: "~",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~" }
}
Shorthand single character at eof: strong
given input
*
expected ast
{
  "container": "content",
  "payload": "*",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand single character at eof: strong",
  given: "*",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "*" }
}
Shorthand single character at eof: underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand single character at eof: underline",
  given: "_",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_" }
}
Shorthand single character followed by ascii characters: code
given input
`alfa
expected ast
{
  "container": "content",
  "payload": "`alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: code",
  given: "`alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "`alfa" }
}
Shorthand single character followed by ascii characters: emphasis
given input
;alfa
expected ast
{
  "container": "content",
  "payload": ";alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: emphasis",
  given: ";alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ";alfa" }
}
Shorthand single character followed by ascii characters: footnote_link
given input
^alfa
expected ast
{
  "container": "content",
  "payload": "^alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: footnote_link",
  given: "^alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^alfa" }
}
Shorthand single character followed by ascii characters: footnote_return
given input
@alfa
expected ast
{
  "container": "content",
  "payload": "@alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: footnote_return",
  given: "@alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@alfa" }
}
Shorthand single character followed by ascii characters: image
given input
%alfa
expected ast
{
  "container": "content",
  "payload": "%alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: image",
  given: "%alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "%alfa" }
}
Shorthand single character followed by ascii characters: kbd
given input
+alfa
expected ast
{
  "container": "content",
  "payload": "+alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: kbd",
  given: "+alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+alfa" }
}
Shorthand single character followed by ascii characters: link
given input
>alfa
expected ast
{
  "container": "content",
  "payload": ">alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: link",
  given: ">alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ">alfa" }
}
Shorthand single character followed by ascii characters: mark
given input
!alfa
expected ast
{
  "container": "content",
  "payload": "!alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: mark",
  given: "!alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "!alfa" }
}
Shorthand single character followed by ascii characters: strike
given input
~alfa
expected ast
{
  "container": "content",
  "payload": "~alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: strike",
  given: "~alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~alfa" }
}
Shorthand single character followed by ascii characters: strong
given input
*alfa
expected ast
{
  "container": "content",
  "payload": "*alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: strong",
  given: "*alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "*alfa" }
}
Shorthand single character followed by ascii characters: underline
given input
_alfa
expected ast
{
  "container": "content",
  "payload": "_alfa",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_alfa
full json fixture
{
  description: "Shorthand single character followed by ascii characters: underline",
  given: "_alfa",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_alfa",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_alfa" }
}
Shorthand single character followed by empty line (\n): code
given input
`
expected ast
{
  "container": "content",
  "payload": "`",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
`
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): code",
  given: "`\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "`" }
}
Shorthand single character followed by empty line (\n): emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": ";",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
;
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): emphasis",
  given: ";\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: ";" }
}
Shorthand single character followed by empty line (\n): footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
^
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): footnote_link",
  given: "^\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "^" }
}
Shorthand single character followed by empty line (\n): footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
@
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): footnote_return",
  given: "@\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "@" }
}
Shorthand single character followed by empty line (\n): image
given input
%
expected ast
{
  "container": "content",
  "payload": "%",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
%
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): image",
  given: "%\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "%" }
}
Shorthand single character followed by empty line (\n): kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
+
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): kbd",
  given: "+\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "+" }
}
Shorthand single character followed by empty line (\n): link
given input
>
expected ast
{
  "container": "content",
  "payload": ">",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
>
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): link",
  given: ">\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: ">" }
}
Shorthand single character followed by empty line (\n): mark
given input
!
expected ast
{
  "container": "content",
  "payload": "!",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
!
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): mark",
  given: "!\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "!" }
}
Shorthand single character followed by empty line (\n): strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
~
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): strike",
  given: "~\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "~" }
}
Shorthand single character followed by empty line (\n): strong
given input
*
expected ast
{
  "container": "content",
  "payload": "*",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
*
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): strong",
  given: "*\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "*" }
}
Shorthand single character followed by empty line (\n): underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
_
full json fixture
{
  description: "Shorthand single character followed by empty line (\\n): underline",
  given: "_\n\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\n\n",
  html: { ok: "_" }
}
Shorthand single character followed by empty line (\r\n): code
given input
`
expected ast
{
  "container": "content",
  "payload": "`",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
`
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): code",
  given: "`\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "`" }
}
Shorthand single character followed by empty line (\r\n): emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": ";",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
;
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): emphasis",
  given: ";\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: ";" }
}
Shorthand single character followed by empty line (\r\n): footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
^
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): footnote_link",
  given: "^\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "^" }
}
Shorthand single character followed by empty line (\r\n): footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
@
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): footnote_return",
  given: "@\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "@" }
}
Shorthand single character followed by empty line (\r\n): image
given input
%
expected ast
{
  "container": "content",
  "payload": "%",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
%
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): image",
  given: "%\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "%" }
}
Shorthand single character followed by empty line (\r\n): kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
+
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): kbd",
  given: "+\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "+" }
}
Shorthand single character followed by empty line (\r\n): link
given input
>
expected ast
{
  "container": "content",
  "payload": ">",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
>
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): link",
  given: ">\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: ">" }
}
Shorthand single character followed by empty line (\r\n): mark
given input
!
expected ast
{
  "container": "content",
  "payload": "!",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
!
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): mark",
  given: "!\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "!" }
}
Shorthand single character followed by empty line (\r\n): strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
~
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): strike",
  given: "~\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "~" }
}
Shorthand single character followed by empty line (\r\n): strong
given input
*
expected ast
{
  "container": "content",
  "payload": "*",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
*
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): strong",
  given: "*\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "*" }
}
Shorthand single character followed by empty line (\r\n): underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
remainder
default html
_
full json fixture
{
  description: "Shorthand single character followed by empty line (\\r\\n): underline",
  given: "_\r\n\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "\r\n\r\n",
  html: { ok: "_" }
}
Shorthand single character followed by line_ending (\n): code
given input
`
expected ast
{
  "container": "content",
  "payload": "` ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): code",
  given: "`\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "` ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "` " }
}
Shorthand single character followed by line_ending (\n): emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": "; ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): emphasis",
  given: ";\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "; ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "; " }
}
Shorthand single character followed by line_ending (\n): footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): footnote_link",
  given: "^\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^ " }
}
Shorthand single character followed by line_ending (\n): footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): footnote_return",
  given: "@\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@ " }
}
Shorthand single character followed by line_ending (\n): image
given input
%
expected ast
{
  "container": "content",
  "payload": "% ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): image",
  given: "%\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "% ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "% " }
}
Shorthand single character followed by line_ending (\n): kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): kbd",
  given: "+\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+ " }
}
Shorthand single character followed by line_ending (\n): link
given input
>
expected ast
{
  "container": "content",
  "payload": "> ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): link",
  given: ">\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "> ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "> " }
}
Shorthand single character followed by line_ending (\n): mark
given input
!
expected ast
{
  "container": "content",
  "payload": "! ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): mark",
  given: "!\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "! ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "! " }
}
Shorthand single character followed by line_ending (\n): strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): strike",
  given: "~\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~ " }
}
Shorthand single character followed by line_ending (\n): strong
given input
*
expected ast
{
  "container": "content",
  "payload": "* ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): strong",
  given: "*\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "* ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "* " }
}
Shorthand single character followed by line_ending (\n): underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\n): underline",
  given: "_\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_ " }
}
Shorthand single character followed by line_ending (\r\n): code
given input
`
expected ast
{
  "container": "content",
  "payload": "` ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): code",
  given: "`\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "` ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "` " }
}
Shorthand single character followed by line_ending (\r\n): emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": "; ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): emphasis",
  given: ";\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "; ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "; " }
}
Shorthand single character followed by line_ending (\r\n): footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): footnote_link",
  given: "^\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^ " }
}
Shorthand single character followed by line_ending (\r\n): footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): footnote_return",
  given: "@\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@ " }
}
Shorthand single character followed by line_ending (\r\n): image
given input
%
expected ast
{
  "container": "content",
  "payload": "% ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): image",
  given: "%\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "% ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "% " }
}
Shorthand single character followed by line_ending (\r\n): kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): kbd",
  given: "+\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+ " }
}
Shorthand single character followed by line_ending (\r\n): link
given input
>
expected ast
{
  "container": "content",
  "payload": "> ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): link",
  given: ">\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "> ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "> " }
}
Shorthand single character followed by line_ending (\r\n): mark
given input
!
expected ast
{
  "container": "content",
  "payload": "! ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): mark",
  given: "!\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "! ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "! " }
}
Shorthand single character followed by line_ending (\r\n): strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): strike",
  given: "~\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~ " }
}
Shorthand single character followed by line_ending (\r\n): strong
given input
*
expected ast
{
  "container": "content",
  "payload": "* ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): strong",
  given: "*\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "* ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "* " }
}
Shorthand single character followed by line_ending (\r\n): underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand single character followed by line_ending (\\r\\n): underline",
  given: "_\r\n",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_ " }
}
Shorthand single character followed by non-ascii characters: code
given input
`テスト
expected ast
{
  "container": "content",
  "payload": "`テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: code",
  given: "`テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "`テスト" }
}
Shorthand single character followed by non-ascii characters: emphasis
given input
;テスト
expected ast
{
  "container": "content",
  "payload": ";テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: emphasis",
  given: ";テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ";テスト" }
}
Shorthand single character followed by non-ascii characters: footnote_link
given input
^テスト
expected ast
{
  "container": "content",
  "payload": "^テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: footnote_link",
  given: "^テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^テスト" }
}
Shorthand single character followed by non-ascii characters: footnote_return
given input
@テスト
expected ast
{
  "container": "content",
  "payload": "@テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: footnote_return",
  given: "@テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@テスト" }
}
Shorthand single character followed by non-ascii characters: image
given input
%テスト
expected ast
{
  "container": "content",
  "payload": "%テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: image",
  given: "%テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "%テスト" }
}
Shorthand single character followed by non-ascii characters: kbd
given input
+テスト
expected ast
{
  "container": "content",
  "payload": "+テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: kbd",
  given: "+テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+テスト" }
}
Shorthand single character followed by non-ascii characters: link
given input
>テスト
expected ast
{
  "container": "content",
  "payload": ">テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: link",
  given: ">テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ">テスト" }
}
Shorthand single character followed by non-ascii characters: mark
given input
!テスト
expected ast
{
  "container": "content",
  "payload": "!テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: mark",
  given: "!テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "!テスト" }
}
Shorthand single character followed by non-ascii characters: strike
given input
~テスト
expected ast
{
  "container": "content",
  "payload": "~テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: strike",
  given: "~テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~テスト" }
}
Shorthand single character followed by non-ascii characters: strong
given input
*テスト
expected ast
{
  "container": "content",
  "payload": "*テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: strong",
  given: "*テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "*テスト" }
}
Shorthand single character followed by non-ascii characters: underline
given input
_テスト
expected ast
{
  "container": "content",
  "payload": "_テスト",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_テスト
full json fixture
{
  description: "Shorthand single character followed by non-ascii characters: underline",
  given: "_テスト",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_テスト",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_テスト" }
}
Shorthand single character followed by pipe: code
given input
`|
expected ast
{
  "container": "content",
  "payload": "`|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`|
full json fixture
{
  description: "Shorthand single character followed by pipe: code",
  given: "`|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "`|" }
}
Shorthand single character followed by pipe: emphasis
given input
;|
expected ast
{
  "container": "content",
  "payload": ";|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;|
full json fixture
{
  description: "Shorthand single character followed by pipe: emphasis",
  given: ";|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ";|" }
}
Shorthand single character followed by pipe: footnote_link
given input
^|
expected ast
{
  "container": "content",
  "payload": "^|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^|
full json fixture
{
  description: "Shorthand single character followed by pipe: footnote_link",
  given: "^|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^|" }
}
Shorthand single character followed by pipe: footnote_return
given input
@|
expected ast
{
  "container": "content",
  "payload": "@|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@|
full json fixture
{
  description: "Shorthand single character followed by pipe: footnote_return",
  given: "@|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@|" }
}
Shorthand single character followed by pipe: image
given input
%|
expected ast
{
  "container": "content",
  "payload": "%|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%|
full json fixture
{
  description: "Shorthand single character followed by pipe: image",
  given: "%|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "%|" }
}
Shorthand single character followed by pipe: kbd
given input
+|
expected ast
{
  "container": "content",
  "payload": "+|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+|
full json fixture
{
  description: "Shorthand single character followed by pipe: kbd",
  given: "+|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+|" }
}
Shorthand single character followed by pipe: link
given input
>|
expected ast
{
  "container": "content",
  "payload": ">|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>|
full json fixture
{
  description: "Shorthand single character followed by pipe: link",
  given: ">|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ">|" }
}
Shorthand single character followed by pipe: mark
given input
!|
expected ast
{
  "container": "content",
  "payload": "!|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!|
full json fixture
{
  description: "Shorthand single character followed by pipe: mark",
  given: "!|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "!|" }
}
Shorthand single character followed by pipe: strike
given input
~|
expected ast
{
  "container": "content",
  "payload": "~|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~|
full json fixture
{
  description: "Shorthand single character followed by pipe: strike",
  given: "~|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~|" }
}
Shorthand single character followed by pipe: strong
given input
*|
expected ast
{
  "container": "content",
  "payload": "*|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*|
full json fixture
{
  description: "Shorthand single character followed by pipe: strong",
  given: "*|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "*|" }
}
Shorthand single character followed by pipe: underline
given input
_|
expected ast
{
  "container": "content",
  "payload": "_|",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_|
full json fixture
{
  description: "Shorthand single character followed by pipe: underline",
  given: "_|",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_|",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_|" }
}
Shorthand single character followed by section token: code
given input
`--
expected ast
{
  "container": "content",
  "payload": "`-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`--
full json fixture
{
  description: "Shorthand single character followed by section token: code",
  given: "`-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "`-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "`-- " }
}
Shorthand single character followed by section token: emphasis
given input
;--
expected ast
{
  "container": "content",
  "payload": ";-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;--
full json fixture
{
  description: "Shorthand single character followed by section token: emphasis",
  given: ";-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ";-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ";-- " }
}
Shorthand single character followed by section token: footnote_link
given input
^--
expected ast
{
  "container": "content",
  "payload": "^-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^--
full json fixture
{
  description: "Shorthand single character followed by section token: footnote_link",
  given: "^-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^-- " }
}
Shorthand single character followed by section token: footnote_return
given input
@--
expected ast
{
  "container": "content",
  "payload": "@-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@--
full json fixture
{
  description: "Shorthand single character followed by section token: footnote_return",
  given: "@-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@-- " }
}
Shorthand single character followed by section token: image
given input
%--
expected ast
{
  "container": "content",
  "payload": "%-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%--
full json fixture
{
  description: "Shorthand single character followed by section token: image",
  given: "%-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "%-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "%-- " }
}
Shorthand single character followed by section token: kbd
given input
+--
expected ast
{
  "container": "content",
  "payload": "+-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+--
full json fixture
{
  description: "Shorthand single character followed by section token: kbd",
  given: "+-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+-- " }
}
Shorthand single character followed by section token: link
given input
>--
expected ast
{
  "container": "content",
  "payload": ">-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>--
full json fixture
{
  description: "Shorthand single character followed by section token: link",
  given: ">-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: ">-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: ">-- " }
}
Shorthand single character followed by section token: mark
given input
!--
expected ast
{
  "container": "content",
  "payload": "!-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!--
full json fixture
{
  description: "Shorthand single character followed by section token: mark",
  given: "!-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "!-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "!-- " }
}
Shorthand single character followed by section token: strike
given input
~--
expected ast
{
  "container": "content",
  "payload": "~-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~--
full json fixture
{
  description: "Shorthand single character followed by section token: strike",
  given: "~-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~-- " }
}
Shorthand single character followed by section token: strong
given input
*--
expected ast
{
  "container": "content",
  "payload": "*-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*--
full json fixture
{
  description: "Shorthand single character followed by section token: strong",
  given: "*-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "*-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "*-- " }
}
Shorthand single character followed by section token: underline
given input
_--
expected ast
{
  "container": "content",
  "payload": "_-- ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_--
full json fixture
{
  description: "Shorthand single character followed by section token: underline",
  given: "_-- ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_-- ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_-- " }
}
Shorthand single character followed by space: code
given input
`
expected ast
{
  "container": "content",
  "payload": "` ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand single character followed by space: code",
  given: "` ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "` ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "` " }
}
Shorthand single character followed by space: emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": "; ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand single character followed by space: emphasis",
  given: "; ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "; ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "; " }
}
Shorthand single character followed by space: footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand single character followed by space: footnote_link",
  given: "^ ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^ " }
}
Shorthand single character followed by space: footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand single character followed by space: footnote_return",
  given: "@ ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@ " }
}
Shorthand single character followed by space: image
given input
%
expected ast
{
  "container": "content",
  "payload": "% ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand single character followed by space: image",
  given: "% ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "% ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "% " }
}
Shorthand single character followed by space: kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand single character followed by space: kbd",
  given: "+ ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+ " }
}
Shorthand single character followed by space: link
given input
>
expected ast
{
  "container": "content",
  "payload": "> ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand single character followed by space: link",
  given: "> ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "> ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "> " }
}
Shorthand single character followed by space: mark
given input
!
expected ast
{
  "container": "content",
  "payload": "! ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand single character followed by space: mark",
  given: "! ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "! ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "! " }
}
Shorthand single character followed by space: strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand single character followed by space: strike",
  given: "~ ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~ " }
}
Shorthand single character followed by space: strong
given input
*
expected ast
{
  "container": "content",
  "payload": "* ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand single character followed by space: strong",
  given: "* ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "* ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "* " }
}
Shorthand single character followed by space: underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand single character followed by space: underline",
  given: "_ ",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_ " }
}
Shorthand single character followed by tab: code
given input
`
expected ast
{
  "container": "content",
  "payload": "` ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
`
full json fixture
{
  description: "Shorthand single character followed by tab: code",
  given: "`\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "` ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "` " }
}
Shorthand single character followed by tab: emphasis
given input
;
expected ast
{
  "container": "content",
  "payload": "; ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
;
full json fixture
{
  description: "Shorthand single character followed by tab: emphasis",
  given: ";\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "; ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "; " }
}
Shorthand single character followed by tab: footnote_link
given input
^
expected ast
{
  "container": "content",
  "payload": "^ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
^
full json fixture
{
  description: "Shorthand single character followed by tab: footnote_link",
  given: "^\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "^ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "^ " }
}
Shorthand single character followed by tab: footnote_return
given input
@
expected ast
{
  "container": "content",
  "payload": "@ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
@
full json fixture
{
  description: "Shorthand single character followed by tab: footnote_return",
  given: "@\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "@ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "@ " }
}
Shorthand single character followed by tab: image
given input
%
expected ast
{
  "container": "content",
  "payload": "% ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
%
full json fixture
{
  description: "Shorthand single character followed by tab: image",
  given: "%\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "% ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "% " }
}
Shorthand single character followed by tab: kbd
given input
+
expected ast
{
  "container": "content",
  "payload": "+ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
+
full json fixture
{
  description: "Shorthand single character followed by tab: kbd",
  given: "+\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "+ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "+ " }
}
Shorthand single character followed by tab: link
given input
>
expected ast
{
  "container": "content",
  "payload": "> ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
>
full json fixture
{
  description: "Shorthand single character followed by tab: link",
  given: ">\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "> ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "> " }
}
Shorthand single character followed by tab: mark
given input
!
expected ast
{
  "container": "content",
  "payload": "! ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
!
full json fixture
{
  description: "Shorthand single character followed by tab: mark",
  given: "!\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "! ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "! " }
}
Shorthand single character followed by tab: strike
given input
~
expected ast
{
  "container": "content",
  "payload": "~ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
~
full json fixture
{
  description: "Shorthand single character followed by tab: strike",
  given: "~\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "~ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "~ " }
}
Shorthand single character followed by tab: strong
given input
*
expected ast
{
  "container": "content",
  "payload": "* ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
*
full json fixture
{
  description: "Shorthand single character followed by tab: strong",
  given: "*\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "* ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "* " }
}
Shorthand single character followed by tab: underline
given input
_
expected ast
{
  "container": "content",
  "payload": "_ ",
  "subtype": "normal",
  "template": "default",
  "type": "text"
}
default html
_
full json fixture
{
  description: "Shorthand single character followed by tab: underline",
  given: "_\t",
  parser: "text",
  status: {
    ok: {
      type: "text",
      container: "content",
      payload: "_ ",
      subtype: "normal",
      template: "default"
    }
  },
  remainder: "",
  html: { ok: "_ " }
}
section
p
normal
ok
Single block, no attrs, no flags
given input
-- p

alfa bravo charlie
expected ast
{
  "attrs": [],
  "bound": "full",
  "container": "section",
  "flags": [],
  "payload": [
    {
      "container": "block",
      "payload": [
        {
          "container": "content",
          "payload": "alfa bravo charlie",
          "subtype": "normal",
          "template": "default",
          "type": "text"
        }
      ],
      "subtype": "normal",
      "template": "default",
      "type": "paragraph"
    }
  ],
  "subtype": "normal",
  "template": "default",
  "type": "p"
}
default html
<div class="neo-section-container neo-p-type neo-normal-subtype neo-default-template"><p>alfa bravo charlie</p></div>
full json fixture
{
  description: "Single block, no attrs, no flags",
  given: "-- p\n\nalfa bravo charlie",
  parser: "section",
  status: {
    ok: {
      attrs: [],
      "bound": "full",
      container: "section",
      flags: [],
      payload: [
        {
          container: "block",
          payload: [
            {
              payload: "alfa bravo charlie",
              subtype: "normal",
              template: "default",
              type: "text",
              container: "content"
            }
          ],
          subtype: "normal",
          template: "default",
          type: "paragraph"
        }
      ],
      subtype: "normal",
      template: "default",
      type: "p"
    }
  },
  remainder: "",
  html: {
    ok: "<div class=\"neo-section-container neo-p-type neo-normal-subtype neo-default-template\"><p>alfa bravo charlie</p></div>"
  }
}
sections
group
normal
ok
Single Section
given input
-- p

alfa bravo charlie
expected ast
{
  "container": "sections",
  "payload": [
    {
      "attrs": [],
      "bound": "full",
      "container": "section",
      "flags": [],
      "payload": [
        {
          "container": "block",
          "payload": [
            {
              "container": "content",
              "payload": "alfa bravo charlie",
              "subtype": "normal",
              "template": "default",
              "type": "text"
            }
          ],
          "subtype": "normal",
          "template": "default",
          "type": "paragraph"
        }
      ],
      "subtype": "normal",
      "template": "default",
      "type": "p"
    }
  ],
  "subtype": "normal",
  "template": "default",
  "type": "group"
}
default html
<div class="neo-sections-container neo-group-type neo-normal-subtype neo-default-template"><div class="neo-section-container neo-p-type neo-normal-subtype neo-default-template"><p>alfa bravo charlie</p></div></div>
full json fixture
{
  description: "Single Section",
  given: "-- p\n\nalfa bravo charlie",
  parser: "sections",
  status: {
    ok: {
      container: "sections",
      payload: [
        {
          attrs: [],
          "bound": "full",
          container: "section",
          flags: [],
          payload: [
            {
              container: "block",
              payload: [
                {
                  container: "content",
                  payload: "alfa bravo charlie",
                  subtype: "normal",
                  template: "default",
                  type: "text"
                }
              ],
              subtype: "normal",
              template: "default",
              type: "paragraph"
            }
          ],
          subtype: "normal",
          template: "default",
          type: "p"
        }
      ],
      subtype: "normal",
      template: "default",
      type: "group"
    }
  },
  remainder: "",
  html: {
    ok: "<div class=\"neo-sections-container neo-group-type neo-normal-subtype neo-default-template\"><div class=\"neo-section-container neo-p-type neo-normal-subtype neo-default-template\"><p>alfa bravo charlie</p></div></div>"
  }
}