diff --git a/README-(ZH).md b/README-(ZH).md index 6520a43f..84311315 100644 --- a/README-(ZH).md +++ b/README-(ZH).md @@ -2,7 +2,7 @@ [![CodeQL](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/codeql.yml/badge.svg)](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/codeql.yml) [![CI](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/node.js.yml/badge.svg)](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/node.js.yml) [![jsDelivr hits (npm)](https://img.shields.io/jsdelivr/npm/hm/wikiparser-node)](https://www.npmjs.com/package/wikiparser-node) -[![codebeat badge](https://codebeat.co/badges/7cdd51e6-2c5d-4a22-aae1-f5e352047d54)](https://codebeat.co/projects/github-com-bhsd-harry-wikiparser-node-main) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/a2fbe7641031451baca2947ae6d7891f)](https://app.codacy.com/gh/bhsd-harry/wikiparser-node/dashboard) ![Istanbul coverage](./coverage/badge.svg) # Other Languages diff --git a/README.md b/README.md index afc2262d..78005a13 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CodeQL](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/codeql.yml/badge.svg)](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/codeql.yml) [![CI](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/node.js.yml/badge.svg)](https://github.com/bhsd-harry/wikiparser-node/actions/workflows/node.js.yml) [![jsDelivr hits (npm)](https://img.shields.io/jsdelivr/npm/hm/wikiparser-node)](https://www.npmjs.com/package/wikiparser-node) -[![codebeat badge](https://codebeat.co/badges/7cdd51e6-2c5d-4a22-aae1-f5e352047d54)](https://codebeat.co/projects/github-com-bhsd-harry-wikiparser-node-main) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/a2fbe7641031451baca2947ae6d7891f)](https://app.codacy.com/gh/bhsd-harry/wikiparser-node/dashboard) ![Istanbul coverage](./coverage/badge.svg) # Other Languages diff --git a/package.json b/package.json index 916c4c8a..8b758840 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "test:real": "node --enable-source-maps dist/test/real.js" }, "dependencies": { - "@bhsd/common": "^0.6.1" + "@bhsd/common": "^0.6.3" }, "devDependencies": { "@bhsd/codemirror-mediawiki": "^2.20.1", diff --git a/src/attributes.ts b/src/attributes.ts index 20b2cdf8..4e31d5be 100644 --- a/src/attributes.ts +++ b/src/attributes.ts @@ -32,7 +32,7 @@ let wordRegex: RegExp; try { // eslint-disable-next-line prefer-regex-literals, es-x/no-regexp-unicode-property-escapes wordRegex = new RegExp(String.raw`[\p{L}\d]`, 'u'); -} catch { +} catch /* istanbul ignore next */ { wordRegex = /[^\W_]/u; } diff --git a/test/parserTests.json b/test/parserTests.json index bf95f35b..c361d970 100644 --- a/test/parserTests.json +++ b/test/parserTests.json @@ -55,7 +55,7 @@ "desc": "Multiple newlines after tables are converted to p-br-p tags", "wikitext": "{|\n|x\n|}\n\n\n\n\n=b=", "html": "\n\n
x\n
\n


\n


\n

\n

b

[edit]
", - "render": "\n\n
x\n
\n


\n


\n

\n

b

", + "render": "\n\n
x\n
\n


\n


\n

\n

b

", "print": "{|\n|x\n|}\n\n\n\n\n=b=" }, { @@ -76,35 +76,35 @@ "desc": "Non-html5 tags should be accepted", "wikitext": "
''foo''
\n''foo''\n''foo''\n''foo''\n''foo''", "html": "
foo
\n

foo\nfoo\nfoo\nfoo\n

", - "render": "
foo
\n

foo\nfoo\nfoo\nfoo\n

", + "render": "
foo
\n

foo\nfoo\nfoo\nfoo\n

", "print": "<center>''foo''</center>\n<big>''foo''</big>\n<font style=\"123\">''foo''</font>\n<strike>''foo''</strike>\n<tt>''foo''</tt>" }, { "desc": " is valid wikitext (T54468)", "wikitext": "", "html": "

\n

", - "render": "

\n

", + "render": "

\n

", "print": "<wbr>" }, { "desc": " or for strikethrough", "wikitext": "strike\n\ns", "html": "

strike\n

s\n

", - "render": "

strike\n

s\n

", + "render": "

strike\n

s\n

", "print": "<strike>strike</strike>\n\n<s>s</s>" }, { "desc": "Text-level semantic html elements in wikitext", "wikitext": "text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n明日(Ashita あした)\ntext\ntext\ntext\n", "html": "

text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n明日(Ashita あした)\ntext\ntext\ntext\n\n

", - "render": "

text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n明日(Ashita あした)\ntext\ntext\ntext\n\n

", + "render": "

text\ntext\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n\ntext\ntext\ntext\ntext\ntext\ntext\ntext\n明日(Ashita あした)\ntext\ntext\ntext\n\n

", "print": "<em>text</em>\n<strong>text</strong>\n<small>text</small>\n<s>text</s>\n<cite>text</cite>\n<q>text</q>\n<dfn>text</dfn>\n<abbr>text</abbr>\n<data>text</data>\n<time>text</time>\n<code>text</code>\n<var>text</var>\n<samp>text</samp>\n<kbd>text</kbd>\n<sub>text</sub>\n<u>text</u>\n<mark>text</mark>\n<ruby><rb>明日</rb><rp>(</rp><rt>Ashita</rt><rp> </rp><rtc>あした</rtc><rp>)</rp></ruby>\n<bdi>text</bdi>\n<bdo>text</bdo>\n<span>text</span>\n<wbr />" }, { "desc": "Ruby markup (W3C-style)", "wikitext": ";Mono-ruby for individual base characters\n:ほん\n;Group ruby\n:今日きょう\n;Jukugo ruby\n:きょう\n;Inline ruby\n:(とうきょう)\n;Double-sided ruby\n:jiùjīnshānSan Francisco\n\n\nHeartCœur\nShamrockTrèfle\nStarÉtoile\n", "html": "
Mono-ruby for individual base characters
\n
ほん
\n
Group ruby
\n
今日きょう
\n
Jukugo ruby
\n
きょう
\n
Inline ruby
\n
(とうきょう)
\n
Double-sided ruby
\n
jiùjīnshānSan Francisco
\n

\nHeartCœur\nShamrockTrèfle\nStarÉtoile\n\n

", - "render": "
Mono-ruby for individual base characters
\n
ほん
\n
Group ruby
\n
今日きょう
\n
Jukugo ruby
\n
きょう
\n
Inline ruby
\n
(とうきょう)
\n
Double-sided ruby
\n
jiùjīnshānSan Francisco
\n

\nHeartCœur\nShamrockTrèfle\nStarÉtoile\n\n

", + "render": "
Mono-ruby for individual base characters
\n
ほん
\n
Group ruby
\n
今日きょう
\n
Jukugo ruby
\n
きょう
\n
Inline ruby
\n
(とうきょう)
\n
Double-sided ruby
\n
jiùjīnshānSan Francisco
\n

\nHeartCœur\nShamrockTrèfle\nStarÉtoile\n\n

", "print": ";Mono-ruby for individual base characters\n:<ruby><rt></rt><rt>ほん</rt><rt></rt></ruby>\n;Group ruby\n:<ruby>今日<rt>きょう</rt></ruby>\n;Jukugo ruby\n:<ruby><rb></rb><rb></rb><rt></rt><rt></rt><rt>きょう</rt></ruby>\n;Inline ruby\n:<ruby><rb></rb><rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp></ruby>\n;Double-sided ruby\n:<ruby><rb></rb><rb></rb><rb></rb><rt>jiù</rt><rt>jīn</rt><rt>shān</rt><rtc>San Francisco</rtc></ruby>\n\n<ruby>\n<rb></rb><rtc><rt>Heart</rt></rtc><rtc lang=\"fr\"><rt>Cœur</rt></rtc>\n<rb></rb><rtc><rt>Shamrock</rt></rtc><rtc lang=\"fr\"><rt>Trèfle</rt></rtc>\n<rb></rb><rtc><rt>Star</rt></rtc><rtc lang=\"fr\"><rt>Étoile</rt></rtc>\n</ruby>" }, { @@ -125,7 +125,7 @@ "desc": "Self-closed tag hooks", "wikitext": "
\n\n",
 		"html": "
\n
    \n
", - "render": "
\n
    \n\n
", + "render": "
\n
    \n\n
", "print": "<pre />\n<gallery />\n<indicator name=\"something\" />" }, { @@ -249,7 +249,7 @@ "desc": "French spacing and spans", "wikitext": "[[Test]] : 123\n« Test »123", "html": "

Test : 123\n« Test »123\n

", - "render": "

Test : 123\n« Test »123\n

", + "render": "

Test : 123\n« Test »123\n

", "print": "[[Test]] : <span>123</span>\n« Test »<span>123</span>" }, { @@ -273,28 +273,28 @@ "desc": "T53086: Double newlines in blockquotes should be turned into paragraphs", "wikitext": "
\nFoo\n\nBar\n
", "html": "
\n

Foo\n

Bar\n

\n
", - "render": "
\n

Foo\n

Bar\n

\n
", + "render": "
\n

Foo\n

Bar\n

\n
", "print": "<blockquote>\nFoo\n\nBar\n</blockquote>" }, { "desc": "T17491: / in blockquote", "wikitext": "
\nFoo bar baz quux\n
", "html": "
\n

Foo bar baz quux\n

\n
", - "render": "
\n

Foo bar baz quux\n

\n
", + "render": "
\n

Foo bar baz quux\n

\n
", "print": "<blockquote>\nFoo <del>bar</del> <ins>baz</ins> quux\n</blockquote>" }, { "desc": "T17491: / in blockquote (2)", "wikitext": "
Foo bar baz quux\n
", "html": "

Foo bar baz quux\n

", - "render": "
Foo bar baz quux\n
", + "render": "
Foo bar baz quux\n
", "print": "<blockquote>Foo <del>bar</del> <ins>baz</ins> quux\n</blockquote>" }, { "desc": "Don't paragraph-wrap empty newlines between HTML list items", "wikitext": "
    \n
  1. foo
  2. \n\n\n\n
  3. foo
  4. \n
", "html": "
    \n
  1. foo
  2. \n\n\n\n
  3. foo
  4. \n
", - "render": "
    \n
  1. foo
  2. \n\n\n\n
  3. foo
  4. \n
", + "render": "
    \n
  1. foo
  2. \n\n\n\n
  3. foo
  4. \n
", "print": "<ol>\n<li>foo</li>\n\n\n\n<li>foo</li>\n</ol>" }, { @@ -894,7 +894,7 @@ "desc": "
 inside a link",
 		"wikitext": "[[Main
 Page
]] [[Main Page|the main page
[it's not very good]
]]", "html": "

[[Main

 Page

]] the main page

[it's not very good]
", - "render": "[[Main
 Page
]] the main page
[it's not very good]
", + "render": "[[Main
 Page
]] the main page
[it's not very good]
", "print": "[[Main<pre> Page</pre>]] [[Main Page|the main page <pre>[it's not very good]</pre>]]" }, { @@ -960,7 +960,7 @@ "desc": "1. Interaction of linktrail and template encapsulation", "wikitext": "{{1x|[[Foo]]}}l\n\n{{1x|[[Foo]]l}}\n\n{{1x|[[Foo]]l}}s\n\n{{1x|[[Foo]]ls}}\n\n[[{{1x|Foo}}]]l", "html": "

Fool\n

Fool\n

Fools\n

Fools\n

Fool\n

", - "render": "

Fool\n

Fool\n

Fools\n

Fools\n

Fool\n

", + "render": "

Fool\n

Fool\n

Fools\n

Fools\n

Fool\n

", "print": "{{1x|[[Foo]]}}l\n\n{{1x|[[Foo]]l}}\n\n{{1x|[[Foo]]l}}s\n\n{{1x|[[Foo]]<span>ls</span>}}\n\n[[{{1x|Foo}}]]l" }, { @@ -1046,7 +1046,7 @@ "desc": "
to
", "wikitext": "1
2
3", "html": "

1
2
3\n

", - "render": "

1
2
3\n

", + "render": "

1
2
3\n

", "print": "1<br>2<br />3" }, { @@ -1060,7 +1060,7 @@ "desc": "Parsoid: Broken br tag recognition", "wikitext": "
\n\n
", "html": "


\n


\n

", - "render": "


\n


\n

", + "render": "


\n


\n

", "print": "</br>\n\n<br/ >" }, { @@ -1109,7 +1109,7 @@ "desc": "Horizontal ruler (should it add that extra space?)", "wikitext": "
\n
\nfoo bar", "html": "
\n

\nfoo


bar

", - "render": "
\n
\nfoo
bar", + "render": "
\n
\nfoo
bar", "print": "<hr>\n<hr >\nfoo <hr\n> bar" }, { @@ -1172,14 +1172,14 @@ "desc": "1. Nested mixed wikitext and html list", "wikitext": "*hi\n*
  • ho
\n*hi\n**ho", "html": "
  • hi
  • \n
    • ho
  • \n
  • hi\n
    • ho
", - "render": "
  • hi
  • \n
    • ho
  • \n
  • hi\n
    • ho
", + "render": "
  • hi
  • \n
    • ho
  • \n
  • hi\n
    • ho
", "print": "*hi\n*<ul><li>ho</li></ul>\n*hi\n**ho" }, { "desc": "2. Nested mixed wikitext and html list (incompatible)", "wikitext": ";hi\n:{{1x|
  • ho
  • }}", "html": "
    hi
    \n
  • ho
  • ", - "render": "
    hi
    \n
  • ho
  • ", + "render": "
    hi
    \n
  • ho
  • ", "print": ";hi\n:{{1x|<li>ho</li>}}" }, { @@ -1252,14 +1252,14 @@ "desc": "1. Lists and block-element interaction", "wikitext": "*
    a\n*b\n
    ಕ", "html": "
    • a
    • \n
    • b
    \n

    ", - "render": "
    • a
    • \n
    • b
    \nಕ", + "render": "
    • a
    • \n
    • b
    \nಕ", "print": "*<div>a\n*b\n</div>" }, { "desc": "2. Lists and block-element interaction", "wikitext": "*{{1x|
    a\n*b\n}}
    ಕ", "html": "
    • a
    • \n
    • b
    \n

    ", - "render": "
    • a
    • \n
    • b
    \nಕ", + "render": "
    • a
    • \n
    • b
    \nಕ", "print": "*{{1x|<div>a\n*b\n}}</div>" }, { @@ -1280,7 +1280,7 @@ "desc": "List items are not parsed correctly following a
     block (T2785)",
     		"wikitext": "*
    foo
    \n*
    bar
    \n*zar", "html": "
    • foo
    • \n
    • bar
    • \n
    • zar
    ", - "render": "
    • foo
    • \n
    • bar
    • \n
    • zar
    ", + "render": "
    • foo
    • \n
    • bar
    • \n
    • zar
    ", "print": "*<pre>foo</pre>\n*<pre>bar</pre>\n*zar" }, { @@ -1301,14 +1301,14 @@ "desc": "Multiple list tags generated by templates", "wikitext": "{{1x|
  • }}a\n{{1x|
  • }}b\n{{1x|
  • }}c", "html": "
  • a\n
  • b\n
  • c
  • ", - "render": "
  • a\n
  • b\n
  • c", + "render": "
  • a\n
  • b\n
  • c", "print": "{{1x|<li>}}a\n{{1x|<li>}}b\n{{1x|<li>}}c" }, { "desc": "Multiple newlines in between HTML list items don't induce paragraph wrapping", "wikitext": "
      \n
    • hi
    • \n\n\n\n\n
    • ho
    • \n
    \n\n
    \n
    hi
    \n
    ho
    123
    \n
    \n\n\n
    ", "html": "
      \n
    • hi
    • \n\n\n\n\n
    • ho
    • \n
    \n
    \n
    hi
    \n
    ho
    123
    \n
    \n\n\n
    ", - "render": "
      \n
    • hi
    • \n\n\n\n\n
    • ho
    • \n
    \n
    \n
    hi
    \n
    ho
    123
    \n
    \n\n\n
    ", + "render": "
      \n
    • hi
    • \n\n\n\n\n
    • ho
    • \n
    \n
    \n
    hi
    \n
    ho
    123
    \n
    \n\n\n
    ", "print": "<ul>\n<li>hi</li>\n\n\n\n\n<li>ho</li>\n</ul>\n\n<dl>\n<dt>hi</dt>\n<dd>ho<div>123</div>\n</dd>\n\n\n</dl>" }, { @@ -1329,7 +1329,7 @@ "desc": "Test the li-hack (a hack from Tidy days, but doesn't work as advertised with Remex)", "wikitext": "*foo\n*
  • li-hack\n**bar1\n*{{1x|
  • templated li-hack}}\n**bar2\n*
  • unsupported li-hack with preceding comments\n\n
      \n
    • not a li-hack\n
    • \n
    ", "html": "
    • foo
    • \n
    • li-hack\n
      • bar1
    • \n
    • templated li-hack\n
      • bar2
    • \n
    • unsupported li-hack with preceding comments
    \n
      \n
    • not a li-hack\n
    • \n
    ", - "render": "
    • foo
    • \n
    • li-hack\n
      • bar1
    • \n
    • templated li-hack\n
      • bar2
    • \n
    • unsupported li-hack with preceding comments
    \n
      \n
    • not a li-hack\n
    • \n
    ", + "render": "
    • foo
    • \n
    • li-hack\n
      • bar1
    • \n
    • templated li-hack\n
      • bar2
    • \n
    • unsupported li-hack with preceding comments
    \n
      \n
    • not a li-hack\n
    • \n
    ", "print": "*foo\n*<li>li-hack\n**bar1\n*{{1x|<li>templated li-hack}}\n**bar2\n*<!--foo--><li> unsupported li-hack with preceding comments\n\n<ul>\n<li><li>not a li-hack\n</li>\n</ul>" }, { @@ -1350,49 +1350,49 @@ "desc": "Unbalanced closing block tags break a list", "wikitext": "
    \n*a
    \n*b
    ", "html": "
    \n
    • a
    \n
  • b
  • ", - "render": "
    \n
    • a
    \n
  • b
  • ", + "render": "
    \n
    • a
    \n
  • b
  • ", "print": "<div>\n*a</div><div>\n*b</div>" }, { "desc": "Unbalanced closing wikitext block tags break a list", "wikitext": "

    \n*a

    \n*b

    ", "html": "

    \n

    • a

    • \n
    • b

    ", - "render": "

    \n

    • a

    • \n
    • b

    ", + "render": "

    \n

    • a

    • \n
    • b

    ", "print": "<p>\n*a</p><p>\n*b</p>" }, { "desc": "Unbalanced closing non-block tags don't break a list", "wikitext": "\n*a\n*b", "html": "

    \n

    \n
    • a
    • \n
    • b
    ", - "render": "

    \n

    \n
    • a
    • \n
    • b
    ", + "render": "

    \n

    \n
    • a
    • \n
    • b
    ", "print": "<span>\n*a</span><span>\n*b</span>" }, { "desc": "Unclosed formatting tags that straddle lists are closed and reopened", "wikitext": "# a\n#b ", "html": "
    1. a
    2. \n
    3. b
    ", - "render": "
    1. a
    2. \n
    3. b
    ", + "render": "
    1. a
    2. \n
    3. b
    ", "print": "#<s> a\n#b </s>" }, { "desc": "1. List embedded in a formatting tag", "wikitext": "\n*foo\n", "html": "

    \n

    • foo

    \n

    ", - "render": "

    \n

    \n
    • foo
    \n

    \n

    ", + "render": "

    \n

    \n
    • foo
    \n

    \n

    ", "print": "<small>\n*foo\n</small>" }, { "desc": "2. List embedded in a formatting tag in a misnested way", "wikitext": "\n*a\n*b", "html": "

    \n

    • a
    • \n
    • b
    ", - "render": "

    \n

    \n
    • a
    • \n
    • b
    ", + "render": "

    \n

    \n
    • a
    • \n
    • b
    ", "print": "<small>\n*a\n*b</small>" }, { "desc": "3. List embedded in a formatting tag in a misnested way", "wikitext": "\n\n** 123", "html": "

    \n

      • 123
    ", - "render": "

    \n

    \n
      • 123
    ", + "render": "

    \n

    \n
      • 123
    ", "print": "<small>\n\n** 123</small>" }, { @@ -1519,14 +1519,14 @@ "desc": "Template with invalid target containing tags", "wikitext": "{{ab|{{1x|foo}}|{{1x|a}}={{1x|b}}|a = b}}", "html": "

    {{ab|foo|a=b|a = b}}\n

    ", - "render": "

    {{ab|foo|a=b|a = b}}\n

    ", + "render": "

    {{ab|foo|a=b|a = b}}\n

    ", "print": "{{a<b>b</b>|{{1x|foo}}|{{1x|a}}={{1x|b}}|a = b}}" }, { "desc": "Template with invalid target containing unclosed tag", "wikitext": "{{a|{{1x|foo}}|{{1x|a}}={{1x|b}}|a = b}}", "html": "

    {{a|foo|a=b|a = b}}\n

    ", - "render": "

    {{a|foo|a=b|a = b}}\n

    ", + "render": "

    {{a|foo|a=b|a = b}}\n

    ", "print": "{{a<b>|{{1x|foo}}|{{1x|a}}={{1x|b}}|a = b}}" }, { @@ -1666,14 +1666,14 @@ "desc": "T2553: link with two variables in a piped link", "wikitext": "{|\n|[[{{{1}}}|{{{2}}}]]\n|}", "html": "\n\n
    [[{{{1}}}|{{{2}}}]]\n
    ", - "render": "\n\n
    [[{{{1}}}|{{{2}}}]]\n
    ", + "render": "\n\n
    [[{{{1}}}|{{{2}}}]]\n
    ", "print": "{|\n|[[{{{1}}}|{{{2}}}]]\n|}" }, { "desc": "Bail on table cell attribute parsing on wikilink", "wikitext": "{|\n|testing [[one|two]] |three||four\n|testing one two |three||four\n|testing=\"[[one|two]]\" |three||four\n|}", "html": "\n\n\n\n\n\n\n
    testing two |threefour\nthreefour\ntesting=\"two\" |threefour\n
    ", - "render": "\n\n\n\n\n\n\n
    testing two |threefour\nthreefour\ntesting=\"two\" |threefour\n
    ", + "render": "\n\n\n\n\n\n\n
    testing two |threefour\nthreefour\ntesting=\"two\" |threefour\n
    ", "print": "{|\n|testing [[one|two]] |three||four\n|testing one two |three||four\n|testing=\"[[one|two]]\" |three||four\n|}" }, { @@ -1732,14 +1732,14 @@ "desc": "T2529: Template with table, not included at beginning of line", "wikitext": "foo {{table}}", "html": "

    foo \n

    \n\n\n\n\n\n\n
    12\n
    34\n
    ", - "render": "

    foo \n

    \n\n\n\n\n\n
    12\n
    34\n
    ", + "render": "

    foo \n

    \n\n\n\n\n\n
    12\n
    34\n
    ", "print": "foo {{table}}" }, { "desc": "T2523: Template shouldn't eat newline (or add an extra one before table)", "wikitext": "foo\n{{table}}", "html": "

    foo\n

    \n\n\n\n\n\n\n
    12\n
    34\n
    ", - "render": "

    foo\n

    \n\n\n\n\n\n
    12\n
    34\n
    ", + "render": "

    foo\n

    \n\n\n\n\n\n
    12\n
    34\n
    ", "print": "foo\n{{table}}" }, { @@ -1767,7 +1767,7 @@ "desc": "Templates with intersecting and overlapping ranges", "wikitext": "{|{{1x|1=class=\"foo\"\n

    ha

    }}\n{|{{1x|1=class=\"bar\"\n

    ho

    }}\n{{1x|{{!}}hi}}\n|}", "html": "

    ha

    \n\n

    ho

    \n\n\n
    hi\n
    ", - "render": "

    ha

    \n
    \n

    ho

    \n\n
    hi\n
    ", + "render": "

    ha

    \n
    \n

    ho

    \n\n
    hi\n
    ", "print": "{|{{1x|1=class=\"foo\"\n<p>ha</p>}}\n{|{{1x|1=class=\"bar\"\n<p>ho</p>}}\n{{1x|{{!}}hi}}\n|}" }, { @@ -1870,7 +1870,7 @@ "desc": "Unbalanced includeonly and noinclude tags", "wikitext": "{|\n|a\n|b\n|c\n|d\n|}", "html": "\n\n\n\n\n
    a\nb\nc</includeonly>\nd</includeonly></includeonly>\n
    ", - "render": "\n\n\n\n\n
    a\nb\nc</includeonly>\nd</includeonly></includeonly>\n
    ", + "render": "\n\n\n\n\n
    a\nb\nc</includeonly>\nd</includeonly></includeonly>\n
    ", "print": "{|\n|a</noinclude>\n|b</noinclude></noinclude>\n|c</noinclude></includeonly>\n|d</includeonly></includeonly>\n|}" }, { @@ -1911,14 +1911,14 @@ "desc": "Parsoid: Merge double tds (T52603)", "wikitext": "{|\n|{{1x|{{!}} foo}}\n|}", "html": "\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": "{|\n|{{1x|{{!}} foo}}\n|}" }, { "desc": "Parsoid: Merge double tds in nested transclusion content (T52603)", "wikitext": "{{1x|
    }}\n{|\n|{{1x|{{!}} foo}}\n|}\n{{1x|
    }}", "html": "
    \n\n\n
    foo\n
    \n
    ", - "render": "
    \n\n\n
    foo\n
    \n
    ", + "render": "
    \n\n\n
    foo\n
    \n
    ", "print": "{{1x|<div>}}\n{|\n|{{1x|{{!}} foo}}\n|}\n{{1x|</div>}}" }, { @@ -1958,7 +1958,7 @@ "desc": "4. includeonly in table attributes", "wikitext": "{|\n|- \n|-\n|a\n\n|- \n|-\n|b\n\n|}", "html": "\n\n\n\n\n
    a\n
    ", - "render": "\n\n
    a\n
    ", + "render": "\n\n
    a\n
    ", "print": "{|\n|- <noinclude>\n|-\n|a\n</noinclude>\n|- <includeonly>\n|-\n|b\n</includeonly>\n|}" }, { @@ -1996,7 +1996,7 @@ "desc": "Orphaned table row wikitext with templated table for an attribute should not duplicate table", "wikitext": "|-{{1x|\n{{{!}}\n{{!}}foo\n{{!}}}\n}}", "html": "

    |-\n

    \n\n\n
    foo\n
    ", - "render": "

    |-\n

    \n\n\n
    foo\n
    ", + "render": "

    |-\n

    \n\n\n
    foo\n
    ", "print": "|-{{1x|\n{{{!}}\n{{!}}foo\n{{!}}}\n}}" }, { @@ -2024,7 +2024,7 @@ "desc": "Templates: 2. Inside a block tag", "wikitext": "
    {{1x|Foo}}
    \n
    {{1x|Foo}}
    ", "html": "
    Foo
    \n

    Foo

    ", - "render": "
    Foo
    \n
    Foo
    ", + "render": "
    Foo
    \n
    Foo
    ", "print": "<div>{{1x|Foo}}</div>\n<blockquote>{{1x|Foo}}</blockquote>" }, { @@ -2045,7 +2045,7 @@ "desc": "Templates: P-wrapping: 1c. Templates on consecutive lines", "wikitext": "{{1x|Foo}}\n{{1x|bar}}
    baz
    ", "html": "

    Foo\n

    \nbar

    baz
    ", - "render": "

    Foo\n

    \nbar
    baz
    ", + "render": "

    Foo\n

    \nbar
    baz
    ", "print": "{{1x|Foo}}\n{{1x|bar}} <div>baz</div>" }, { @@ -2059,7 +2059,7 @@ "desc": "Templates: Scopes should not be expanded unnecessarily", "wikitext": "{{1x|
    a
    }}b{{1x|\n
    c
    }}", "html": "
    a

    b\n

    c
    ", - "render": "
    a
    b\n
    c
    ", + "render": "
    a
    b\n
    c
    ", "print": "{{1x|<div>a</div>}}b{{1x|\n<div>c</div>}}" }, { @@ -2080,14 +2080,14 @@ "desc": "Templates: Block Tags: 1. Multiple template uses", "wikitext": "{{1x|
    Foo
    }}
    bar
    {{1x|
    baz
    }}", "html": "
    Foo
    bar
    baz
    ", - "render": "
    Foo
    bar
    baz
    ", + "render": "
    Foo
    bar
    baz
    ", "print": "{{1x|<div>Foo</div>}}<div>bar</div>{{1x|<div>baz</div>}}" }, { "desc": "Templates: Block Tags: 2. Back-to-back template uses", "wikitext": "{{1x|
    Foo
    }}{{1x|
    bar
    }}", "html": "
    Foo
    bar
    ", - "render": "
    Foo
    bar
    ", + "render": "
    Foo
    bar
    ", "print": "{{1x|<div>Foo</div>}}{{1x|<div>bar</div>}}" }, { @@ -2101,7 +2101,7 @@ "desc": "Drop stripped tag markers, unless they have encapsulation info", "wikitext": "{{1x|}}", "html": "", - "render": "", + "render": "", "print": "{{1x|<tr></tr>}}" }, { @@ -2218,14 +2218,14 @@ "desc": "Templates: Support for templates generating attributes and content", "wikitext": "{| {{mixed_attr_content_template}}\n|-\n|bar\n|}", "html": "\n\n\n\n\n
    foo\n
    bar\n
    ", - "render": "\n\n\n
    foo\n
    bar\n
    ", + "render": "\n\n\n
    foo\n
    bar\n
    ", "print": "{| {{mixed_attr_content_template}}\n|-\n|bar\n|}" }, { "desc": "Templates: Support for templates generating table attributes and content (with fostered categories)", "wikitext": "{| {{mixed_attr_content_template_2}}\n|-\n|bar\n|}", "html": "\n\n\n\n
    foo\n
    bar\n
    ", - "render": "\n\n\n
    foo\n
    bar\n
    ", + "render": "\n\n\n
    foo\n
    bar\n
    ", "print": "{| {{mixed_attr_content_template_2}}\n|-\n|bar\n|}" }, { @@ -2244,154 +2244,154 @@ "desc": "2. Entities and nowikis inside templated attributes should be handled correctly", "wikitext": "{|\n|{{table_attribs_3}}\n|}", "html": "\n\n
    Foo\n
    ", - "render": "\n\n
    Foo\n
    ", + "render": "\n\n
    Foo\n
    ", "print": "{|\n|{{table_attribs_3}}\n|}" }, { "desc": "3. Entities and nowikis inside templated attributes should be handled correctly inside templated tables", "wikitext": "{{tbl-start}}\n|{{table_attribs_3}}\n{{tbl-end}}", "html": "\n\n
    Foo\n
    ", - "render": "\n\n
    Foo\n
    ", + "render": "\n\n
    Foo\n
    ", "print": "{{tbl-start}}\n|{{table_attribs_3}}\n{{tbl-end}}" }, { "desc": "4. Entities and nowikis inside templated attributes should be handled correctly inside templated tables", "wikitext": "{|\n|{{table_attribs_6}} hi\n|}", "html": "\n\n
    hi\n
    ", - "render": "\n\n
    hi\n
    ", + "render": "\n\n
    hi\n
    ", "print": "{|\n|{{table_attribs_6}} hi\n|}" }, { "desc": "Extension tag in templated tag attribute", "wikitext": "{{1x|1=\n{{{!}} class=\"123\" \n{{!}} hi\n{{!}}}\n}}", "html": "\n\n
    hi\n
    ", - "render": "\n\n
    hi\n
    ", + "render": "\n\n
    hi\n
    ", "print": "{{1x|1=\n{{{!}} class=\"123\" <nowiki />\n{{!}} hi\n{{!}}}\n}}" }, { "desc": "Templates: HTML Tables: 1. Generating start of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "{{1x|<table><tr><td>foo</td>}}</tr></table>" }, { "desc": "Templates: HTML Tables: 2a. Generating middle of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr>{{1x|<td>foo</td>}}</tr></table>" }, { "desc": "Templates: HTML Tables: 2b. Generating middle of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table>{{1x|<tr><td>foo</td></tr>}}</table>" }, { "desc": "Templates: HTML Tables: 3. Generating end of a HTML table", "wikitext": "{{1x|
    foo
    }}", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr>{{1x|<td>foo</td></tr></table>}}" }, { "desc": "Templates: HTML Tables: 4a. Generating a single tag of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "{{1x|<table>}}<tr><td>foo</td></tr></table>" }, { "desc": "Templates: HTML Tables: 4b. Generating a single tag of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table>{{1x|<tr>}}<td>foo</td></tr></table>" }, { "desc": "Templates: HTML Tables: 4c. Generating a single tag of a HTML table", "wikitext": "{{1x|
    }}foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr>{{1x|<td>}}foo</td></tr></table>" }, { "desc": "Templates: HTML Tables: 4d. Generating a single tag of a HTML table", "wikitext": "}}
    foo{{1x|
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr><td>foo{{1x|</td>}}</tr></table>" }, { "desc": "Templates: HTML Tables: 4e. Generating a single tag of a HTML table", "wikitext": "{{1x|}}
    foo
    ", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr><td>foo</td>{{1x|</tr>}}</table>" }, { "desc": "Templates: HTML Tables: 4f. Generating a single tag of a HTML table", "wikitext": "{{1x|
    foo
    }}", "html": "
    foo
    ", - "render": "
    foo
    ", + "render": "
    foo
    ", "print": "<table><tr><td>foo</td></tr>{{1x|</table>}}" }, { "desc": "Templates: HTML Tables: 5. Proper fostering of categories from inside", "wikitext": "[[Category:foo1]]
    foo
    \n\n[[Category:bar1]][[Category:bar2]]
    foo
    ", "html": "
    foo
    \n
    foo
    ", - "render": "
    foo
    \n
    foo
    ", + "render": "
    foo
    \n
    foo
    ", "print": "<table>[[Category:foo1]]<tr><td>foo</td></tr></table>\n<!--Two categories (T52330)-->\n<table>[[Category:bar1]][[Category:bar2]]<tr><td>foo</td></tr></table>" }, { "desc": "Templates: Wiki Tables: 1a. Fostering of entire template content", "wikitext": "{|\n{{1x|a}}\n|}", "html": "a\n
    ", - "render": "a\n
    ", + "render": "a\n
    ", "print": "{|\n{{1x|a}}\n|}" }, { "desc": "Templates: Wiki Tables: 1b. Fostering of entire template content", "wikitext": "{|\n{{1x|
    }}\nfoo\n{{1x|
    }}\n|}", "html": "
    \n

    foo\n

    \n
    \n\n
    ", - "render": "
    foo
    \n
    ", + "render": "
    foo
    \n
    ", "print": "{|\n{{1x|<div>}}\nfoo\n{{1x|</div>}}\n|}" }, { "desc": "Templates: Wiki Tables: 2. Fostering of partial template content", "wikitext": "{|\n{{1x|a\n
    b
    }}\n|}", "html": "a\n
    b
    \n
    ", - "render": "a
    b
    \n
    ", + "render": "a
    b
    \n
    ", "print": "{|\n{{1x|a\n<div>b</div>}}\n|}" }, { "desc": "Templates: Wiki Tables: 3. td-content via multiple templates", "wikitext": "{|\n{{1x|{{pipe}}a}}{{1x|b}}\n|}", "html": "\n\n
    ab\n
    ", - "render": "\n\n
    ab\n
    ", + "render": "\n\n
    ab\n
    ", "print": "{|\n{{1x|{{pipe}}a}}{{1x|b}}\n|}" }, { "desc": "Templates: Wiki Tables: 4. Templated tags, no content", "wikitext": "{{tbl-start}}\n{{tbl-end}}", "html": "\n
    ", - "render": "\n
    ", + "render": "\n
    ", "print": "{{tbl-start}}\n{{tbl-end}}" }, { "desc": "Templates: Wiki Tables: 5. Templated tags, regular td-tags", "wikitext": "{{tbl-start}}\n|foo\n{{tbl-end}}", "html": "\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": "{{tbl-start}}\n|foo\n{{tbl-end}}" }, { "desc": "Templates: Wiki Tables: 6. Templated tags, templated td-tags", "wikitext": "{{tbl-start}}\n{{!}}foo\n{{tbl-end}}", "html": "\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": "{{tbl-start}}\n{{!}}foo\n{{tbl-end}}" }, { @@ -2422,14 +2422,14 @@ "desc": "Templates: Ugly nesting: 3. Quotes opened/closed across templates (1x_with_div)", "wikitext": "{{1x_with_div|''a}}{{1x_with_div|b''c''d}}{{1x_with_div|''e}}", "html": "
    a
    bcd
    e
    ", - "render": "
    a
    bcd
    e
    ", + "render": "
    a
    bcd
    e
    ", "print": "{{1x_with_div|''a}}{{1x_with_div|b''c''d}}{{1x_with_div|''e}}" }, { "desc": "Templates: Ugly nesting: 4. Divs opened/closed across templates", "wikitext": "a
    b{{1x|c
    d}}e", "html": "

    a

    bc

    de

    ", - "render": "a
    bc
    de", + "render": "a
    bc
    de", "print": "a<div>b{{1x|c</div>d}}e" }, { @@ -2472,7 +2472,7 @@ "desc": "Compound transclusion with template and top level templatearg", "wikitext": "{{1x|}}\n{{{top|}}}\n
    123
    ", "html": "\n\n
    123
    ", - "render": "\n\n
    123
    ", + "render": "\n\n
    123
    ", "print": "{{1x|<table>}}\n{{{top|<td>123</td>}}}\n</table>" }, { @@ -2768,7 +2768,7 @@ "desc": "No regressions on internal links following category (T174639)", "wikitext": "[[Category:Foo]]
    a\n\n[[Foo]]
    ", "html": "
    a\nFoo
    ", - "render": "
    a\nFoo
    ", + "render": "
    a\nFoo
    ", "print": "[[Category:Foo]]<div>a\n\n[[Foo]]</div>" }, { @@ -2885,7 +2885,7 @@ "desc": "div with no attributes", "wikitext": "
    HTML rocks
    ", "html": "
    HTML rocks
    ", - "render": "
    HTML rocks
    ", + "render": "
    HTML rocks
    ", "print": "<div>HTML rocks</div>" }, { @@ -2939,7 +2939,7 @@ "desc": "table with multiple empty attribute values", "wikitext": "{| title= id=\n|hi\n|}", "html": "\n\n
    hi\n
    ", - "render": "\n\n
    hi\n
    ", + "render": "\n\n
    hi\n
    ", "print": "{| title= id=\n|hi\n|}" }, { @@ -2967,7 +2967,7 @@ "desc": "Table multiple attributes correction", "wikitext": "{|\n!+ class=\"error\" class=\"awesome\"|status\n|}", "html": "\n\n
    status\n
    ", - "render": "\n\n
    status\n
    ", + "render": "\n\n
    status\n
    ", "print": "{|\n!+ class=\"error\" class=\"awesome\"|status\n|}" }, { @@ -3030,7 +3030,7 @@ "desc": "HTML5 tags", "wikitext": "five\n\nThis highlighted text", "html": "

    five\n\nThis highlighted text\n

    ", - "render": "

    five\n\nThis highlighted text\n

    ", + "render": "

    five\n\nThis highlighted text\n

    ", "print": "<data value=\"5\">five</data>\n<time datetime=\"2000-01-01T00:00Z\">The new millenium started</time>\n<mark>This highlighted text</mark>" }, { @@ -3044,56 +3044,56 @@ "desc": "Element with broken attribute syntax", "wikitext": "
    hi
    \n
    ho
    ", "html": "
    hi
    \n
    ho
    ", - "render": "
    hi
    \n
    ho
    ", + "render": "
    hi
    \n
    ho
    ", "print": "<div style=\" style=\"123\">hi</div>\n<div =>ho</div>" }, { "desc": "Ensure that HTML adoption agency algorithm is properly implemented.", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<small>X<small>Y</small>Z</small>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<kbd>X<kbd>Y</kbd>Z</kbd>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<em>X<em>Y</em>Z</em>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<strong>X<strong>Y</strong>Z</strong>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<q>X<q>Y</q>Z</q>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<ruby>X<ruby>Y</ruby>Z</ruby>" }, { "desc": "Nesting of ", "wikitext": "XYZ", "html": "

    XYZ\n

    ", - "render": "

    XYZ\n

    ", + "render": "

    XYZ\n

    ", "print": "<bdo>X<bdo>Y</bdo>Z</bdo>" }, { @@ -3395,14 +3395,14 @@ "desc": "Table attribute legitimate extension", "wikitext": "{|\n!+ style=\"color:blue\"|status\n|}", "html": "\n\n
    status\n
    ", - "render": "\n\n
    status\n
    ", + "render": "\n\n
    status\n
    ", "print": "{|\n!+ style=\"<nowiki>color:blue</nowiki>\"|status\n|}" }, { "desc": "Table attribute safety", "wikitext": "{|\n!+ style=\"border-width:expression(0+alert(document.cookie))\"|status\n|}", "html": "\n\n
    status\n
    ", - "render": "\n\n
    status\n
    ", + "render": "\n\n
    status\n
    ", "print": "{|\n!+ style=\"<nowiki>border-width:expression(0+alert(document.cookie))</nowiki>\"|status\n|}" }, { @@ -3470,14 +3470,14 @@ "desc": "Sanitizer: Closing of open tags", "wikitext": "
    ", "html": "

    ", - "render": "
    ", + "render": "
    ", "print": "<s></s><table></table>" }, { "desc": "Sanitizer: Closing of open but not closed tags", "wikitext": "foo", "html": "

    foo\n

    ", - "render": "

    foo\n

    ", + "render": "

    foo\n

    ", "print": "<s>foo" }, { @@ -3550,7 +3550,7 @@ "desc": "Self closed html pairs (T7487)", "wikitext": "
    Centered text
    \n
    In div text
    ", "html": "
    Centered text
    In div text
    ", - "render": "
    Centered text
    \n
    In div text
    ", + "render": "
    Centered text
    \n
    In div text
    ", "print": "<center><font id=\"bug\" />Centered text</center>\n<div><font id=\"bug2\" />In div text</div>" }, { @@ -3578,63 +3578,63 @@ "desc": "HTML bullet list, closed tags (T7497)", "wikitext": "
      \n
    • One
    • \n
    • Two
    • \n
    ", "html": "
      \n
    • One
    • \n
    • Two
    • \n
    ", - "render": "
      \n
    • One
    • \n
    • Two
    • \n
    ", + "render": "
      \n
    • One
    • \n
    • Two
    • \n
    ", "print": "<ul>\n<li>One</li>\n<li>Two</li>\n</ul>" }, { "desc": "HTML bullet list, unclosed tags (T7497)", "wikitext": "
      \n
    • One\n
    • Two\n
    ", "html": "
      \n
    • One\n
    • Two\n
    ", - "render": "
      \n
    • One\n
    • Two\n
    ", + "render": "
      \n
    • One\n
    • Two\n
    ", "print": "<ul>\n<li>One\n<li>Two\n</ul>" }, { "desc": "HTML ordered list, closed tags (T7497)", "wikitext": "
      \n
    1. One
    2. \n
    3. Two
    4. \n
    ", "html": "
      \n
    1. One
    2. \n
    3. Two
    4. \n
    ", - "render": "
      \n
    1. One
    2. \n
    3. Two
    4. \n
    ", + "render": "
      \n
    1. One
    2. \n
    3. Two
    4. \n
    ", "print": "<ol>\n<li>One</li>\n<li>Two</li>\n</ol>" }, { "desc": "HTML ordered list, unclosed tags (T7497)", "wikitext": "
      \n
    1. One\n
    2. Two\n
    ", "html": "
      \n
    1. One\n
    2. Two\n
    ", - "render": "
      \n
    1. One\n
    2. Two\n
    ", + "render": "
      \n
    1. One\n
    2. Two\n
    ", "print": "<ol>\n<li>One\n<li>Two\n</ol>" }, { "desc": "HTML nested bullet list, closed tags (T7497)", "wikitext": "
      \n
    • One
    • \n
    • Two:\n
        \n
      • Sub-one
      • \n
      • Sub-two
      • \n
      \n
    • \n
    ", "html": "
      \n
    • One
    • \n
    • Two:\n
        \n
      • Sub-one
      • \n
      • Sub-two
      • \n
      \n
    • \n
    ", - "render": "
      \n
    • One
    • \n
    • Two:\n
        \n
      • Sub-one
      • \n
      • Sub-two
      • \n
      \n
    • \n
    ", + "render": "
      \n
    • One
    • \n
    • Two:\n
        \n
      • Sub-one
      • \n
      • Sub-two
      • \n
      \n
    • \n
    ", "print": "<ul>\n<li>One</li>\n<li>Two:\n<ul>\n<li>Sub-one</li>\n<li>Sub-two</li>\n</ul>\n</li>\n</ul>" }, { "desc": "HTML nested bullet list, open tags (T7497)", "wikitext": "
      \n
    • One\n
    • Two:\n
        \n
      • Sub-one\n
      • Sub-two\n
      \n
    ", "html": "
      \n
    • One\n
    • Two:\n
        \n
      • Sub-one\n
      • Sub-two\n
      \n
    ", - "render": "
      \n
    • One\n
    • Two:\n
        \n
      • Sub-one\n
      • Sub-two\n
      \n
    ", + "render": "
      \n
    • One\n
    • Two:\n
        \n
      • Sub-one\n
      • Sub-two\n
      \n
    ", "print": "<ul>\n<li>One\n<li>Two:\n<ul>\n<li>Sub-one\n<li>Sub-two\n</ul>\n</ul>" }, { "desc": "HTML nested ordered list, closed tags (T7497)", "wikitext": "
      \n
    1. One
    2. \n
    3. Two:\n
        \n
      1. Sub-one
      2. \n
      3. Sub-two
      4. \n
      \n
    4. \n
    ", "html": "
      \n
    1. One
    2. \n
    3. Two:\n
        \n
      1. Sub-one
      2. \n
      3. Sub-two
      4. \n
      \n
    4. \n
    ", - "render": "
      \n
    1. One
    2. \n
    3. Two:\n
        \n
      1. Sub-one
      2. \n
      3. Sub-two
      4. \n
      \n
    4. \n
    ", + "render": "
      \n
    1. One
    2. \n
    3. Two:\n
        \n
      1. Sub-one
      2. \n
      3. Sub-two
      4. \n
      \n
    4. \n
    ", "print": "<ol>\n<li>One</li>\n<li>Two:\n<ol>\n<li>Sub-one</li>\n<li>Sub-two</li>\n</ol>\n</li>\n</ol>" }, { "desc": "HTML nested ordered list, open tags (T7497)", "wikitext": "
      \n
    1. One\n
    2. Two:\n
        \n
      1. Sub-one\n
      2. Sub-two\n
      \n
    ", "html": "
      \n
    1. One\n
    2. Two:\n
        \n
      1. Sub-one\n
      2. Sub-two\n
      \n
    ", - "render": "
      \n
    1. One\n
    2. Two:\n
        \n
      1. Sub-one\n
      2. Sub-two\n
      \n
    ", + "render": "
      \n
    1. One\n
    2. Two:\n
        \n
      1. Sub-one\n
      2. Sub-two\n
      \n
    ", "print": "<ol>\n<li>One\n<li>Two:\n<ol>\n<li>Sub-one\n<li>Sub-two\n</ol>\n</ol>" }, { "desc": "HTML ordered list item with parameters oddity", "wikitext": "
    1. One
    2. \n
    ", "html": "
    1. One
    2. \n
    ", - "render": "
    1. One
    2. \n
    ", + "render": "
    1. One
    2. \n
    ", "print": "<ol><li id=\"fragment\">One</li>\n</ol>" }, { @@ -3648,42 +3648,42 @@ "desc": "Fuzz testing: Parser13", "wikitext": "{| \n| http://a|", "html": "\n\n\n\n
    \n
    ", - "render": "\n\n
    \n
    ", + "render": "\n\n
    \n
    ", "print": "{| \n| http://a|" }, { "desc": "Fuzz testing: Parser16", "wikitext": "{|\n!https://||||||", "html": "\n\n\n\n\n\n
    https://\n\n
    ", - "render": "\n\n\n\n\n
    https://\n
    ", + "render": "\n\n\n\n\n
    https://\n
    ", "print": "{|\n!https://||||||" }, { "desc": "Fuzz testing: Parser21", "wikitext": "{|\n!irc://{{ftp://a\" onmouseover=\"alert('hello world');\"\n|", "html": "\n\n\n\n\n
    irc://{{ftp://a\" onmouseover=\"alert('hello world');\"\n\n
    ", - "render": "\n\n\n
    irc://{{ftp://a\" onmouseover=\"alert('hello world');\"\n\n
    ", + "render": "\n\n\n
    irc://{{ftp://a\" onmouseover=\"alert('hello world');\"\n\n
    ", "print": "{|\n!irc://{{ftp://a\" onmouseover=\"alert('hello world');\"\n|" }, { "desc": "Fuzz testing: Parser22", "wikitext": "http://===r:::https://b\n\n{|", "html": "

    http://===r:::https://b\n

    \n\n\n
    ", - "render": "

    http://===r:::https://b\n

    \n\n
    ", + "render": "

    http://===r:::https://b\n

    \n\n
    ", "print": "http://===r:::https://b\n\n{|" }, { "desc": "Fuzz testing: Parser24 (minimized)", "wikitext": "{{}}", "html": "

    {{}}\n

    ", - "render": "

    {{}}\n

    ", + "render": "

    {{}}\n

    ", "print": "{{<u {{{{[[Sx-->}}" }, { "desc": "Fuzz testing: Parser24", "wikitext": "{|\n{{{|\n}}}} >\n
    \n\nMOVE YOUR MOUSE CURSOR OVER THIS TEXT\n|", "html": "{{{|\n}}}} >\n
    \n\nMOVE YOUR MOUSE CURSOR OVER THIS TEXT\n
    \n\n\n
    \n
    ", - "render": "{{{| }}}} >
    MOVE YOUR MOUSE CURSOR OVER THIS TEXT\n\n
    \n
    ", + "render": "{{{| }}}} >
    MOVE YOUR MOUSE CURSOR OVER THIS TEXT\n\n
    \n
    ", "print": "{|\n{{{|\n<u CLASS=\n| {{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--><noinclude>}}}} >\n<br style=\"onmouseover='alert(document.cookie);' \" />\n\nMOVE YOUR MOUSE CURSOR OVER THIS TEXT\n|" }, { @@ -3711,7 +3711,7 @@ "desc": "Fuzz testing: URL adjacent extension (no space, dirty; pre)", "wikitext": "http://example.com
    junk
    ", "html": "

    http://example.com

    junk
    ", - "render": "http://example.com
    junk
    ", + "render": "http://example.com
    junk
    ", "print": "http://example.com<pre>junk</pre>" }, { @@ -3737,14 +3737,14 @@ "desc": "Parsing optional HTML elements (T8171)", "wikitext": "\n \n \n \n \n
    Some tabular data More tabular data ...\n And yet som tabular data
    ", "html": "\n \n \n \n \n
    Some tabular data More tabular data ...\n And yet som tabular data
    ", - "render": "\n \n \n \n \n
    Some tabular data More tabular data ...\n And yet som tabular data
    ", + "render": "\n \n \n \n \n
    Some tabular data More tabular data ...\n And yet som tabular data
    ", "print": "<table>\n <tr>\n <td> Some tabular data</td>\n <td> More tabular data ...\n <td> And yet som tabular data</td>\n </tr>\n</table>" }, { "desc": "Correct handling of , (T8171)", "wikitext": "\n \n \n \n \n \n
    Some tabular data More tabular data ... And yet som tabular data
    ", "html": "\n \n \n \n \n \n
    Some tabular data More tabular data ... And yet som tabular data
    ", - "render": "\n \n \n \n \n \n
    Some tabular data More tabular data ... And yet som tabular data
    ", + "render": "\n \n \n \n \n \n
    Some tabular data More tabular data ... And yet som tabular data
    ", "print": "<table>\n <tr>\n <td> Some tabular data</td>\n <td> More tabular data ...</td>\n <td> And yet som tabular data</td>\n </tr>\n</table>" }, { @@ -3765,7 +3765,7 @@ "desc": "Inline HTML vs wiki block nesting", "wikitext": "Bold paragraph\n\nNew wiki paragraph", "html": "

    Bold paragraph\n

    New wiki paragraph\n

    ", - "render": "

    Bold paragraph\n

    New wiki paragraph\n

    ", + "render": "

    Bold paragraph\n

    New wiki paragraph\n

    ", "print": "<b>Bold paragraph\n\nNew wiki paragraph" }, { @@ -4063,7 +4063,7 @@ "desc": "Single {{!}} in table cell", "wikitext": "{|\n| colspan=\"1\" |foo {{!}} bar\n|}", "html": "\n\n
    foo | bar\n
    ", - "render": "\n\n
    foo | bar\n
    ", + "render": "\n\n
    foo | bar\n
    ", "print": "{|\n| colspan=\"1\" |foo {{!}} bar\n|}" }, { @@ -4159,7 +4159,7 @@ "desc": "T24905: followed by ISBN followed by ", "wikitext": "(fr) ISBN 2753300917 [http://www.example.com example.com]", "html": "

    (fr) ISBN 2753300917 example.com\n

    ", - "render": "

    (fr) ISBN 2753300917 example.com\n

    ", + "render": "

    (fr) ISBN 2753300917 example.com\n

    ", "print": "<abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]" }, { @@ -4281,7 +4281,7 @@ "desc": "Don't fall for the self-closing div", "wikitext": "
    hello world
    ", "html": "
    hello world
    ", - "render": "
    hello world
    ", + "render": "
    hello world
    ", "print": "<div>hello world</div/>" }, { @@ -4400,21 +4400,21 @@ "desc": "T8200: blockquotes and paragraph formatting", "wikitext": "
    \nfoo\n
    \n\nbar\n\n baz", "html": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", - "render": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", + "render": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", "print": "<blockquote>\nfoo\n</blockquote>\n\nbar\n\n baz" }, { "desc": "T10293: Use of center tag ruins paragraph formatting", "wikitext": "
    \nfoo\n
    \n\nbar\n\n baz", "html": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", - "render": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", + "render": "
    \n

    foo\n

    \n
    \n

    bar\n

    \n
    baz\n
    ", "print": "<center>\nfoo\n</center>\n\nbar\n\n baz" }, { "desc": "Parsing of overlapping (improperly nested) inline html tags", "wikitext": "x", "html": "

    x\n

    ", - "render": "

    x\n

    ", + "render": "

    x\n

    ", "print": "<span><s>x</span></s>" }, { @@ -4435,7 +4435,7 @@ "desc": "T2529: Uncovered table already at line-start", "wikitext": "x\n\n{{table}}\ny", "html": "

    x\n

    \n\n\n\n\n\n\n
    12\n
    34\n
    \n

    y\n

    ", - "render": "

    x\n

    \n\n\n\n\n\n
    12\n
    34\n
    \n

    y\n

    ", + "render": "

    x\n

    \n\n\n\n\n\n
    12\n
    34\n
    \n

    y\n

    ", "print": "x\n\n{{table}}\ny" }, { @@ -4463,91 +4463,91 @@ "desc": "Paragraphs inside divs (no extra line breaks)", "wikitext": "
    Line one\n\nLine two
    ", "html": "
    Line one\nLine two
    ", - "render": "
    Line one\nLine two
    ", + "render": "
    Line one\nLine two
    ", "print": "<div>Line one\n\nLine two</div>" }, { "desc": "Paragraphs inside divs (extra line break on open)", "wikitext": "
    \nLine one\n\nLine two
    ", "html": "
    \n

    Line one\n

    \nLine two
    ", - "render": "
    \n

    Line one\n

    \nLine two
    ", + "render": "
    \n

    Line one\n

    \nLine two
    ", "print": "<div>\nLine one\n\nLine two</div>" }, { "desc": "Paragraphs inside divs (extra line break on close)", "wikitext": "
    Line one\n\nLine two\n
    ", "html": "
    Line one\n

    Line two\n

    \n
    ", - "render": "
    Line one\n

    Line two\n

    \n
    ", + "render": "
    Line one\n

    Line two\n

    \n
    ", "print": "<div>Line one\n\nLine two\n</div>" }, { "desc": "Paragraphs inside divs (extra line break on open and close)", "wikitext": "
    \nLine one\n\nLine two\n
    ", "html": "
    \n

    Line one\n

    Line two\n

    \n
    ", - "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", + "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", "print": "<div>\nLine one\n\nLine two\n</div>" }, { "desc": "Nesting tags, paragraphs on lines which begin with
    ", "wikitext": "
    A\nB", "html": "

    A\n

    B\n

    ", - "render": "
    A\n

    B\n

    ", + "render": "
    A\n

    B\n

    ", "print": "<div></div><strong>A\nB</strong>" }, { "desc": "T8200: paragraphs inside blockquotes (no extra line breaks)", "wikitext": "
    Line one\n\nLine two
    ", "html": "

    Line one\nLine two

    ", - "render": "
    Line one\nLine two
    ", + "render": "
    Line one\nLine two
    ", "print": "<blockquote>Line one\n\nLine two</blockquote>" }, { "desc": "T8200: paragraphs inside blockquotes (extra line break on open)", "wikitext": "
    \nLine one\n\nLine two
    ", "html": "
    \n

    Line one\n

    \nLine two

    ", - "render": "
    \n

    Line one\n

    \nLine two
    ", + "render": "
    \n

    Line one\n

    \nLine two
    ", "print": "<blockquote>\nLine one\n\nLine two</blockquote>" }, { "desc": "T8200: paragraphs inside blockquotes (extra line break on close)", "wikitext": "
    Line one\n\nLine two\n
    ", "html": "

    Line one\n

    Line two\n

    \n
    ", - "render": "
    Line one\n

    Line two\n

    \n
    ", + "render": "
    Line one\n

    Line two\n

    \n
    ", "print": "<blockquote>Line one\n\nLine two\n</blockquote>" }, { "desc": "T8200: paragraphs inside blockquotes (extra line break on open and close)", "wikitext": "
    \nLine one\n\nLine two\n
    ", "html": "
    \n

    Line one\n

    Line two\n

    \n
    ", - "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", + "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", "print": "<blockquote>\nLine one\n\nLine two\n</blockquote>" }, { "desc": "Paragraphs inside blockquotes/divs (no extra line breaks)", "wikitext": "
    Line one\n\nLine two
    ", "html": "
    Line one\nLine two
    ", - "render": "
    Line one\nLine two
    ", + "render": "
    Line one\nLine two
    ", "print": "<blockquote><div>Line one\n\nLine two</div></blockquote>" }, { "desc": "Paragraphs inside blockquotes/divs (extra line break on open)", "wikitext": "
    \nLine one\n\nLine two
    ", "html": "
    \n

    Line one\n

    \nLine two
    ", - "render": "
    \n

    Line one\n

    \nLine two
    ", + "render": "
    \n

    Line one\n

    \nLine two
    ", "print": "<blockquote><div>\nLine one\n\nLine two</div></blockquote>" }, { "desc": "Paragraphs inside blockquotes/divs (extra line break on close)", "wikitext": "
    Line one\n\nLine two\n
    ", "html": "
    Line one\n

    Line two\n

    \n
    ", - "render": "
    Line one\n

    Line two\n

    \n
    ", + "render": "
    Line one\n

    Line two\n

    \n
    ", "print": "<blockquote><div>Line one\n\nLine two\n</div></blockquote>" }, { "desc": "Paragraphs inside blockquotes/divs (extra line break on open and close)", "wikitext": "
    \nLine one\n\nLine two\n
    ", "html": "
    \n

    Line one\n

    Line two\n

    \n
    ", - "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", + "render": "
    \n

    Line one\n

    Line two\n

    \n
    ", "print": "<blockquote><div>\nLine one\n\nLine two\n</div></blockquote>" }, { @@ -4955,7 +4955,7 @@ "desc": "Ignore pipe between table row attributes", "wikitext": "{|\n|quux\n|- id=foo | style='color: red'\n|bar\n|}", "html": "\n\n\n\n
    quux\n
    bar\n
    ", - "render": "\n\n\n
    quux\n
    bar\n
    ", + "render": "\n\n\n
    quux\n
    bar\n
    ", "print": "{|\n|quux\n|- id=foo | style='color: red'\n|bar\n|}" }, { @@ -5116,49 +5116,49 @@ "desc": "Table with broken attribute value quoting", "wikitext": "{|\n| title=\"Hello world|Foo\n|}", "html": "\n\n
    Foo\n
    ", - "render": "\n\n
    Foo\n
    ", + "render": "\n\n
    Foo\n
    ", "print": "{|\n| title=\"Hello world|Foo\n|}" }, { "desc": "Table with broken attribute value quoting on consecutive lines", "wikitext": "{|\n| title=\"Hello world|Foo\n| style=\"color:red|Bar\n|}", "html": "\n\n\n
    Foo\nBar\n
    ", - "render": "\n\n\n
    Foo\nBar\n
    ", + "render": "\n\n\n
    Foo\nBar\n
    ", "print": "{|\n| title=\"Hello world|Foo\n| style=\"color:red|Bar\n|}" }, { "desc": "Accept empty td cell attribute", "wikitext": "{|\n| align=\"center\" |foo|| |\n|}", "html": "\n\n\n
    foo\n
    ", - "render": "\n\n\n
    foo\n
    ", + "render": "\n\n\n
    foo\n
    ", "print": "{|\n| align=\"center\" |foo|| |\n|}" }, { "desc": "Non-empty attributes in th-cells", "wikitext": "{|\n!Foo!! style=\"color: red\" |Bar\n|}", "html": "\n\n\n
    FooBar\n
    ", - "render": "\n\n\n
    FooBar\n
    ", + "render": "\n\n\n
    FooBar\n
    ", "print": "{|\n!Foo!! style=\"color: red\" |Bar\n|}" }, { "desc": "Accept empty attributes in th-cells", "wikitext": "{|\n!|foo!!|bar\n|}", "html": "\n\n\n
    foobar\n
    ", - "render": "\n\n\n
    foobar\n
    ", + "render": "\n\n\n
    foobar\n
    ", "print": "{|\n!|foo!!|bar\n|}" }, { "desc": "Empty table rows go away", "wikitext": "{|\n|Hello\n|there\n|- class=\"foo\"\n|-\n|}", "html": "\n\n\n\n\n
    Hello\nthere\n
    ", - "render": "\n\n\n
    Hello\nthere\n
    ", + "render": "\n\n\n
    Hello\nthere\n
    ", "print": "{|\n|Hello\n|there\n|- class=\"foo\"\n|-\n|}" }, { "desc": "RT-ed inter-element separators should be valid separators", "wikitext": "{|\n|- [[foo]]\n|}", "html": "\n\n
    ", - "render": "\n
    ", + "render": "\n
    ", "print": "{|\n|- [[foo]]\n|}" }, { @@ -5170,49 +5170,49 @@ "desc": "Empty TD followed by TD with tpl-generated attribute", "wikitext": "{|\n|-\n|\n|{{1x|style='color:red'}}|foo\n|}", "html": "\n\n\n\n
    \nfoo\n
    ", - "render": "\n\n\n
    \nfoo\n
    ", + "render": "\n\n\n
    \nfoo\n
    ", "print": "{|\n|-\n|\n|{{1x|style='color:red'}}|foo\n|}" }, { "desc": "Indented table with an empty td", "wikitext": " {|\n |-\n |\n |foo\n |}", "html": "\n\n\n\n
    \nfoo\n
    ", - "render": "\n\n\n
    \nfoo\n
    ", + "render": "\n\n\n
    \nfoo\n
    ", "print": " {|\n |-\n |\n |foo\n |}" }, { "desc": "Indented table with blank lines in between (T85627)", "wikitext": " {|\n |foo\n \n \n |}", "html": "\n\n
    foo\n


    \n

    \n
    ", - "render": "\n\n
    foo\n


    \n

    \n
    ", + "render": "\n\n
    foo\n


    \n

    \n
    ", "print": " {|\n |foo\n \n \n |}" }, { "desc": "Indented block & table", "wikitext": "
    foo
    \n {|\n |foo\n |}", "html": "
    foo
    \n\n\n
    foo\n
    ", - "render": "
    foo
    \n\n\n
    foo\n
    ", + "render": "
    foo
    \n\n\n
    foo\n
    ", "print": " <div>foo</div>\n {|\n |foo\n |}" }, { "desc": "Indent and comment before table row", "wikitext": "{|\n |-\n |there\n|}", "html": "\n\n\n
    there\n
    ", - "render": "\n\n
    there\n
    ", + "render": "\n\n
    there\n
    ", "print": "{|\n <!--hi-->|-\n |there\n|}" }, { "desc": "Empty TR followed by a template-generated TR", "wikitext": "{|\n|-\n{{1x|foo}}\n|}", "html": "\n\n\n
    foo
    ", - "render": "foo\n
    ", + "render": "foo\n
    ", "print": "{|\n|-\n{{1x|<tr><td>foo</td></tr>}}\n|}" }, { "desc": "Empty TR followed by mixed-ws-comment line should RT correctly", "wikitext": "{|\n|-\n \n|-\n \n|}", "html": "\n\n\n
    ", - "render": "\n
    ", + "render": "\n
    ", "print": "{|\n|-\n <!--c-->\n|-\n<!--c--> <!--d-->\n|}" }, { @@ -5244,14 +5244,14 @@ "desc": "1. Ensure fostered text content is wrapped in element nodes", "wikitext": "hi
    ho
    ", "html": "hi
    ho
    ", - "render": "hi
    ho
    ", + "render": "hi
    ho
    ", "print": "<table>hi</table><table>ho</table>" }, { "desc": "2. Ensure fostered text content is wrapped in element nodes (traps regressions around fostered marker on the element getting lost)", "wikitext": "\n || ||\n
    a\n
    ", "html": "|| ||\n\n
    a\n
    ", - "render": "\n || ||\n
    a\n
    ", + "render": "\n || ||\n
    a\n
    ", "print": "<table>\n<tr> || ||\n<td> a\n</table>" }, { @@ -5912,7 +5912,7 @@ "desc": "Don't escape pre elements that fail to parse as extension tags", "wikitext": "
    closed is extension tag, so everything is text
    \n
    unclosed is not, so these are tags",
     		"html": "
    closed is extension tag, so everything is <span>text</span>
    \n
    unclosed is not, so these are tags
    ", - "render": "
    closed is extension tag, so everything is <span>text</span>
    \n
    unclosed is not, so these are tags",
    +		"render": "
    closed is extension tag, so everything is <span>text</span>
    \n
    unclosed is not, so these are tags",
     		"print": "<pre>closed is extension tag, so everything is <span>text</span></pre>\n<pre>unclosed is not, so these are <span>tags</span>"
     	},
     	{
    @@ -6013,7 +6013,7 @@
     		"desc": "Decoding of HTML entities in embedded HTML tags",
     		"wikitext": "
    x
    ", "html": "
    x
    ", - "render": "
    x
    ", + "render": "
    x
    ", "print": "<table class=\"1&2&amp;3&amp;amp;4&amp;amp;amp;5\"><tr><td>x</td></tr></table>" }, { @@ -6577,7 +6577,7 @@ "desc": " in expanded attributes of tags (legitimate or otherwise)", "wikitext": "{|\n|- boo\n|x\n|}\n", "html": "\n\n\n
    x\n
    \n
      \n
    1. boo\n
    2. \n
    ", - "render": "\n\n
    x\n
    ", + "render": "\n\n
    x\n
    ", "print": "{|\n|- <ref>boo</ref>\n|x\n|}\n<references />" }, { @@ -6682,14 +6682,14 @@ "desc": "\"follow\" after a named ref but before its parent", "wikitext": "First\nSecond\nThird\n
    \n", "html": "

    [1]\n

    [2]\n

    \n
    \n
      \n

      Second\n

      \n
    1. First\n
    2. \n
    3. Third\n
    4. \n
    ", - "render": "


    \n

    \n
    ", + "render": "


    \n

    \n
    ", "print": "<ref name=\"first\">First</ref>\n<ref follow=\"third\">Second</ref>\n<ref name=\"third\">Third</ref>\n<hr />\n<references />" }, { "desc": "\"follow\" after an anonymous ref but before its parent", "wikitext": "First\nSecond\nThird\n
    \n", "html": "

    [1]\n

    [2]\n

    \n
    \n
      \n

      Second\n

      \n
    1. First\n
    2. \n
    3. Third\n
    4. \n
    ", - "render": "


    \n

    \n
    ", + "render": "


    \n

    \n
    ", "print": "<ref>First</ref>\n<ref follow=\"third\">Second</ref>\n<ref name=\"third\">Third</ref>\n<hr />\n<references />" }, { @@ -7741,14 +7741,14 @@ "desc": "Definition lists: self-closed tag", "wikitext": ";one
    two :two-line fun", "html": "
    one
    two
    \n
    two-line fun
    ", - "render": "
    one
    two
    \n
    two-line fun
    ", + "render": "
    one
    two
    \n
    two-line fun
    ", "print": ";one<br/>two :two-line fun" }, { "desc": "Definition lists: ignore colons inside tags", "wikitext": ";one two : tag fun:::def", "html": "
    one two : tag fun::
    \n
    def
    ", - "render": "
    one two : tag fun::
    \n
    def
    ", + "render": "
    one two : tag fun::
    \n
    def
    ", "print": ";one <b>two : tag <i>fun:</i>:</b>:def" }, { @@ -7762,14 +7762,14 @@ "desc": "T13748: Literal closing tags", "wikitext": "
    \n
    test 1
    \n
    test test test test test
    \n
    test 2
    \n
    test test test test test
    \n
    ", "html": "
    \n
    test 1
    \n
    test test test test test
    \n
    test 2
    \n
    test test test test test
    \n
    ", - "render": "
    \n
    test 1
    \n
    test test test test test
    \n
    test 2
    \n
    test test test test test
    \n
    ", + "render": "
    \n
    test 1
    \n
    test test test test test
    \n
    test 2
    \n
    test test test test test
    \n
    ", "print": "<dl>\n<dt>test 1</dt>\n<dd>test test test test test</dd>\n<dt>test 2</dt>\n<dd>test test test test test</dd>\n</dl>" }, { "desc": "Definition and unordered list using wiki syntax nested in unordered list using html tags.", "wikitext": "
    • \n;term :description\n*unordered\n
    ", "html": "
    • \n
      term
      \n
      description
      \n
      • unordered
      \n
    ", - "render": "
    • \n
      term
      \n
      description
      \n
      • unordered
      \n
    ", + "render": "
    • \n
      term
      \n
      description
      \n
      • unordered
      \n
    ", "print": "<ul><li>\n;term :description\n*unordered\n</li></ul>" }, { @@ -7783,7 +7783,7 @@ "desc": "Nested definition lists using html syntax", "wikitext": "
    x
    \n
    a
    \n
    b
    ", "html": "
    x
    \n
    a
    \n
    b
    ", - "render": "
    x
    \n
    a
    \n
    b
    ", + "render": "
    x
    \n
    a
    \n
    b
    ", "print": "<dl><dt>x</dt>\n<dd>a</dd>\n<dd>b</dd></dl>" }, { @@ -7818,14 +7818,14 @@ "desc": "Definition Lists: Hacky use to indent tables", "wikitext": "::{|\n|foo\n|bar\n|}\nthis text\nshould be left alone", "html": "
    \n\n\n
    foo\nbar\n
    \n

    this text\nshould be left alone\n

    ", - "render": "
    \n\n\n
    foo\nbar\n
    \n

    this text\nshould be left alone\n

    ", + "render": "
    \n\n\n
    foo\nbar\n
    \n

    this text\nshould be left alone\n

    ", "print": "::{|\n|foo\n|bar\n|}\nthis text\nshould be left alone" }, { "desc": "Definition Lists: Hacky use to indent tables (with content following table)", "wikitext": ":{|\n|foo\n|bar\n|} this text should be part of the dl", "html": "
    \n\n\n
    foo\nbar\n
    this text should be part of the dl
    ", - "render": "
    \n\n\n
    foo\nbar\n
    this text should be part of the dl
    ", + "render": "
    \n\n\n
    foo\nbar\n
    this text should be part of the dl
    ", "print": ":{|\n|foo\n|bar\n|} <!--c1--> this text should be part of the dl" }, { @@ -7842,35 +7842,35 @@ "desc": "Definition Lists: Hack use to indent tables, in a nested list context (T262943)", "wikitext": "This is a discussion thread.\n\n:Parent comment.\n::Child comment\n::{|\n|With a\n|Table!\n|}", "html": "

    This is a discussion thread.\n

    \n
    Parent comment.\n
    Child comment
    \n
    \n\n\n
    With a\nTable!\n
    ", - "render": "

    This is a discussion thread.\n

    \n
    Parent comment.\n
    Child comment
    \n
    \n\n\n
    With a\nTable!\n
    ", + "render": "

    This is a discussion thread.\n

    \n
    Parent comment.\n
    Child comment
    \n
    \n\n\n
    With a\nTable!\n
    ", "print": "This is a discussion thread.\n\n:Parent comment.\n::Child comment\n::{|\n|With a\n|Table!\n|}" }, { "desc": "Definition Lists: Hacky use to indent tables (WS-insensitive)", "wikitext": ":{|\n|a\n|}", "html": "
    \n\n
    a\n
    ", - "render": "
    \n\n
    a\n
    ", + "render": "
    \n\n
    a\n
    ", "print": ":{|\n|a\n|}" }, { "desc": "Definition Lists: Hacky use to indent tables (nl-insensitive)", "wikitext": ":{|\n\n\n|a\n|}", "html": "
    \n\n\n\n
    a\n
    ", - "render": "
    \n\n
    a\n
    ", + "render": "
    \n\n
    a\n
    ", "print": ":{|\n\n\n|a\n|}" }, { "desc": "Table / list interaction: indented table with lists in table contents", "wikitext": ":{|\n|-\n|a\n\n*b\n|-\n|c\n\n*d\n|}", "html": "
    \n\n\n\n\n
    a\n
    • b
    \n
    c\n
    • d
    \n
    ", - "render": "
    \n\n\n
    a\n
    • b
    \n
    c\n
    • d
    \n
    ", + "render": "
    \n\n\n
    a\n
    • b
    \n
    c\n
    • d
    \n
    ", "print": ":{|\n|-\n|a\n\n*b\n|-\n|c\n\n*d\n|}" }, { "desc": "Table / list interaction: lists nested in tables nested in indented lists", "wikitext": ":{|\n|\n:a\n:b\n|\n*c\n*d\n|}\n\n*e\n*f", "html": "
    \n\n\n
    \n
    a
    \n
    b
    \n
    \n
    • c
    • \n
    • d
    \n
    \n
    • e
    • \n
    • f
    ", - "render": "
    \n\n\n
    \n
    a
    \n
    b
    \n
    \n
    • c
    • \n
    • d
    \n
    \n
    • e
    • \n
    • f
    ", + "render": "
    \n\n\n
    \n
    a
    \n
    b
    \n
    \n
    • c
    • \n
    • d
    \n
    \n
    • e
    • \n
    • f
    ", "print": ":{|\n|\n:a\n:b\n|\n*c\n*d\n|}\n\n*e\n*f" }, { @@ -8001,14 +8001,14 @@ "desc": "Definition Lists: colons occurring in tags", "wikitext": ";a:b\n;'''a:b'''\n;a:b\n;a:b\n;
    a:b
    \n;
    a\n:b
    \n;{{1x|a:b}}\n;{{1x|''a:b''}}\n;;;''a:b''", "html": "
    a
    \n
    b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a
    \n
    b
    \n
    a
    \n
    b
    \n
    a:b
    \n
    a:b
    ", - "render": "
    a
    \n
    b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a
    \n
    b
    \n
    a
    \n
    b
    \n
    a:b\n
    a:b
    ", + "render": "
    a
    \n
    b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a:b
    \n
    a
    \n
    b
    \n
    a
    \n
    b
    \n
    a:b\n
    a:b
    ", "print": ";a:b\n;'''a:b'''\n;<i>a:b</i>\n;<span>a:b</span>\n;<div>a:b</div>\n;<div>a\n:b</div>\n;{{1x|a:b}}\n;{{1x|''a:b''}}\n;;;''a:b''" }, { "desc": "Definition Lists: colons and tables 1", "wikitext": ":{|\n|x\n|}\n:{|\n|y\n|}", "html": "
    \n\n
    x\n
    \n
    \n\n
    y\n
    ", - "render": "
    \n\n
    x\n
    \n
    \n\n
    y\n
    ", + "render": "
    \n\n
    x\n
    \n
    \n\n
    y\n
    ", "print": ":{|\n|x\n|}\n:{|\n|y\n|}" }, { @@ -8135,7 +8135,7 @@ "desc": "External links: with no contents", "wikitext": "[http://en.wikipedia.org/wiki/Foo]\n\n[[wikipedia:Foo|Bar]]\n\n[[wikipedia:Foo|Bar]]", "html": "

    [1]\n

    Bar\n

    Bar\n

    ", - "render": "

    [1]\n

    Bar\n

    Bar\n

    ", + "render": "

    [1]\n

    Bar\n

    Bar\n

    ", "print": "[http://en.wikipedia.org/wiki/Foo]\n\n[[wikipedia:Foo|Bar]]\n\n[[wikipedia:Foo|<span>Bar</span>]]" }, { @@ -8364,7 +8364,7 @@ "desc": "T2289: literal \">\"-token in URL-tail", "wikitext": "http://www.example.com/html", "html": "

    http://www.example.com/html\n

    ", - "render": "

    http://www.example.com/html\n

    ", + "render": "

    http://www.example.com/html\n

    ", "print": "http://www.example.com/<b>html</b>" }, { @@ -8378,7 +8378,7 @@ "desc": "T2289: literal \">\"-token in bracketed URL", "wikitext": "[http://www.example.com/html stuff]", "html": "

    html stuff\n

    ", - "render": "

    html stuff\n

    ", + "render": "

    html stuff\n

    ", "print": "[http://www.example.com/<b>html</b> stuff]" }, { @@ -8784,7 +8784,7 @@ "desc": "Preserve tags in #switch default value", "wikitext": "{{#switch:a|b|
    c
    }}", "html": "
    c
    ", - "render": "
    c
    ", + "render": "
    c
    ", "print": "{{#switch:a|b|<div>c</div>}}" }, { @@ -9169,21 +9169,21 @@ "desc": "T35845 (2): Headings become bold in TOC when they contain a blockquote", "wikitext": "__TOC__\n==
    Quote
    ==", "html": "

    Contents

    \n\n
    \n\n

    Quote

    [edit]
    ", - "render": "

    Quote

    ", + "render": "

    Quote

    ", "print": "__TOC__\n==<blockquote>Quote</blockquote>==" }, { "desc": "Unclosed tags in TOC", "wikitext": "__TOC__\n==Proof: 2 < 3==\nHanc marginis exiguitas non caperet.\nQED", "html": "

    Contents

    \n\n
    \n\n

    Proof: 2 < 3

    [edit]
    \n

    Hanc marginis exiguitas non caperet.\nQED\n

    ", - "render": "

    Proof: 2 < 3

    \n

    Hanc marginis exiguitas non caperet.\nQED\n

    ", + "render": "

    Proof: 2 < 3

    \n

    Hanc marginis exiguitas non caperet.\nQED\n

    ", "print": "__TOC__\n==Proof: 2 < 3==\n<small>Hanc marginis exiguitas non caperet.</small>\nQED" }, { "desc": "Multiple tags in TOC", "wikitext": "__TOC__\n==Foo Bar==\n\n==Foo
    Bar
    ==", "html": "

    Contents

    \n\n
    \n\n

    Foo Bar

    [edit]
    \n

    Foo

    Bar

    [edit]
    ", - "render": "

    Foo Bar

    \n

    Foo
    Bar

    ", + "render": "

    Foo Bar

    \n

    Foo
    Bar

    ", "print": "__TOC__\n==<i>Foo</i> <b>Bar</b>==\n\n==<i>Foo</i> <blockquote>Bar</blockquote>==" }, { @@ -9204,14 +9204,14 @@ "desc": "T74884: bdi element in ToC", "wikitext": "__TOC__\n==test==", "html": "

    Contents

    \n\n
    \n\n

    test

    [edit]
    ", - "render": "

    test

    ", + "render": "

    test

    ", "print": "__TOC__\n==<bdi>test</bdi>==" }, { "desc": "T35715: s/strike element in ToC", "wikitext": "__TOC__\n==test test test==", "html": "

    Contents

    \n\n
    \n\n

    test test test

    [edit]
    ", - "render": "

    test test test

    ", + "render": "

    test test test

    ", "print": "__TOC__\n==<s>test</s> test <strike>test</strike>==" }, { @@ -9268,7 +9268,7 @@ "desc": "HTML headers vs TOC (T25393)\n(__NOEDITSECTION__ for clearer output, doesn't matter here)", "wikitext": "

    Header 1

    \n==Header 1.1==\n==Header 1.2==\n\n

    Header 2\n

    \n==Header 2.1==\n==Header 2.2==\n__NOEDITSECTION__", "html": "\n\n

    Header 1

    \n

    Header 1.1

    \n

    Header 1.2

    \n

    Header 2\n

    \n

    Header 2.1

    \n

    Header 2.2

    ", - "render": "

    Header 1

    \n

    Header 1.1

    \n

    Header 1.2

    \n

    Header 2\n

    \n

    Header 2.1

    \n

    Header 2.2

    ", + "render": "

    Header 1

    \n

    Header 1.1

    \n

    Header 1.2

    \n

    Header 2\n

    \n

    Header 2.1

    \n

    Header 2.2

    ", "print": "<h1>Header 1</h1>\n==Header 1.1==\n==Header 1.2==\n\n<h1>Header 2\n</h1>\n==Header 2.1==\n==Header 2.2==\n__NOEDITSECTION__" }, { @@ -9484,21 +9484,21 @@ "desc": "
     with  inside (compatibility with 1.6 and earlier)",
     		"wikitext": "
    \n\n\n\n
    ", "html": "
    <b>\n<cite>\n<em>\n
    ", - "render": "
    <b>
    <cite>
    <em>
    
    ", + "render": "
    <b>
    <cite>
    <em>
    
    ", "print": "<pre><nowiki>\n<b>\n<cite>\n<em>\n</nowiki></pre>" }, { "desc": "Regression with preformatted in
    ", "wikitext": "
    \n Blah\n
    ", "html": "
    \n
    Blah\n
    \n
    ", - "render": "
    \n
    Blah\n
    \n
    ", + "render": "
    \n
    Blah\n
    \n
    ", "print": "<center>\n Blah\n</center>" }, { "desc": "T54763: Preformatted in
    ", "wikitext": "
    \n Blah\n{|\n|\n indented cell (no pre-wrapping!)\n|}\n
    ", "html": "
    \n

    Blah\n

    \n\n\n
    \n

    indented cell (no pre-wrapping!)\n

    \n
    \n
    ", - "render": "
    \n

    Blah\n

    \n\n\n
    \n

    indented cell (no pre-wrapping!)\n

    \n
    \n
    ", + "render": "
    \n

    Blah\n

    \n\n\n
    \n

    indented cell (no pre-wrapping!)\n

    \n
    \n
    ", "print": "<blockquote>\n Blah\n{|\n|\n indented cell (no pre-wrapping!)\n|}\n</blockquote>" }, { @@ -9547,7 +9547,7 @@ "desc": "Off-by-1 DSR values: Regression test for indent-pre usages", "wikitext": " {{1x|\n}} ''{{1x|\n}} X'' {{1x|\n}} Y", "html": "
    \nX \nY\n
    ", - "render": "
    \nX \nY\n
    ", + "render": "
    \nX \nY\n
    ", "print": " {{1x|\n}} ''{{1x|\n}} X'' {{1x|<span></span>\n}} Y" }, { @@ -9594,28 +9594,28 @@ "desc": "2a. Indent-Pre and tables", "wikitext": " {|\n |-\n !h1!!h2\n |foo||bar\n |}", "html": "\n\n\n\n\n\n
    h1h2\nfoobar\n
    ", - "render": "\n\n\n\n\n
    h1h2\nfoobar\n
    ", + "render": "\n\n\n\n\n
    h1h2\nfoobar\n
    ", "print": " {|\n |-\n !h1!!h2\n |foo||bar\n |}" }, { "desc": "2b. Indent-Pre and tables", "wikitext": " {|\n |-\n|foo\n|}", "html": "\n\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": " {|\n |-\n|foo\n|}" }, { "desc": "2c. Indent-Pre and tables (T44252)", "wikitext": "{|\n |+foo\n ! |bar\n|}", "html": "\n\n\n
    foo\n
    bar\n
    ", - "render": "\n\n\n
    foo
    bar\n
    ", + "render": "\n\n\n
    foo
    bar\n
    ", "print": "{|\n |+foo\n ! |bar\n|}" }, { "desc": "2d. Indent-Pre and tables", "wikitext": " a\n {|\n |b\n |}", "html": "
    a\n
    \n\n\n
    b\n
    ", - "render": "
    a\n
    \n\n\n
    b\n
    ", + "render": "
    a\n
    \n\n\n
    b\n
    ", "print": " a\n {|\n |b\n |}" }, { @@ -9636,35 +9636,35 @@ "desc": "2g. Indented table markup mixed with indented pre content (proposed in T8200)", "wikitext": " \n \n \n \n
    \n Text that should be rendered preformatted\n
    ", "html": "\n \n \n \n
    \n
    Text that should be rendered preformatted\n
    \n
    ", - "render": " \n \n \n \n
    \n
    Text that should be rendered preformatted\n
    \n
    ", + "render": " \n \n \n \n
    \n
    Text that should be rendered preformatted\n
    \n
    ", "print": " <table>\n <tr>\n <td>\n Text that should be rendered preformatted\n </td>\n </tr>\n </table>" }, { "desc": "2h. Indent pre in tables", "wikitext": "{|\n !\n foo\n !\n bar\n |-\n |\n baz\n {{!}}\n bam\n |}", "html": "\n\n\n\n\n\n
    \n
    foo\n
    \n
    \n
    bar\n
    \n
    \n
    baz\n
    \n
    \n
    bam\n
    \n
    ", - "render": "\n\n\n\n\n
    \n
    foo\n
    \n
    \n
    bar\n
    \n
    \n
    baz\n
    \n
    \n
    bam\n
    \n
    ", + "render": "\n\n\n\n\n
    \n
    foo\n
    \n
    \n
    bar\n
    \n
    \n
    baz\n
    \n
    \n
    bam\n
    \n
    ", "print": "{|\n !\n foo\n !\n bar\n |-\n |\n baz\n {{!}}\n bam\n |}" }, { "desc": "3a. Indent-Pre and block tags (single-line html)", "wikitext": " a

    foo

    \n b
    foo
    \n c
    foo
    \n foo ", "html": "

    a

    foo

    \n b

    foo

    \n c

    foo

    \n
     foo \n
    ", - "render": " a

    foo

    \n b
    foo
    \n c
    foo
    \n
     foo \n
    ", + "render": " a

    foo

    \n b
    foo
    \n c
    foo
    \n
     foo \n
    ", "print": " a <p> foo </p>\n b <div> foo </div>\n c <blockquote> foo </blockquote>\n <span> foo </span>" }, { "desc": "3b. Indent-Pre and block tags (multi-line html)", "wikitext": " a foo\n b
    foo
    ", "html": "
    a foo\n

    \n b

    foo
    ", - "render": "
    a foo\n
    \n b
    foo
    ", + "render": "
    a foo\n
    \n b
    foo
    ", "print": " a <span>foo</span>\n<!-- comment --> b <div> foo </div>" }, { "desc": "3c. Indent-Pre and block tags (pre-content on separate line)", "wikitext": "

    \n foo\n

    \n\n
    \n foo\n
    \n\n
    \n foo\n
    \n\n
    \n foo\n
    \n\n
    \n
    \nfoo\n
    \n
    \n\n
    \n foo\n
    \n\n
    • \n foo\n
    ", "html": "

    \n foo\n

    \n
    \n
    foo\n
    \n
    \n
    \n
    foo\n
    \n
    \n
    \n

    foo\n

    \n
    \n
    \n
    foo\n
    \n
    \n
    \n
    foo\n
    \n
    \n
    • \n foo\n
    ", - "render": "

    \n foo\n

    \n
    \n
    foo\n
    \n
    \n
    \n
    foo\n
    \n
    \n
    \n

    foo\n

    \n
    \n
    \n
    foo
    
    \n
    \n
    \n
    foo\n
    \n
    \n
    • \n foo\n
    ", + "render": "

    \n foo\n

    \n
    \n
    foo\n
    \n
    \n
    \n
    foo\n
    \n
    \n
    \n

    foo\n

    \n
    \n
    \n
    foo
    
    \n
    \n
    \n
    foo\n
    \n
    \n
    • \n foo\n
    ", "print": "<p>\n foo\n</p>\n\n<div>\n foo\n</div>\n\n<center>\n foo\n</center>\n\n<blockquote>\n foo\n</blockquote>\n\n<blockquote>\n<pre>\nfoo\n</pre>\n</blockquote>\n\n<table><tr><td>\n foo\n</td></tr></table>\n\n<ul><li>\n foo\n</li></ul>" }, { @@ -9685,21 +9685,21 @@ "desc": "Render paragraphs when indent-pre is suppressed in blocklevels", "wikitext": "
    \n foo\n\n bar\n
    ", "html": "
    \n

    foo\n

    bar\n

    \n
    ", - "render": "
    \n

    foo\n

    bar\n

    \n
    ", + "render": "
    \n

    foo\n

    bar\n

    \n
    ", "print": "<blockquote>\n foo\n\n bar\n</blockquote>" }, { "desc": "4. Multiple spaces at start-of-line", "wikitext": "

    foo

    \n foo\n\t{|\n|foo\n|}", "html": "

    foo

    \n
       foo\n
    \n\n\n
    foo\n
    ", - "render": "

    foo

    \n
       foo\n
    \n\n\n
    foo\n
    ", + "render": "

    foo

    \n
       foo\n
    \n\n\n
    foo\n
    ", "print": " <p> foo </p>\n foo\n\t{|\n|foo\n|}" }, { "desc": "5a. White-space in indent-pre", "wikitext": " a
    \n \n b", "html": "
    a
    \n\nb\n
    ", - "render": "
    a
    \n\nb\n
    ", + "render": "
    a
    \n\nb\n
    ", "print": " a<br />\n \n b" }, { @@ -9760,7 +9760,7 @@ "desc": "Preserving leading whitespace in indent-pre suppressing contexts", "wikitext": "
      \n
    1. \n foo\n bar\n
    2. \n
    ", "html": "
      \n
    1. \n foo\n bar\n
    2. \n
    ", - "render": "
      \n
    1. \n foo\n bar\n
    2. \n
    ", + "render": "
      \n
    1. \n foo\n bar\n
    2. \n
    ", "print": "<ol>\n<li>\n foo\n bar\n</li>\n</ol>" }, { @@ -10127,7 +10127,7 @@ "desc": "Language converter markup with block content", "wikitext": "a-{b
    c}-d\n\na-{zh;zh-hans;zh-hant|b
    c}-d\n\na-{H|0=>zh-cn:xy;0=>zh-tw:b
    c}-d", "html": "ab
    cd\nab
    cd\nad
    ", - "render": "ab
    cd\nab
    cd\n

    ad\n

    ", + "render": "ab
    cd\nab
    cd\n

    ad\n

    ", "print": "<span>a-{b<div>c}-d\n\n<span>a-{zh;zh-hans;zh-hant|b<div>c}-d\n\n<span>a-{H|0=>zh-cn:x<span>y;0=>zh-tw:b<div>c}-d" }, { @@ -10161,7 +10161,7 @@ "desc": "T153135: Unclosed markup in definition list (code coverage)", "wikitext": ";foo:bar\n;-{zh-cn:AAA", "html": "
    foo:bar
    \n
    -{zh-cn:AAA
    ", - "render": "
    foo:bar
    \n
    -{zh-cn:AAA
    ", + "render": "
    foo:bar
    \n
    -{zh-cn:AAA
    ", "print": ";<b>foo:bar\n;-{zh-cn:AAA" }, { @@ -11665,7 +11665,7 @@ "desc": "Image: caption containing a table", "wikitext": "[[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table\n{|\n!Foo!!Bar\n|-\n|Foo1||Bar1\n|}\nand some more text.]]", "html": "
    This is an example image thumbnail caption with a table
    Foo Bar
    Foo1 Bar1
    and some more text.
    ", - "render": "
    This is an example image thumbnail caption with a table
    Foo Bar
    Foo1 Bar1
    and some more text.
    ", + "render": "
    This is an example image thumbnail caption with a table
    Foo Bar
    Foo1 Bar1
    and some more text.
    ", "print": "[[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table\n{|\n!Foo!!Bar\n|-\n|Foo1||Bar1\n|}\nand some more text.]]" }, { @@ -12159,28 +12159,28 @@ "desc": "1. Treebuilder fixup of formatting elt", "wikitext": "{|\n|\n\n[[Image:Foobar.jpg|right|Test]]\n\n|}", "html": "\n\n
    \n

    \n

    \n
    \"Test\"
    Test
    \n

    \n

    \n
    ", - "render": "\n\n
    \n

    \n

    \n
    \"Test\"
    Test
    \n

    \n

    \n
    ", + "render": "\n\n
    \n

    \n

    \n
    \"Test\"
    Test
    \n

    \n

    \n
    ", "print": "{|\n|\n<small>\n[[Image:Foobar.jpg|right|Test]]\n</small>\n|}" }, { "desc": "2. Treebuilder fixup of formatting elt", "wikitext": "'''foo[[File:Foobar.jpg|thumb|caption]]bar'''\n\n[[Image:Foobar.jpg|right|300px]]", "html": "

    foo

    caption

    bar\n

    ", - "render": "foo
    caption
    bar\n
    ", + "render": "foo
    caption
    bar\n
    ", "print": "'''foo[[File:Foobar.jpg|thumb|caption]]bar'''\n\n<small>[[Image:Foobar.jpg|right|300px]]</small>" }, { "desc": "3. Treebuilder fixup of formatting elt", "wikitext": "'''foo[[File:Foobar.jpg|thumb|caption]]bar'''", "html": "

    foo

    caption

    bar

    ", - "render": "foo
    caption
    bar
    ", + "render": "foo
    caption
    bar
    ", "print": "<small>'''foo[[File:Foobar.jpg|thumb|caption]]bar'''</small>" }, { "desc": "4. Treebuilder fixup of formatting elt: formatting tags around captionless images", "wikitext": "'''[[Image:Foobar.jpg|right|300px]]'''", "html": "
    ", - "render": "
    ", + "render": "
    ", "print": "'''<small>[[Image:Foobar.jpg|right|300px]]</small>'''" }, { @@ -12338,35 +12338,35 @@ "desc": "File with table in caption with extra table attribute spaces", "wikitext": "[[File:Foobar.jpg|thumb|\n{|\n|- \n|hi\n|}\n]]", "html": "
    hi
    ", - "render": "
    hi
    ", + "render": "
    hi
    ", "print": "[[File:Foobar.jpg|thumb|\n{|\n|- \n|hi\n|}\n]]" }, { "desc": "File in formatting element violating content model", "wikitext": "

    ''[[File:Foobar.jpg|thumb]]''

    ", "html": "

    ", - "render": "

    ", + "render": "

    ", "print": "<p>''[[File:Foobar.jpg|thumb]]''</p>" }, { "desc": "File in formatting element violating content model, multiple open", "wikitext": "

    '''''[[File:Foobar.jpg|thumb]]'''''

    ", "html": "

    ", - "render": "

    ", + "render": "

    ", "print": "<p>'''''[[File:Foobar.jpg|thumb]]'''''</p>" }, { "desc": "File in formatting element violating content model, figcaption content", "wikitext": "

    ''test [[File:Foobar.jpg|thumb|123]] 456''

    ", "html": "

    test

    123

    456

    ", - "render": "

    test

    123
    456

    ", + "render": "

    test

    123
    456

    ", "print": "<p>''test [[File:Foobar.jpg|thumb|123]] 456''</p>" }, { "desc": "Table in figcaption nested in table", "wikitext": "{|\n|foo\n|[[File:Foobar.jpg|thumb|\n{|\n|bar\n|}\n]]\n|}", "html": "\n\n\n
    foo\n
    bar
    \n
    ", - "render": "\n\n\n
    foo\n
    bar
    \n
    ", + "render": "\n\n\n
    foo\n
    bar
    \n
    ", "print": "{|\n|foo\n|[[File:Foobar.jpg|thumb|\n{|\n|bar\n|}\n]]\n|}" }, { @@ -12582,7 +12582,7 @@ "desc": "Multi-line poems with indentation use spans and breaks correctly (T235709)", "wikitext": "\n''CONGREGATI''\n:'''EX TOTO ORBE'''\n::'''''MATHEMATICI'''''\n:foo\n", "html": "
    \n

    CONGREGATI
    \nEX TOTO ORBE
    \nMATHEMATICI
    \nfoo\n

    \n
    ", - "render": "
    \n

    CONGREGATI
    \n

    \n
    EX TOTO ORBE
    \n
    MATHEMATICI

    \n
    foo
    \n
    ", + "render": "
    \n

    CONGREGATI
    \n

    \n
    EX TOTO ORBE
    \n
    MATHEMATICI

    \n
    foo
    \n
    ", "print": "<poem>\n''CONGREGATI''\n:'''EX TOTO ORBE'''\n::'''''MATHEMATICI'''''\n:<span>foo</span>\n</poem>" }, { @@ -12634,7 +12634,7 @@ "desc": "Entities inside
    ",
     		"wikitext": "
    <
    ", "html": "
    <
    ", - "render": "
    <
    ", + "render": "
    <
    ", "print": "<pre>&lt;</pre>" }, { @@ -12648,7 +12648,7 @@ "desc": " inside
     (T15238)",
     		"wikitext": "
    \n\n
    \n
    \n\n
    \n
    Foo
    ", "html": "
    <nowiki>\n
    \n
    \n\n
    \n
    <nowiki>Foo</nowiki>
    ", - "render": "
    <nowiki>
    
    \n
    
    
    \n
    <nowiki>Foo</nowiki>
    ", + "render": "
    <nowiki>
    
    \n
    
    
    \n
    <nowiki>Foo</nowiki>
    ", "print": "<pre>\n<nowiki>\n</pre>\n<pre>\n<nowiki></nowiki>\n</pre>\n<pre><nowiki><nowiki></nowiki>Foo<nowiki></nowiki></nowiki></pre>" }, { @@ -12662,7 +12662,7 @@ "desc": " and
     preference (first one wins)",
     		"wikitext": "
    \n\n
    \n\n
    \n\n\n
    \n\n
    \n
    \n
    ", "html": "
    <nowiki>\n
    \n

    </nowiki>\n

    \n\n

    \n<pre>\n<nowiki>\n</pre>\n\n

    ", - "render": "
    <nowiki>
    
    \n

    </nowiki>\n

    \n
    \n

    <pre> <nowiki> </pre> \n

    \n
    ", + "render": "
    <nowiki>
    
    \n

    </nowiki>\n

    \n
    \n

    <pre> <nowiki> </pre> \n

    \n
    ", "print": "<pre>\n<nowiki>\n</pre>\n</nowiki>\n</pre>\n\n<nowiki>\n<pre>\n<nowiki>\n</pre>\n</nowiki>\n</pre>" }, { @@ -12676,21 +12676,21 @@ "desc": "Empty pre; pre inside other HTML tags (T56946)", "wikitext": "a\n\n
    \nfoo\n
    \n
    ",
     		"html": "

    a\n

    \n
    foo\n
    \n
    ",
    -		"render": "

    a\n

    \n
    foo
    
    \n
    ",
    +		"render": "

    a\n

    \n
    foo
    
    \n
    ",
     		"print": "a\n\n<div><pre>\nfoo\n</pre></div>\n<pre></pre>"
     	},
     	{
     		"desc": "HTML pre followed by indent-pre",
     		"wikitext": "
    foo
    \n bar", "html": "
    foo
    \n
    bar\n
    ", - "render": "
    foo
    \n
    bar\n
    ", + "render": "
    foo
    \n
    bar\n
    ", "print": "<pre>foo</pre>\n bar" }, { "desc": "Block tag pre", "wikitext": "

    foo

    ", "html": "

    foo

    ", - "render": "

    foo

    ", + "render": "

    foo

    ", "print": "<p><pre>foo</pre></p>" }, { @@ -12711,14 +12711,14 @@ "desc": "Handle broken pre-like tags (T66025)", "wikitext": "{{1x|
    x
    }}\n\n
    ",
     		"html": "
    x
    \n<pre
    ", - "render": "
    x
    \n<pre
    ", + "render": "
    x
    \n<pre
    ", "print": "{{1x|<pre <pre>x</pre>}}\n\n<table><pre </table>" }, { "desc": "Less than in attribute position", "wikitext": "
    123
    \n\n
    123
    ", "html": "
    123

    \n<div

    123
    ", - "render": "
    123
    \n<div
    123
    ", + "render": "
    123
    \n<div
    123
    ", "print": "<pre <pre>123</pre>\n\n<div <div>123</div>" }, { @@ -12732,35 +12732,35 @@ "desc": "Self-closed pre", "wikitext": "
    ",
     		"html": "
    ",
    -		"render": "
    ",
    +		"render": "
    ",
     		"print": "<pre />"
     	},
     	{
     		"desc": "HTML-pre: 1. embedded newlines",
     		"wikitext": "
    foo
    \n\n
    \nfoo\n
    \n\n
    \n\nfoo\n
    \n\n
    \n\n\nfoo\n
    ", "html": "
    foo
    \n
    foo\n
    \n
    \n\nfoo\n
    \n
    \n\n\nfoo\n
    ", - "render": "
    foo
    \n
    foo
    
    \n
    
    foo
    
    \n
    
    
    foo
    
    ", + "render": "
    foo
    \n
    foo
    
    \n
    
    foo
    
    \n
    
    
    foo
    
    ", "print": "<pre>foo</pre>\n\n<pre>\nfoo\n</pre>\n\n<pre>\n\nfoo\n</pre>\n\n<pre>\n\n\nfoo\n</pre>" }, { "desc": "HTML-pre: big spaces", "wikitext": "
    \n\n\n\n\nhaha\n\n\n\n\nhaha\n\n\n\n\n
    ", "html": "
    \n\n\n\n\nhaha\n\n\n\n\nhaha\n\n\n\n\n
    ", - "render": "
    
    
    
    
    haha
    
    
    
    
    haha
    
    
    
    
    
    ", + "render": "
    
    
    
    
    haha
    
    
    
    
    haha
    
    
    
    
    
    ", "print": "<pre>\n\n\n\n\nhaha\n\n\n\n\nhaha\n\n\n\n\n</pre>" }, { "desc": "HTML-pre: 2: indented text", "wikitext": "
    \n foo\n
    ", "html": "
     foo\n
    ", - "render": "
     foo
    
    ", + "render": "
     foo
    
    ", "print": "<pre>\n foo\n</pre>" }, { "desc": "HTML-pre: 3: other wikitext", "wikitext": "
    \n* foo\n# bar\n= no-h =\n'' no-italic ''\n[[ NoLink ]]\n
    ", "html": "
    * foo\n# bar\n= no-h =\n'' no-italic ''\n[[ NoLink ]]\n
    ", - "render": "
    * foo
    # bar
    = no-h =
    '' no-italic ''
    [[ NoLink ]]
    
    ", + "render": "
    * foo
    # bar
    = no-h =
    '' no-italic ''
    [[ NoLink ]]
    
    ", "print": "<pre>\n* foo\n# bar\n= no-h =\n'' no-italic ''\n[[ NoLink ]]\n</pre>" }, { @@ -13154,7 +13154,7 @@ "desc": "Quotes wrapping HTML table", "wikitext": "'''
    hi
    '''", "html": "
    hi
    ", - "render": "
    hi
    ", + "render": "
    hi
    ", "print": "'''<table><tr><td>hi</td></tr></table>'''" }, { @@ -13480,7 +13480,7 @@ "desc": "Quote balancing context should be restricted to td/th cells on the same wikitext line", "wikitext": "{|\n!''a!!''b\n|''a||''b\n|}", "html": "\n\n\n\n\n
    ab\nab\n
    ", - "render": "\n\n\n\n\n
    ab\nab\n
    ", + "render": "\n\n\n\n\n
    ab\nab\n
    ", "print": "{|\n!''a!!''b\n|''a||''b\n|}" }, { @@ -13662,217 +13662,217 @@ "desc": "Tables with multiple newlines after individual lines embedded in links", "wikitext": "[[Test|\n{|\n\n|test\n|}]]", "html": "

    \n

    \n\n\n
    test\n
    \n

    ", - "render": "
    test
    ", + "render": "
    test
    ", "print": "[[Test|\n{|\n\n|test\n|}]]" }, { "desc": "A table with no data.", "wikitext": "{||}", "html": "", - "render": "\n
    ", + "render": "\n
    ", "print": "{||}" }, { "desc": "A table with no data (take 2)", "wikitext": "{|\n|}", "html": "\n
    ", - "render": "\n
    ", + "render": "\n
    ", "print": "{|\n|}" }, { "desc": "A table with no data generated by a markup", "wikitext": "
    ", "html": "
    ", - "render": "
    ", + "render": "
    ", "print": "<table></table>" }, { "desc": "Parsoid: Don't paragraph-wrap fosterable content even if table syntax is unbalanced", "wikitext": "{|\n\n\n\n\n\n\n|}", "html": "\n\n\n\n\n
    \n\n
    ", - "render": " \n
    ", + "render": " \n
    ", "print": "{|\n<td>\n<td>\n</td>\n\n\n\n|}" }, { "desc": "A table with stray table end tags on start tag line (wt2html)", "wikitext": "{|style=\"color: red;\"|}\n\n{|style=\"color: red;\" |}\n|foo\n|}\n\n{|style=\"color: red;\"|} id=\"foo\"\n|foo\n|}\n\n{|style=\"color: red;\" |} id=\"foo\"\n|foo\n|}", "html": "\n\n
    \n\n
    foo\n
    \n\n\n
    foo\n
    \n\n\n
    foo\n
    ", - "render": "\n
    \n\n\n
    foo\n
    \n\n\n
    foo\n
    \n\n\n
    foo\n
    ", + "render": "\n
    \n\n\n
    foo\n
    \n\n\n
    foo\n
    \n\n\n
    foo\n
    ", "print": "{|style=\"color: red;\"|}\n\n{|style=\"color: red;\" |}\n|foo\n|}\n\n{|style=\"color: red;\"|} id=\"foo\"\n|foo\n|}\n\n{|style=\"color: red;\" |} id=\"foo\"\n|foo\n|}" }, { "desc": "A table with nothing but a caption", "wikitext": "{|\n|+caption\n|}", "html": "\n
    caption\n
    ", - "render": "\n\n
    caption
    ", + "render": "\n\n
    caption
    ", "print": "{|\n|+caption\n|}" }, { "desc": "A table with caption with default-spaced attributes and a table row", "wikitext": "{|\n|+ style=\"color: red;\" |caption1\n|-\n|foo\n|}", "html": "\n\n\n
    caption1\n
    foo\n
    ", - "render": "\n\n\n
    caption1
    foo\n
    ", + "render": "\n\n\n
    caption1
    foo\n
    ", "print": "{|\n|+ style=\"color: red;\" |caption1\n|-\n|foo\n|}" }, { "desc": "A table with captions with non-default spaced attributes and a table row", "wikitext": "{|\n|+style=\"color: red;\"|caption2\n|+ style=\"color: red;\"|caption3\n|-\n|foo\n|}", "html": "\n\n\n\n
    caption2\ncaption3\n
    foo\n
    ", - "render": "\n\n\n\n
    caption2caption3
    foo\n
    ", + "render": "\n\n\n\n
    caption2caption3
    foo\n
    ", "print": "{|\n|+style=\"color: red;\"|caption2\n|+ style=\"color: red;\"|caption3\n|-\n|foo\n|}" }, { "desc": "Table td-cell syntax variations", "wikitext": "{|\n|foo bar foo|baz\n|foo bar foo||baz\n|style='color:red;'|baz\n|style='color:red;'||baz\n|}", "html": "\n\n\n\n\n\n\n
    baz\nfoo bar foobaz\nbaz\nstyle='color:red;'baz\n
    ", - "render": "\n\n\n\n\n\n\n
    baz\nfoo bar foobaz\nbaz\nstyle='color:red;'baz\n
    ", + "render": "\n\n\n\n\n\n\n
    baz\nfoo bar foobaz\nbaz\nstyle='color:red;'baz\n
    ", "print": "{|\n|foo bar foo|baz\n|foo bar foo||baz\n|style='color:red;'|baz\n|style='color:red;'||baz\n|}" }, { "desc": "Simple table", "wikitext": "{|\n|1||2\n|-\n|3||4\n|}", "html": "\n\n\n\n\n\n
    12\n
    34\n
    ", - "render": "\n\n\n\n\n
    12\n
    34\n
    ", + "render": "\n\n\n\n\n
    12\n
    34\n
    ", "print": "{|\n|1||2\n|-\n|3||4\n|}" }, { "desc": "Simple table but with multiple dashes for row wikitext", "wikitext": "{|\n|foo\n|-----\n|bar\n|}", "html": "\n\n\n\n
    foo\n
    bar\n
    ", - "render": "\n\n\n
    foo\n
    bar\n
    ", + "render": "\n\n\n
    foo\n
    bar\n
    ", "print": "{|\n|foo\n|-----\n|bar\n|}" }, { "desc": "Multiplication table", "wikitext": "{| border=\"1\" cellpadding=\"2\"\n|+Multiplication table\n|-\n!×!!1!!2!!3\n|-\n!1\n|1||2||3\n|-\n!2\n|2||4||6\n|-\n!3\n|3||6||9\n|-\n!4\n|4||8||12\n|-\n!5\n|5||10||15\n|}", "html": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    Multiplication table\n
    ×123\n
    1\n123\n
    2\n246\n
    3\n369\n
    4\n4812\n
    5\n51015\n
    ", - "render": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    Multiplication table
    ×123\n
    1\n123\n
    2\n246\n
    3\n369\n
    4\n4812\n
    5\n51015\n
    ", + "render": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    Multiplication table
    ×123\n
    1\n123\n
    2\n246\n
    3\n369\n
    4\n4812\n
    5\n51015\n
    ", "print": "{| border=\"1\" cellpadding=\"2\"\n|+Multiplication table\n|-\n!&times;!!1!!2!!3\n|-\n!1\n|1||2||3\n|-\n!2\n|2||4||6\n|-\n!3\n|3||6||9\n|-\n!4\n|4||8||12\n|-\n!5\n|5||10||15\n|}" }, { "desc": "Accept \"||\" in table headings", "wikitext": "{|\n!h1||h2\n|}", "html": "\n\n\n
    h1h2\n
    ", - "render": "\n\n\n
    h1h2\n
    ", + "render": "\n\n\n
    h1h2\n
    ", "print": "{|\n!h1||h2\n|}" }, { "desc": "Accept \"!!\" in table data", "wikitext": "{|\n|Foo!!||\n|}", "html": "\n\n\n
    Foo!!\n
    ", - "render": "\n\n\n
    Foo!!\n
    ", + "render": "\n\n\n
    Foo!!\n
    ", "print": "{|\n|Foo!!||\n|}" }, { "desc": "Accept \"||\" in indented table headings", "wikitext": ":{|\n!h1||h2\n|}", "html": "
    \n\n\n
    h1h2\n
    ", - "render": "
    \n\n\n
    h1h2\n
    ", + "render": "
    \n\n\n
    h1h2\n
    ", "print": ":{|\n!h1||h2\n|}" }, { "desc": "Accept \"!!\" in templates", "wikitext": "{|\n!a {{1x|b!!c}}\n|}", "html": "\n\n\n
    a bc\n
    ", - "render": "\n\n\n
    a bc\n
    ", + "render": "\n\n\n
    a bc\n
    ", "print": "{|\n!a {{1x|b!!c}}\n|}" }, { "desc": "Accept \"!!\" in table headings after newline", "wikitext": "{|\n!a\nb!!c\n|}", "html": "\n\n
    a\n

    b!!c\n

    \n
    ", - "render": "\n\n
    a\n

    b!!c\n

    \n
    ", + "render": "\n\n
    a\n

    b!!c\n

    \n
    ", "print": "{|\n!a\nb!!c\n|}" }, { "desc": "Accept \"!!\" in table data of mixed wikitext / html syntax", "wikitext": "{|\n!a\nb!!c\n|}", "html": "\n\n\n
    a\n
    b!!c
    ", - "render": "\n\n\n
    a\n
    b!!c
    ", + "render": "\n\n\n
    a\n
    b!!c
    ", "print": "{|\n!a\n<tr><td>b!!c</td></tr>\n|}" }, { "desc": "Accept empty attributes in td/th cells (td/th cells starting with leading ||)", "wikitext": "{|\n!|h1\n||a\n|}", "html": "\n\n\n
    h1\na\n
    ", - "render": "\n\n\n
    h1\na\n
    ", + "render": "\n\n\n
    h1\na\n
    ", "print": "{|\n!|h1\n||a\n|}" }, { "desc": "Accept \"| !\" at start of line in tables (ignore !-attribute)", "wikitext": "{|\n|-\n|!style=\"color:red\"|bar\n|}", "html": "\n\n\n
    bar\n
    ", - "render": "\n\n
    bar\n
    ", + "render": "\n\n
    bar\n
    ", "print": "{|\n|-\n|!style=\"color:red\"|bar\n|}" }, { "desc": "Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present, or in 1st cell when there is a space between \"|\" and +/- ", "wikitext": "{|\n|-\n|style='color:red;'|+1\n|style='color:blue;'|-1\n|-\n|1||2||3\n|1||+2||-3\n|-\n| +1\n| -1\n|}", "html": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    +1\n-1\n
    123\n1+2-3\n
    +1\n-1\n
    ", - "render": "\n\n\n\n\n\n\n\n\n\n\n
    +1\n-1\n
    123\n1+2-3\n
    +1\n-1\n
    ", + "render": "\n\n\n\n\n\n\n\n\n\n\n
    +1\n-1\n
    123\n1+2-3\n
    +1\n-1\n
    ", "print": "{|\n|-\n|style='color:red;'|+1\n|style='color:blue;'|-1\n|-\n|1||2||3\n|1||+2||-3\n|-\n| +1\n| -1\n|}" }, { "desc": "Table rowspan", "wikitext": "{| border=1\n|Cell 1, row 1\n|rowspan=2|Cell 2, row 1 (and 2)\n|Cell 3, row 1\n|-\n|Cell 1, row 2\n|Cell 3, row 2\n|}", "html": "\n\n\n\n\n\n\n
    Cell 1, row 1\nCell 2, row 1 (and 2)\nCell 3, row 1\n
    Cell 1, row 2\nCell 3, row 2\n
    ", - "render": "\n\n\n\n\n\n
    Cell 1, row 1\nCell 2, row 1 (and 2)\nCell 3, row 1\n
    Cell 1, row 2\nCell 3, row 2\n
    ", + "render": "\n\n\n\n\n\n
    Cell 1, row 1\nCell 2, row 1 (and 2)\nCell 3, row 1\n
    Cell 1, row 2\nCell 3, row 2\n
    ", "print": "{| border=1\n|Cell 1, row 1\n|rowspan=2|Cell 2, row 1 (and 2)\n|Cell 3, row 1\n|-\n|Cell 1, row 2\n|Cell 3, row 2\n|}" }, { "desc": "Nested table", "wikitext": "{| border=1\n| α\n|\n{| bgcolor=#ABCDEF border=2\n|nested\n|-\n|table\n|}\n|the original table again\n|}", "html": "\n\n\n\n
    α\n\n\n\n\n\n
    nested\n
    table\n
    \n
    the original table again\n
    ", - "render": "\n\n\n\n
    α\n\n\n\n\n
    nested\n
    table\n
    \n
    the original table again\n
    ", + "render": "\n\n\n\n
    α\n\n\n\n\n
    nested\n
    table\n
    \n
    the original table again\n
    ", "print": "{| border=1\n| &alpha;\n|\n{| bgcolor=#ABCDEF border=2\n|nested\n|-\n|table\n|}\n|the original table again\n|}" }, { "desc": "Invalid attributes in table cell (T3830)", "wikitext": "{|\n|Cell:|broken\n|}", "html": "\n\n
    broken\n
    ", - "render": "\n\n
    broken\n
    ", + "render": "\n\n
    broken\n
    ", "print": "{|\n|Cell:|broken\n|}" }, { "desc": "Table cell attributes: Pipes protected by nowikis should be treated as a plain character", "wikitext": "{|\n|title=\"foo\" |bar\n|title=\"foo|\" |bar\n|title=\"foo|\" bar\n|}", "html": "\n\n\n\n
    bar\nbar\ntitle=\"foo|\" bar\n
    ", - "render": "\n\n\n\n
    bar\nbar\ntitle=\"foo|\" bar\n
    ", + "render": "\n\n\n\n
    bar\nbar\ntitle=\"foo|\" bar\n
    ", "print": "{|\n|title=\"foo\" |bar\n|title=\"foo<nowiki>|</nowiki>\" |bar\n|title=\"foo<nowiki>|</nowiki>\" bar\n|}" }, { "desc": "Table cell attributes: Pipes protected by nested nowikis should be treated as a plain character", "wikitext": "{|\n|{{ACB|PG}}\n|}", "html": "\n\n
    {{ACB|PG}}\n
    ", - "render": "\n\n
    {{ACB|PG}}\n
    ", + "render": "\n\n
    {{ACB|PG}}\n
    ", "print": "{|\n|<code><nowiki>{{ACB|PG}}</nowiki></code>\n|}" }, { "desc": "Table security: embedded pipes", "wikitext": "{|\n| |[ftp://|x||]\" onmouseover=\"alert(document.cookie)\">test", "html": "\n\n\n\n\n
    [ftp://%7Cx]\" onmouseover=\"alert(document.cookie)\">test\n
    ", - "render": "\n\n\n
    [ftp://|x]\" onmouseover=\"alert(document.cookie)\">test\n
    ", + "render": "\n\n\n
    [ftp://|x]\" onmouseover=\"alert(document.cookie)\">test\n
    ", "print": "{|\n| |[ftp://|x||]\" onmouseover=\"alert(document.cookie)\">test" }, { "desc": "Element attributes with double ! should not be broken up by ", "wikitext": "{|\n!hi
    ha
    ho\n|}", "html": "\n\n
    hi
    ha
    ho\n
    ", - "render": "\n\n
    hi
    ha
    ho\n
    ", + "render": "\n\n
    hi
    ha
    ho\n
    ", "print": "{|\n!hi <div class=\"!!\">ha</div> ho\n|}" }, { "desc": "! and || in element attributes should not be parsed as /", "wikitext": "{|\n|
    hi
    \n|}", "html": "\n\n
    hi
    \n
    ", - "render": "\n\n
    hi
    \n
    ", + "render": "\n\n
    hi
    \n
    ", "print": "{|\n|<div style=\"color: red !important;\" data-contrived=\"put this here ||\">hi</div>\n|}" }, { "desc": "! and || in td attributes should not be parsed as /", "wikitext": "{|\n|style=\"color: red !important;\" data-contrived=\"put this here ||\"|foo\n|}", "html": "\n\n\n
    style=\"color: red !important;\" data-contrived=\"put this herefoo\n
    ", - "render": "\n\n\n
    style=\"color: red !important;\" data-contrived=\"put this herefoo\n
    ", + "render": "\n\n\n
    style=\"color: red !important;\" data-contrived=\"put this herefoo\n
    ", "print": "{|\n|style=\"color: red !important;\" data-contrived=\"put this here ||\"|foo\n|}" }, { @@ -13891,14 +13891,14 @@ "desc": "1. Template-generated table cell attributes and cell content", "wikitext": "{|\n|{{table_attribs}}\n| {{table_attribs}}\n|| {{table_attribs_5}}\n| {{table_attribs}}\n|align=center {{table_attribs}}\n| align=center {{table_attribs}}\n|}", "html": "\n\n\n\n\n\n\n\n
    Foo\nFoo\nstyle=\"color:red;\"Bar\nFoo\nFoo\nFoo\n
    ", - "render": "\n\n\n\n\n\n\n\n
    Foo\nFoo\nstyle=\"color:red;\"Bar\nFoo\nFoo\nFoo\n
    ", + "render": "\n\n\n\n\n\n\n\n
    Foo\nFoo\nstyle=\"color:red;\"Bar\nFoo\nFoo\nFoo\n
    ", "print": "{|\n|{{table_attribs}}\n| {{table_attribs}}\n|| {{table_attribs_5}}\n| <!--foo--> <!--bar--> <!--baz--> {{table_attribs}}\n|align=center {{table_attribs}}\n| <!--foo--> align=center <!--bar--> {{table_attribs}}\n|}" }, { "desc": "2a. Template-generated table cell attributes and cell content", "wikitext": "{|\n|{{table_attribs_2}}\n|}", "html": "\n\n\n\n
    Foo\nBarBaz\n
    ", - "render": "\n\n\n\n
    Foo\nBarBaz\n
    ", + "render": "\n\n\n\n
    Foo\nBarBaz\n
    ", "print": "{|\n|{{table_attribs_2}}\n|}" }, { @@ -13910,91 +13910,91 @@ "desc": "3. Template-generated table cell attributes and cell content", "wikitext": "{|\n!align=center {{table_header_cells}}\n|-\n|align=center {{table_cells}}\n|}", "html": "\n\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", - "render": "\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", + "render": "\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", "print": "{|\n!align=center {{table_header_cells}}\n|-\n|align=center {{table_cells}}\n|}" }, { "desc": "4. Template-generated table cell attributes and cell content inside a templated table", "wikitext": "{{tbl-start}}\n!align=center {{table_header_cells}}\n|-\n|align=center {{table_cells}}\n{{tbl-end}}", "html": "\n\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", - "render": "\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", + "render": "\n\n\n\n\n\n\n
    FooBarFoo and Baz\n
    FooBarFoo and Baz\n
    ", "print": "{{tbl-start}}\n!align=center {{table_header_cells}}\n|-\n|align=center {{table_cells}}\n{{tbl-end}}" }, { "desc": "Table with row followed by newlines and table heading", "wikitext": "{|\n|-\n\n!foo\n|}", "html": "\n\n\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": "{|\n|-\n\n!foo\n|}" }, { "desc": "Table with empty line following the start tag", "wikitext": "{|\n\n|-\n|foo\n|}", "html": "\n\n\n\n
    foo\n
    ", - "render": "\n\n
    foo\n
    ", + "render": "\n\n
    foo\n
    ", "print": "{|\n\n|-\n|foo\n|}" }, { "desc": "Table attributes with empty value", "wikitext": "{|\n| style=|hello\n|}", "html": "\n\n
    hello\n
    ", - "render": "\n\n
    hello\n
    ", + "render": "\n\n
    hello\n
    ", "print": "{|\n| style=|hello\n|}" }, { "desc": "Wikitext table with a lot of comments", "wikitext": "{|\n\n|foo\n\n|-\n\n|\n\n|}", "html": "\n\n\n\n
    foo\n
    \n
    ", - "render": "\n\n\n
    foo\n
    \n
    ", + "render": "\n\n\n
    foo\n
    \n
    ", "print": "{|\n<!-- c0 -->\n|foo\n<!-- c1 -->\n|-<!-- c2 -->\n<!-- c3 -->\n|<!-- c4 -->\n<!-- c5 -->\n|}" }, { "desc": "Wikitext table comments represented in parsoid dom", "wikitext": "{|\n|-\n|x\n|}", "html": "\n\n\n
    x\n
    ", - "render": "\n\n
    x\n
    ", + "render": "\n\n
    x\n
    ", "print": "{|<!--c1--><!--c2-->\n|-<!--c3-->\n|x\n|}" }, { "desc": "Wikitext table with double-line table cell", "wikitext": "{|\n|a\nb\n|}", "html": "\n\n
    a\n

    b\n

    \n
    ", - "render": "\n\n
    a\n

    b\n

    \n
    ", + "render": "\n\n
    a\n

    b\n

    \n
    ", "print": "{|\n|a\nb\n|}" }, { "desc": "Table cell with a single comment", "wikitext": "{|\n|\n|a\n|}", "html": "\n\n\n
    \na\n
    ", - "render": "\n\n\n
    \na\n
    ", + "render": "\n\n\n
    \na\n
    ", "print": "{|\n|<!-- c1 -->\n|a\n|}" }, { "desc": "Table-cell after a comment-only-empty-line", "wikitext": "{|\n|a\n\n|b\n|}", "html": "\n\n\n
    a\nb\n
    ", - "render": "\n\n\n
    a\nb\n
    ", + "render": "\n\n\n
    a\nb\n
    ", "print": "{|\n|a\n<!--c1-->\n<!--c2-->|b\n|}" }, { "desc": "Build table with {{!}}", "wikitext": "{{{!}} class=\"wikitable\"\n!header\n!second header\n{{!}}- style=\"color:red;\"\n{{!}}data{{!}}{{!}} style=\"color:red;\" {{!}}second data\n{{!}}}", "html": "\n\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    ", - "render": "\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    ", + "render": "\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    ", "print": "{{{!}} class=\"wikitable\"\n!header\n!second header\n{{!}}- style=\"color:red;\"\n{{!}}data{{!}}{{!}} style=\"color:red;\" {{!}}second data\n{{!}}}" }, { "desc": "Build table with pipe as data", "wikitext": "{| class=\"wikitable\"\n!header\n!second header\n|- style=\"color:red;\"\n|data|| style=\"color:red;\" |second data\n|-\n| style=\"color:red;\" |data with | || style=\"color:red;\" | second data with |\n|-\n||data with | |||second data with |\n|}", "html": "\n\n\n\n\n\n\n\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    data with |second data with |\n
    data with |second data with |\n
    ", - "render": "\n\n\n\n\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    data with |second data with |\n
    data with |second data with |\n
    ", + "render": "\n\n\n\n\n\n\n\n\n
    header\nsecond header\n
    datasecond data\n
    data with |second data with |\n
    data with |second data with |\n
    ", "print": "{| class=\"wikitable\"\n!header\n!second header\n|- style=\"color:red;\"\n|data|| style=\"color:red;\" |second data\n|-\n| style=\"color:red;\" |data with | || style=\"color:red;\" | second data with |\n|-\n||data with | |||second data with |\n|}" }, { "desc": "Build table with wikilink", "wikitext": "{| class=\"wikitable\"\n!header||second header\n|- style=\"color:red;\"\n|data [[Main Page|linktext]]||second data [[Main Page|linktext]]\n|-\n|data||second data [[Main Page|link|text with pipe]]\n|}", "html": "\n\n\n\n\n\n\n\n\n
    headersecond header\n
    data linktextsecond data linktext\n
    datasecond data link|text with pipe\n
    ", - "render": "\n\n\n\n\n\n\n
    headersecond header\n
    data linktextsecond data linktext\n
    datasecond data link|text with pipe\n
    ", + "render": "\n\n\n\n\n\n\n
    headersecond header\n
    data linktextsecond data linktext\n
    datasecond data link|text with pipe\n
    ", "print": "{| class=\"wikitable\"\n!header||second header\n|- style=\"color:red;\"\n|data [[Main Page|linktext]]||second data [[Main Page|linktext]]\n|-\n|data||second data [[Main Page|link|text with pipe]]\n|}" }, { @@ -14006,7 +14006,7 @@ "desc": "Fostered content in tables: Plain text", "wikitext": "{|\n|-\na\n|}", "html": "a\n
    ", - "render": "a\n
    ", + "render": "a\n
    ", "print": "{|\n|-\na\n|}" }, { @@ -14018,49 +14018,49 @@ "desc": "Template generated table cell with attributes", "wikitext": "{|\n|-\n{{table_attribs_4}} ||a||b\n|}", "html": "\n\n\n\n\n
    ab\n
    ", - "render": "\n\n\n\n
    ab\n
    ", + "render": "\n\n\n\n
    ab\n
    ", "print": "{|\n|-\n{{table_attribs_4}} ||a||b\n|}" }, { "desc": "Templated table cell with untemplated attributes: Cell combination tests", "wikitext": "{|\n|-\n!class=\"test\"{{table_cell_content|attr=! align=left}} /* th & th combine */\n|-\n|class=\"test\"{{table_cell_content}} /* td & td combine */\n|-\n!class=\"test\"{{table_cell_content}} /* th & td combine */\n|-\n|class=\"test\"{{table_cell_content|attr=! align=left}} /* td & th combine */\n|-\n|class=\"test\"{{table_cell_content|attr=style='color:red;'}}\n|-\n|class=\"test\"{{table_cell_content|cmt=}}\n|}", "html": "\n\n\n\n\n\n\n\n\n\n\n\n\n
    foo /* th & th combine */\n
    foo /* td & td combine */\n
    foo /* th & td combine */\n
    foo /* td & th combine */\n
    foo\n
    foo\n
    ", - "render": "\n\n\n\n\n\n\n
    foo /* th & th combine */\n
    foo /* td & td combine */\n
    foo /* th & td combine */\n
    foo /* td & th combine */\n
    foo\n
    foo\n
    ", + "render": "\n\n\n\n\n\n\n
    foo /* th & th combine */\n
    foo /* td & td combine */\n
    foo /* th & td combine */\n
    foo /* td & th combine */\n
    foo\n
    foo\n
    ", "print": "{|\n|-\n!class=\"test\"{{table_cell_content|attr=! align=left}} /* th & th combine */\n|-\n|class=\"test\"{{table_cell_content}} /* td & td combine */\n|-\n!class=\"test\"{{table_cell_content}} /* th & td combine */\n|-\n|class=\"test\"{{table_cell_content|attr=! align=left}} /* td & th combine */\n|-\n|class=\"test\"{{table_cell_content|attr=style='color:red;'}}\n|-\n|class=\"test\"{{table_cell_content|cmt=<!--bar-->}}\n|}" }, { "desc": "T343874: Templated table that has a templated cell with untemplated attributes", "wikitext": "{{tbl-start}}\n|-\n|class=\"test\"{{table_cell_content}}\n|-\n|class=\"test\"{{table_cell_content|attr=! align=left}}\n{{tbl-end}}", "html": "\n\n\n\n\n
    foo\n
    foo\n
    ", - "render": "\n\n\n
    foo\n
    foo\n
    ", + "render": "\n\n\n
    foo\n
    foo\n
    ", "print": "{{tbl-start}}\n|-\n|class=\"test\"{{table_cell_content}}\n|-\n|class=\"test\"{{table_cell_content|attr=! align=left}}\n{{tbl-end}}" }, { "desc": "Templated table cell with untemplated attributes: Regression tests", "wikitext": "{|\n|class=\"foo\"\n{{1x|1={{!}}bar}}\n|}", "html": "\n\n\n
    class=\"foo\"\nbar\n
    ", - "render": "\n\n\n
    class=\"foo\"\nbar\n
    ", + "render": "\n\n\n
    class=\"foo\"\nbar\n
    ", "print": "{|\n|class=\"foo\"\n{{1x|1={{!}}bar}}\n|}" }, { "desc": "Templated table cell with untemplated attributes: Unsupported (standalone mode) Scenarios", "wikitext": "{|\n|-\n|class=\"foo\"{{1x|1= {{!}}bar}}\n|-\n|class=\"foo\"{{1x|1= {{!}}bar}}\n|}", "html": "\n\n\n\n\n
    bar\n
    bar\n
    ", - "render": "\n\n\n
    bar\n
    bar\n
    ", + "render": "\n\n\n
    bar\n
    bar\n
    ", "print": "{|\n|-\n|class=\"foo\"{{1x|1= {{!}}bar}}\n|-\n|class=\"foo\"{{1x|1=&nbsp;{{!}}bar}}\n|}" }, { "desc": "Templated table cell with untemplated attributes: Unsupported Scenario", "wikitext": "{|\n|-\n|class=\"foo\"{{1x|1={{!}}title=\"fail\"{{!}}bar}}\n|}", "html": "\n\n\n
    title=\"fail\"|bar\n
    ", - "render": "\n\n
    title=\"fail\"|bar\n
    ", + "render": "\n\n
    title=\"fail\"|bar\n
    ", "print": "{|\n|-\n|class=\"foo\"{{1x|1={{!}}title=\"fail\"{{!}}bar}}\n|}" }, { "desc": "Parsoid: Round-trip tables directly followed by content (T53219)", "wikitext": "{|\n|foo\n|} bar\n\n{|\n|baz\n|}quux", "html": "\n\n
    foo\n

    bar\n

    \n\n
    baz\n

    quux

    ", - "render": "\n\n
    foo\n
    bar\n\n\n
    baz\n
    quux", + "render": "\n\n
    foo\n
    bar\n\n\n
    baz\n
    quux", "print": "{|\n|foo\n|} bar\n\n{|\n|baz\n|}<b>quux</b>" }, { @@ -14072,7 +14072,7 @@ "desc": "Parsoid: Row-syntax table headings followed by comment & table cells", "wikitext": "{|\n!foo||bar\n ||baz||quux\n|}", "html": "\n\n\n\n\n
    foobar\nbazquux\n
    ", - "render": "\n\n\n\n\n
    foobar\nbazquux\n
    ", + "render": "\n\n\n\n\n
    foobar\nbazquux\n
    ", "print": "{|\n!foo||bar\n<!-- foo --> ||baz||quux\n|}" }, { @@ -14086,14 +14086,14 @@ "desc": "Tables: Digest broken attributes on table and tr tag", "wikitext": "{| || |} ++\n|- || || ++ --\n|- > [\n|}", "html": "\n\n\n
    ", - "render": "\n
    ", + "render": "\n
    ", "print": "{| || |} ++\n|- || || ++ --\n|- > [\n|}" }, { "desc": "Table with missing opening tag", "wikitext": "\n\n\n
    foo
    ", "html": "\n\n\n
    foo
    ", - "render": "\n\n\n
    foo
    ", + "render": "\n\n\n
    foo
    ", "print": "<table>\n<td>foo</td>\n</tr>\n</table>" }, {