|
|
import {parser} from "../dist/index.js" |
|
|
import {compareTree} from "./compare-tree.js" |
|
|
import {SpecParser} from "./spec.js" |
|
|
|
|
|
const specParser = new SpecParser(parser) |
|
|
|
|
|
function test(name: string, spec: string) { |
|
|
it(name, () => { |
|
|
let {tree, doc} = specParser.parse(spec, name) |
|
|
compareTree(parser.parse(doc), tree) |
|
|
}) |
|
|
} |
|
|
|
|
|
// These are the tests from revision 0.29 of the CommonMark spec, |
|
|
// mechanically translated to the format used here (because their |
|
|
// original format, providing expected HTML output, doesn't cover most |
|
|
// of the aspects of the output that we're interested in), and then eyeballed |
|
|
// to check whether the produced output corresponds to the intent of |
|
|
// the test. |
|
|
|
|
|
describe("CommonMark spec", () => { |
|
|
test("Tabs (example 1)", ` |
|
|
{CB:{cT:foo baz bim}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 2)", ` |
|
|
{CB:{cT:foo baz bim}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 3)", ` |
|
|
{CB:{cT:a a |
|
|
} {cT:ὐ a}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 4)", ` |
|
|
{BL:{LI: {l:-} {P:foo} |
|
|
|
|
|
{P:bar}}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 5)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
|
|
|
{CB:{cT:bar}}}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 6)", ` |
|
|
{Q:{q:>} {CB:{cT:foo}}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 7)", ` |
|
|
{BL:{LI:{l:-} {CB:{cT:foo}}}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 8)", ` |
|
|
{CB:{cT:foo |
|
|
} {cT:bar}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 9)", ` |
|
|
{BL:{LI: {l:-} {P:foo} |
|
|
{BL:{LI:{l:-} {P:bar} |
|
|
{BL:{LI:{l:-} {P:baz}}}}}}} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 10)", ` |
|
|
{P:# Foo} |
|
|
`) |
|
|
|
|
|
test("Tabs (example 11)", ` |
|
|
{HR:* * * } |
|
|
`) |
|
|
|
|
|
test("Precedence (example 12)", ` |
|
|
{BL:{LI:{l:-} {P:\`one}} |
|
|
{LI:{l:-} {P:two\`}}} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 13)", ` |
|
|
{HR:***} |
|
|
{HR:---} |
|
|
{HR:___} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 14)", ` |
|
|
{P:+++} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 15)", ` |
|
|
{P:===} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 16)", ` |
|
|
{P:-- |
|
|
** |
|
|
__} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 17)", ` |
|
|
{HR:***} |
|
|
{HR:***} |
|
|
{HR:***} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 18)", ` |
|
|
{CB:{cT:***}} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 19)", ` |
|
|
{P:Foo |
|
|
***} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 20)", ` |
|
|
{HR:_____________________________________} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 21)", ` |
|
|
{HR:- - -} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 22)", ` |
|
|
{HR:** * ** * ** * **} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 23)", ` |
|
|
{HR:- - - -} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 24)", ` |
|
|
{HR:- - - - } |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 25)", ` |
|
|
{P:_ _ _ _ a} |
|
|
|
|
|
{P:a------} |
|
|
|
|
|
{P:---a---} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 26)", ` |
|
|
{P:{Em:{e:*}-{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 27)", ` |
|
|
{BL:{LI:{l:-} {P:foo}}} |
|
|
{HR:***} |
|
|
{BL:{LI:{l:-} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 28)", ` |
|
|
{P:Foo} |
|
|
{HR:***} |
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 29)", ` |
|
|
{SH2:Foo |
|
|
{h:---}} |
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 30)", ` |
|
|
{BL:{LI:{l:*} {P:Foo}}} |
|
|
{HR:* * *} |
|
|
{BL:{LI:{l:*} {P:Bar}}} |
|
|
`) |
|
|
|
|
|
test("Thematic breaks (example 31)", ` |
|
|
{BL:{LI:{l:-} {P:Foo}} |
|
|
{LI:{l:-} {HR:* * *}}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 32)", ` |
|
|
{H1:{h:#} foo} |
|
|
{H2:{h:##} foo} |
|
|
{H3:{h:###} foo} |
|
|
{H4:{h:####} foo} |
|
|
{H5:{h:#####} foo} |
|
|
{H6:{h:######} foo} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 33)", ` |
|
|
{P:####### foo} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 34)", ` |
|
|
{P:#5 bolt} |
|
|
|
|
|
{P:#hashtag} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 35)", ` |
|
|
{P:{Esc:\\#}# foo} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 36)", ` |
|
|
{H1:{h:#} foo {Em:{e:*}bar{e:*}} {Esc:\\*}baz{Esc:\\*}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 37)", ` |
|
|
{H1:{h:#} foo } |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 38)", ` |
|
|
{H3:{h:###} foo} |
|
|
{H2:{h:##} foo} |
|
|
{H1:{h:#} foo} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 39)", ` |
|
|
{CB:{cT:# foo}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 40)", ` |
|
|
{P:foo |
|
|
# bar} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 41)", ` |
|
|
{H2:{h:##} foo {h:##}} |
|
|
{H3:{h:###} bar {h:###}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 42)", ` |
|
|
{H1:{h:#} foo {h:##################################}} |
|
|
{H5:{h:#####} foo {h:##}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 43)", ` |
|
|
{H3:{h:###} foo {h:###} } |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 44)", ` |
|
|
{H3:{h:###} foo ### b} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 45)", ` |
|
|
{H1:{h:#} foo#} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 46)", ` |
|
|
{H3:{h:###} foo {Esc:\\#}##} |
|
|
{H2:{h:##} foo #{Esc:\\#}#} |
|
|
{H1:{h:#} foo {Esc:\\#}} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 47)", ` |
|
|
{HR:****} |
|
|
{H2:{h:##} foo} |
|
|
{HR:****} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 48)", ` |
|
|
{P:Foo bar} |
|
|
{H1:{h:#} baz} |
|
|
{P:Bar foo} |
|
|
`) |
|
|
|
|
|
test("ATX headings (example 49)", ` |
|
|
{H2:{h:##} } |
|
|
{H1:{h:#}} |
|
|
{H3:{h:###} {h:###}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 50)", ` |
|
|
{SH1:Foo {Em:{e:*}bar{e:*}} |
|
|
{h:=========}} |
|
|
|
|
|
{SH2:Foo {Em:{e:*}bar{e:*}} |
|
|
{h:---------}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 51)", ` |
|
|
{SH1:Foo {Em:{e:*}bar |
|
|
baz{e:*}} |
|
|
{h:====}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 52)", ` |
|
|
{SH1:Foo {Em:{e:*}bar |
|
|
baz{e:*}} |
|
|
{h:====}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 53)", ` |
|
|
{SH2:Foo |
|
|
{h:-------------------------}} |
|
|
|
|
|
{SH1:Foo |
|
|
{h:=}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 54)", ` |
|
|
{SH2:Foo |
|
|
{h:---}} |
|
|
|
|
|
{SH2:Foo |
|
|
{h:-----}} |
|
|
|
|
|
{SH1:Foo |
|
|
{h:===}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 55)", ` |
|
|
{CB:{cT:Foo |
|
|
} {cT:--- |
|
|
|
|
|
} {cT:Foo}} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 56)", ` |
|
|
{SH2:Foo |
|
|
{h:----} } |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 57)", ` |
|
|
{P:Foo |
|
|
---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 58)", ` |
|
|
{P:Foo |
|
|
= =} |
|
|
|
|
|
{P:Foo} |
|
|
{HR:--- -} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 59)", ` |
|
|
{SH2:Foo |
|
|
{h:-----}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 60)", ` |
|
|
{SH2:Foo\\ |
|
|
{h:----}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 61)", ` |
|
|
{SH2:\`Foo |
|
|
{h:----}} |
|
|
{P:\`} |
|
|
|
|
|
{SH2:<a title="a lot |
|
|
{h:---}} |
|
|
{P:of dashes"/>} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 62)", ` |
|
|
{Q:{q:>} {P:Foo}} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 63)", ` |
|
|
{Q:{q:>} {P:foo |
|
|
bar |
|
|
===}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 64)", ` |
|
|
{BL:{LI:{l:-} {P:Foo}}} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 65)", ` |
|
|
{SH2:Foo |
|
|
Bar |
|
|
{h:---}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 66)", ` |
|
|
{HR:---} |
|
|
{SH2:Foo |
|
|
{h:---}} |
|
|
{SH2:Bar |
|
|
{h:---}} |
|
|
{P:Baz} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 67)", ` |
|
|
|
|
|
{P:====} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 68)", ` |
|
|
{HR:---} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 69)", ` |
|
|
{BL:{LI:{l:-} {P:foo}}} |
|
|
{HR:-----} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 70)", ` |
|
|
{CB:{cT:foo}} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 71)", ` |
|
|
{Q:{q:>} {P:foo}} |
|
|
{HR:-----} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 72)", ` |
|
|
{SH2:{Esc:\\>} foo |
|
|
{h:------}} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 73)", ` |
|
|
{P:Foo} |
|
|
|
|
|
{SH2:bar |
|
|
{h:---}} |
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 74)", ` |
|
|
{P:Foo |
|
|
bar} |
|
|
|
|
|
{HR:---} |
|
|
|
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 75)", ` |
|
|
{P:Foo |
|
|
bar} |
|
|
{HR:* * *} |
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Setext headings (example 76)", ` |
|
|
{P:Foo |
|
|
bar |
|
|
{Esc:\\-}-- |
|
|
baz} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 77)", ` |
|
|
{CB:{cT:a simple |
|
|
} {cT: indented code block}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 78)", ` |
|
|
{BL:{LI: {l:-} {P:foo} |
|
|
|
|
|
{P:bar}}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 79)", ` |
|
|
{OL:{LI:{l:1.} {P:foo} |
|
|
|
|
|
{BL:{LI:{l:-} {P:bar}}}}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 80)", ` |
|
|
{CB:{cT:<a/> |
|
|
} {cT:*hi* |
|
|
|
|
|
} {cT:- one}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 81)", ` |
|
|
{CB:{cT:chunk1 |
|
|
|
|
|
} {cT:chunk2 |
|
|
} {cT: |
|
|
} {cT: |
|
|
} {cT: |
|
|
} {cT:chunk3}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 82)", ` |
|
|
{CB:{cT:chunk1 |
|
|
} {cT: |
|
|
} {cT: chunk2}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 83)", ` |
|
|
{P:Foo |
|
|
bar} |
|
|
|
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 84)", ` |
|
|
{CB:{cT:foo}} |
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 85)", ` |
|
|
{H1:{h:#} Heading} |
|
|
{CB:{cT:foo}} |
|
|
{SH2:Heading |
|
|
{h:------}} |
|
|
{CB:{cT:foo}} |
|
|
{HR:----} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 86)", ` |
|
|
{CB:{cT: foo |
|
|
} {cT:bar}} |
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 87)", ` |
|
|
|
|
|
{CB:{cT:foo}} |
|
|
|
|
|
`) |
|
|
|
|
|
test("Indented code blocks (example 88)", ` |
|
|
{CB:{cT:foo }} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 89)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:< |
|
|
>} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 90)", ` |
|
|
{FC:{c:~~~} |
|
|
{cT:< |
|
|
>} |
|
|
{c:~~~}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 91)", ` |
|
|
{P:{C:{c:\`\`} |
|
|
foo |
|
|
{c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 92)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:aaa |
|
|
~~~} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 93)", ` |
|
|
{FC:{c:~~~} |
|
|
{cT:aaa |
|
|
\`\`\`} |
|
|
{c:~~~}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 94)", ` |
|
|
{FC:{c:\`\`\`\`} |
|
|
{cT:aaa |
|
|
\`\`\`} |
|
|
{c:\`\`\`\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 95)", ` |
|
|
{FC:{c:~~~~} |
|
|
{cT:aaa |
|
|
~~~} |
|
|
{c:~~~~}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 96)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
}`) |
|
|
|
|
|
test("Fenced code blocks (example 97)", ` |
|
|
{FC:{c:\`\`\`\`\`} |
|
|
{cT: |
|
|
\`\`\` |
|
|
aaa |
|
|
}}`) |
|
|
|
|
|
test("Fenced code blocks (example 98)", ` |
|
|
{Q:{q:>} {FC:{c:\`\`\`} |
|
|
{q:>} {cT:aaa}}} |
|
|
|
|
|
{P:bbb} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 99)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT: |
|
|
} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 100)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 101)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT: aaa |
|
|
aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 102)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:aaa |
|
|
aaa |
|
|
aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 103)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT: aaa |
|
|
aaa |
|
|
aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 104)", ` |
|
|
{CB:{cT:\`\`\` |
|
|
} {cT:aaa |
|
|
} {cT:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 105)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 106)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 107)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:aaa |
|
|
\`\`\` |
|
|
}}`) |
|
|
|
|
|
test("Fenced code blocks (example 108)", ` |
|
|
{P:{C:{c:\`\`\`} {c:\`\`\`}} |
|
|
aaa} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 109)", ` |
|
|
{FC:{c:~~~~~~} |
|
|
{cT:aaa |
|
|
~~~ ~~ |
|
|
}}`) |
|
|
|
|
|
test("Fenced code blocks (example 110)", ` |
|
|
{P:foo} |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:bar} |
|
|
{c:\`\`\`}} |
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 111)", ` |
|
|
{SH2:foo |
|
|
{h:---}} |
|
|
{FC:{c:~~~} |
|
|
{cT:bar} |
|
|
{c:~~~}} |
|
|
{H1:{h:#} baz} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 112)", ` |
|
|
{FC:{c:\`\`\`}{cI:ruby} |
|
|
{cT:def foo(x) |
|
|
return 3 |
|
|
end} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 113)", ` |
|
|
{FC:{c:~~~~} {cI:ruby startline=3 $%@#$} |
|
|
{cT:def foo(x) |
|
|
return 3 |
|
|
end} |
|
|
{c:~~~~~~~}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 114)", ` |
|
|
{FC:{c:\`\`\`\`}{cI:;} |
|
|
{c:\`\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 115)", ` |
|
|
{P:{C:{c:\`\`\`} aa {c:\`\`\`}} |
|
|
foo} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 116)", ` |
|
|
{FC:{c:~~~} {cI:aa \`\`\` ~~~} |
|
|
{cT:foo} |
|
|
{c:~~~}} |
|
|
`) |
|
|
|
|
|
test("Fenced code blocks (example 117)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:\`\`\` aaa} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 118)", ` |
|
|
{HB:<table><tr><td> |
|
|
<pre> |
|
|
**Hello**,} |
|
|
|
|
|
{P:{Em:{e:_}world{e:_}}. |
|
|
{HT:</pre>}} |
|
|
{HB:</td></tr></table>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 119)", ` |
|
|
{HB:<table> |
|
|
<tr> |
|
|
<td> |
|
|
hi |
|
|
</td> |
|
|
</tr> |
|
|
</table>} |
|
|
|
|
|
{P:okay.} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 120)", ` |
|
|
{HB:<div> |
|
|
*hello* |
|
|
<foo><a>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 121)", ` |
|
|
{HB:</div> |
|
|
*foo*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 122)", ` |
|
|
{HB:<DIV CLASS="foo">} |
|
|
|
|
|
{P:{Em:{e:*}Markdown{e:*}}} |
|
|
|
|
|
{HB:</DIV>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 123)", ` |
|
|
{HB:<div id="foo" |
|
|
class="bar"> |
|
|
</div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 124)", ` |
|
|
{HB:<div id="foo" class="bar |
|
|
baz"> |
|
|
</div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 125)", ` |
|
|
{HB:<div> |
|
|
*foo*} |
|
|
|
|
|
{P:{Em:{e:*}bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 126)", ` |
|
|
{HB:<div id="foo" |
|
|
*hi*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 127)", ` |
|
|
{HB:<div class |
|
|
foo} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 128)", ` |
|
|
{HB:<div *???-&&&-<--- |
|
|
*foo*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 129)", ` |
|
|
{HB:<div><a href="bar">*foo*</a></div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 130)", ` |
|
|
{HB:<table><tr><td> |
|
|
foo |
|
|
</td></tr></table>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 131)", ` |
|
|
{HB:<div></div> |
|
|
\`\`\` c |
|
|
int x = 33; |
|
|
x\`\`\`} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 132)", ` |
|
|
{HB:<a href="foo"> |
|
|
*bar* |
|
|
</a>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 133)", ` |
|
|
{HB:<Warning> |
|
|
*bar* |
|
|
</Warning>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 134)", ` |
|
|
{HB:<i class="foo"> |
|
|
*bar* |
|
|
</i>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 135)", ` |
|
|
{HB:</ins> |
|
|
*bar*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 136)", ` |
|
|
{HB:<del> |
|
|
*foo* |
|
|
</del>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 137)", ` |
|
|
{HB:<del>} |
|
|
|
|
|
{P:{Em:{e:*}foo{e:*}}} |
|
|
|
|
|
{HB:</del>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 138)", ` |
|
|
{P:{HT:<del>}{Em:{e:*}foo{e:*}}{HT:</del>}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 139)", ` |
|
|
{HB:<pre language="haskell"><code> |
|
|
import Text.HTML.TagSoup |
|
|
|
|
|
main :: IO () |
|
|
main = print $ parseTags tags |
|
|
</code></pre>} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 140)", ` |
|
|
{HB:<script type="text/javascript"> |
|
|
// JavaScript example |
|
|
|
|
|
document.getElementById("demo").innerHTML = "Hello JavaScript!"; |
|
|
</script>} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 141)", ` |
|
|
{HB:<style |
|
|
type="text/css"> |
|
|
h1 [color:red;] |
|
|
|
|
|
p [color:blue;] |
|
|
</style>} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 142)", ` |
|
|
{HB:<style |
|
|
type="text/css"> |
|
|
|
|
|
foo |
|
|
}`) |
|
|
|
|
|
test("HTML blocks (example 143)", ` |
|
|
{Q:{q:>} {HB:<div> |
|
|
{q:>} foo}} |
|
|
|
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 144)", ` |
|
|
{BL:{LI:{l:-} {HB:<div>}} |
|
|
{LI:{l:-} {P:foo}}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 145)", ` |
|
|
{HB:<style>p[color:red;]</style>} |
|
|
{P:{Em:{e:*}foo{e:*}}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 146)", ` |
|
|
{CMB:<!-- foo -->*bar*} |
|
|
{P:{Em:{e:*}baz{e:*}}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 147)", ` |
|
|
{HB:<script> |
|
|
foo |
|
|
</script>1. *bar*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 148)", ` |
|
|
{CMB:<!-- Foo |
|
|
|
|
|
bar |
|
|
baz -->} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 149)", ` |
|
|
{PI:<?php |
|
|
|
|
|
echo '>'; |
|
|
|
|
|
?>} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 150)", ` |
|
|
{HB:<!DOCTYPE html>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 151)", ` |
|
|
{HB:<![CDATA[ |
|
|
function matchwo(a,b) |
|
|
[ |
|
|
if (a < b && a < 0) then [ |
|
|
return 1; |
|
|
|
|
|
] else [ |
|
|
|
|
|
return 0; |
|
|
] |
|
|
] |
|
|
]]>} |
|
|
{P:okay} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 152)", ` |
|
|
{CMB:<!-- foo -->} |
|
|
|
|
|
{CB:{cT:<!-- foo -->}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 153)", ` |
|
|
{HB:<div>} |
|
|
|
|
|
{CB:{cT:<div>}} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 154)", ` |
|
|
{P:Foo} |
|
|
{HB:<div> |
|
|
bar |
|
|
</div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 155)", ` |
|
|
{HB:<div> |
|
|
bar |
|
|
</div> |
|
|
*foo*} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 156)", ` |
|
|
{P:Foo |
|
|
{HT:<a href="bar">} |
|
|
baz} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 157)", ` |
|
|
{HB:<div>} |
|
|
|
|
|
{P:{Em:{e:*}Emphasized{e:*}} text.} |
|
|
|
|
|
{HB:</div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 158)", ` |
|
|
{HB:<div> |
|
|
*Emphasized* text. |
|
|
</div>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 159)", ` |
|
|
{HB:<table>} |
|
|
|
|
|
{HB:<tr>} |
|
|
|
|
|
{HB:<td> |
|
|
Hi |
|
|
</td>} |
|
|
|
|
|
{HB:</tr>} |
|
|
|
|
|
{HB:</table>} |
|
|
`) |
|
|
|
|
|
test("HTML blocks (example 160)", ` |
|
|
{HB:<table>} |
|
|
|
|
|
{HB:<tr>} |
|
|
|
|
|
{CB:{cT:<td> |
|
|
} {cT: Hi |
|
|
} {cT:</td>}} |
|
|
|
|
|
{HB:</tr>} |
|
|
|
|
|
{HB:</table>} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 161)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 162)", ` |
|
|
{LR:{LL:[foo]}{L::} |
|
|
{URL:/url} |
|
|
{LT:'the title'} } |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 163)", ` |
|
|
{LR:{LL:[Foo*bar\\]]}{L::}{URL:my_(url)} {LT:'title (with parens)'}} |
|
|
|
|
|
{P:{Ln:{L:[}Foo*bar{Esc:\\]}{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 164)", ` |
|
|
{LR:{LL:[Foo bar]}{L::} |
|
|
{URL:<my url>} |
|
|
{LT:'title'}} |
|
|
|
|
|
{P:{Ln:{L:[}Foo bar{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 165)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:' |
|
|
title |
|
|
line1 |
|
|
line2 |
|
|
'}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 166)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}: /url 'title} |
|
|
|
|
|
{P:with blank line'} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 167)", ` |
|
|
{LR:{LL:[foo]}{L::} |
|
|
{URL:/url}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 168)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}:} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 169)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:<>}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 170)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}: {HT:<bar>}(baz)} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 171)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url\`bar\`*baz} {LT:"foo\\"bar\\baz"}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 172)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:url}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 173)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:first}} |
|
|
{LR:{LL:[foo]}{L::} {URL:second}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 174)", ` |
|
|
{LR:{LL:[FOO]}{L::} {URL:/url}} |
|
|
|
|
|
{P:{Ln:{L:[}Foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 175)", ` |
|
|
{LR:{LL:[ΑΓΩ]}{L::} {URL:/φου}} |
|
|
|
|
|
{P:{Ln:{L:[}αγω{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 176)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 177)", ` |
|
|
{LR:{LL:[ |
|
|
foo |
|
|
]}{L::} {URL:/url}} |
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 178)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}: /url "title" ok} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 179)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
{P:"title" ok} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 180)", ` |
|
|
{CB:{cT:[foo]: /url "title"}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 181)", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:[foo]: /url} |
|
|
{c:\`\`\`}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 182)", ` |
|
|
{P:Foo |
|
|
{Ln:{L:[}bar{L:]}}: /baz} |
|
|
|
|
|
{P:{Ln:{L:[}bar{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 183)", ` |
|
|
{H1:{h:#} {Ln:{L:[}Foo{L:]}}} |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
{Q:{q:>} {P:bar}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 184)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
{SH1:bar |
|
|
{h:===}} |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 185)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
{P:=== |
|
|
{Ln:{L:[}foo{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 186)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/foo-url} {LT:"foo"}} |
|
|
{LR:{LL:[bar]}{L::} {URL:/bar-url} |
|
|
{LT:"bar"}} |
|
|
{LR:{LL:[baz]}{L::} {URL:/baz-url}} |
|
|
|
|
|
{P:{Ln:{L:[}foo{L:]}}, |
|
|
{Ln:{L:[}bar{L:]}}, |
|
|
{Ln:{L:[}baz{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 187)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{Q:{q:>} {LR:{LL:[foo]}{L::} {URL:/url}}} |
|
|
`) |
|
|
|
|
|
test("Link reference definitions (example 188)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 189)", ` |
|
|
{P:aaa} |
|
|
|
|
|
{P:bbb} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 190)", ` |
|
|
{P:aaa |
|
|
bbb} |
|
|
|
|
|
{P:ccc |
|
|
ddd} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 191)", ` |
|
|
{P:aaa} |
|
|
|
|
|
|
|
|
{P:bbb} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 192)", ` |
|
|
{P:aaa |
|
|
bbb} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 193)", ` |
|
|
{P:aaa |
|
|
bbb |
|
|
ccc} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 194)", ` |
|
|
{P:aaa |
|
|
bbb} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 195)", ` |
|
|
{CB:{cT:aaa}} |
|
|
{P:bbb} |
|
|
`) |
|
|
|
|
|
test("Paragraphs (example 196)", ` |
|
|
{P:aaa{BR: |
|
|
}bbb } |
|
|
`) |
|
|
|
|
|
test("Blank lines (example 197)", ` |
|
|
|
|
|
|
|
|
{P:aaa} |
|
|
|
|
|
|
|
|
{H1:{h:#} aaa} |
|
|
|
|
|
|
|
|
`) |
|
|
|
|
|
test("Block quotes (example 198)", ` |
|
|
{Q:{q:>} {H1:{h:#} Foo} |
|
|
{q:>} {P:bar |
|
|
{q:>} baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 199)", ` |
|
|
{Q:{q:>}{H1:{h:#} Foo} |
|
|
{q:>}{P:bar |
|
|
{q:>} baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 200)", ` |
|
|
{Q:{q:>} {H1:{h:#} Foo} |
|
|
{q:>} {P:bar |
|
|
{q:>} baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 201)", ` |
|
|
{CB:{cT:> # Foo |
|
|
} {cT:> bar |
|
|
} {cT:> baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 202)", ` |
|
|
{Q:{q:>} {H1:{h:#} Foo} |
|
|
{q:>} {P:bar |
|
|
baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 203)", ` |
|
|
{Q:{q:>} {P:bar |
|
|
baz |
|
|
{q:>} foo}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 204)", ` |
|
|
{Q:{q:>} {P:foo}} |
|
|
{HR:---} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 205)", ` |
|
|
{Q:{q:>} {BL:{LI:{l:-} {P:foo}}}} |
|
|
{BL:{LI:{l:-} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 206)", ` |
|
|
{Q:{q:>} {CB:{cT:foo}}} |
|
|
{CB:{cT:bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 207)", ` |
|
|
{Q:{q:>} {FC:{c:\`\`\`}}} |
|
|
{P:foo} |
|
|
{FC:{c:\`\`\`} |
|
|
}`) |
|
|
|
|
|
test("Block quotes (example 208)", ` |
|
|
{Q:{q:>} {P:foo |
|
|
- bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 209)", ` |
|
|
{Q:{q:>}{P:}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 210)", ` |
|
|
{Q:{q:>}{P:} |
|
|
{q:>} |
|
|
{q:>} } |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 211)", ` |
|
|
{Q:{q:>}{P: |
|
|
{q:>} foo} |
|
|
{q:>} } |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 212)", ` |
|
|
{Q:{q:>} {P:foo}} |
|
|
|
|
|
{Q:{q:>} {P:bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 213)", ` |
|
|
{Q:{q:>} {P:foo |
|
|
{q:>} bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 214)", ` |
|
|
{Q:{q:>} {P:foo} |
|
|
{q:>} |
|
|
{q:>} {P:bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 215)", ` |
|
|
{P:foo} |
|
|
{Q:{q:>} {P:bar}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 216)", ` |
|
|
{Q:{q:>} {P:aaa}} |
|
|
{HR:***} |
|
|
{Q:{q:>} {P:bbb}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 217)", ` |
|
|
{Q:{q:>} {P:bar |
|
|
baz}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 218)", ` |
|
|
{Q:{q:>} {P:bar}} |
|
|
|
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 219)", ` |
|
|
{Q:{q:>} {P:bar} |
|
|
{q:>}} |
|
|
{P:baz} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 220)", ` |
|
|
{Q:{q:>} {Q:{q:>} {Q:{q:>} {P:foo |
|
|
bar}}}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 221)", ` |
|
|
{Q:{q:>}{Q:{q:>}{Q:{q:>} {P:foo |
|
|
{q:>} bar |
|
|
{q:>}{q:>}baz}}}} |
|
|
`) |
|
|
|
|
|
test("Block quotes (example 222)", ` |
|
|
{Q:{q:>} {CB:{cT:code}}} |
|
|
|
|
|
{Q:{q:>} {P:not code}} |
|
|
`) |
|
|
|
|
|
test("List items (example 223)", ` |
|
|
{P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}} |
|
|
`) |
|
|
|
|
|
test("List items (example 224)", ` |
|
|
{OL:{LI:{l:1.} {P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 225)", ` |
|
|
{BL:{LI:{l:-} {P:one}}} |
|
|
|
|
|
{P:two} |
|
|
`) |
|
|
|
|
|
test("List items (example 226)", ` |
|
|
{BL:{LI:{l:-} {P:one} |
|
|
|
|
|
{P:two}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 227)", ` |
|
|
{BL:{LI: {l:-} {P:one}}} |
|
|
|
|
|
{CB:{cT: two}} |
|
|
`) |
|
|
|
|
|
test("List items (example 228)", ` |
|
|
{BL:{LI: {l:-} {P:one} |
|
|
|
|
|
{P:two}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 229)", ` |
|
|
{Q:{q:>} {Q:{q:>} {OL:{LI:{l:1.} {P:one} |
|
|
{q:>}{q:>} |
|
|
{q:>}{q:>} {P:two}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 230)", ` |
|
|
{Q:{q:>}{Q:{q:>}{BL:{LI:{l:-} {P:one} |
|
|
{q:>}{q:>}}} |
|
|
{q:>} {q:>} {P:two}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 231)", ` |
|
|
{P:-one} |
|
|
|
|
|
{P:2.two} |
|
|
`) |
|
|
|
|
|
test("List items (example 232)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
|
|
|
|
|
|
{P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 233)", ` |
|
|
{OL:{LI:{l:1.} {P:foo} |
|
|
|
|
|
{FC:{c:\`\`\`} |
|
|
{cT:bar} |
|
|
{c:\`\`\`}} |
|
|
|
|
|
{P:baz} |
|
|
|
|
|
{Q:{q:>} {P:bam}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 234)", ` |
|
|
{BL:{LI:{l:-} {P:Foo} |
|
|
|
|
|
{CB:{cT:bar |
|
|
|
|
|
|
|
|
} {cT:baz}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 235)", ` |
|
|
{OL:{LI:{l:123456789.} {P:ok}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 236)", ` |
|
|
{P:1234567890. not ok} |
|
|
`) |
|
|
|
|
|
test("List items (example 237)", ` |
|
|
{OL:{LI:{l:0.} {P:ok}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 238)", ` |
|
|
{OL:{LI:{l:003.} {P:ok}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 239)", ` |
|
|
{P:-1. not ok} |
|
|
`) |
|
|
|
|
|
test("List items (example 240)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
|
|
|
{CB:{cT:bar}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 241)", ` |
|
|
{OL:{LI: {l:10.} {P:foo} |
|
|
|
|
|
{CB:{cT:bar}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 242)", ` |
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{P:paragraph} |
|
|
|
|
|
{CB:{cT:more code}} |
|
|
`) |
|
|
|
|
|
test("List items (example 243)", ` |
|
|
{OL:{LI:{l:1.} {CB:{cT:indented code}} |
|
|
|
|
|
{P:paragraph} |
|
|
|
|
|
{CB:{cT:more code}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 244)", ` |
|
|
{OL:{LI:{l:1.} {CB:{cT: indented code}} |
|
|
|
|
|
{P:paragraph} |
|
|
|
|
|
{CB:{cT:more code}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 245)", ` |
|
|
{P:foo} |
|
|
|
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("List items (example 246)", ` |
|
|
{BL:{LI:{l:-} {P:foo}}} |
|
|
|
|
|
{P:bar} |
|
|
`) |
|
|
|
|
|
test("List items (example 247)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
|
|
|
{P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 248)", ` |
|
|
{BL:{LI:{l:-}{P: |
|
|
foo}} |
|
|
{LI:{l:-}{P:} |
|
|
{FC:{c:\`\`\`} |
|
|
{cT: bar} |
|
|
{c:\`\`\`}}} |
|
|
{LI:{l:-}{P: |
|
|
baz}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 249)", ` |
|
|
{BL:{LI:{l:-} {P: |
|
|
foo}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 250)", ` |
|
|
{BL:{LI:{l:-}{P:} |
|
|
|
|
|
{P:foo}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 251)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
{LI:{l:-}{P:}} |
|
|
{LI:{l:-} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 252)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
{LI:{l:-} {P:}} |
|
|
{LI:{l:-} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 253)", ` |
|
|
{OL:{LI:{l:1.} {P:foo}} |
|
|
{LI:{l:2.}{P:}} |
|
|
{LI:{l:3.} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 254)", ` |
|
|
{BL:{LI:{l:*}{P:}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 255)", ` |
|
|
{P:foo |
|
|
*} |
|
|
|
|
|
{P:foo |
|
|
1.} |
|
|
`) |
|
|
|
|
|
test("List items (example 256)", ` |
|
|
{OL:{LI: {l:1.} {P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 257)", ` |
|
|
{OL:{LI: {l:1.} {P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 258)", ` |
|
|
{OL:{LI: {l:1.} {P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 259)", ` |
|
|
{CB:{cT:1. A paragraph |
|
|
} {cT: with two lines. |
|
|
|
|
|
} {cT: indented code |
|
|
|
|
|
} {cT: > A block quote.}} |
|
|
`) |
|
|
|
|
|
test("List items (example 260)", ` |
|
|
{OL:{LI: {l:1.} {P:A paragraph |
|
|
with two lines.} |
|
|
|
|
|
{CB:{cT:indented code}} |
|
|
|
|
|
{Q:{q:>} {P:A block quote.}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 261)", ` |
|
|
{OL:{LI: {l:1.} {P:A paragraph |
|
|
with two lines.}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 262)", ` |
|
|
{Q:{q:>} {OL:{LI:{l:1.} {Q:{q:>} {P:Blockquote |
|
|
continued here.}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 263)", ` |
|
|
{Q:{q:>} {OL:{LI:{l:1.} {Q:{q:>} {P:Blockquote |
|
|
{q:>} continued here.}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 264)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
{BL:{LI:{l:-} {P:bar} |
|
|
{BL:{LI:{l:-} {P:baz} |
|
|
{BL:{LI:{l:-} {P:boo}}}}}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 265)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
{LI: {l:-} {P:bar}} |
|
|
{LI: {l:-} {P:baz}} |
|
|
{LI: {l:-} {P:boo}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 266)", ` |
|
|
{OL:{LI:{l:10)} {P:foo} |
|
|
{BL:{LI:{l:-} {P:bar}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 267)", ` |
|
|
{OL:{LI:{l:10)} {P:foo}}} |
|
|
{BL:{LI: {l:-} {P:bar}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 268)", ` |
|
|
{BL:{LI:{l:-} {BL:{LI:{l:-} {P:foo}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 269)", ` |
|
|
{OL:{LI:{l:1.} {BL:{LI:{l:-} {OL:{LI:{l:2.} {P:foo}}}}}}} |
|
|
`) |
|
|
|
|
|
test("List items (example 270)", ` |
|
|
{BL:{LI:{l:-} {H1:{h:#} Foo}} |
|
|
{LI:{l:-} {SH2:Bar |
|
|
{h:---}} |
|
|
{P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 271)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
{LI:{l:-} {P:bar}}} |
|
|
{BL:{LI:{l:+} {P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 272)", ` |
|
|
{OL:{LI:{l:1.} {P:foo}} |
|
|
{LI:{l:2.} {P:bar}}} |
|
|
{OL:{LI:{l:3)} {P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 273)", ` |
|
|
{P:Foo} |
|
|
{BL:{LI:{l:-} {P:bar}} |
|
|
{LI:{l:-} {P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 274)", ` |
|
|
{P:The number of windows in my house is |
|
|
14. The number of doors is 6.} |
|
|
`) |
|
|
|
|
|
test("Lists (example 275)", ` |
|
|
{P:The number of windows in my house is} |
|
|
{OL:{LI:{l:1.} {P:The number of doors is 6.}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 276)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
|
|
|
{LI:{l:-} {P:bar}} |
|
|
|
|
|
|
|
|
{LI:{l:-} {P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 277)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
{BL:{LI:{l:-} {P:bar} |
|
|
{BL:{LI:{l:-} {P:baz} |
|
|
|
|
|
|
|
|
{P:bim}}}}}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 278)", ` |
|
|
{BL:{LI:{l:-} {P:foo}} |
|
|
{LI:{l:-} {P:bar}}} |
|
|
|
|
|
{CMB:<!-- -->} |
|
|
|
|
|
{BL:{LI:{l:-} {P:baz}} |
|
|
{LI:{l:-} {P:bim}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 279)", ` |
|
|
{BL:{LI:{l:-} {P:foo} |
|
|
|
|
|
{P:notcode}} |
|
|
|
|
|
{LI:{l:-} {P:foo}}} |
|
|
|
|
|
{CMB:<!-- -->} |
|
|
|
|
|
{CB:{cT:code}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 280)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI: {l:-} {P:b}} |
|
|
{LI: {l:-} {P:c}} |
|
|
{LI: {l:-} {P:d}} |
|
|
{LI: {l:-} {P:e}} |
|
|
{LI: {l:-} {P:f}} |
|
|
{LI:{l:-} {P:g}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 281)", ` |
|
|
{OL:{LI:{l:1.} {P:a}} |
|
|
|
|
|
{LI: {l:2.} {P:b}} |
|
|
|
|
|
{LI: {l:3.} {P:c}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 282)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI: {l:-} {P:b}} |
|
|
{LI: {l:-} {P:c}} |
|
|
{LI: {l:-} {P:d |
|
|
- e}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 283)", ` |
|
|
{OL:{LI:{l:1.} {P:a}} |
|
|
|
|
|
{LI: {l:2.} {P:b}}} |
|
|
|
|
|
{CB:{cT:3. c}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 284)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI:{l:-} {P:b}} |
|
|
|
|
|
{LI:{l:-} {P:c}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 285)", ` |
|
|
{BL:{LI:{l:*} {P:a}} |
|
|
{LI:{l:*}{P:}} |
|
|
|
|
|
{LI:{l:*} {P:c}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 286)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI:{l:-} {P:b} |
|
|
|
|
|
{P:c}} |
|
|
{LI:{l:-} {P:d}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 287)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI:{l:-} {P:b} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/url}}} |
|
|
{LI:{l:-} {P:d}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 288)", ` |
|
|
{BL:{LI:{l:-} {P:a}} |
|
|
{LI:{l:-} {FC:{c:\`\`\`} |
|
|
{cT:b |
|
|
|
|
|
} |
|
|
{c:\`\`\`}}} |
|
|
{LI:{l:-} {P:c}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 289)", ` |
|
|
{BL:{LI:{l:-} {P:a} |
|
|
{BL:{LI:{l:-} {P:b} |
|
|
|
|
|
{P:c}}}} |
|
|
{LI:{l:-} {P:d}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 290)", ` |
|
|
{BL:{LI:{l:*} {P:a} |
|
|
{Q:{q:>} {P:b} |
|
|
{q:>}}} |
|
|
{LI:{l:*} {P:c}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 291)", ` |
|
|
{BL:{LI:{l:-} {P:a} |
|
|
{Q:{q:>} {P:b}} |
|
|
{FC:{c:\`\`\`} |
|
|
{cT:c} |
|
|
{c:\`\`\`}}} |
|
|
{LI:{l:-} {P:d}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 292)", ` |
|
|
{BL:{LI:{l:-} {P:a}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 293)", ` |
|
|
{BL:{LI:{l:-} {P:a} |
|
|
{BL:{LI:{l:-} {P:b}}}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 294)", ` |
|
|
{OL:{LI:{l:1.} {FC:{c:\`\`\`} |
|
|
{cT:foo} |
|
|
{c:\`\`\`}} |
|
|
|
|
|
{P:bar}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 295)", ` |
|
|
{BL:{LI:{l:*} {P:foo} |
|
|
{BL:{LI:{l:*} {P:bar}}} |
|
|
|
|
|
{P:baz}}} |
|
|
`) |
|
|
|
|
|
test("Lists (example 296)", ` |
|
|
{BL:{LI:{l:-} {P:a} |
|
|
{BL:{LI:{l:-} {P:b}} |
|
|
{LI:{l:-} {P:c}}}} |
|
|
|
|
|
{LI:{l:-} {P:d} |
|
|
{BL:{LI:{l:-} {P:e}} |
|
|
{LI:{l:-} {P:f}}}}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 297)", ` |
|
|
{P:{Esc:\\!}{Esc:\\"}{Esc:\\#}{Esc:\\$}{Esc:\\%}{Esc:\\&}{Esc:\\'}{Esc:\\(}{Esc:\\)}{Esc:\\*}{Esc:\\+}{Esc:\\,}{Esc:\\-}{Esc:\\.}{Esc:\\/}{Esc:\\:}{Esc:\\;}{Esc:\\<}{Esc:\\=}{Esc:\\>}{Esc:\\?}{Esc:\\@}{Esc:\\[}{Esc:\\\\}{Esc:\\]}{Esc:\\^}{Esc:\\_}{Esc:\\\`}{Esc:\\|}{Esc:\\~}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 299)", ` |
|
|
{P:\\ \\A\\a\\ \\3\\φ\\«} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 300)", ` |
|
|
{P:{Esc:\\*}not emphasized* |
|
|
{Esc:\\<}br/> not a tag |
|
|
{Esc:\\[}not a link](/foo) |
|
|
{Esc:\\\`}not code\` |
|
|
1{Esc:\\.} not a list |
|
|
{Esc:\\*} not a list |
|
|
{Esc:\\#} not a heading |
|
|
{Esc:\\[}foo]: /url "not a reference" |
|
|
{Esc:\\&}ouml; not a character entity} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 301)", ` |
|
|
{P:{Esc:\\\\}{Em:{e:*}emphasis{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 302)", ` |
|
|
{P:foo{BR:\\ |
|
|
}bar} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 303)", ` |
|
|
{P:{C:{c:\`\`} \\[\\\` {c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 304)", ` |
|
|
{CB:{cT:\\[\\]}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 305)", ` |
|
|
{FC:{c:~~~} |
|
|
{cT:\\[\\]} |
|
|
{c:~~~}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 306)", ` |
|
|
{P:{Al:{L:<}{URL:http://example.com?find=\\*}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 307)", ` |
|
|
{HB:<a href="/bar\\/)">} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 308)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{L:(}{URL:/bar\\*} {LT:"ti\\*tle"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 309)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/bar\\*} {LT:"ti\\*tle"}} |
|
|
`) |
|
|
|
|
|
test("Backslash escapes (example 310)", ` |
|
|
{FC:{c:\`\`\`} {cI:foo\\+bar} |
|
|
{cT:foo} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Inlines (example 298)", ` |
|
|
{P:{C:{c:\`}hi{c:\`}}lo\`} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 311)", ` |
|
|
{P:{Ent: } {Ent:&} {Ent:©} {Ent:Æ} {Ent:Ď} |
|
|
{Ent:¾} {Ent:ℋ} {Ent:ⅆ} |
|
|
{Ent:∲} {Ent:≧̸}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 312)", ` |
|
|
{P:{Ent:#} {Ent:Ӓ} {Ent:Ϡ} {Ent:�}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 313)", ` |
|
|
{P:{Ent:"} {Ent:ആ} {Ent:ಫ}} |
|
|
`) |
|
|
|
|
|
// Our implementation doesn't check for invalid entity names |
|
|
test("Entity and numeric character references (example 314)", ` |
|
|
{P:  {Ent:&x;} &#; &#x; |
|
|
{Ent:�} |
|
|
&#abcdef0; |
|
|
{Ent:&ThisIsNotDefined;} &hi?;} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 315)", ` |
|
|
{P:©} |
|
|
`) |
|
|
|
|
|
// Again, not checking for made-up entity names. |
|
|
test("Entity and numeric character references (example 316)", ` |
|
|
{P:{Ent:&MadeUpEntity;}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 317)", ` |
|
|
{HB:<a href="öö.html">} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 318)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{L:(}{URL:/föö} {LT:"föö"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 319)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/föö} {LT:"föö"}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 320)", ` |
|
|
{FC:{c:\`\`\`} {cI:föö} |
|
|
{cT:foo} |
|
|
{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 321)", ` |
|
|
{P:{C:{c:\`}föö{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 322)", ` |
|
|
{CB:{cT:föfö}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 323)", ` |
|
|
{P:{Ent:*}foo{Ent:*} |
|
|
{Em:{e:*}foo{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 324)", ` |
|
|
{P:{Ent:*} foo} |
|
|
|
|
|
{BL:{LI:{l:*} {P:foo}}} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 325)", ` |
|
|
{P:foo{Ent: }{Ent: }bar} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 326)", ` |
|
|
{P:{Ent:	}foo} |
|
|
`) |
|
|
|
|
|
test("Entity and numeric character references (example 327)", ` |
|
|
{P:{Ln:{L:[}a{L:]}}(url {Ent:"}tit{Ent:"})} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 328)", ` |
|
|
{P:{C:{c:\`}foo{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 329)", ` |
|
|
{P:{C:{c:\`\`} foo \` bar {c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 330)", ` |
|
|
{P:{C:{c:\`} \`\` {c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 331)", ` |
|
|
{P:{C:{c:\`} \`\` {c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 332)", ` |
|
|
{P:{C:{c:\`} a{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 333)", ` |
|
|
{P:{C:{c:\`} b {c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 334)", ` |
|
|
{P:{C:{c:\`} {c:\`}} |
|
|
{C:{c:\`} {c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 335)", ` |
|
|
{P:{C:{c:\`\`} |
|
|
foo |
|
|
bar |
|
|
baz |
|
|
{c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 336)", ` |
|
|
{P:{C:{c:\`\`} |
|
|
foo |
|
|
{c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 337)", ` |
|
|
{P:{C:{c:\`}foo bar |
|
|
baz{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 338)", ` |
|
|
{P:{C:{c:\`}foo\\{c:\`}}bar\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 339)", ` |
|
|
{P:{C:{c:\`\`}foo\`bar{c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 340)", ` |
|
|
{P:{C:{c:\`} foo \`\` bar {c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 341)", ` |
|
|
{P:*foo{C:{c:\`}*{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 342)", ` |
|
|
{P:[not a {C:{c:\`}link](/foo{c:\`}})} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 343)", ` |
|
|
{P:{C:{c:\`}<a href="{c:\`}}">\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 344)", ` |
|
|
{P:{HT:<a href="\`">}\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 345)", ` |
|
|
{P:{C:{c:\`}<http://foo.bar.{c:\`}}baz>\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 346)", ` |
|
|
{P:{Al:{L:<}{URL:http://foo.bar.\`baz}{L:>}}\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 347)", ` |
|
|
{P:\`\`\`foo\`\`} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 348)", ` |
|
|
{P:\`foo} |
|
|
`) |
|
|
|
|
|
test("Code spans (example 349)", ` |
|
|
{P:\`foo{C:{c:\`\`}bar{c:\`\`}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 350)", ` |
|
|
{P:{Em:{e:*}foo bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 351)", ` |
|
|
{P:a * foo bar*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 352)", ` |
|
|
{P:a*"foo"*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 353)", ` |
|
|
{P:* a *} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 354)", ` |
|
|
{P:foo{Em:{e:*}bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 355)", ` |
|
|
{P:5{Em:{e:*}6{e:*}}78} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 356)", ` |
|
|
{P:{Em:{e:_}foo bar{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 357)", ` |
|
|
{P:_ foo bar_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 358)", ` |
|
|
{P:a_"foo"_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 359)", ` |
|
|
{P:foo_bar_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 360)", ` |
|
|
{P:5_6_78} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 361)", ` |
|
|
{P:пристаням_стремятся_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 362)", ` |
|
|
{P:aa_"bb"_cc} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 363)", ` |
|
|
{P:foo-{Em:{e:_}(bar){e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 364)", ` |
|
|
{P:_foo*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 365)", ` |
|
|
{P:*foo bar *} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 366)", ` |
|
|
{P:*foo bar |
|
|
*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 367)", ` |
|
|
{P:*(*foo)} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 368)", ` |
|
|
{P:{Em:{e:*}({Em:{e:*}foo{e:*}}){e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 369)", ` |
|
|
{P:{Em:{e:*}foo{e:*}}bar} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 370)", ` |
|
|
{P:_foo bar _} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 371)", ` |
|
|
{P:_(_foo)} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 372)", ` |
|
|
{P:{Em:{e:_}({Em:{e:_}foo{e:_}}){e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 373)", ` |
|
|
{P:_foo_bar} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 374)", ` |
|
|
{P:_пристаням_стремятся} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 375)", ` |
|
|
{P:{Em:{e:_}foo_bar_baz{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 376)", ` |
|
|
{P:{Em:{e:_}(bar){e:_}}.} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 377)", ` |
|
|
{P:{St:{e:**}foo bar{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 378)", ` |
|
|
{P:** foo bar**} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 379)", ` |
|
|
{P:a**"foo"**} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 380)", ` |
|
|
{P:foo{St:{e:**}bar{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 381)", ` |
|
|
{P:{St:{e:__}foo bar{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 382)", ` |
|
|
{P:__ foo bar__} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 383)", ` |
|
|
{P:__ |
|
|
foo bar__} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 384)", ` |
|
|
{P:a__"foo"__} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 385)", ` |
|
|
{P:foo__bar__} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 386)", ` |
|
|
{P:5__6__78} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 387)", ` |
|
|
{P:пристаням__стремятся__} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 388)", ` |
|
|
{P:{St:{e:__}foo, {St:{e:__}bar{e:__}}, baz{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 389)", ` |
|
|
{P:foo-{St:{e:__}(bar){e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 390)", ` |
|
|
{P:**foo bar **} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 391)", ` |
|
|
{P:**(**foo)} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 392)", ` |
|
|
{P:{Em:{e:*}({St:{e:**}foo{e:**}}){e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 393)", ` |
|
|
{P:{St:{e:**}Gomphocarpus ({Em:{e:*}Gomphocarpus physocarpus{e:*}}, syn. |
|
|
{Em:{e:*}Asclepias physocarpa{e:*}}){e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 394)", ` |
|
|
{P:{St:{e:**}foo "{Em:{e:*}bar{e:*}}" foo{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 395)", ` |
|
|
{P:{St:{e:**}foo{e:**}}bar} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 396)", ` |
|
|
{P:__foo bar __} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 397)", ` |
|
|
{P:__(__foo)} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 398)", ` |
|
|
{P:{Em:{e:_}({St:{e:__}foo{e:__}}){e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 399)", ` |
|
|
{P:__foo__bar} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 400)", ` |
|
|
{P:__пристаням__стремятся} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 401)", ` |
|
|
{P:{St:{e:__}foo__bar__baz{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 402)", ` |
|
|
{P:{St:{e:__}(bar){e:__}}.} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 403)", ` |
|
|
{P:{Em:{e:*}foo {Ln:{L:[}bar{L:]}{L:(}{URL:/url}{L:)}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 404)", ` |
|
|
{P:{Em:{e:*}foo |
|
|
bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 405)", ` |
|
|
{P:{Em:{e:_}foo {St:{e:__}bar{e:__}} baz{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 406)", ` |
|
|
{P:{Em:{e:_}foo {Em:{e:_}bar{e:_}} baz{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 407)", ` |
|
|
{P:{Em:{e:_}{Em:{e:_}foo{e:_}} bar{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 408)", ` |
|
|
{P:{Em:{e:*}foo {Em:{e:*}bar{e:*}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 409)", ` |
|
|
{P:{Em:{e:*}foo {St:{e:**}bar{e:**}} baz{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 410)", ` |
|
|
{P:{Em:{e:*}foo{St:{e:**}bar{e:**}}baz{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 411)", ` |
|
|
{P:{Em:{e:*}foo**bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 412)", ` |
|
|
{P:{Em:{e:*}{St:{e:**}foo{e:**}} bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 413)", ` |
|
|
{P:{Em:{e:*}foo {St:{e:**}bar{e:**}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 414)", ` |
|
|
{P:{Em:{e:*}foo{St:{e:**}bar{e:**}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 415)", ` |
|
|
{P:foo{Em:{e:*}{St:{e:**}bar{e:**}}{e:*}}baz} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 416)", ` |
|
|
{P:foo{St:{e:**}{St:{e:**}{St:{e:**}bar{e:**}}{e:**}}{e:**}}***baz} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 417)", ` |
|
|
{P:{Em:{e:*}foo {St:{e:**}bar {Em:{e:*}baz{e:*}} bim{e:**}} bop{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 418)", ` |
|
|
{P:{Em:{e:*}foo {Ln:{L:[}{Em:{e:*}bar{e:*}}{L:]}{L:(}{URL:/url}{L:)}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 419)", ` |
|
|
{P:** is not an empty emphasis} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 420)", ` |
|
|
{P:**** is not an empty strong emphasis} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 421)", ` |
|
|
{P:{St:{e:**}foo {Ln:{L:[}bar{L:]}{L:(}{URL:/url}{L:)}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 422)", ` |
|
|
{P:{St:{e:**}foo |
|
|
bar{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 423)", ` |
|
|
{P:{St:{e:__}foo {Em:{e:_}bar{e:_}} baz{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 424)", ` |
|
|
{P:{St:{e:__}foo {St:{e:__}bar{e:__}} baz{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 425)", ` |
|
|
{P:{St:{e:__}{St:{e:__}foo{e:__}} bar{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 426)", ` |
|
|
{P:{St:{e:**}foo {St:{e:**}bar{e:**}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 427)", ` |
|
|
{P:{St:{e:**}foo {Em:{e:*}bar{e:*}} baz{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 428)", ` |
|
|
{P:{St:{e:**}foo{Em:{e:*}bar{e:*}}baz{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 429)", ` |
|
|
{P:{St:{e:**}{Em:{e:*}foo{e:*}} bar{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 430)", ` |
|
|
{P:{St:{e:**}foo {Em:{e:*}bar{e:*}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 431)", ` |
|
|
{P:{St:{e:**}foo {Em:{e:*}bar {St:{e:**}baz{e:**}} |
|
|
bim{e:*}} bop{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 432)", ` |
|
|
{P:{St:{e:**}foo {Ln:{L:[}{Em:{e:*}bar{e:*}}{L:]}{L:(}{URL:/url}{L:)}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 433)", ` |
|
|
{P:__ is not an empty emphasis} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 434)", ` |
|
|
{P:____ is not an empty strong emphasis} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 435)", ` |
|
|
{P:foo ***} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 436)", ` |
|
|
{P:foo {Em:{e:*}{Esc:\\*}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 437)", ` |
|
|
{P:foo {Em:{e:*}_{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 438)", ` |
|
|
{P:foo *****} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 439)", ` |
|
|
{P:foo {St:{e:**}{Esc:\\*}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 440)", ` |
|
|
{P:foo {St:{e:**}_{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 441)", ` |
|
|
{P:*{Em:{e:*}foo{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 442)", ` |
|
|
{P:{Em:{e:*}foo{e:*}}*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 443)", ` |
|
|
{P:*{St:{e:**}foo{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 444)", ` |
|
|
{P:***{Em:{e:*}foo{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 445)", ` |
|
|
{P:{St:{e:**}foo{e:**}}*} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 446)", ` |
|
|
{P:{Em:{e:*}foo{e:*}}***} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 447)", ` |
|
|
{P:foo ___} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 448)", ` |
|
|
{P:foo {Em:{e:_}{Esc:\\_}{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 449)", ` |
|
|
{P:foo {Em:{e:_}*{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 450)", ` |
|
|
{P:foo _____} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 451)", ` |
|
|
{P:foo {St:{e:__}{Esc:\\_}{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 452)", ` |
|
|
{P:foo {St:{e:__}*{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 453)", ` |
|
|
{P:_{Em:{e:_}foo{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 454)", ` |
|
|
{P:{Em:{e:_}foo{e:_}}_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 455)", ` |
|
|
{P:_{St:{e:__}foo{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 456)", ` |
|
|
{P:___{Em:{e:_}foo{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 457)", ` |
|
|
{P:{St:{e:__}foo{e:__}}_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 458)", ` |
|
|
{P:{Em:{e:_}foo{e:_}}___} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 459)", ` |
|
|
{P:{St:{e:**}foo{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 460)", ` |
|
|
{P:{Em:{e:*}{Em:{e:_}foo{e:_}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 461)", ` |
|
|
{P:{St:{e:__}foo{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 462)", ` |
|
|
{P:{Em:{e:_}{Em:{e:*}foo{e:*}}{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 463)", ` |
|
|
{P:{St:{e:**}{St:{e:**}foo{e:**}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 464)", ` |
|
|
{P:{St:{e:__}{St:{e:__}foo{e:__}}{e:__}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 465)", ` |
|
|
{P:{St:{e:**}{St:{e:**}{St:{e:**}foo{e:**}}{e:**}}{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 466)", ` |
|
|
{P:{Em:{e:*}{St:{e:**}foo{e:**}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 467)", ` |
|
|
{P:{Em:{e:_}{St:{e:__}{St:{e:__}foo{e:__}}{e:__}}{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 468)", ` |
|
|
{P:{Em:{e:*}foo _bar{e:*}} baz_} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 469)", ` |
|
|
{P:{Em:{e:*}foo {St:{e:__}bar *baz bim{e:__}} bam{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 470)", ` |
|
|
{P:**foo {St:{e:**}bar baz{e:**}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 471)", ` |
|
|
{P:*foo {Em:{e:*}bar baz{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 472)", ` |
|
|
{P:*{Ln:{L:[}bar*{L:]}{L:(}{URL:/url}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 473)", ` |
|
|
{P:_foo {Ln:{L:[}bar_{L:]}{L:(}{URL:/url}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 474)", ` |
|
|
{P:*{HT:<img src="foo" title="*"/>}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 475)", ` |
|
|
{P:**{HT:<a href="**">}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 476)", ` |
|
|
{P:__{HT:<a href="__">}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 477)", ` |
|
|
{P:{Em:{e:*}a {C:{c:\`}*{c:\`}}{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 478)", ` |
|
|
{P:{Em:{e:_}a {C:{c:\`}_{c:\`}}{e:_}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 479)", ` |
|
|
{P:**a{Al:{L:<}{URL:http://foo.bar/?q=**}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Emphasis and strong emphasis (example 480)", ` |
|
|
{P:__a{Al:{L:<}{URL:http://foo.bar/?q=__}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 481)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/uri} {LT:"title"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 482)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 483)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 484)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:<>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 485)", ` |
|
|
{P:{Ln:{L:[}link{L:]}}(/my uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 486)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:</my uri>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 487)", ` |
|
|
{P:{Ln:{L:[}link{L:]}}(foo |
|
|
bar)} |
|
|
`) |
|
|
|
|
|
// Many of these don't align with the output in the spec because our |
|
|
// implementation doesn't check for an existing link reference when |
|
|
// accepting non-inline links. |
|
|
|
|
|
test("Links (example 488)", ` |
|
|
{P:{Ln:{L:[}link{L:]}}({HT:<foo |
|
|
bar>})} |
|
|
`) |
|
|
|
|
|
test("Links (example 489)", ` |
|
|
{P:{Ln:{L:[}a{L:]}{L:(}{URL:<b)c>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 490)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:<foo\\>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 491)", ` |
|
|
{P:{Ln:{L:[}a{L:]}}(<b)c |
|
|
{Ln:{L:[}a{L:]}}(<b)c> |
|
|
{Ln:{L:[}a{L:]}}({HT:<b>}c)} |
|
|
`) |
|
|
|
|
|
test("Links (example 492)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:\\(foo\\)}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 493)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:foo(and(bar))}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 494)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:foo\\(and\\(bar\\)}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 495)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:<foo(and(bar)>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 496)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:foo\\)\\:}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 497)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:#fragment}{L:)}}} |
|
|
|
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:http://example.com#fragment}{L:)}}} |
|
|
|
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:http://example.com?foo=3#frag}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 498)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:foo\\bar}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 499)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:foo%20bä}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 500)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:"title"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 501)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/url} {LT:"title"}{L:)}} |
|
|
{Ln:{L:[}link{L:]}{L:(}{URL:/url} {LT:'title'}{L:)}} |
|
|
{Ln:{L:[}link{L:]}{L:(}{URL:/url} {LT:(title)}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 502)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/url} {LT:"title \\"""}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 503)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/url "title"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 504)", ` |
|
|
{P:{Ln:{L:[}link{L:]}}(/url "title "and" title")} |
|
|
`) |
|
|
|
|
|
test("Links (example 505)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(}{URL:/url} {LT:'title "and" title'}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 506)", ` |
|
|
{P:{Ln:{L:[}link{L:]}{L:(} {URL:/uri} |
|
|
{LT:"title"} {L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 507)", ` |
|
|
{P:{Ln:{L:[}link{L:]}} (/uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 508)", ` |
|
|
{P:[link [foo {Ln:{L:[}bar{L:]}}]](/uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 509)", ` |
|
|
{P:{Ln:{L:[}link{L:]}} bar](/uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 510)", ` |
|
|
{P:[link {Ln:{L:[}bar{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 511)", ` |
|
|
{P:{Ln:{L:[}link {Esc:\\[}bar{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 512)", ` |
|
|
{P:{Ln:{L:[}link {Em:{e:*}foo {St:{e:**}bar{e:**}} {C:{c:\`}#{c:\`}}{e:*}}{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 513)", ` |
|
|
{P:{Ln:{L:[}{Im:{L:![}moon{L:]}{L:(}{URL:moon.jpg}{L:)}}{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 514)", ` |
|
|
{P:[foo {Ln:{L:[}bar{L:]}{L:(}{URL:/uri}{L:)}}](/uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 515)", ` |
|
|
{P:[foo {Em:{e:*}[bar {Ln:{L:[}baz{L:]}{L:(}{URL:/uri}{L:)}}](/uri){e:*}}](/uri)} |
|
|
`) |
|
|
|
|
|
test("Links (example 516)", ` |
|
|
{P:{Im:{L:![}[{Ln:{L:[}foo{L:]}{L:(}{URL:uri1}{L:)}}](uri2){L:]}{L:(}{URL:uri3}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 517)", ` |
|
|
{P:*{Ln:{L:[}foo*{L:]}{L:(}{URL:/uri}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 518)", ` |
|
|
{P:{Ln:{L:[}foo *bar{L:]}{L:(}{URL:baz*}{L:)}}} |
|
|
`) |
|
|
|
|
|
// Not the spirit of the test, because the shortcut link is still |
|
|
// accepted. |
|
|
test("Links (example 519)", ` |
|
|
{P:*foo {Ln:{L:[}bar* baz{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 520)", ` |
|
|
{P:[foo {HT:<bar attr="](baz)">}} |
|
|
`) |
|
|
|
|
|
test("Links (example 521)", ` |
|
|
{P:[foo{C:{c:\`}](/uri){c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 522)", ` |
|
|
{P:[foo{Al:{L:<}{URL:http://example.com/?search=](uri)}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 523)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[bar]}}} |
|
|
|
|
|
{LR:{LL:[bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
// This has a different shape than the original test case, because |
|
|
// we accept the innermost link. |
|
|
test("Links (example 524)", ` |
|
|
{P:[link [foo {Ln:{L:[}bar{L:]}}]]{Ln:{L:[}ref{L:]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 525)", ` |
|
|
{P:{Ln:{L:[}link {Esc:\\[}bar{L:]}{LL:[ref]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 526)", ` |
|
|
{P:{Ln:{L:[}link {Em:{e:*}foo {St:{e:**}bar{e:**}} {C:{c:\`}#{c:\`}}{e:*}}{L:]}{LL:[ref]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 527)", ` |
|
|
{P:{Ln:{L:[}{Im:{L:![}moon{L:]}{L:(}{URL:moon.jpg}{L:)}}{L:]}{LL:[ref]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 528)", ` |
|
|
{P:[foo {Ln:{L:[}bar{L:]}{L:(}{URL:/uri}{L:)}}]{Ln:{L:[}ref{L:]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 529)", ` |
|
|
{P:[foo {Em:{e:*}bar {Ln:{L:[}baz{L:]}{LL:[ref]}}{e:*}}]{Ln:{L:[}ref{L:]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 530)", ` |
|
|
{P:*{Ln:{L:[}foo*{L:]}{LL:[ref]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 531)", ` |
|
|
{P:{Ln:{L:[}foo *bar{L:]}{LL:[ref]}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 532)", ` |
|
|
{P:[foo {HT:<bar attr="][ref]">}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 533)", ` |
|
|
{P:[foo{C:{c:\`}][ref]{c:\`}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 534)", ` |
|
|
{P:[foo{Al:{L:<}{URL:http://example.com/?search=][ref]}{L:>}}} |
|
|
|
|
|
{LR:{LL:[ref]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 535)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[BaR]}}} |
|
|
|
|
|
{LR:{LL:[bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 536)", ` |
|
|
{P:{Ln:{L:[}Толпой{L:]}{LL:[Толпой]}} is a Russian word.} |
|
|
|
|
|
{LR:{LL:[ТОЛПОЙ]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Links (example 537)", ` |
|
|
{LR:{LL:[Foo |
|
|
bar]}{L::} {URL:/url}} |
|
|
|
|
|
{P:{Ln:{L:[}Baz{L:]}{LL:[Foo bar]}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 538)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}} {Ln:{L:[}bar{L:]}}} |
|
|
|
|
|
{LR:{LL:[bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 539)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}} |
|
|
{Ln:{L:[}bar{L:]}}} |
|
|
|
|
|
{LR:{LL:[bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 540)", ` |
|
|
{LR:{LL:[foo]}{L::} {URL:/url1}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url2}} |
|
|
|
|
|
{P:{Ln:{L:[}bar{L:]}{LL:[foo]}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 541)", ` |
|
|
{P:{Ln:{L:[}bar{L:]}{LL:[foo\\!]}}} |
|
|
|
|
|
{LR:{LL:[foo!]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Links (example 542)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}[ref[]} |
|
|
|
|
|
{P:[ref[]: /uri} |
|
|
`) |
|
|
|
|
|
test("Links (example 543)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}[ref{Ln:{L:[}bar{L:]}}]} |
|
|
|
|
|
{P:[ref{Ln:{L:[}bar{L:]}}]: /uri} |
|
|
`) |
|
|
|
|
|
test("Links (example 544)", ` |
|
|
{P:[[{Ln:{L:[}foo{L:]}}]]} |
|
|
|
|
|
{P:[[{Ln:{L:[}foo{L:]}}]]: /url} |
|
|
`) |
|
|
|
|
|
test("Links (example 545)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[ref\\[]}}} |
|
|
|
|
|
{LR:{LL:[ref\\[]}{L::} {URL:/uri}} |
|
|
`) |
|
|
|
|
|
test("Links (example 546)", ` |
|
|
{LR:{LL:[bar\\\\]}{L::} {URL:/uri}} |
|
|
|
|
|
{P:{Ln:{L:[}bar{Esc:\\\\}{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 547)", ` |
|
|
{P:[]} |
|
|
|
|
|
{P:[]: /uri} |
|
|
`) |
|
|
|
|
|
test("Links (example 548)", ` |
|
|
{P:[ |
|
|
]} |
|
|
|
|
|
{P:[ |
|
|
]: /uri} |
|
|
`) |
|
|
|
|
|
test("Links (example 549)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 550)", ` |
|
|
{P:{Ln:{L:[}{Em:{e:*}foo{e:*}} bar{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[*foo* bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 551)", ` |
|
|
{P:{Ln:{L:[}Foo{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 552)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}} |
|
|
[]} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 553)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 554)", ` |
|
|
{P:{Ln:{L:[}{Em:{e:*}foo{e:*}} bar{L:]}}} |
|
|
|
|
|
{LR:{LL:[*foo* bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 555)", ` |
|
|
{P:[{Ln:{L:[}{Em:{e:*}foo{e:*}} bar{L:]}}]} |
|
|
|
|
|
{LR:{LL:[*foo* bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 556)", ` |
|
|
{P:[[bar {Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Links (example 557)", ` |
|
|
{P:{Ln:{L:[}Foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 558)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}} bar} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Links (example 559)", ` |
|
|
{P:{Esc:\\[}foo]} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Links (example 560)", ` |
|
|
{LR:{LL:[foo*]}{L::} {URL:/url}} |
|
|
|
|
|
{P:*{Ln:{L:[}foo*{L:]}}} |
|
|
`) |
|
|
|
|
|
test("Links (example 561)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[bar]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url1}} |
|
|
{LR:{LL:[bar]}{L::} {URL:/url2}} |
|
|
`) |
|
|
|
|
|
test("Links (example 562)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url1}} |
|
|
`) |
|
|
|
|
|
test("Links (example 563)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{L:(}{L:)}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url1}} |
|
|
`) |
|
|
|
|
|
test("Links (example 564)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}}(not a link)} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url1}} |
|
|
`) |
|
|
|
|
|
// Not really testing what it is supposed to, because the first two |
|
|
// bracket pairs are blindly accepted as link. |
|
|
test("Links (example 565)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[bar]}}{Ln:{L:[}baz{L:]}}} |
|
|
|
|
|
{LR:{LL:[baz]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Links (example 566)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[bar]}}{Ln:{L:[}baz{L:]}}} |
|
|
|
|
|
{LR:{LL:[baz]}{L::} {URL:/url1}} |
|
|
{LR:{LL:[bar]}{L::} {URL:/url2}} |
|
|
`) |
|
|
|
|
|
test("Links (example 567)", ` |
|
|
{P:{Ln:{L:[}foo{L:]}{LL:[bar]}}{Ln:{L:[}baz{L:]}}} |
|
|
|
|
|
{LR:{LL:[baz]}{L::} {URL:/url1}} |
|
|
{LR:{LL:[foo]}{L::} {URL:/url2}} |
|
|
`) |
|
|
|
|
|
test("Images (example 568)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{L:(}{URL:/url} {LT:"title"}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 569)", ` |
|
|
{P:{Im:{L:![}foo {Em:{e:*}bar{e:*}}{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo *bar*]}{L::} {URL:train.jpg} {LT:"train & tracks"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 570)", ` |
|
|
{P:{Im:{L:![}foo {Im:{L:![}bar{L:]}{L:(}{URL:/url}{L:)}}{L:]}{L:(}{URL:/url2}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 571)", ` |
|
|
{P:{Im:{L:![}foo {Ln:{L:[}bar{L:]}{L:(}{URL:/url}{L:)}}{L:]}{L:(}{URL:/url2}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 572)", ` |
|
|
{P:{Im:{L:![}foo {Em:{e:*}bar{e:*}}{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo *bar*]}{L::} {URL:train.jpg} {LT:"train & tracks"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 573)", ` |
|
|
{P:{Im:{L:![}foo {Em:{e:*}bar{e:*}}{L:]}{LL:[foobar]}}} |
|
|
|
|
|
{LR:{LL:[FOOBAR]}{L::} {URL:train.jpg} {LT:"train & tracks"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 574)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{L:(}{URL:train.jpg}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 575)", ` |
|
|
{P:My {Im:{L:![}foo bar{L:]}{L:(}{URL:/path/to/train.jpg} {LT:"title"} {L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 576)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{L:(}{URL:<url>}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 577)", ` |
|
|
{P:{Im:{L:![}{L:]}{L:(}{URL:/url}{L:)}}} |
|
|
`) |
|
|
|
|
|
test("Images (example 578)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{LL:[bar]}}} |
|
|
|
|
|
{LR:{LL:[bar]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Images (example 579)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{LL:[bar]}}} |
|
|
|
|
|
{LR:{LL:[BAR]}{L::} {URL:/url}} |
|
|
`) |
|
|
|
|
|
test("Images (example 580)", ` |
|
|
{P:{Im:{L:![}foo{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 581)", ` |
|
|
{P:{Im:{L:![}{Em:{e:*}foo{e:*}} bar{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[*foo* bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 582)", ` |
|
|
{P:{Im:{L:![}Foo{L:]}{LL:[]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 583)", ` |
|
|
{P:{Im:{L:![}foo{L:]}} |
|
|
[]} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 584)", ` |
|
|
{P:{Im:{L:![}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 585)", ` |
|
|
{P:{Im:{L:![}{Em:{e:*}foo{e:*}} bar{L:]}}} |
|
|
|
|
|
{LR:{LL:[*foo* bar]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 586)", ` |
|
|
{P:{Im:{L:![}{Ln:{L:[}foo{L:]}}{L:]}}} |
|
|
|
|
|
{P:[{Ln:{L:[}foo{L:]}}]: /url "title"} |
|
|
`) |
|
|
|
|
|
test("Images (example 587)", ` |
|
|
{P:{Im:{L:![}Foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 588)", ` |
|
|
{P:!{Esc:\\[}foo]} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Images (example 589)", ` |
|
|
{P:{Esc:\\!}{Ln:{L:[}foo{L:]}}} |
|
|
|
|
|
{LR:{LL:[foo]}{L::} {URL:/url} {LT:"title"}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 590)", ` |
|
|
{P:{Al:{L:<}{URL:http://foo.bar.baz}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 591)", ` |
|
|
{P:{Al:{L:<}{URL:http://foo.bar.baz/test?q=hello&id=22&boolean}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 592)", ` |
|
|
{P:{Al:{L:<}{URL:irc://foo.bar:2233/baz}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 593)", ` |
|
|
{P:{Al:{L:<}{URL:MAILTO:FOO@BAR.BAZ}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 594)", ` |
|
|
{P:{Al:{L:<}{URL:a+b+c:d}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 595)", ` |
|
|
{P:{Al:{L:<}{URL:made-up-scheme://foo,bar}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 596)", ` |
|
|
{P:{Al:{L:<}{URL:http://../}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 597)", ` |
|
|
{P:{Al:{L:<}{URL:localhost:5001/foo}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 598)", ` |
|
|
{P:<http://foo.bar/baz bim>} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 599)", ` |
|
|
{P:{Al:{L:<}{URL:http://example.com/\\[\\}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 600)", ` |
|
|
{P:{Al:{L:<}{URL:foo@bar.example.com}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 601)", ` |
|
|
{P:{Al:{L:<}{URL:foo+special@Bar.baz-bar0.com}{L:>}}} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 602)", ` |
|
|
{P:<foo{Esc:\\+}@bar.example.com>} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 603)", ` |
|
|
{P:<>} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 604)", ` |
|
|
{P:< http://foo.bar >} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 605)", ` |
|
|
{P:<m:abc>} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 606)", ` |
|
|
{P:<foo.bar.baz>} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 607)", ` |
|
|
{P:http://example.com} |
|
|
`) |
|
|
|
|
|
test("Autolinks (example 608)", ` |
|
|
{P:foo@bar.example.com} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 609)", ` |
|
|
{P:{HT:<a>}{HT:<bab>}{HT:<c2c>}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 610)", ` |
|
|
{P:{HT:<a/>}{HT:<b2/>}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 611)", ` |
|
|
{P:{HT:<a />}{HT:<b2 |
|
|
data="foo" >}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 612)", ` |
|
|
{P:{HT:<a foo="bar" bam = 'baz <em>"</em>' |
|
|
_boolean zoop:33=zoop:33 />}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 613)", ` |
|
|
{P:Foo {HT:<responsive-image src="foo.jpg" />}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 614)", ` |
|
|
{P:<33> <__>} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 615)", ` |
|
|
{P:<a h*#ref="hi">} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 616)", ` |
|
|
{P:<a href="hi'> <a href=hi'>} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 617)", ` |
|
|
{P:{HT:< a>}{HT:< |
|
|
foo>}{HT:<bar/ >} |
|
|
<foo bar=baz |
|
|
bim!bop />} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 618)", ` |
|
|
{P:<a href='bar'title=title>} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 619)", ` |
|
|
{P:{HT:</a>}{HT:</foo >}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 620)", ` |
|
|
{P:</a href="foo">} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 621)", ` |
|
|
{P:foo {CM:<!-- this is a |
|
|
comment - with hyphen -->}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 622)", ` |
|
|
{P:foo <!-- not a comment -- two hyphens -->} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 623)", ` |
|
|
{P:foo <!--> foo -->} |
|
|
|
|
|
{P:foo <!-- foo--->} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 624)", ` |
|
|
{P:foo {Pi:<?php echo $a; ?>}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 625)", ` |
|
|
{P:foo {HT:<!ELEMENT br EMPTY>}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 626)", ` |
|
|
{P:foo {HT:<![CDATA[>&<]]>}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 627)", ` |
|
|
{P:foo {HT:<a href="ö">}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 628)", ` |
|
|
{P:foo {HT:<a href="\\*">}} |
|
|
`) |
|
|
|
|
|
test("Raw HTML (example 629)", ` |
|
|
{P:<a href="{Esc:\\"}">} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 630)", ` |
|
|
{P:foo{BR: |
|
|
}baz} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 631)", ` |
|
|
{P:foo{BR:\\ |
|
|
}baz} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 632)", ` |
|
|
{P:foo{BR: |
|
|
}baz} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 633)", ` |
|
|
{P:foo{BR: |
|
|
} bar} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 634)", ` |
|
|
{P:foo{BR:\\ |
|
|
} bar} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 635)", ` |
|
|
{P:{Em:{e:*}foo{BR: |
|
|
}bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 636)", ` |
|
|
{P:{Em:{e:*}foo{BR:\\ |
|
|
}bar{e:*}}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 637)", ` |
|
|
{P:{C:{c:\`}code |
|
|
span{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 638)", ` |
|
|
{P:{C:{c:\`}code\\ |
|
|
span{c:\`}}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 639)", ` |
|
|
{P:{HT:<a href="foo |
|
|
bar">}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 640)", ` |
|
|
{P:{HT:<a href="foo\\ |
|
|
bar">}} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 641)", ` |
|
|
{P:foo\\} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 642)", ` |
|
|
{P:foo } |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 643)", ` |
|
|
{H3:{h:###} foo\\} |
|
|
`) |
|
|
|
|
|
test("Hard line breaks (example 644)", ` |
|
|
{H3:{h:###} foo } |
|
|
`) |
|
|
|
|
|
test("Soft line breaks (example 645)", ` |
|
|
{P:foo |
|
|
baz} |
|
|
`) |
|
|
|
|
|
test("Soft line breaks (example 646)", ` |
|
|
{P:foo |
|
|
baz} |
|
|
`) |
|
|
|
|
|
test("Textual content (example 647)", ` |
|
|
{P:hello $.;'there} |
|
|
`) |
|
|
|
|
|
test("Textual content (example 648)", ` |
|
|
{P:Foo χρῆν} |
|
|
`) |
|
|
|
|
|
test("Textual content (example 649)", ` |
|
|
{P:Multiple spaces} |
|
|
`) |
|
|
}) |
|
|
|
|
|
describe("Custom Markdown tests", () => { |
|
|
// (Not ideal that the 3rd mark is inside the previous item, but |
|
|
// this'd require quite a big overhaul to fix.) |
|
|
test("Quote markers don't end up inside inner list items", ` |
|
|
{Q:{q:>} {BL:{LI:{l:-} {P:Hello}} |
|
|
{q:>} {LI:{l:-} {P:Two} |
|
|
{q:>}} |
|
|
{q:>} {LI:{l:-} {P:Three}}}} |
|
|
`) |
|
|
|
|
|
test("Nested bullet lists don't break ordered list parsing", ` |
|
|
{OL:{LI:{l:1.} {P:A} |
|
|
{BL:{LI:{l:*} {P:A1}} |
|
|
{LI:{l:*} {P:A2}}}} |
|
|
{LI:{l:2.} {P:B}}} |
|
|
`) |
|
|
|
|
|
test("Creates a code node for blank-line fenced blocks", ` |
|
|
{FC:{c:\`\`\`} |
|
|
{cT: |
|
|
}{c:\`\`\`}} |
|
|
`) |
|
|
|
|
|
it("Doesn't get confused by tabs indenting a list item", () => { |
|
|
let doc = ` - a\n\t\tb` |
|
|
if (parser.parse(doc).length > doc.length) throw new RangeError("Wrong tree length") |
|
|
}) |
|
|
|
|
|
it("Parses horizontal rules when setext headers are disabled", () => { |
|
|
let tree = parser.configure({remove: ["SetextHeading"]}).parse(`abc\n---`) |
|
|
if (tree.toString() != "Document(Paragraph,HorizontalRule)") |
|
|
throw new Error("Unexpected tree: " + tree) |
|
|
}) |
|
|
})
|
|
|
|