1 # MediaWiki Parser test cases
2 # Some taken from http://meta.wikimedia.org/wiki/Parser_testing
3 # All (C) their respective authors and released under the GPL
5 # The syntax should be fairly self-explanatory.
7 # Currently supported test options:
8 # One of the following three:
10 # (default) generate HTML output
11 # pst apply pre-save transform
12 # msg apply message transform
14 # Plus any combination of these:
16 # cat add category links
17 # ill add inter-language links
18 # subpage enable subpages (disabled by default)
19 # noxml don't check for XML well-formedness
20 # title=[[XXX]] run test using article title XXX
21 # language=XXX set content language to XXX for this test
22 # variant=XXX set the variant of language for this test (eg zh-tw)
23 # disabled do not run test
24 # parsoid parsoid-specific options (not run by PHP parser unless
25 # the test includes an html/php section)
26 # php php-only test (not run by the parsoid parser unless
27 # the test includes an html/parsoid section)
28 # showtitle make the first line the title
29 # showindicators make the first lines the page status indicators
30 # comment run through Linker::formatComment() instead of main parser
31 # local format section links in edit comment text as local links
32 # notoc disable table of contents
33 # thumbsize=NNN set the default thumb size to NNNpx for this test
35 # You can also set the following parser properties via test options:
36 # wgEnableUploads, wgAllowExternalImages, wgMaxTocLevel,
37 # wgLinkHolderBatchSize, wgRawHtml
39 # For testing purposes, temporary articles can created:
40 # !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle
41 # where '/' denotes a newline.
43 # This is the standard article assumed to exist.
80 MediaWiki:bad image list
82 * [[File:Bad.jpg]] except [[Nasty page]]
110 Template:echo_with_span
116 Template:echo_with_div
129 Template:table_attribs
132 |</noinclude>style="color:red;"|Foo
136 Template:table_attribs_2
139 |</noinclude>style="color:red;"|Foo
144 Template:table_attribs_3
147 |</noinclude>style{{=}}"background:#f9f9f9;"|Foo
151 Template:table_attribs_4
153 | style="background-color:#DC241f;" width="10px" |
157 Template:table_attribs_5
160 |</noinclude>style="color:red;"||Bar
164 Template:table_attribs_6
166 style="background: <nowiki>
173 Template:table_attribs_7
176 |</noinclude>style{{=}}"background:#f9f9f9;"|Foo<ref>foo</ref>
180 Template:table_header_cells
182 {{table_attribs}}!!style='color:red;'|''Bar''||style='color:brown;'|''Foo'' and Baz
188 {{table_attribs}}||style='color:red;'|''Bar''||style='color:brown;'|''Foo'' and Baz
192 Template:PartialTable
199 Template:image_attribs
202 [[File:foobar.jpg|</noinclude>right|Caption text<noinclude>]]</noinclude>
205 ## See T48811 for details
207 Template:mixed_attr_content_template
209 style="color:red;" title="T48811"
215 Template:definition_list
262 Template:EmptyTRWithHTMLAttrTest
265 <tr align="center"></tr>
266 <tr><td>foo</td></tr>
267 <tr align="center"></tr>
268 <tr><td>bar</td></tr>
285 This is a simple paragraph.
287 <p>This is a simple paragraph.
292 Paragraphs with extra newline spacing
315 Paragraphs with newline spacing with comment lines in between
323 <!--foo--><!--More than 1 comment, still stripped-->
327 <!--foo--> <!----> <!-- bar -->
388 Paragraphs with newline spacing with non-empty white-space lines in between
415 Paragraphs with newline spacing with non-empty mixed comment and white-space lines in between
423 <!--foo--><!--More than 1 comment doesn't disable stripping of this line!-->
462 Extra newlines: More paragraphs with indented comment
477 Extra newlines followed by heading
492 <h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
493 <p><a href="/index.php?title=A&action=edit&redlink=1" class="new" title="A (page does not exist)">a</a>
496 <h1><span class="mw-headline" id="b_2">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
501 Extra newlines between heading and content are swallowed
509 <h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
510 <p><a href="/index.php?title=A&action=edit&redlink=1" class="new" title="A (page does not exist)">a</a>
517 http://fr.wikipedia.org/wiki/🍺
518 <!-- EasterEgg we love beer, better be able be able to link to it -->
520 <p><a rel="nofollow" class="external free" href="http://fr.wikipedia.org/wiki/🍺">http://fr.wikipedia.org/wiki/🍺</a>
524 # Note that the html+tidy output removes the spaces after the <li>,
525 # which is a bug (http://sourceforge.net/p/tidy/bugs/945/, etc).
526 # This is an issue for all tests with lists. We intentionally do
527 # *not* add html+tidy clauses for these, as we don't want to
528 # document/test the broken behavior. (Parsoid matches the non-tidy
529 # output in these cases.)
538 <li> Item 2</li></ul>
546 * plain''italic''plain
547 * plain''italic''plain''italic''plain
548 * plain'''bold'''plain
549 * plain'''bold'''plain'''bold'''plain
550 * plain''italic''plain'''bold'''plain
551 * plain'''bold'''plain''italic''plain
552 * plain''italic'''bold-italic'''italic''plain
553 * plain'''bold''bold-italic''bold'''plain
554 * plain'''''bold-italic'''italic''plain
555 * plain'''''bold-italic''bold'''plain
556 * plain''italic'''bold-italic'''''plain
557 * plain'''bold''bold-italic'''''plain
558 * plain l'''italic''plain
559 * plain l''''bold''' plain
562 <li> plain<i>italic</i>plain</li>
563 <li> plain<i>italic</i>plain<i>italic</i>plain</li>
564 <li> plain<b>bold</b>plain</li>
565 <li> plain<b>bold</b>plain<b>bold</b>plain</li>
566 <li> plain<i>italic</i>plain<b>bold</b>plain</li>
567 <li> plain<b>bold</b>plain<i>italic</i>plain</li>
568 <li> plain<i>italic<b>bold-italic</b>italic</i>plain</li>
569 <li> plain<b>bold<i>bold-italic</i>bold</b>plain</li>
570 <li> plain<i><b>bold-italic</b>italic</i>plain</li>
571 <li> plain<b><i>bold-italic</i>bold</b>plain</li>
572 <li> plain<i>italic<b>bold-italic</b></i>plain</li>
573 <li> plain<b>bold<i>bold-italic</i></b>plain</li>
574 <li> plain l'<i>italic</i>plain</li>
575 <li> plain l'<b>bold</b> plain</li></ul>
579 # this example taken from the [[simple:Moon]] article (bug 47326)
581 Italics and possessives (1)
583 obtained by ''[[Lunar Prospector]]'''s gamma-ray spectrometer
585 <p>obtained by <i><a href="/index.php?title=Lunar_Prospector&action=edit&redlink=1" class="new" title="Lunar Prospector (page does not exist)">Lunar Prospector</a>'</i>s gamma-ray spectrometer
589 # this example taken from [[en:Flaming Pie]] (bug 49926)
591 Italics and possessives (2)
593 '''''Flaming Pie''''' is ... released in 1997. In ''Flaming Pie'''s liner notes
595 <p><i><b>Flaming Pie</b></i> is ... released in 1997. In <i>Flaming Pie'</i>s liner notes
599 # this example taken from [[en:Dictionary]] (bug 49926)
601 Italics and possessives (3)
603 The first monolingual dictionary written in a Romance language was ''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was published, posthumously, the ''Dictionnaire Universel''.
605 <p>The first monolingual dictionary written in a Romance language was <i>Sebastián Covarrubias'</i> <i>Tesoro de la lengua castellana o española</i>, published in 1611 in Madrid. In 1612 the first edition of the <i>Vocabolario dell'<a href="/index.php?title=Accademia_della_Crusca&action=edit&redlink=1" class="new" title="Accademia della Crusca (page does not exist)">Accademia della Crusca</a></i>, for Italian, was published. In 1690 in Rotterdam was published, posthumously, the <i>Dictionnaire Universel</i>.
611 ### 2-quote opening sequence tests
614 Italics and bold: 2-quote opening sequence: (2,2)
623 Italics and bold: 2-quote opening sequence: (2,3)
632 Italics and bold: 2-quote opening sequence: (2,4)
642 # same html as previous, but wikitext adjusted to match parsoid html2wt
644 Italics and bold: 2-quote opening sequence: (2,4) w/ nowiki
646 ''foo<nowiki>''</nowiki>''
652 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
654 Italics and bold: 2-quote opening sequence: (2,5)
667 # same html as previous, but wikitext adjusted to match parsoid html2wt
669 Italics and bold: 2-quote opening sequence: (2,5+3) w/ nowiki
671 ''foo'''''<nowiki/>'''
682 ### 3-quote opening sequence tests
686 Italics and bold: 3-quote opening sequence: (3,2)
695 Italics and bold: 3-quote opening sequence: (3,3)
704 Italics and bold: 3-quote opening sequence: (3,4)
712 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
714 Italics and bold: 3-quote opening sequence: (3,5)
727 # same html as previous, but wikitext adjusted to match parsoid html2wt
729 Italics and bold: 3-quote opening sequence: (3,5+2) w/ nowiki
731 '''foo'''''<nowiki/>''
742 ### 4-quote opening sequence tests
746 Italics and bold: 4-quote opening sequence: (4,2)
756 # same html as previous, but wikitext adjusted to match parsoid html2wt
758 Italics and bold: 4-quote opening sequence: (4,2) w/ nowiki
760 <nowiki>''</nowiki>''foo''
767 Italics and bold: 4-quote opening sequence: (4,3)
776 Italics and bold: 4-quote opening sequence: (4,4)
786 # same html as previous, but wikitext adjusted to match parsoid html2wt
788 Italics and bold: 4-quote opening sequence: (4,4) w/ nowiki
796 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
798 Italics and bold: 4-quote opening sequence: (4,5)
807 <p>'<b>foo</b><i></i>
811 # same html as previous, but wikitext adjusted to match parsoid html2wt
813 Italics and bold: 4-quote opening sequence: (4,5+2) w/ nowiki
815 '<nowiki/>'''foo'''''<nowiki/>''
820 <p>'<b>foo</b><i></i>
826 ### 5-quote opening sequence tests
830 Italics and bold: 5-quote opening sequence: (5,2)
840 # same html as previous, but wikitext adjusted to match parsoid html2wt
842 Italics and bold: 5-quote opening sequence: (5,2+3)
851 Italics and bold: 5-quote opening sequence: (5,3)
861 # same html as previous, but wikitext adjusted to match parsoid html2wt
863 Italics and bold: 5-quote opening sequence: (5,3+2)
872 Italics and bold: 5-quote opening sequence: (5,4)
878 <p><i><b>foo'</b></i>
883 Italics and bold: 5-quote opening sequence: (5,5)
892 Italics and bold: 5-quote opening sequence: (5,6)
896 <p><i><b>foo'</b></i>
901 ### multiple quote sequences in a line
904 Italics and bold: multiple quote sequences: (2,4,2)
910 <p><i>foo'<b>bar</b></i>
915 # same html as previous, but wikitext adjusted to match parsoid html2wt
917 Italics and bold: multiple quote sequences: (2,4,2+3) w/ nowiki
919 ''foo'<nowiki/>'''bar'''''
921 <p><i>foo'<b>bar</b></i>
927 Italics and bold: multiple quote sequences: (2,4,3)
933 <p><i>foo'<b>bar</b></i>
938 # same html as previous, but wikitext adjusted to match parsoid html2wt
940 Italics and bold: multiple quote sequences: (2,4,3+2) w/ nowiki
942 ''foo'<nowiki/>'''bar'''''
944 <p><i>foo'<b>bar</b></i>
950 Italics and bold: multiple quote sequences: (2,4,4)
956 <p><i>foo'<b>bar'</b></i>
961 # same html as previous, but wikitext adjusted to match parsoid html2wt
963 Italics and bold: multiple quote sequences: (2,4,4+2) w/ nowiki
965 ''foo'<nowiki/>'''bar'<nowiki/>'''''
967 <p><i>foo'<b>bar'</b></i>
972 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
974 Italics and bold: multiple quote sequences: (3,4,2)
983 <p><b>foo'</b>bar<i></i>
987 # same html as previous, but wikitext adjusted to match parsoid html2wt
989 Italics and bold: multiple quote sequences: (3,4,2+2) w/ nowiki
993 '''<nowiki>foo'</nowiki>'''bar''<nowiki/>''
998 <p><b><span typeof="mw:Nowiki">foo'</span></b>bar<i></i>
1003 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
1005 Italics and bold: multiple quote sequences: (3,4,3)
1014 <p><b>foo'</b>bar<b></b>
1018 # same html as previous, but wikitext adjusted to match parsoid html2wt
1020 Italics and bold: multiple quote sequences: (3,4,3+3) w/ nowiki
1022 '''<nowiki>foo'</nowiki>'''bar'''<nowiki/>'''
1027 <p><b><span typeof="mw:Nowiki">foo'</span></b>bar<b></b>
1032 ### other quote tests
1035 Italics and bold: other quote tests: (2,3,5)
1037 ''this is about '''foo's family'''''
1039 <p><i>this is about <b>foo's family</b></i>
1045 Italics and bold: other quote tests: (2,(3,3),2)
1047 ''this is about '''foo's''' family''
1049 <p><i>this is about <b>foo's</b> family</i>
1055 Italics and bold: other quote tests: (3,2,3,2)
1059 '''this is about ''foo'''s family''
1061 <p><b>this is about <i>foo</i></b><i>s family</i>
1066 # same html as previous, but wikitext adjusted to match parsoid html2wt
1068 Italics and bold: other quote tests: (3,2,3+2+2,2)
1070 '''this is about ''foo'''''<nowiki/>''s family''
1072 <p><b>this is about <i>foo</i></b><i>s family</i>
1078 Italics and bold: other quote tests: (3,2,3,3)
1080 '''this is about ''foo'''s family'''
1082 <p>'<i>this is about </i>foo<b>s family</b>
1088 Italics and bold: other quote tests: (3,(2,2),3)
1090 '''this is about ''foo's'' family'''
1092 <p><b>this is about <i>foo's</i> family</b>
1098 Italicized possessive
1100 The ''[[Main Page]]'''s talk page.
1102 <p>The <i><a href="/wiki/Main_Page" title="Main Page">Main Page</a>'</i>s talk page.
1105 <p>The <i><a rel="mw:WikiLink" href="Main_Page" title="Main Page">Main Page</a>'</i>s talk page.</p>
1109 Parsoid only: Quote balancing context should be restricted to td/th cells on the same wikitext line
1110 (Requires tidy for PHP parser output to be fixed up)
1112 parsoid=wt2html,wt2wt
1129 <tbody><tr><th><i>a</i></th><th><i>b</i></th>
1130 <td><i>a</i></td><td><i>b</i></td></tr>
1139 Non-html5 tags should be accepted
1141 <center>''foo''</center>
1143 <font>''foo''</font>
1144 <strike>''foo''</strike>
1147 <center><i>foo</i></center>
1148 <p><big><i>foo</i></big>
1149 <font><i>foo</i></font>
1150 <strike><i>foo</i></strike>
1156 <wbr> is valid wikitext (bug 52468)
1164 # <strike> is HTML4, <s> is HTML4/5.
1166 <s> or <strike> for strikethrough
1168 <strike>strike</strike>
1172 <p><strike>strike</strike>
1180 Text-level semantic html elements in wikitext
1183 <strong>text</strong>
1199 <ruby><rb>明日</rb><rp>(</rp><rt>Ashita</rt><rp> </rp><rtc>あした</rtc><rp>)</rp></ruby>
1206 <strong>text</strong>
1222 <ruby><rb>明日</rb><rp>(</rp><rt>Ashita</rt><rp> </rp><rtc>あした</rtc><rp>)</rp></ruby>
1230 # test cases taken from
1231 # http://www.w3.org/TR/html5/text-level-semantics.html#the-ruby-element
1233 Ruby markup (W3C-style)
1235 ; Mono-ruby for individual base characters
1236 : <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>
1238 : <ruby>今日<rt>きょう</rt></ruby>
1240 : <ruby>法<rb>華</rb><rb>経</rb><rt>ほ</rt><rt>け</rt><rt>きょう</rt></ruby>
1242 : <ruby>東<rb>京</rb><rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp></ruby>
1244 : <ruby><rb>旧</rb><rb>金</rb><rb>山</rb><rt>jiù</rt><rt>jīn</rt><rt>shān</rt><rtc>San Francisco</rtc></ruby>
1246 <rb>♥</rb><rtc><rt>Heart</rt></rtc><rtc lang="fr"><rt>Cœur</rt></rtc>
1247 <rb>☘</rb><rtc><rt>Shamrock</rt></rtc><rtc lang="fr"><rt>Trèfle</rt></rtc>
1248 <rb>✶</rb><rtc><rt>Star</rt></rtc><rtc lang="fr"><rt>Étoile</rt></rtc>
1251 <dl><dt> Mono-ruby for individual base characters</dt>
1252 <dd> <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby></dd>
1253 <dt> Group ruby</dt>
1254 <dd> <ruby>今日<rt>きょう</rt></ruby></dd>
1255 <dt> Jukugo ruby</dt>
1256 <dd> <ruby>法<rb>華</rb><rb>経</rb><rt>ほ</rt><rt>け</rt><rt>きょう</rt></ruby></dd>
1257 <dt> Inline ruby</dt>
1258 <dd> <ruby>東<rb>京</rb><rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp></ruby></dd>
1259 <dt> Double-sided ruby</dt>
1260 <dd> <ruby><rb>旧</rb><rb>金</rb><rb>山</rb><rt>jiù</rt><rt>jīn</rt><rt>shān</rt><rtc>San Francisco</rtc></ruby></dd></dl>
1262 <rb>♥</rb><rtc><rt>Heart</rt></rtc><rtc lang="fr"><rt>Cœur</rt></rtc>
1263 <rb>☘</rb><rtc><rt>Shamrock</rt></rtc><rtc lang="fr"><rt>Trèfle</rt></rtc>
1264 <rb>✶</rb><rtc><rt>Star</rt></rtc><rtc lang="fr"><rt>Étoile</rt></rtc>
1269 # The next two test different paths in the sanitizer.
1271 Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
1273 <blockquote|>a</blockquote>
1275 <b→> doesn't terminate </b→>
1277 <bä> doesn't terminate </bä>
1279 <boo> doesn't terminate </boo>
1281 <s.foo> doesn't terminate </s.foo>
1285 <p><blockquote|>a</blockquote>
1286 </p><p><b→> doesn't terminate </b→>
1287 </p><p><bä> doesn't terminate </bä>
1288 </p><p><boo> doesn't terminate </boo>
1289 </p><p><s.foo> doesn't terminate </s.foo>
1290 </p><p><sub-ID#1>
1294 # There is a tidy bug here: http://sourceforge.net/p/tidy/bugs/946/
1295 # If the non-word-character tag made it through the sanitizer, tidy
1296 # would munge it up.
1298 Non-word characters don't terminate tag names + tidy
1300 <blockquote|>a</blockquote>
1302 <b→> doesn't terminate </b→>
1304 <bä> doesn't terminate </bä>
1306 <boo> doesn't terminate </boo>
1308 <s.foo> doesn't terminate </s.foo>
1312 <p><blockquote|>a</p>
1313 <p><b→> doesn't terminate </b→></p>
1314 <p><bä> doesn't terminate </bä></p>
1315 <p><boo> doesn't terminate </boo></p>
1316 <p><s.foo> doesn't terminate </s.foo></p>
1317 <p><sub-ID#1></p>
1321 ### See tests/parser/parserTestsParserHook.php for the <tåg> extension)
1322 ### This checks that HTML5 tags (with non-word characters in the tag
1323 ### name) make it safely through the parser -- the Sanitizer will
1324 ### munge them later, as it should.
1327 Non-word characters are valid in extension tags (T19663)
1340 Isolated close tags should be treated as literal text (bug 52760)
1348 <p><s.foo>s</p>
1350 <p><s.foo>s</p>
1354 ### Special characters
1358 Bare pipe character (bug 52363)
1367 Bare pipe character from a template (bug 52363)
1376 ### <nowiki> test cases
1380 <nowiki> unordered list
1382 <nowiki>* This is not an unordered list item.</nowiki>
1384 <p>* This is not an unordered list item.
1387 <p><span typeof="mw:Nowiki">* This is not an unordered list item.</span></p>
1393 <nowiki>Lorem ipsum dolor
1401 <p>Lorem ipsum dolor
1410 <p><span typeof="mw:Nowiki">Lorem ipsum dolor
1422 :There is not nowiki.
1423 :There is <nowiki>nowiki</nowiki>.
1425 #There is not nowiki.
1426 #There is <nowiki>nowiki</nowiki>.
1428 *There is not nowiki.
1429 *There is <nowiki>nowiki</nowiki>.
1431 <dl><dd>There is not nowiki.</dd>
1432 <dd>There is nowiki.</dd></dl>
1433 <ol><li>There is not nowiki.</li>
1434 <li>There is nowiki.</li></ol>
1435 <ul><li>There is not nowiki.</li>
1436 <li>There is nowiki.</li></ul>
1439 <dl><dd data-parsoid='{}'>There is not nowiki.</dd>
1440 <dd data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</dd></dl>
1442 <ol><li data-parsoid='{}'>There is not nowiki.</li>
1443 <li data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</li></ol>
1445 <ul><li data-parsoid='{}'>There is not nowiki.</li>
1446 <li data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</li></ul>
1450 Entities inside <nowiki>
1452 <nowiki><</nowiki>
1459 Entities inside template parameters
1465 <p><span typeof="mw:Transclusion mw:Entity" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&ndash;"}},"i":0}}]}'>–</span></p>
1469 Properly escape nowiki when combined with other wiki markup
1473 <p>* </nowiki> tag</p>
1475 <nowiki>*</nowiki> <nowiki></nowiki></nowiki> tag
1479 T93824: Put escaped HTML tags inside nowiki
1483 <p><h2>foo</h2></p>
1485 <nowiki><h2>foo</h2></nowiki>
1489 T71950: 1. Put nowiki as close to cause as possible, even with non-quote escapable chars
1493 <p>This text: L'<a rel="mw:WikiLink" href="./Foo">Foo</a>
1494 This text: L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
1495 This text: L'''<a rel="mw:WikiLink" href="./Foo">Foo</a>''</p>
1497 This text: L'[[Foo]]
1498 This text: L<nowiki>''</nowiki>[[Foo]]
1499 This text: L<nowiki>'''</nowiki>[[Foo]]<nowiki>''</nowiki>
1502 # This test fails because wikitext whitespace is not normalized before comparing.
1504 T71950: 2. Put nowiki as close to cause as possible, after ' :'
1508 <p>This text : L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
1511 This text : L<nowiki>''</nowiki>[[Foo]]
1514 # This test and the next one are html2wt only as they test that incorrect wikitext
1515 # passed in template arguments gets escaped or wrapped in nowikis where required.
1517 T71482: Use {{!}} instead of nowiki for single pipe in template argument
1521 <p><span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo|bar"}},"i":0}}]}" about="#mwt1"></span>
1522 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo|bar |[["}},"i":0}}]}" about="#mwt2"></p>
1524 {{echo|foo{{!}}bar}}
1525 {{echo|<nowiki>foo|bar |[[</nowiki>}}
1529 T53961: Output correct nowikis in template arguments
1533 <p><span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a [ b"}},"i":0}}]}" about="#mwt1"></span>
1534 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a }} b"}},"i":0}}]}" about="#mwt2"></span>
1535 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a [[ b"}},"i":0}}]}" about="#mwt3"></span>
1536 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a | {{ ]]"}},"i":0}}]}" about="#mwt4"></span>
1537 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a }"}},"i":0}}]}" about="#mwt5"></span></p>
1540 {{echo|a <nowiki>}}</nowiki> b}}
1541 {{echo|<nowiki>a [[ b</nowiki>}}
1542 {{echo|a {{!}} <nowiki>{{ ]]</nowiki>}}
1543 {{echo|a <nowiki>}</nowiki>}}
1547 Cases where "!!" needs nowiki protection
1552 <tr><th>this needs protection !! here</th></tr>
1556 <tr><th>this does not need
1557 protection !! here</th></tr>
1561 !<nowiki>this needs protection !! here</nowiki>
1574 Comments and Indent-Pre
1576 <!-- comment 1 --> asdf
1578 <!-- comment 1 --> asdf
1581 <!-- comment 1 --> asdf
1582 <!-- comment 2 -->xyz
1584 <!-- comment 1 --> asdf
1585 <!-- comment 2 --> xyz
1641 asdf<!-- comment 1 -->jkl
1651 <!-- foo --> b <!-- bar -->
1665 <!-- returns a single newline, not nothing, since the newline after > is not stripped -->
1671 Comment semantics and delimiters
1673 <!-- --><!----><!-----><!------>
1677 <!-- --><!----><!-----><!------>
1681 Comment semantics and delimiters, redux
1683 <!-- In SGML every "foo" here would actually show up in the text -- foo -- bar
1684 -- foo -- funky huh? ... -->
1688 <!-- In SGML every "foo" here would actually show up in the text -- foo -- bar
1689 -- foo -- funky huh? ... -->
1693 Comment semantics and delimiters: directors cut
1695 <!-- ... However we like to keep things simple and somewhat XML-ish so we eat
1696 everything starting with < followed by !-- until the first -- and > we see,
1697 that wouldn't be valid XML however, since in XML -- has to terminate a comment
1703 <!-- ... However we like to keep things simple and somewhat XML-ish so we eat
1704 everything starting with < followed by !-- until the first -- and > we see,
1705 that wouldn't be valid XML however, since in XML -- has to terminate a comment
1710 Comment semantics: nesting
1712 <!--<!-- no, we're not going to do anything fancy here -->-->
1717 <!--<!-- no, we're not going to do anything fancy here --><p>--></p>
1720 # Parsoid closes the unclosed comment, even if it means a slight
1723 Comment semantics: unclosed comment at end
1725 parsoid=wt2html,html2html
1727 <!--This comment will run out to the end of the document
1731 <!--This comment will run out to the end of the document-->
1735 Comment semantics: normalize comments to play nice with XML and browsers
1737 <!-- Browsers --!> think this is closed -->
1738 <!--> This would normally be text -->
1739 <!---> As would this -->
1740 <!-- XML doesn't like trailing dashes -------->
1741 <!-- Nor doubled hyphens -- anywhere in the data -->
1742 But this is not a comment.
1744 <p>But this is not a comment.
1747 <!-- Browsers --!> think this is closed -->
1748 <!--> This would normally be text -->
1749 <!---> As would this -->
1750 <!-- XML doesn't like trailing dashes -------->
1751 <!-- Nor doubled hyphens -- anywhere in the data -->
1752 <p>But this is not a comment.</p>
1756 Comment semantics: round-trip even text which contains encoded -->
1758 <!-- hello & goodbye - > --> --&gt; --&xx -->
1760 <!-- hello & goodbye - > --> --&gt; --&xx -->
1764 Comment in template title
1773 Comment on its own line post-expand
1785 Comment on its own line post-expand with non-significant whitespace
1797 Multiple comments should still parse as SOL-transparent
1799 parsoid=wt2html,wt2wt
1802 <!--c2--><!--c3--><!--c4-->*b
1811 <!--c2--><!--c3--><!--c4-->
1818 ### paragraph wrapping tests
1833 Block tag on one line (<div>)
1849 Block tag on one line (<blockquote>)
1851 a <blockquote>foo</blockquote>
1855 a <blockquote>foo</blockquote>
1867 Block tag on both lines (<div>)
1884 Block tag on both lines (<blockquote>)
1886 a <blockquote>foo</blockquote>
1888 b <blockquote>foo</blockquote>
1890 a <blockquote>foo</blockquote>
1891 b <blockquote>foo</blockquote>
1905 Multiple lines without block tags
1929 # Tidy strips out the empty <div> tags. Parsoid doesn't.
1930 # So, we have a separate section for Parsoid. We don't want
1931 # to mimic this stripping behavior in Parsoid. It affects
1932 # editing experience and also requires us to maintain additional
1935 Empty lines between lines with block tags
1973 <div data-parsoid='{"stx":"html"}'></div>
1976 <div data-parsoid='{"stx":"html"}'></div><p>a</p>
1979 <div data-parsoid='{"stx":"html"}'>a</div><p>b</p>
1981 <div data-parsoid='{"stx":"html"}'>b</div><p>d</p>
1984 <div data-parsoid='{"stx":"html"}'>e</div>
1987 ## PHP parser emits output which is broken
1989 Unclosed HTML p-tags should be handled properly
2002 <div data-parsoid='{"stx":"html"}'><p data-parsoid='{"stx":"html", "autoInsertedEnd":true}'>foo</p></div>
2007 ## SSS FIXME: I can come up with other scenarios where this doesn't work because
2008 ## of eager output of buffered tokens in the p-wrapper. But, I'm going to ignore
2011 1. P-wrapping should leave sol-transparent tags outside p-tags where possible
2015 a [[Category:A1]] [[Category:A2]]
2020 <link rel="mw:PageProp/Category" href="./Category:A1"/> <link rel="mw:PageProp/Category" href="./Category:A2"/> <link rel="mw:PageProp/Category" href="./Category:A3"/> <link rel="mw:PageProp/Category" href="./Category:A4"/>
2024 2. P-wrapping should leave sol-transparent tags outside p-tags where possible
2030 <link rel="mw:PageProp/Category" href="./Category:A1"/><p>a</p>
2034 ### Preformatted text
2043 And a [[Main Page|link]]
2049 And a <a href="/wiki/Main_Page" title="Main Page">link</a>
2054 Tabs don't trigger preformatted text
2058 This is preformatted text.
2064 <pre>This is preformatted text.
2069 preformatted text.</p>
2070 <pre>This is preformatted text.
2075 Space before tab needs nowiki pre protection
2081 <nowiki> </nowiki> a
2085 Ident preformatting with inline content
2096 <pre> with <nowiki> inside (compatibility with 1.6 and earlier)
2113 Regression with preformatted in <center>
2127 Bug 52763: Preformatted in <blockquote>
2133 indented cell (no pre-wrapping!)
2143 <p> indented cell (no pre-wrapping!)
2151 Bug 51086: Double newlines in blockquotes should be turned into paragraphs
2168 Bug 15491: <ins>/<del> in blockquote
2171 Foo <del>bar</del> <ins>baz</ins> quux
2175 <p>Foo <del>bar</del> <ins>baz</ins> quux
2181 # Note that the p-wrapping is newline sensitive, which could be
2182 # considered a bug: tidy will wrap only the 'Foo' in the example
2183 # below in a <p> tag. (see comment 23-25 of bug #6200)
2185 Bug 15491: <ins>/<del> in blockquote (2)
2187 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
2190 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
2196 <del>bar</del> <ins>baz</ins> quux</blockquote>
2200 <pre> with attributes (bug 3202)
2202 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
2204 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
2209 <pre> with width attribute (bug 3202)
2211 <pre width="8">Narrow screen goodies</pre>
2213 <pre width="8">Narrow screen goodies</pre>
2218 <pre> with forbidden attribute (bug 3202)
2220 <pre width="8" onmouseover="alert(document.cookie)">Narrow screen goodies</pre>
2222 <pre width="8">Narrow screen goodies</pre>
2227 Entities inside <pre>
2236 <pre> with forbidden attribute values (bug 3202)
2238 <pre width="8" style="border-width: expression(alert(document.cookie))">Narrow screen goodies</pre>
2240 <pre width="8" style="/* insecure input */">Narrow screen goodies</pre>
2245 <nowiki> inside <pre> (bug 13238)
2253 <pre><nowiki><nowiki></nowiki>Foo<nowiki></nowiki></nowiki></pre>
2261 <pre><nowiki>Foo</nowiki></pre>
2266 <nowiki> and <pre> preference (first one wins)
2295 <pre data-parsoid='{"stx":"html","strippedNL":true}'><nowiki>
2297 <p><span typeof="mw:Placeholder" data-parsoid='{"src":"</nowiki>"}'></nowiki></span>
2300 <p><span typeof="mw:Nowiki">
2309 </pre> inside nowiki
2311 <nowiki></pre></nowiki>
2317 # Parsoid doesn't strip empty tags, like Tidy does.
2319 Empty pre; pre inside other HTML tags (bug 54946)
2321 parsoid=wt2html,wt2wt
2352 HTML pre followed by indent-pre
2362 # Note that tidy removes the empty <p> tags from the start and end.
2363 # Parsoid does not, by design.
2367 <p><pre>foo</pre></p>
2373 <p data-parsoid='{"stx":"html","autoInsertedEnd":true}'></p><pre data-parsoid='{"stx":"html"}'>foo</pre><p data-parsoid='{"autoInsertedStart":true,"stx":"html"}'></p>
2377 Templates: Indent-Pre: 1a. Templates that break a line should suppress <pre>
2385 Templates: Indent-Pre: 1b. Templates that break a line should suppress <pre>
2395 Templates: Indent-Pre: 1c: Wrapping should be based on expanded content
2407 Templates: Indent-Pre: 1d: Wrapping should be based on expanded content
2428 Templates: Indent-Pre: 1e. Wrapping should be based on expanded content
2432 {{echo| foo}}{{echo| bar}}
2437 {{echo|<!--cmt--> foo}}
2439 <!--cmt-->{{echo| foo}}
2441 {{echo|{{echo| }}bar}}
2459 Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
2496 Pres with newline attributes
2501 <pre class="one two">hi</pre>
2505 two" data-parsoid='{"stx":"html"}'>hi</pre>
2509 Things that look like <pre> tags aren't treated as such
2511 Barack Obama <President> of the United States
2512 <President></President>
2514 <p>Barack Obama <President> of the United States
2515 <President></President>
2519 ## PHP parser discards the "<pre " string
2521 Handle broken pre-like tags (bug 64025)
2525 {{echo|<pre <pre>x</pre>}}
2527 <table><pre </table>
2530 <table><pre></pre></table>
2533 <pre about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"a":{"<pre":null},"sa":{"<pre":""},"stx":"html","pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<pre <pre>x</pre>"}},"i":0}}]}'>x</pre>
2542 Parsoid: handle pre with space after attribute
2546 <pre style="width:50%;" >{{echo|foo}}</pre>
2548 <pre style="width:50%;">{{echo|foo}}</pre>
2551 <pre style="width:50%;">{{echo|foo}}</pre>
2554 # TODO / maybe: fix wt2wt for this
2556 Parsoid: Don't paragraph-wrap fosterable content
2582 Parsoid: Don't paragraph-wrap fosterable content even if table syntax is unbalanced
2610 #--------------------------------------------------------------------
2611 # Transclusion parameter whitespace stripping tests
2612 # Behavior is different for positional and named parameters
2613 #--------------------------------------------------------------------
2615 Templates: Strip leading and trailing whitespace from named-param values
2619 {{echo|1= {{echo|b}} }}
2632 <ul><li> d</li></ul>
2637 Templates: Don't strip whitespace from positional-param values
2641 {{echo|{{echo|b}} }}
2673 <ul><li> f</li></ul>
2681 Templates: Handle empty comment-and-ws-only lines correctly
2684 <!--should be ignored-->
2685 <!--should be ignored as well-->
2694 Templates: Handle comments in the target
2697 <!-- should be ignored -->
2700 {{echo<!-- should be ignored -->
2703 {{echo<!-- should be ignored -->|foo}}
2705 {{<!-- should be ignored -->echo|foo}}
2707 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo\n<!-- should be ignored -->\n","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</p>
2709 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo<!-- should be ignored -->\n","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</p>
2711 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo<!-- should be ignored -->","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</p>
2713 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</p>
2717 Templates: Handle comments in parameter names (bug 67657)
2720 <!-- should be ignored -->
2724 <!-- should be ignored -->
2727 {{echo|1<!-- should be ignored --> = foo}}
2729 {{echo|<!-- should be ignored -->1 = foo}}
2731 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo","key":{"wt":"1\n<!-- should be ignored -->"}}},"i":0}}]}'>foo</p>
2733 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo","key":{"wt":"<!-- should be ignored -->\n1"}}},"i":0}}]}'>foo</p>
2735 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo","key":{"wt":"1<!-- should be ignored -->"}}},"i":0}}]}'>foo</p>
2737 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo","key":{"wt":"<!-- should be ignored -->1"}}},"i":0}}]}'>foo</p>
2741 Templates: Other wikitext in parameter names (bug 67657)
2745 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"''1''":{"wt":"foo"}},"i":0}}]}'>{{{1}}}</p>
2751 #--------------------------------------------------------------------
2752 # Transclusion parameter escaping tests
2753 #--------------------------------------------------------------------
2755 Templates: Parsoid parameter escaping test 1
2757 {{echo|[foo]|{{echo|[bar]}}}}
2761 <p about="#mwt1" typeof="mw:Transclusion"
2762 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[foo]"},"2":{"wt":"{{echo|[bar]}}"}},"i":0}}]}'>[foo]</p>
2766 Parsoid: Pipes in external links in template parameter
2768 {{echo|[{{echo|http://example.com}} link]}}
2770 <p><a rel="nofollow" class="external text" href="http://example.com">link</a></p>
2772 <p><a rel="mw:ExtLink" href="http://example.com" about="#mwt31" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[{{echo|http://example.com}} link]"}},"i":0}}]}'>link</a></p>
2776 Parsoid: pipe in transclusion parameter
2778 {{echo|http://foo.com/a|b}}
2780 <p><a rel="nofollow" class="external free" href="http://foo.com/a%7Cb">http://foo.com/a%7Cb</a></p>
2782 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
2783 typeof="mw:Transclusion"
2784 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://foo.com/a&#124;b"}},"i":0}}]}'>http://foo.com/a|b</a></p>
2788 Parsoid: Pipe in external link target and content in template parameter
2790 parsoid=html2wt,wt2wt
2792 {{echo|[http://foo.com/a|b a|b]}}
2794 <p><a rel="nofollow" class="external text" href="http://foo.com/a%7Cb">a|b</a></p>
2796 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
2797 typeof="mw:Transclusion"
2798 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
2799 "params":{"1":{"wt":"[http://foo.com/a|b a|b]"}},"i":0}}]}'>a|b</a></p>
2803 Parsoid: Pipe in template with nested template in external link target in template parameter (seriously)
2807 {{echo|[{{fullurl:{{FULLPAGENAME}}|action=edit}} bar]}}
2809 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[{{fullurl:{{FULLPAGENAME}}|action=edit}} bar]"}},"i":0}}]}'>[Main Page bar]</p>
2813 Templates: Don't escape already nowiki-escaped text in template parameters
2815 parsoid=html2wt,wt2wt
2817 {{echo|foo<nowiki>|</nowiki>bar}}
2818 {{echo|<nowiki><div></nowiki>}}
2819 {{echo|<nowiki></nowiki>}}
2821 <p>foo|bar <div></p>
2823 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo<nowiki>|</nowiki>bar"}},"i":0}}]}'}'>foo</span><span typeof="mw:Nowiki" about="#mwt1">|</span><span about="#mwt1">bar</span>
2824 <span typeof="mw:Transclusion mw:Nowiki" about="#mwt2" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki>&lt;div&gt;</nowiki>"}},"i":0}}]}'><span typeof="mw:Entity"><</span>div<span typeof="mw:Entity">></span></span>
2825 <span typeof="mw:Transclusion mw:Nowiki" about="#mwt3" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki></nowiki>"}},"i":0}}]}'></span>
2831 Templates: '=' char in nested transclusions should not trigger nowiki escapes or conversion to named param
2833 parsoid=html2wt,wt2wt
2835 {{echo|{{echo|1=bar}}}}
2839 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{echo|1=bar}}"}},"i":0}}]}'>bar</p>
2844 Templates parameters with special tokenizing behavior dont get modified because of arg escaping
2850 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a : b"}},"i":0}}]}'>a<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"isDisplayHack":true}'> </span>: b</p>
2855 Templates: Preserve blank parameter names
2861 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"":{"wt":"foo"}},"i":0}}]}'>{{{1}}}</p>
2865 Templates: Preserve blank parameter names in other positions
2867 {{blank_param|bar|=foo}}
2871 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]},{"k":"","named":true,"spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"blank_param","href":"./Template:Blank_param"},"params":{"1":{"wt":"bar"},"":{"wt":"foo"}},"i":0}}]}'>bar
2876 ### Parsoid-centric tests for testing RT edge cases for pre
2880 1a. Indent-Pre and Comments
2893 1b. Indent-Pre and Comments
2906 1c. Indent-Pre and Comments
2919 1d. Indent-Pre and Comments
2920 (Pre-handler currently cannot distinguish between comment/ws order and normalizes them to [comment,ws] order)
2933 2a. Indent-Pre and tables
2954 2b. Indent-Pre and tables
2970 2c. Indent-Pre and tables (bug 42252)
2987 2d. Indent-Pre and tables
3004 <tbody><tr><td> b</td></tr>
3009 2e. Indent-Pre and table-line syntax
3022 2f. Indent-pre started by table-line syntax
3041 3a. Indent-Pre and block tags (single-line html)
3045 c <blockquote> foo </blockquote>
3050 c <blockquote> foo </blockquote>
3051 <pre><span> foo </span>
3054 <p>a </p><p data-parsoid='{"stx":"html"}'> foo </p>
3055 <p>b </p><div data-parsoid='{"stx":"html"}'> foo </div>
3056 <p>c </p><blockquote data-parsoid='{"stx":"html"}'> foo </blockquote>
3057 <pre><span> foo </span>
3074 3b. Indent-Pre and block tags (multi-line html)
3079 <pre>a <span>foo</span>
3084 <pre>a <span data-parsoid='{"stx":"html"}'>foo</span></pre>
3085 b <div data-parsoid='{"stx":"html"}'> foo </div>
3095 3c. Indent-Pre and block tags (pre-content on separate line)
3159 4. Indent-Pre and extension tags
3165 a <ul class="gallery mw-gallery-traditional">
3166 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
3167 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
3168 <div class="gallerytext">
3175 <ul class="gallery mw-gallery-traditional">
3176 <li class="gallerybox" style="width: 155px">
3177 <div style="width: 155px">
3178 <div class="thumb" style="width: 150px;">
3179 <div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div>
3181 <div class="gallerytext"></div>
3188 Table wikitext syntax outside wiki-tables
3191 ! not a table heading
3194 | class="foo bar" | baz
3201 ! not a table heading
3204 | class="foo bar" | baz
3213 Render paragraphs when indent-pre is suppressed in blocklevels
3230 4. Multiple spaces at start-of-line
3248 ## NOTE: the leading white-space chars on empty line are significant
3250 5a. White-space in indent-pre
3262 ## NOTE: the leading white-space chars on empty line are significant
3264 5b. White-space in indent-pre
3283 5c. White-space in indent-pre
3296 6. Pre-blocks should extend across lines with leading WS even when there is no wrappable content
3319 7a. Indent-pre and category links
3321 parsoid=wt2html,wt2wt
3323 [[Category:foo]] <!-- No pre-wrapping -->
3324 {{echo| [[Category:foo]]}} <!-- No pre-wrapping -->
3327 <link rel="mw:PageProp/Category" href="./Category:Foo"> <!-- No pre-wrapping -->
3328 <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":" [[Category:foo]]"}},"i":0}}]}'> </span><link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1"> <!-- No pre-wrapping -->
3332 7b. Indent-pre and category links
3334 parsoid=wt2html,wt2wt
3337 [[Category:foo]] {{echo|b}}
3339 <pre><link rel="mw:PageProp/Category" href="./Category:Foo"> a
3340 <link rel="mw:PageProp/Category" href="./Category:Foo"> <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b"}},"i":0}}]}'>b</span></pre>
3344 Indent-Pre: Newlines in comments shouldn't affect sol state
3358 ### HTML-pre (some to spec PHP parser behavior and some Parsoid-RT-centric)
3362 HTML-pre: 1. embedded newlines
3397 <pre data-parsoid='{"stx":"html"}'>foo</pre>
3399 <pre data-parsoid='{"stx":"html","strippedNL":"\n"}'>
3403 <pre data-parsoid='{"stx":"html"}'>
3408 <pre data-parsoid='{"stx":"html"}'>
3416 HTML-pre: big spaces
3452 <pre data-parsoid='{"stx":"html"}'>
3471 HTML-pre: 2: indented text
3484 HTML-pre: 3: other wikitext
3503 <pre data-parsoid='{"stx":"html","strippedNL":true}'>* foo
3512 ### Definition lists
3519 <dl><dt> name </dt>
3520 <dd> Definition</dd></dl>
3525 Definition list for indentation only
3529 <dl><dd> Indented text</dd></dl>
3534 Definition list with no space
3539 <dd>Definition</dd></dl>
3544 Definition list with URL link
3546 ; http://example.com/ : definition
3548 <dl><dt> <a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> </dt>
3549 <dd> definition</dd></dl>
3554 Definition list with bracketed URL link
3556 ;[http://www.example.com/ Example]:Something about it
3558 <dl><dt><a rel="nofollow" class="external text" href="http://www.example.com/">Example</a></dt>
3559 <dd>Something about it</dd></dl>
3564 Definition list with wikilink containing colon
3566 ; [[Help:FAQ]]: The least-read page on Wikipedia
3568 <dl><dt> <a href="/index.php?title=Help:FAQ&action=edit&redlink=1" class="new" title="Help:FAQ (page does not exist)">Help:FAQ</a></dt>
3569 <dd> The least-read page on Wikipedia</dd></dl>
3573 # At Brion's and JeLuF's insistence... :)
3575 Definition list with news link containing colon
3577 ; news:alt.wikipedia.rox: This isn't even a real newsgroup!
3579 <dl><dt> <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
3580 <dd> This isn't even a real newsgroup!</dd></dl>
3583 <dl><dt> <a rel="mw:ExtLink" href="news:alt.wikipedia.rox" data-parsoid='{"stx":"url"}'>news:alt.wikipedia.rox</a></dt><dd data-parsoid='{"stx":"row"}'> This isn't even a real newsgroup!</dd></dl>
3587 Malformed definition list with colon
3589 ; news:alt.wikipedia.rox -- don't crash or enter an infinite loop
3591 <dl><dt> <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a> -- don't crash or enter an infinite loop</dt></dl>
3596 Definition lists: colon in external link text
3598 ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up
3600 <dl><dt> <a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia : The Next Generation</a></dt>
3601 <dd> OK, I made that up</dd></dl>
3606 Definition lists: colon in HTML attribute
3608 ;<b style="display: inline">bold</b>
3610 <dl><dt><b style="display: inline">bold</b></dt></dl>
3615 Definition lists: self-closed tag
3617 ;one<br/>two : two-line fun
3619 <dl><dt>one<br />two </dt>
3620 <dd> two-line fun</dd></dl>
3625 Bug 11748: Literal closing tags
3629 <dd>test test test test test</dd>
3631 <dd>test test test test test</dd>
3636 <dd>test test test test test</dd>
3638 <dd>test test test test test</dd>
3644 Definition and unordered list using wiki syntax nested in unordered list using html tags.
3647 ; term : description
3652 <dl><dt> term </dt>
3653 <dd> description</dd></dl>
3654 <ul><li> unordered</li></ul>
3661 Definition list with empty definition and following paragraph
3673 Nested definition lists using html syntax
3682 Definition Lists: No nesting: Multiple dd's
3695 Definition Lists: Indentation: Regular
3703 <dl><dd>i3</dd></dl></dd></dl></dd></dl>
3708 Definition Lists: Indentation: Missing 1st level
3714 <dl><dd>i3</dd></dl></dd></dl></dd></dl>
3719 Definition Lists: Indentation: Multi-level indent
3723 <dl><dd><dl><dd><dl><dd>i3</dd></dl></dd></dl></dd></dl>
3728 Definition Lists: Hacky use to indent tables
3735 should be left alone
3737 <dl><dd><dl><dd><table>
3742 </td></tr></table></dd></dl></dd></dl>
3744 should be left alone
3749 Definition Lists: Hacky use to indent tables, with comments (bug 63979)
3757 should be left alone
3760 <dl><dd><dl><dd><table><tr>
3763 </tr></table><!-- bar --></dd></dl></dd></dl>
3765 should be left alone</p>
3769 Definition Lists: Hacky use to indent tables, with comment before table
3775 <dl><dd><dl><dd><!-- foo --><table><tr>
3777 </tr></table></dd></dl></dd></dl>
3780 # The trailing whitespace in this test is to catch a regression in
3781 # Parsoid after T54473.
3783 Definition Lists: Hacky use to indent tables (WS-insensitive)
3792 </td></tr></table></dd></dl>
3796 <tbody><tr><td>a</td></tr>
3797 </tbody></table> </dd></dl>
3800 ## The PHP parser treats : items (dd) without a corresponding ; item (dt)
3801 ## as an empty dt item. It also ignores all but the last ";" when followed
3802 ## by ":" later on. So, ";" are not ignored in ";;;t3" but are ignored in
3803 ## ";;;t3 :d1". So, PHP parser behavior is a little inconsistent wrt multiple
3806 ## Ex: ";;t2 ::d2" is transformed into:
3818 ## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text
3819 ## So, the same wikitext above (;;t2 ::d2) is transformed into:
3830 ## All Parsoid only definition list tests have this difference.
3832 ## See also: https://phabricator.wikimedia.org/T8569
3833 ## and http://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html
3836 Table / list interaction: indented table with lists in table contents
3851 <ul><li> b</li></ul>
3855 <ul><li> d</li></ul>
3856 </td></tr></table></dd></dl>
3861 Table / list interaction: lists nested in tables nested in indented lists
3884 </td></tr></table></dd></dl>
3891 Definition Lists: Nesting: Multi-level (Parsoid only)
3921 Definition Lists: Nesting: Test 2 (Parsoid only)
3948 Definition Lists: Nesting: Test 3 (Parsoid only)
3991 Definition Lists: Nesting: Test 4
3996 <dl><dd><dl><dd><dl><dt>t3</dt>
3997 <dd>d3</dd></dl></dd></dl></dd></dl>
4002 ## The Parsoid team believes the following three test exposes a
4003 ## bug in the PHP parser. (Parsoid team thinks the PHP parser is
4004 ## wrong to close the <dl> after the <dt> containing the <ul>.)
4005 ## It also exposes a "misfeature" in tidy, which doesn't like
4006 ## <dl> tags with a single <dt> child; it converts the <dt> into
4007 ## a <dd> in that case. (Parsoid leaves the <dt> alone!)
4009 Definition Lists: Mixed Lists: Test 1
4015 <dl><dd><dl><dt><ul><li> foo</li>
4016 <li> bar</li></ul></dt></dl>
4017 <dl><dt> baz</dt></dl></dd></dl>
4052 Definition Lists: Mixed Lists: Test 2
4057 <ul><li><dl><dd> d1</dd>
4058 <dd> d2</dd></dl></li></ul>
4064 Definition Lists: Mixed Lists: Test 3
4069 <ul><li><dl><dd><dl><dd><dl><dd> d1</dd>
4070 <dd> d2</dd></dl></dd></dl></dd></dl></li></ul>
4076 Definition Lists: Mixed Lists: Test 4
4081 <ul><li><dl><dt>d1 </dt>
4084 <dd>d4</dd></dl></li></ul>
4090 Definition Lists: Mixed Lists: Test 5
4096 <dl><dd> d2</dd></dl></dd></dl></li></ul>
4102 Definition Lists: Mixed Lists: Test 6
4107 <ol><li><ul><li><dl><dd>d1
4108 <dl><dd><dl><dd> d3</dd></dl></dd></dl></dd></dl></li></ul></li></ol>
4114 Definition Lists: Mixed Lists: Test 7
4119 <dl><dd><ul><li> d1</li>
4120 <li> d2</li></ul></dd></dl>
4126 Definition Lists: Mixed Lists: Test 8
4131 <dl><dd><ul><li> d1</li></ul>
4132 <dl><dd><ul><li> d2</li></ul></dd></dl></dd></dl>
4138 Definition Lists: Mixed Lists: Test 9
4142 <ul><li><dl><dt>foo </dt>
4143 <dd>bar</dd></dl></li></ul>
4149 Definition Lists: Mixed Lists: Test 10
4153 <ul><li><ol><li><dl><dt>foo </dt>
4154 <dd>bar</dd></dl></li></ol></li></ul>
4158 # The Parsoid team disagrees with the PHP parser's seemingly-random
4159 # rules regarding dd/dt on the next two tests. Parsoid is more
4160 # consistent, and recognizes the shared nesting and keeps the
4161 # still-open tags around until the nesting is complete.
4162 # (And tidy again converts <dt> to <dd> before 'bar'.)
4165 Definition Lists: Mixed Lists: Test 11
4170 <ul><li><ol><li><ul><li><ol><li><dl><dt>foo </dt>
4171 <dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dd></dl></li></ul></dd></dl>
4172 <dl><dt>boo </dt>
4173 <dd>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
4228 <dt>foo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
4229 <dd data-parsoid='{"stx":"row"}'>bar</dd>
4233 <dt>boo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
4234 <dd data-parsoid='{"stx":"row"}'>baz</dd>
4243 # Another case where tidy converts a <dt> to a <dd> (but Parsoid doesn't).
4245 # * The test is wrong, there are two colons where there should be :;
4246 # * The PHP parser is wrong to close the <dl> after the <dt> containing the <ul>.
4248 Definition Lists: Weird Ones: Test 1
4250 *#;*::;; foo : bar (who uses this?)
4252 <ul><li><ol><li><dl><dt> foo </dt>
4253 <dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt> bar (who uses this?)</dt></dl></dd></dl></dd></dl></dd></dl></li></ul></dd></dl></li></ol></li></ul>
4272 <dt>bar (who uses this?)</dt>
4304 <dt> foo<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span></dt>
4305 <dd data-parsoid='{"stx":"row"}'> bar (who uses this?)</dd>
4317 Definition Lists: colons occurring in tags
4335 <dt><span>a:b</span></dt>
4362 <dl><dt>a</dt><dd data-parsoid='{"stx":"row"}'>b</dd>
4364 <dt><i data-parsoid='{"stx":"html"}'>a:b</i></dt>
4365 <dt><span data-parsoid='{"stx":"html"}'>a:b</span></dt>
4366 <dt><div data-parsoid='{"stx":"html"}'>a:b</div></dt>
4367 <dt><div data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a</div></dt>
4369 <dt><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a:b"}},"i":0}}]}'>a:b</span></dt>
4370 <dt><i about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"''a:b''"}},"i":0}}]}'>a:b</i>
4371 <dl><dt><dl><dt><i>a:b</i></dt></dl></dt></dl></dt></dl>
4375 Definition Lists: colons and tables 1
4387 </td></tr></table></dd></dl>
4391 </td></tr></table></dd></dl>
4395 # Parsoid's output (as documented below) differs from php's in this case.
4396 # This is probably a bug. If we fixup parsoid to match php's output, the
4397 # above test should pass and the below test case can be removed. It is
4398 # unclear which output is more desirable.
4401 Definition Lists: colons and tables 2
4413 </td></tr></table></dd>
4417 </td></tr></table></dd></dl>
4421 Definition Lists: template interaction
4423 ::{{definition_list}}
4426 ::{{definition_list}}
4431 <dl><dd><dl data-parsoid='{}'><dd about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[":",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}}]}'>one</dd><span about="#mwt1">
4432 </span><dd about="#mwt1">two</dd></dl></dd></dl>
4434 <dl><dd data-parsoid='{}'>one
4435 <dl><dd about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":["::",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}},"\n:::two\n:::three"]}'>one</dd><span about="#mwt2">
4436 </span><dd about="#mwt2">two
4438 <dd>three</dd></dl></dd>
4439 <dd data-parsoid='{}'>four</dd></dl></dd></dl>
4447 External links: non-bracketed
4449 Non-bracketed: http://example.com
4451 <p>Non-bracketed: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4455 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4457 External links: numbered
4459 Numbered: [http://example.com]
4460 Numbered: [http://example.net]
4461 Numbered: [http://example.com]
4463 <p>Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[1]</a>
4464 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.net">[2]</a>
4465 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[3]</a>
4468 <p>Numbered: <a rel="mw:ExtLink" href="http://example.com"></a>
4469 Numbered: <a rel="mw:ExtLink" href="http://example.net"></a>
4470 Numbered: <a rel="mw:ExtLink" href="http://example.com"></a></p>
4474 External links: specified text
4476 Specified text: [http://example.com link]
4478 <p>Specified text: <a rel="nofollow" class="external text" href="http://example.com">link</a>
4483 External links: trail
4485 Linktrails should not work for external links: [http://example.com link]s
4487 <p>Linktrails should not work for external links: <a rel="nofollow" class="external text" href="http://example.com">link</a>s
4492 External links: dollar sign in URL
4494 http://example.com/1$2345
4496 <p><a rel="nofollow" class="external free" href="http://example.com/1$2345">http://example.com/1$2345</a>
4500 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4502 External links: dollar sign in URL (autonumber)
4504 [http://example.com/1$2345]
4506 <p><a rel="nofollow" class="external autonumber" href="http://example.com/1$2345">[1]</a>
4509 <p><a rel="mw:ExtLink" href="http://example.com/1$2345"></a></p>
4513 External links: open square bracket forbidden in URL (bug 4377)
4515 parsoid=wt2html,wt2wt,html2html
4517 http://example.com/1[2345
4519 <p><a rel="nofollow" class="external free" href="http://example.com/1">http://example.com/1</a>[2345
4522 <p><a rel="mw:ExtLink" href="http://example.com/1">http://example.com/1</a>[2345</p>
4526 External links: open square bracket forbidden in URL (named) (bug 4377)
4528 parsoid=wt2html,html2html
4530 [http://example.com/1[2345]
4532 <p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a>
4535 <p><a rel="mw:ExtLink" href="http://example.com/1">[2345</a></p>
4538 # parsoid adds a space before the link name
4540 External links: open square bracket forbidden in URL (named) (bug 4377)
4543 [http://example.com/1 [2345]
4545 <p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a>
4550 External links: nowiki in URL link text (bug 6230)
4552 [http://example.com/ <nowiki>''example site''</nowiki>]
4554 <p><a rel="nofollow" class="external text" href="http://example.com/">''example site''</a>
4559 External links: newline forbidden in text (bug 6230 regression check)
4561 [http://example.com/ first
4564 <p>[<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> first
4570 External links: Pipe char between url and text
4572 [http://example.com | link]
4574 <p><a rel="nofollow" class="external text" href="http://example.com">| link</a>
4579 External links: protocol-relative URL in brackets
4581 [//example.com/ Test]
4583 <p><a rel="nofollow" class="external text" href="//example.com/">Test</a>
4587 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4589 External links: protocol-relative URL in brackets without text
4593 <p><a rel="nofollow" class="external autonumber" href="//example.com">[1]</a>
4596 <p><a rel="mw:ExtLink" href="//example.com"></a></p>
4600 External links: protocol-relative URL in free text is left alone
4604 <p>//example.com/Foo
4609 External links: protocol-relative URL in the middle of a word is left alone (bug 30269)
4611 foo//example.com/Foo
4613 <p>foo//example.com/Foo
4618 External links: with no contents
4620 [http://en.wikipedia.org/wiki/Foo]
4622 [[wikipedia:Foo|Bar]]
4624 [[wikipedia:Foo|<span>Bar</span>]]
4626 <p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/wiki/Foo">[1]</a>
4627 </p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
4628 </p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo"><span>Bar</span></a>
4631 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo"></a></p>
4632 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo">Bar</a></p>
4633 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo"><span>Bar</span></a></p>
4637 External links: Free with trailing punctuation
4647 http://example.com/url_with_(brackets)
4648 (http://example.com/url_without_brackets)
4649 http://example.com/url_with_entity
4650 http://example.com/url_with_entity 
4651 http://example.com/url_with_entity 
4652 http://example.com/url_with_entity<
4653 http://example.com/url_with_entity<
4654 http://example.com/url_with_entity<
4656 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
4657 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>;
4658 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>\
4659 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.
4660 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
4661 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>!
4662 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>?
4663 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
4664 <a rel="nofollow" class="external free" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
4665 (<a rel="nofollow" class="external free" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
4666 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4667 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4668 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4669 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><
4670 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
4671 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
4674 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>,
4675 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>;
4676 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>\
4677 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>.
4678 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:
4679 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>!
4680 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>?
4681 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)
4682 <a rel="mw:ExtLink" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
4683 (<a rel="mw:ExtLink" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
4684 <a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4685 <a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4686 <a rel="mw:ExtLink" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
4687 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity"><</span>
4688 <a rel="mw:ExtLink" href="http://example.com/url_with_entity<">http://example.com/url_with_entity<</a>
4689 <a rel="mw:ExtLink" href="http://example.com/url_with_entity<">http://example.com/url_with_entity<</a></p>
4693 External links: Lone protocols are never linked (T105697)
4712 External links: No preceding word characters allowed (bug 65278)
4714 NOPEhttp://example.com
4715 N0http://example.com
4716 ok:http://example.com
4717 ok-http://example.com
4719 <p>NOPEhttp://example.com
4720 N0http://example.com
4721 ok:<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4722 ok-<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4729 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4731 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
4736 External image from https
4738 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4740 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
4745 External image (when not allowed)
4747 wgAllowExternalImages=0
4749 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4751 <p>External image: <a rel="nofollow" class="external free" href="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png">http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png</a>
4756 Link to non-http image, no img tag
4758 Link to non-http image, no img tag: ftp://example.com/test.jpg
4760 <p>Link to non-http image, no img tag: <a rel="nofollow" class="external free" href="ftp://example.com/test.jpg">ftp://example.com/test.jpg</a>
4765 External links: terminating separator
4767 Terminating separator: http://example.com/thing,
4769 <p>Terminating separator: <a rel="nofollow" class="external free" href="http://example.com/thing">http://example.com/thing</a>,
4774 External links: intervening separator
4776 Intervening separator: http://example.com/1,2,3
4778 <p>Intervening separator: <a rel="nofollow" class="external free" href="http://example.com/1,2,3">http://example.com/1,2,3</a>
4783 External links: old bug with URL in query
4785 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
4787 <p>Old bug with URL in query: <a rel="nofollow" class="external text" href="http://example.com/thing?url=http://example.com">link</a>
4792 External links: old URL-in-URL bug, mixed protocols
4794 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
4796 <p>And again with mixed protocols: <a rel="nofollow" class="external text" href="ftp://example.com?url=http://example.com">link</a>
4801 External links: URL in text
4803 URL in text: [http://example.com http://example.com]
4805 <p>URL in text: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4810 External links: Clickable images
4812 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
4814 <p>ja-style clickable images: <a rel="nofollow" class="external text" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a>
4817 <p>ja-style clickable images: <a rel="mw:ExtLink" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" data-parsoid='{"type":"extlink"}'/></a></p>
4821 External links: raw ampersand
4823 Old & use: http://x&y
4825 <p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a>
4830 External links: encoded ampersand
4832 Old & use: http://x&y
4834 <p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a>
4837 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y">http://x&y</a></p>
4841 External links: encoded equals (bug 6102)
4843 http://example.com/?foo=bar
4845 <p><a rel="nofollow" class="external free" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a>
4848 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a></p>
4852 ## Note that parsoid doesn't explicit mark autonumbered links, nor
4853 ## does it number them. As discussed in bug 53505, we can identify
4854 ## autonumbered links via CSS.
4858 External links: [raw ampersand]
4860 Old & use: [http://x&y]
4862 <p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a>
4865 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y"></a></p>
4868 # note that parsoid html is identical to [raw ampersand] case; so html2wt
4869 # mode will return the [raw ampersand] wikitext
4871 External links: [encoded ampersand]
4873 parsoid=wt2html,wt2wt,html2html
4875 Old & use: [http://x&y]
4877 <p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a>
4880 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y"></a></p>
4884 External links: [raw equals]
4886 [http://example.com/?foo=bar]
4888 <p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a>
4891 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar"></a></p>
4894 # note that parsoid html is identical to [raw equals] case; so html2wt
4895 # mode will return the [raw equals] wikitext
4897 External links: [encoded equals] (bug 6102)
4899 parsoid=wt2html,wt2wt,html2html
4901 [http://example.com/?foo=bar]
4903 <p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a>
4906 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar"></a></p>
4909 # xxx parsoid strips the IDN character, so the round-trip tests will
4910 # obviously fail and are disabled. --cscott
4912 External links: [IDN ignored character reference in hostname; strip it right off]
4914 parsoid=wt2html,wt2wt,html2html
4916 [http://e‌xample.com/]
4918 <p><a rel="nofollow" class="external autonumber" href="http://example.com/">[1]</a>
4921 <p><a rel="mw:ExtLink" href="http://example.com/"></a></p>
4924 # FIXME: This test (the IDN characters in the text of a link) is an inconsistency.
4925 # Where an external link could easily circumvent the sanitization of the text of
4926 # a link like this (where an IDN-ignore character is in the URL somewhere), this
4927 # test demands a higher standard. That's a bit strange.
4931 # http://example.com -> [http://example.com|http://example.com]
4932 # [http://example.com|http://example.com] -> [http://example.com|http://example.com]
4934 # The first example is sanitized, but the second is not. Any security benefits
4935 # from this production are trivial to circumvent. Either remove this test and
4936 # let the parser(s) do their thing unaccosted, or fix the inconsistency and change
4937 # the test accordingly.
4941 # xxx parsoid strips the IDN character, so the round-trip tests will
4942 # obviously fail and are disabled. --cscott
4944 External links: IDN ignored character reference in hostname; strip it right off
4946 parsoid=wt2html,html2html
4948 http://e‌xample.com/
4950 <p><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>
4953 <p><a rel="mw:ExtLink" href="http://example.com/">http://example.com/</a></p>
4957 External links: www.jpeg.org (bug 554)
4961 <p><a rel="nofollow" class="external free" href="http://www.jpeg.org">http://www.jpeg.org</a>
4965 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4967 External links: URL within URL (original bug 2)
4969 [http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp]
4971 <p><a rel="nofollow" class="external autonumber" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp">[1]</a>
4974 <p><a rel="mw:ExtLink" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp"></a></p>
4978 BUG 361: URL inside bracketed URL
4980 [http://www.example.com/foo http://www.example.com/bar]
4982 <p><a rel="nofollow" class="external text" href="http://www.example.com/foo">http://www.example.com/bar</a>
4987 BUG 361: URL within URL, not bracketed
4989 http://www.example.com/foo?=http://www.example.com/bar
4991 <p><a rel="nofollow" class="external free" href="http://www.example.com/foo?=http://www.example.com/bar">http://www.example.com/foo?=http://www.example.com/bar</a>
4996 BUG 289: ">"-token in URL-tail
4998 http://www.example.com/<hello>
5000 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><hello>
5005 BUG 289: literal ">"-token in URL-tail
5007 http://www.example.com/<b>html</b>
5009 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><b>html</b>
5012 <p><a rel="mw:ExtLink" href="http://www.example.com/" data-parsoid='{"stx":"url"}'>http://www.example.com/</a><b data-parsoid='{"stx":"html"}'>html</b></p>
5016 BUG 289: ">"-token in bracketed URL
5018 [http://www.example.com/<hello> stuff]
5020 <p><a rel="nofollow" class="external text" href="http://www.example.com/"><hello> stuff</a>
5025 BUG 289: literal ">"-token in bracketed URL
5027 [http://www.example.com/<b>html</b> stuff]
5029 <p><a rel="nofollow" class="external text" href="http://www.example.com/"><b>html</b> stuff</a>
5034 BUG 289: literal double quote at end of URL
5036 http://www.example.com/"hello"
5038 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a>"hello"
5043 BUG 289: literal double quote in bracketed URL
5045 [http://www.example.com/"hello" stuff]
5047 <p><a rel="nofollow" class="external text" href="http://www.example.com/">"hello" stuff</a>
5052 External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081)
5054 [http://www.example.com test]
5056 <p><a rel="nofollow" class="external text" href="http://www.example.com">test</a>
5061 External links: link text with spaces
5063 [http://www.example.com a b c]
5064 [http://www.example.com ''a'' ''b'']
5066 <p><a rel="nofollow" class="external text" href="http://www.example.com">a b c</a>
5067 <a rel="nofollow" class="external text" href="http://www.example.com"><i>a</i> <i>b</i></a>
5072 External links: wiki links within external link (Bug 3695)
5074 [http://example.com [[wikilink]] embedded in ext link]
5076 <p><a rel="nofollow" class="external text" href="http://example.com"></a><a href="/index.php?title=Wikilink&action=edit&redlink=1" class="new" title="Wikilink (page does not exist)">wikilink</a><a rel="nofollow" class="external text" href="http://example.com"> embedded in ext link</a>
5079 <p><a rel="mw:ExtLink" href="http://example.com"></a><a rel="mw:WikiLink" href="./Wikilink" title="Wikilink">wikilink</a><span> embedded in ext link</span></p>
5083 BUG 787: Links with one slash after the url protocol are invalid
5087 [http:/example.com title]
5089 <p>http:/example.com
5090 </p><p>[http:/example.com title]
5095 Bracketed external links with template-generated invalid target
5097 [{{echo|http:/example.com}} title]
5099 <p>[http:/example.com title]
5104 Bug 2702: Mismatched <i>, <b> and <a> tags are invalid
5106 ''[http://example.com text'']
5107 [http://example.com '''text]'''
5108 ''Something [http://example.com in italic'']
5109 ''Something [http://example.com mixed''''', even bold]'''
5110 '''''Now [http://example.com both''''']
5112 <p><a rel="nofollow" class="external text" href="http://example.com"><i>text</i></a>
5113 <a rel="nofollow" class="external text" href="http://example.com"><b>text</b></a>
5114 <i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>in italic</i></a>
5115 <i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>mixed</i><b>, even bold</b></a>
5116 <i><b>Now </b></i><a rel="nofollow" class="external text" href="http://example.com"><i><b>both</b></i></a>
5122 Bug 4781: %26 in URL
5124 http://www.example.com/?title=AT%26T
5126 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a>
5129 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a></p>
5132 # According to http://www.w3.org/TR/2011/WD-html5-20110525/Overview.html#parsing-urls a plain
5133 # % is actually legal in HTML5. Any change in output would need testing though.
5135 Bug 4781, 5267: %25 in URL
5137 http://www.example.com/?title=100%25_Bran
5139 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=100%25_Bran">http://www.example.com/?title=100%25_Bran</a>
5142 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=100%25_Bran">http://www.example.com/?title=100%25_Bran</a></p>
5146 Bug 4781, 5267: %28, %29 in URL
5148 http://www.example.com/?title=Ben-Hur_%281959_film%29
5150 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">http://www.example.com/?title=Ben-Hur_%281959_film%29</a>
5153 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">http://www.example.com/?title=Ben-Hur_%281959_film%29</a></p>
5158 Bug 4781: %26 in autonumber URL
5160 [http://www.example.com/?title=AT%26T]
5162 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=AT%26T">[1]</a>
5165 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T"></a></p>
5169 Bug 4781, 5267: %26 in autonumber URL
5171 [http://www.example.com/?title=100%25_Bran]
5173 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=100%25_Bran">[1]</a>
5176 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=100%25_Bran"></a></p>
5180 Bug 4781, 5267: %28, %29 in autonumber URL
5182 [http://www.example.com/?title=Ben-Hur_%281959_film%29]
5184 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">[1]</a>
5187 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=Ben-Hur_%281959_film%29"></a></p>
5192 Bug 4781: %26 in bracketed URL
5194 [http://www.example.com/?title=AT%26T link]
5196 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=AT%26T">link</a>
5199 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T">link</a></p>
5203 Bug 4781, 5267: %25 in bracketed URL
5205 [http://www.example.com/?title=100%25_Bran link]
5207 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=100%25_Bran">link</a>
5212 Bug 4781, 5267: %28, %29 in bracketed URL
5214 [http://www.example.com/?title=Ben-Hur_%281959_film%29 link]
5216 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a>
5219 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a></p>
5223 External link containing a period in the anchor. (bug 63947)
5225 [//foo.org/bar#baz. bang]
5227 [//foo.org/bar. bang]
5229 <p><a rel="nofollow" class="external text" href="//foo.org/bar#baz.">bang</a>
5230 </p><p><a rel="nofollow" class="external text" href="//foo.org/bar.">bang</a>
5233 <p><a rel="mw:ExtLink" href="//foo.org/bar#baz.">bang</a></p>
5234 <p><a rel="mw:ExtLink" href="//foo.org/bar.">bang</a></p>
5238 External link containing a single quote. (bug 63947)
5242 [//foo.org/bar'baz bang]
5244 <p><a rel="nofollow" class="external autonumber" href="//foo.org/bar'baz">[1]</a>
5245 </p><p><a rel="nofollow" class="external text" href="//foo.org/bar'baz">bang</a>
5248 <p><a rel="mw:ExtLink" href="//foo.org/bar'baz"></a></p>
5249 <p><a rel="mw:ExtLink" href="//foo.org/bar'baz">bang</a></p>
5253 External link containing double-single-quotes in text '' (bug 4598 sanity check)
5255 Some [http://example.com/ pretty ''italics'' and stuff]!
5257 <p>Some <a rel="nofollow" class="external text" href="http://example.com/">pretty <i>italics</i> and stuff</a>!
5262 External link containing double-single-quotes in text embedded in italics (bug 4598 sanity check)
5264 ''Some [http://example.com/ pretty ''italics'' and stuff]!''
5266 <p><i>Some </i><a rel="nofollow" class="external text" href="http://example.com/"><i>pretty </i>italics<i> and stuff</i></a><i>!</i>
5271 External link containing double-single-quotes with no space separating the url from text in italics
5273 [http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]
5275 <p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&action=edit&redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</a>
5278 <p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de</a> <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&action=edit&redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</p>
5280 <p><a rel="mw:ExtLink" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de </a><a rel="mw:WikiLink" href="./Museo_Picasso_(París)" title="Museo Picasso (París)">Museo Picasso</a><span>.</span></p>
5284 External link with comments in link text
5286 [http://www.google.com Google <!-- comment -->]
5288 <p><a rel="nofollow" class="external text" href="http://www.google.com">Google </a>
5291 <p><a rel="mw:ExtLink" href="http://www.google.com">Google <!-- comment --></a></p>
5295 External link to bare IPv4 address
5297 [http://192.168.0.1 Link]
5299 <p><a rel="nofollow" class="external text" href="http://192.168.0.1">Link</a>
5302 <p><a rel="mw:ExtLink" href="http://192.168.0.1">Link</a></p>
5306 URL-encoding in URL functions (single parameter)
5308 {{localurl:Some page|amp=&}}
5310 <p>/index.php?title=Some_page&amp=&
5315 URL-encoding in URL functions (multiple parameters)
5317 {{localurl:Some page|q=?&=&}}
5319 <p>/index.php?title=Some_page&q=?&amp=&
5326 http://example.com/index.php?foozoid%5B%5D=bar
5328 http://example.com/index.php?foozoid[]=bar
5330 <p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a>
5331 </p><p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a>
5334 <p><a rel="mw:ExtLink" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a></p>
5336 <p><a rel="mw:ExtLink" href="http://example.com/index.php?foozoid[]=bar">http://example.com/index.php?foozoid[]=bar</a></p>
5340 IPv6 urls, autolink format (T23261)
5342 http://[2404:130:0:1000::187:2]/index.php
5344 Examples from RFC 2373, section 2.2:
5345 * http://[1080::8:800:200C:417A]/unicast
5346 * http://[FF01::101]/multicast
5347 * http://[::1]/loopback
5348 * http://[::]/unspecified
5349 * http://[::13.1.68.3]/ipv4compat
5350 * http://[::FFFF:129.144.52.38]/ipv4compat
5352 Examples from RFC 2732, section 2:
5353 * http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
5354 * http://[1080:0:0:0:8:800:200C:417A]/index.html
5355 * http://[3ffe:2a00:100:7031::1]
5356 * http://[1080::8:800:200C:417A]/foo
5357 * http://[::192.9.5.5]/ipng
5358 * http://[::FFFF:129.144.52.38]:80/index.html
5359 * http://[2010:836B:4179::836B:4179]
5362 <p><a rel="nofollow" class="external free" href="http://[2404:130:0:1000::187:2]/index.php">http://[2404:130:0:1000::187:2]/index.php</a>
5363 </p><p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2373">RFC 2373</a>, section 2.2:
5365 <ul><li> <a rel="nofollow" class="external free" href="http://[1080::8:800:200C:417A]/unicast">http://[1080::8:800:200C:417A]/unicast</a></li>
5366 <li> <a rel="nofollow" class="external free" href="http://[FF01::101]/multicast">http://[FF01::101]/multicast</a></li>
5367 <li> <a rel="nofollow" class="external free" href="http://[::1]/loopback">http://[::1]/loopback</a></li>
5368 <li> <a rel="nofollow" class="external free" href="http://[::]/unspecified">http://[::]/unspecified</a></li>
5369 <li> <a rel="nofollow" class="external free" href="http://[::13.1.68.3]/ipv4compat">http://[::13.1.68.3]/ipv4compat</a></li>
5370 <li> <a rel="nofollow" class="external free" href="http://[::FFFF:129.144.52.38]/ipv4compat">http://[::FFFF:129.144.52.38]/ipv4compat</a></li></ul>
5371 <p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2732">RFC 2732</a>, section 2:
5373 <ul><li> <a rel="nofollow" class="external free" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html</a></li>
5374 <li> <a rel="nofollow" class="external free" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">http://[1080:0:0:0:8:800:200C:417A]/index.html</a></li>
5375 <li> <a rel="nofollow" class="external free" href="http://[3ffe:2a00:100:7031::1]">http://[3ffe:2a00:100:7031::1]</a></li>
5376 <li> <a rel="nofollow" class="external free" href="http://[1080::8:800:200C:417A]/foo">http://[1080::8:800:200C:417A]/foo</a></li>
5377 <li> <a rel="nofollow" class="external free" href="http://[::192.9.5.5]/ipng">http://[::192.9.5.5]/ipng</a></li>
5378 <li> <a rel="nofollow" class="external free" href="http://[::FFFF:129.144.52.38]:80/index.html">http://[::FFFF:129.144.52.38]:80/index.html</a></li>
5379 <li> <a rel="nofollow" class="external free" href="http://[2010:836B:4179::836B:4179]">http://[2010:836B:4179::836B:4179]</a></li></ul>
5382 <p><a rel="mw:ExtLink" href="http://[2404:130:0:1000::187:2]/index.php">http://[2404:130:0:1000::187:2]/index.php</a></p>
5384 <p>Examples from <a href="//tools.ietf.org/html/rfc2373" rel="mw:ExtLink">RFC 2373</a>, section 2.2:</p>
5385 <ul><li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/unicast">http://[1080::8:800:200C:417A]/unicast</a></li>
5386 <li> <a rel="mw:ExtLink" href="http://[FF01::101]/multicast">http://[FF01::101]/multicast</a></li>
5387 <li> <a rel="mw:ExtLink" href="http://[::1]/loopback">http://[::1]/loopback</a></li>
5388 <li> <a rel="mw:ExtLink" href="http://[::]/unspecified">http://[::]/unspecified</a></li>
5389 <li> <a rel="mw:ExtLink" href="http://[::13.1.68.3]/ipv4compat">http://[::13.1.68.3]/ipv4compat</a></li>
5390 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]/ipv4compat">http://[::FFFF:129.144.52.38]/ipv4compat</a></li></ul>
5392 <p>Examples from <a href="//tools.ietf.org/html/rfc2732" rel="mw:ExtLink">RFC 2732</a>, section 2:</p>
5393 <ul><li> <a rel="mw:ExtLink" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html</a></li>
5394 <li> <a rel="mw:ExtLink" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">http://[1080:0:0:0:8:800:200C:417A]/index.html</a></li>
5395 <li> <a rel="mw:ExtLink" href="http://[3ffe:2a00:100:7031::1]">http://[3ffe:2a00:100:7031::1]</a></li>
5396 <li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/foo">http://[1080::8:800:200C:417A]/foo</a></li>
5397 <li> <a rel="mw:ExtLink" href="http://[::192.9.5.5]/ipng">http://[::192.9.5.5]/ipng</a></li>
5398 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]:80/index.html">http://[::FFFF:129.144.52.38]:80/index.html</a></li>
5399 <li> <a rel="mw:ExtLink" href="http://[2010:836B:4179::836B:4179]">http://[2010:836B:4179::836B:4179]</a></li></ul>
5403 IPv6 urls, bracketed format (T23261)
5405 [http://[2404:130:0:1000::187:2]/index.php test]
5407 Examples from RFC 2373, section 2.2:
5408 * [http://[1080::8:800:200C:417A] unicast]
5409 * [http://[FF01::101] multicast]
5410 * [http://[::1]/ loopback]
5411 * [http://[::] unspecified]
5412 * [http://[::13.1.68.3] ipv4compat]
5413 * [http://[::FFFF:129.144.52.38] ipv4compat]
5415 Examples from RFC 2732, section 2:
5416 * [http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html 1]
5417 * [http://[1080:0:0:0:8:800:200C:417A]/index.html 2]
5418 * [http://[3ffe:2a00:100:7031::1] 3]
5419 * [http://[1080::8:800:200C:417A]/foo 4]
5420 * [http://[::192.9.5.5]/ipng 5]
5421 * [http://[::FFFF:129.144.52.38]:80/index.html 6]
5422 * [http://[2010:836B:4179::836B:4179] 7]
5425 <p><a rel="nofollow" class="external text" href="http://[2404:130:0:1000::187:2]/index.php">test</a>
5426 </p><p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2373">RFC 2373</a>, section 2.2:
5428 <ul><li> <a rel="nofollow" class="external text" href="http://[1080::8:800:200C:417A]">unicast</a></li>
5429 <li> <a rel="nofollow" class="external text" href="http://[FF01::101]">multicast</a></li>
5430 <li> <a rel="nofollow" class="external text" href="http://[::1]/">loopback</a></li>
5431 <li> <a rel="nofollow" class="external text" href="http://[::]">unspecified</a></li>
5432 <li> <a rel="nofollow" class="external text" href="http://[::13.1.68.3]">ipv4compat</a></li>
5433 <li> <a rel="nofollow" class="external text" href="http://[::FFFF:129.144.52.38]">ipv4compat</a></li></ul>
5434 <p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2732">RFC 2732</a>, section 2:
5436 <ul><li> <a rel="nofollow" class="external text" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">1</a></li>
5437 <li> <a rel="nofollow" class="external text" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">2</a></li>
5438 <li> <a rel="nofollow" class="external text" href="http://[3ffe:2a00:100:7031::1]">3</a></li>
5439 <li> <a rel="nofollow" class="external text" href="http://[1080::8:800:200C:417A]/foo">4</a></li>
5440 <li> <a rel="nofollow" class="external text" href="http://[::192.9.5.5]/ipng">5</a></li>
5441 <li> <a rel="nofollow" class="external text" href="http://[::FFFF:129.144.52.38]:80/index.html">6</a></li>
5442 <li> <a rel="nofollow" class="external text" href="http://[2010:836B:4179::836B:4179]">7</a></li></ul>
5445 <p><a rel="mw:ExtLink" href="http://[2404:130:0:1000::187:2]/index.php">test</a></p>
5447 <p>Examples from <a href="//tools.ietf.org/html/rfc2373" rel="mw:ExtLink">RFC 2373</a>, section 2.2:</p>
5448 <ul><li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]">unicast</a></li>
5449 <li> <a rel="mw:ExtLink" href="http://[FF01::101]">multicast</a></li>
5450 <li> <a rel="mw:ExtLink" href="http://[::1]/">loopback</a></li>
5451 <li> <a rel="mw:ExtLink" href="http://[::]">unspecified</a></li>
5452 <li> <a rel="mw:ExtLink" href="http://[::13.1.68.3]">ipv4compat</a></li>
5453 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]">ipv4compat</a></li></ul>
5455 <p>Examples from <a href="//tools.ietf.org/html/rfc2732" rel="mw:ExtLink">RFC 2732</a>, section 2:</p>
5456 <ul><li> <a rel="mw:ExtLink" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">1</a></li>
5457 <li> <a rel="mw:ExtLink" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">2</a></li>
5458 <li> <a rel="mw:ExtLink" href="http://[3ffe:2a00:100:7031::1]">3</a></li>
5459 <li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/foo">4</a></li>
5460 <li> <a rel="mw:ExtLink" href="http://[::192.9.5.5]/ipng">5</a></li>
5461 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]:80/index.html">6</a></li>
5462 <li> <a rel="mw:ExtLink" href="http://[2010:836B:4179::836B:4179]">7</a></li></ul>
5466 Non-extlinks in brackets
5475 [{{echo|foo}} ''bar'']
5476 [{{echo|foo}}l's] errand
5477 [{{echo|foo}}l's errand]
5479 [url=http://example.com]
5480 [http:// bare protocols don't count]
5493 [url=<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>]
5494 [http:// bare protocols don't count]
5502 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span>]
5503 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span> bar]
5504 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span> <i>bar</i>]
5505 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}l's"}'>fool's</span>] errand
5506 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}l's"}'>fool's</span> errand]
5507 [<span typeof="mw:Placeholder" data-parsoid='{"src":"url={{echo|foo}}"}'>url=foo</span>]
5508 [url=<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>]
5509 [http:// bare protocols don't count]</p>
5513 Percent encoding in external links
5515 [https://github.com/search?l=&q=ResourceLoader+%40wikimedia Search]
5517 <p><a rel="nofollow" class="external text" href="https://github.com/search?l=&q=ResourceLoader+%40wikimedia">Search</a>
5520 <p><a rel="mw:ExtLink"
5521 href="https://github.com/search?l=&q=ResourceLoader+%40wikimedia">Search</a></p>
5525 Use url link syntax for links where the content is equal the link target
5529 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
5532 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></p>
5536 Parenthesis in external links, especially URL links
5540 http://example.com/test)
5542 http://example.com/(test)
5544 http://example.com/((test)
5546 (http://example.com/(test))
5548 (http://example.com/(test)))))
5550 http://example.com/a)b
5552 [http://example.com) foo]
5554 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
5555 </p><p><a rel="nofollow" class="external free" href="http://example.com/test">http://example.com/test</a>)
5556 </p><p><a rel="nofollow" class="external free" href="http://example.com/(test)">http://example.com/(test)</a>
5557 </p><p><a rel="nofollow" class="external free" href="http://example.com/((test)">http://example.com/((test)</a>
5558 </p><p>(<a rel="nofollow" class="external free" href="http://example.com/(test))">http://example.com/(test))</a>
5559 </p><p>(<a rel="nofollow" class="external free" href="http://example.com/(test)))))">http://example.com/(test)))))</a>
5560 </p><p><a rel="nofollow" class="external free" href="http://example.com/a)b">http://example.com/a)b</a>
5561 </p><p><a rel="nofollow" class="external text" href="http://example.com)">foo</a>
5564 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)</p>
5565 <p><a rel="mw:ExtLink" href="http://example.com/test">http://example.com/test</a>)</p>
5566 <p><a rel="mw:ExtLink" href="http://example.com/(test)">http://example.com/(test)</a></p>
5567 <p><a rel="mw:ExtLink" href="http://example.com/((test)">http://example.com/((test)</a></p>
5568 <p>(<a rel="mw:ExtLink" href="http://example.com/(test))">http://example.com/(test))</a></p>
5569 <p>(<a rel="mw:ExtLink" href="http://example.com/(test)))))">http://example.com/(test)))))</a></p>
5570 <p><a rel="mw:ExtLink" href="http://example.com/a)b">http://example.com/a)b</a></p>
5571 <p><a rel="mw:ExtLink" href="http://example.com)">foo</a></p>
5575 Parenthesis in external links, w/ transclusion or comment
5577 (http://example.com/{{echo|hi}})
5579 (http://example.com<!-- hi -->)
5581 <p>(<a rel="nofollow" class="external free" href="http://example.com/hi">http://example.com/hi</a>)
5582 </p><p>(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
5585 <p>(<a typeof="mw:ExpandedAttrs" about="#mwt2" rel="mw:ExtLink" href="http://example.com/hi" data-parsoid='{"stx":"url","a":{"href":"http://example.com/hi"},"sa":{"href":"http://example.com/{{echo|hi}}"}}' data-mw='{"attribs":[[{"txt":"href"},{"html":"http://example.com/<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[20,31,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;hi&quot;}},&quot;i&quot;:0}}]}\">hi</span>"}]]}'>http://example.com/hi</a>)</p>
5587 <p>(<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url","a":{"href":"http://example.com"},"sa":{"href":"http://example.com<!-- hi -->"}}'>http://example.com</a>)</p>
5591 Serialize <a> tags with invalid link targets as plain text
5595 <a rel="mw:WikiLink" href="[[foo]]">text</a>
5596 <a rel="mw:WikiLink" href="[[foo]]">*text</a>
5597 <a rel="mw:WikiLink" href="[[foo]]">[[foo]]</a>
5598 <a rel="mw:WikiLink" href="[[foo]]">*a [[foo]]</a>
5601 <nowiki>*</nowiki>text
5602 <nowiki>[[foo]]</nowiki>
5603 <nowiki>*a [[foo]]</nowiki>
5607 mw:ExtLink -vs- mw:WikiLink (T94723)
5611 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"piped","a":{"href":"./Foo"},"sa":{"href":"Foo"},"dsr":[0,11,6,2]}'>Bar</a>
5612 <a rel="mw:WikiLink" href="./Foo" title="Foo">Bar</a>
5613 <a rel="mw:WikiLink" href="http://en.wikipedia.org/wiki/Foo" title="Foo">Bar</a>
5614 <a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="Foo">Bar</a>
5616 <a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/European_Robin">European Robin</a>
5617 <a rel="mw:WikiLink" href="http://en.wikipedia.org/wiki/European_Robin">European Robin</a>
5622 [[wikipedia:Foo|Bar]]
5623 [[wikipedia:Foo|Bar]]
5625 [[wikipedia:European_Robin|European Robin]]
5626 [[wikipedia:European_Robin|European Robin]]
5630 mw:ExtLink linking to a interwiki URL can be round-tripped losslessly (T94723)
5634 [http://en.wikipedia.org/wiki/European_Robin European Robin]
5636 THIS SECTION IS NOT USED (but Parsoid won't run the test without it)
5647 Normal text. '''Bold text.''' Normal text. ''Italic text.''
5649 Normal text. '''''Bold italic text.''''' Normal text.
5651 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
5652 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
5657 # Parsoid inserts an empty bold tag pair at the end of the line, that the PHP
5658 # parser strips. The wikitext contains just the first half of the bold
5661 Unclosed and unmatched quotes
5663 '''''Bold italic text '''with bold deactivated''' in between.'''''
5665 '''''Bold italic text ''with italic deactivated'' in between.'''''
5669 ..spanning two paragraphs (should not work).'''
5671 '''Bold tag left open
5673 ''Italic tag left open
5677 <!-- Unmatching number of opening, closing tags: -->
5678 '''This year''''s election ''should'' beat '''last year''''s.
5680 ''Tom'''s car is bigger than ''Susan'''s.
5682 Plain ''italic'''s plain
5684 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
5685 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
5686 </p><p><b>Bold text..</b>
5687 </p><p>..spanning two paragraphs (should not work).
5688 </p><p><b>Bold tag left open</b>
5689 </p><p><i>Italic tag left open</i>
5691 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
5692 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
5693 </p><p>Plain <i>italic'</i>s plain
5696 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
5697 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
5698 </p><p><b>Bold text..</b>
5699 </p><p>..spanning two paragraphs (should not work).<b></b>
5700 </p><p><b>Bold tag left open</b>
5701 </p><p><i>Italic tag left open</i>
5704 <!-- Unmatching number of opening, closing tags: -->
5705 <p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
5706 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
5707 </p><p>Plain <i>italic'</i>s plain
5714 ### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User's_Guide:_Using_tables
5717 # This should not produce <table></table> as <table><tr><td></td></tr></table>
5718 # is the bare minimum required by the spec, see:
5719 # http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables
5720 # Parsoid team replies: empty table tags are legal in HTML5
5722 A table with no data.
5735 A table with stray table end tags on start tag line (wt2html)
5739 {|style="color: red;"|}
5741 {|style="color: red;" |}
5745 {|style="color: red;"|} id="foo"
5749 {|style="color: red;" |} id="foo"
5753 <table style="color: red;"></table>
5755 <table style="color: red;">
5761 <table style="color: red;" id="foo">
5767 <table style="color: red;" id="foo">
5776 A table with no data (take 2)
5784 # A table with nothing but a caption is invalid XHTML, we might want to render
5785 # this as <p>caption</p>
5786 # Parsoid team replies: table with only a caption is legal in HTML5
5788 A table with nothing but a caption
5796 </caption><tr><td></td></tr></table>
5799 <table><caption> caption</caption></table>
5803 A table with caption with default-spaced attributes and a table row
5806 |+ style="color: red;" | caption1
5812 <caption style="color: red;"> caption1
5821 A table with captions with non-default spaced attributes and a table row
5824 |+style="color: red;"|caption2
5825 |+ style="color: red;"| caption3
5831 <caption style="color: red;">caption2
5833 <caption style="color: red;"> caption3
5842 Table td-cell syntax variations
5846 | foo bar foo || baz
5847 | style='color:red;' | baz
5848 | style='color:red;' || baz
5855 <td> foo bar foo </td>
5858 <td style="color:red;"> baz
5860 <td> style='color:red;' </td>
5888 Simple table but with multiple dashes for row wikitext
5907 Multiplication table
5909 {| border="1" cellpadding="2"
5910 |+Multiplication table
5912 ! × !! 1 !! 2 !! 3
5930 <table border="1" cellpadding="2">
5931 <caption>Multiplication table
5978 Accept "||" in table headings
5993 Accept "!!" in table data
6007 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'> Foo!! </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'></td></tr>
6012 Accept "||" in indented table headings
6022 </th></tr></table></dd></dl>
6027 Accept "!!" in templates
6041 <tbody><tr><th typeof="mw:Transclusion" about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":["!a ",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b!!c"}},"i":0}}]}'>a b</th><th about="#mwt1">c</th></tr>
6045 Accept "!!" in table headings after newline
6062 <p>b!!c</p></th></tr>
6067 Accept "!!" in table data of mixed wikitext / html syntax
6071 <tr><td>b!!c</td></tr>
6084 <tbody><tr><th>a</th></tr>
6085 <tr data-parsoid='{"stx":"html"}'><td data-parsoid='{"stx":"html"}'>b!!c</td></tr>
6090 Accept empty attributes in td/th cells (td/th cells starting with leading ||)
6107 Accept "| !" at start of line in tables (ignore !-attribute)
6111 | !style="color:red" | bar
6123 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 +/-
6127 |style='color:red;'|+1
6128 |style='color:blue;'|-1
6140 <td style="color:red;">+1
6142 <td style="color:blue;">-1
6166 |rowspan=2| Cell 2, row 1 (and 2)
6177 <td rowspan="2"> Cell 2, row 1 (and 2)
6195 {| bgcolor=#ABCDEF border=2
6200 |the original table again
6208 <table bgcolor="#ABCDEF" border="2">
6216 <td>the original table again
6222 Invalid attributes in table cell (bug 1830)
6236 Table cell attributes: Pipes protected by nowikis should be treated as a plain character
6240 | title="foo<nowiki>|</nowiki>" |bar
6241 | title="foo<nowiki>|</nowiki>" bar
6248 <td title="foo|">bar
6250 <td> title="foo|" bar
6255 # The "|}" to close the table is missing from the input, so parsoid's
6256 # *2wt modes will fail.
6258 Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html)
6260 parsoid=wt2html,html2html
6263 | |[ftp://|x||]" onmouseover="alert(document.cookie)">test
6267 <td>[<a rel="nofollow" class="external free" href="ftp://%7Cx">ftp://%7Cx</a></td>
6268 <td>]" onmouseover="alert(document.cookie)">test
6276 <td><a rel="mw:ExtLink" href="ftp://|x||"></a>" onmouseover="alert(document.cookie)">test</td></tr></tbody></table>
6279 # FIXME: The php output is broken.
6281 ! and || in td attributes should not be parsed as <th>/<td>
6284 | style="color: red !important;" data-contrived="put this here ||" | foo
6289 <td> style="color: red !important;" data-contrived="put this here </td>
6295 <tbody><tr><td style="color: red !important;" data-contrived="put this here ||" data-parsoid='{"autoInsertedEnd":true}'> foo</td></tr>
6300 Indented table markup mixed with indented pre content (proposed in bug 6200)
6305 Text that should be rendered preformatted
6313 <pre>Text that should be rendered preformatted
6322 1. Template-generated table cell attributes and cell content
6327 || {{table_attribs_5}}
6328 | <!--foo--> <!--bar--> <!--baz--> {{table_attribs}}
6329 |align=center {{table_attribs}}
6330 | <!--foo--> align=center <!--bar--> {{table_attribs}}
6335 <td style="color:red;">Foo
6337 <td style="color:red;">Foo
6339 <td> style="color:red;"</td>
6342 <td style="color:red;">Foo
6344 <td align="center" style="color:red;">Foo
6346 <td align="center" style="color:red;">Foo
6352 2. Template-generated table cell attributes and cell content
6355 |{{table_attribs_2}}
6360 <td style="color:red;">Foo
6368 <tbody><tr><td about="#mwt1" typeof="mw:Transclusion" style="color:red;" data-mw='{"parts":["|",{"template":{"target":{"wt":"table_attribs_2","href":"./Template:Table_attribs_2"},"params":{},"i":0}}]}'>Foo</td>
6369 <td about="#mwt1">Bar</td><td about="#mwt1">Baz</td></tr>
6374 3. Template-generated table cell attributes and cell content
6377 !align=center {{table_header_cells}}
6379 |align=center {{table_cells}}
6384 <th align="center" style="color:red;">Foo</th>
6385 <th style="color:red;"><i>Bar</i></th>
6386 <th style="color:brown;"><i>Foo</i> and Baz
6389 <td align="center" style="color:red;">Foo</td>
6390 <td style="color:red;"><i>Bar</i></td>
6391 <td style="color:brown;"><i>Foo</i> and Baz
6396 <tbody><tr><th align="center" style="color:red;" typeof="mw:Transclusion" about="#mwt1" data-mw='{"parts":["!align=center ",{"template":{"target":{"wt":"table_header_cells","href":"./Template:Table_header_cells"},"params":{},"i":0}}]}'>Foo</th><th about="#mwt1" style="color:red;"><i about="#mwt1">Bar</i></th><th about="#mwt1" style="color:brown;"><i about="#mwt1">Foo</i> and Baz</th></tr><tr>
6397 <td align="center" style="color:red;" typeof="mw:Transclusion" about="#mwt1" data-mw='{"parts":["|align=center ",{"template":{"target":{"wt":"table_cells","href":"./Template:Table_cells"},"params":{},"i":0}}]}'>Foo</td><td about="#mwt1" style="color:red;"><i about="#mwt1">Bar</i></td><td about="#mwt1" style="color:brown;"><i about="#mwt1">Foo</i> and Baz</td></tr>
6402 4. Template-generated table cell attributes and cell content inside a templated table
6405 !align=center {{table_header_cells}}
6407 |align=center {{table_cells}}
6412 <th align="center" style="color:red;">Foo</th>
6413 <th style="color:red;"><i>Bar</i></th>
6414 <th style="color:brown;"><i>Foo</i> and Baz
6417 <td align="center" style="color:red;">Foo</td>
6418 <td style="color:red;"><i>Bar</i></td>
6419 <td style="color:brown;"><i>Foo</i> and Baz
6423 <table about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[],[],[],[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"tbl-start","href":"./Template:Tbl-start"},"params":{},"i":0}},"\n!align=center ",{"template":{"target":{"wt":"table_header_cells","href":"./Template:Table_header_cells"},"params":{},"i":1}},"\n|-\n|align=center ",{"template":{"target":{"wt":"table_cells","href":"./Template:Table_cells"},"params":{},"i":2}},"\n",{"template":{"target":{"wt":"tbl-end","href":"./Template:Tbl-end"},"params":{},"i":3}}]}'>
6424 <tbody><tr><th align="center" style="color:red;">Foo</th><th style="color:red;"><i>Bar</i></th><th style="color:brown;"><i>Foo</i> and Baz</th></tr>
6426 <td align="center" style="color:red;">Foo</td><td style="color:red;"><i>Bar</i></td><td style="color:brown;"><i>Foo</i> and Baz</td></tr>
6430 ## Edge case fix to prevent future regressions
6432 T107652: <ref>s in templates that also generate table cell attributes should be rendered properly
6435 |{{table_attribs_7}}
6440 <tbody><tr><td style="background:#f9f9f9;" typeof="mw:Transclusion" about="#mwt1" data-mw='{"parts":["|",{"template":{"target":{"wt":"table_attribs_7","href":"./Template:Table_attribs_7"},"params":{},"i":0}}]}'>Foo<span class="mw-ref" id="cite_ref-1" rel="dc:references" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></td></tr>
6442 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">foo</span></li></ol>
6446 Table with row followed by newlines and table heading
6464 Table with empty line following the start tag
6481 # FIXME: Preserve the attribute properly (with an empty string as value) in
6482 # the PHP parser. Parsoid implements the behavior below.
6484 Table attributes with empty value
6494 </td></tr></tbody></table>
6499 Wikitext table with a lot of comments
6522 Wikitext table comments represented in parsoid dom
6524 {|<!--c1--><!--c2-->
6535 <table><!--c1--><!--c2-->
6536 <tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'><!--c3-->
6537 <td data-parsoid='{"autoInsertedEnd":true}'> x</td></tr>
6542 Wikitext table with double-line table cell
6559 Table cell with a single comment
6576 Table-cell after a comment-only-empty-line
6593 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'>a</td>
6595 <!--c2--><td data-parsoid='{"autoInsertedEnd":true}'> b</td></tr>
6601 Build table with {{!}}
6603 {{{!}} class="wikitable"
6606 {{!}}- style="color:red;"
6607 {{!}} data {{!}}{{!}} style="color:red;" {{!}} second data
6610 <table class="wikitable">
6616 <tr style="color:red;">
6618 <td style="color:red;"> second data
6624 Build table with pipe as data
6626 {| class="wikitable"
6629 |- style="color:red;"
6630 | data || style="color:red;" | second data
6632 | style="color:red;" | data with | || style="color:red;" | second data with |
6634 || data with | ||| second data with |
6637 <table class="wikitable">
6643 <tr style="color:red;">
6645 <td style="color:red;"> second data
6648 <td style="color:red;"> data with | </td>
6649 <td style="color:red;"> second data with |
6652 <td> data with | </td>
6653 <td> second data with |
6659 Build table with wikilink
6661 {| class="wikitable"
6662 ! header || second header
6663 |- style="color:red;"
6664 | data [[Main Page|linktext]] || second data [[Main Page|linktext]]
6666 | data || second data [[Main Page|link|text with pipe]]
6669 <table class="wikitable">
6674 <tr style="color:red;">
6675 <td> data <a href="/wiki/Main_Page" title="Main Page">linktext</a> </td>
6676 <td> second data <a href="/wiki/Main_Page" title="Main Page">linktext</a>
6680 <td> second data <a href="/wiki/Main_Page" title="Main Page">link|text with pipe</a>
6685 # The expected HTML structure in this test is debatable. The PHP parser does
6686 # not parse this kind of table at all. The main focus for Parsoid is on
6687 # round-tripping, so this output is ok for now. TODO: revisit!
6689 Wikitext table with html-syntax row
6699 <td>foo</td></tr></tbody></table>
6702 ## Note that Parsoid output differs from PHP and PHP+tidy here.
6703 ## The lack of <tr> tags in the PHP output is arguably a bug in the
6704 ## PHP parser, which tidy then compounds by fostering the content
6705 ## entirely out of the table. Parsoid recognizes the table context
6706 ## and generates <tr> and <td> wrappers as needed. Hopefully nobody
6707 ## depends on PHP's treatment of broken table markup!
6709 Implicit <td> after a |-
6711 parsoid=wt2html,html2html
6731 # Again, Parsoid adds implicit <td>s here, PHP and Tidy strip the b out.
6733 <pre> tags should be recognized in an explicit <td> context, but not in an implicit <td> context
6735 parsoid=wt2html,html2html
6768 <tr><td><pre>a</pre></td></tr>
6769 <tr><td> b</td></tr>
6774 # PHP + Tidy strips the list out of the table; Parsoid wraps it.
6775 # Parsoid generates the missing <td>, so wt2wt won't succeed.
6777 Lists should be recognized in an implicit <td> context
6779 parsoid=wt2html,html2html
6806 Table cells not properly parsed in an implicit-td context
6810 {{table_attribs_4}} || a || b
6815 <td style="background-color:#DC241f;" width="10px"></td>
6822 <tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
6823 <td style="background-color:#DC241f;" width="10px" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["",{"template":{"target":{"wt":"table_attribs_4","href":"./Template:Table_attribs_4"},"params":{},"i":0}}," "]}'> </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> a </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> b</td></tr>
6828 Parsoid: Round-trip tables directly followed by content (bug 51219)
6830 parsoid=wt2html,wt2wt
6855 Parsoid: Default to a newline after tables in new content (bug 51219)
6860 <tr><td>foo</td></tr></tbody></table> bar
6862 <tr><td>baz</td></tr></tbody></table><b>quux</b>
6867 <nowiki> </nowiki>bar
6875 Parsoid: newline inducing block nodes don't suppress <nowiki>
6887 Parsoid: Row-syntax table headings followed by comment & table cells
6889 parsoid=wt2html,wt2wt
6893 <!-- foo --> || baz || quux
6907 <tbody><tr><th> foo </th><th> bar
6908 <!-- foo --> </th><td> baz </td><td> quux</td></tr>
6913 Parsoid: Recover better from broken table attributes
6933 <p>foo</p></td></tr>
6938 Strip unsupported table tags
6986 Testing serialization after deletion of table cells
6989 "modes": ["wt2wt", "selser"],
6997 | id="x" |c1 {{!}}{{!}}{{!}}c2 |||c3
7010 Plain link, capitalized
7014 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
7019 Plain link, uncapitalized
7023 <p><a href="/wiki/Main_Page" title="Main Page">main Page</a>
7030 [[Main Page|The Main Page]]
7032 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
7037 Piped link with comment in link text
7039 [[Main Page|The Main<!--front--> Page]]
7041 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
7046 Piped link with multiple pipe characters in link text
7048 [[Main Page||The|Main|Page|]]
7050 <p><a href="/wiki/Main_Page" title="Main Page">|The|Main|Page|</a>
7053 <p><a rel="mw:WikiLink" href="Main_Page" title="Main Page">|The|Main|Page|</a></p>
7061 <p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig</a>
7066 Broken link with fragment
7068 [[Zigzagzogzagzig#zug]]
7070 <p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig#zug</a>
7075 Special page link with fragment
7077 [[Special:Version#anchor]]
7079 <p><a href="/wiki/Special:Version#anchor" title="Special:Version">Special:Version#anchor</a>
7084 Nonexistent special page link with fragment
7086 [[Special:ThisNameWillHopefullyNeverBeUsed#anchor]]
7088 <p><a href="/wiki/Special:ThisNameWillHopefullyNeverBeUsed" class="new" title="Special:ThisNameWillHopefullyNeverBeUsed (page does not exist)">Special:ThisNameWillHopefullyNeverBeUsed#anchor</a>
7095 xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
7097 <p>xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a>, xxx<a href="/wiki/Main_Page" title="Main Page">Main Page</a>, Xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a> XXX<a href="/wiki/Main_Page" title="Main Page">main Page</a>, XXX<a href="/wiki/Main_Page" title="Main Page">Main Page</a>
7104 [[Main Page]]xxx, [[Main Page]]XXX, [[Main Page]]!!!
7106 <p><a href="/wiki/Main_Page" title="Main Page">Main Pagexxx</a>, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>XXX, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>!!!
7117 Bug 43661: Piped links with identical prefixes
7119 [[prefixed article|prefixed articles with spaces]]
7121 [[prefixed article|prefixed articlesaoeu]]
7123 [[Main Page|Main Page test]]
7125 <p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articles with spaces</a>
7126 </p><p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articlesaoeu</a>
7127 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page test</a>
7133 Link with HTML entity in suffix / tail
7135 [[Main Page]]", [[Main Page]]a
7137 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>", <a href="/wiki/Main_Page" title="Main Page">Main Page</a>a
7140 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a><span typeof="mw:Entity" data-parsoid='{"src":"&quot;","srcContent":"\""}'>"</span>, <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a><span typeof="mw:Entity" data-parsoid='{"src":"&#97;","srcContent":"a"}'>a</span></p>
7144 Link with 3 brackets
7153 Link with 4 brackets
7157 <p>[[<a href="/wiki/Main_Page" title="Main Page">Main Page</a>]]
7162 Piped link with 3 brackets
7164 [[[main page|the main page]]]
7166 <p>[[[main page|the main page]]]
7171 Piped link with extlink-like text
7174 [[Main Page|This is a [bar]]]
7176 <p><a href="/wiki/Main_Page" title="Main Page">[bar]</a>
7177 <a href="/wiki/Main_Page" title="Main Page">This is a [bar]</a>
7180 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>[bar]</a>
7181 <a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>This is a [bar]</a></p>
7185 Link with multiple pipes
7187 [[Main Page|The|Main|Page]]
7189 <p><a href="/wiki/Main_Page" title="Main Page">The|Main|Page</a>
7193 # Note that parsoid does not munge anchor text; all non-space
7194 # characters are valid in HTML5 ids.
7196 Anchor containing a #. (bug 63430)
7198 [[Main Page#And#Link]]
7200 <p><a href="/wiki/Main_Page#And.23Link" title="Main Page">Main Page#And#Link</a>
7203 <p><a rel="mw:WikiLink" href="./Main_Page#And%23Link" title="Main Page">Main Page#And#Link</a></p>
7209 [[Talk:Parser testing]], [[Meta:Disclaimers]]
7211 <p><a href="/index.php?title=Talk:Parser_testing&action=edit&redlink=1" class="new" title="Talk:Parser testing (page does not exist)">Talk:Parser testing</a>, <a href="/index.php?title=Meta:Disclaimers&action=edit&redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">Meta:Disclaimers</a>
7216 Link with space in namespace
7218 [[User talk:Foo bar]]
7220 <p><a href="/index.php?title=User_talk:Foo_bar&action=edit&redlink=1" class="new" title="User talk:Foo bar (page does not exist)">User talk:Foo bar</a>
7225 MemoryAlpha:AlphaTest
7227 This is an article in the MemoryAlpha namespace
7228 (which shadows the memoryalpha interwiki link).
7232 Namespace takes precedence over interwiki link (bug 51680)
7234 [[MemoryAlpha:AlphaTest]]
7236 <p><a href="/wiki/MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
7240 # The previous test doesn't work correctly in html2*, due to not recognizing the
7241 # link as an internal one. This one checks for the correct behavior.
7243 Link to namespace preferred over interwiki with correct rel attribute
7245 parsoid=html2wt,html2html
7247 <p><a rel="mw:WikiLink" href="./MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a></p>
7249 [[MemoryAlpha:AlphaTest]]
7253 Piped link to namespace
7255 [[Meta:Disclaimers|The disclaimers]]
7257 <p><a href="/index.php?title=Meta:Disclaimers&action=edit&redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">The disclaimers</a>
7264 [[Usually caused by a typo (oops}]]
7266 <p>[[Usually caused by a typo (oops}]]
7273 Just a test of an article title containing a percent.
7277 Link containing % (not as a hex sequence)
7281 <p><a href="/wiki/7%25_Solution" title="7% Solution">7% Solution</a>
7284 <p><a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7% Solution</a></p>
7287 # note that the parsoid HTML is identical to the previous test output,
7288 # so the previous test ensures that the html2wt mode will generate the
7289 # "not as a hex sequence" wikitext.
7291 Link containing % as a single hex sequence interpreted to char
7293 parsoid=wt2wt,wt2html,html2html
7297 <p><a href="/wiki/7%25_Solution" title="7% Solution">7% Solution</a>
7300 <p><a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7% Solution</a></p>
7304 Link containing % as a double hex sequence interpreted to hex sequence
7308 <p>[[7%2525 Solution]]
7312 # note that parsoid does not munge anchor text; all non-space
7313 # characters are valid in HTML5 anchors.
7315 Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors
7316 Example for such a section: == < ==
7318 [[%23%3c]][[%23%3e]]
7320 <p><a href="#.3C">#<</a><a href="#.3E">#></a>
7323 <p><a rel="mw:WikiLink" href="./Main%20Page#%3C" title="Main Page">#<</a><a rel="mw:WikiLink" href="./Main%20Page#%3E" title="Main Page">#></a></p>
7327 Link containing "<#" and ">#" as a hex sequences
7329 [[%3c%23]][[%3e%23]]
7331 <p>[[%3c%23]][[%3e%23]]
7336 Link containing an equals sign
7338 [[Special:BookSources/isbn=4-00-026157-6]]
7340 <p><a href="/wiki/Special:BookSources/isbn%3D4-00-026157-6" title="Special:BookSources/isbn=4-00-026157-6">Special:BookSources/isbn=4-00-026157-6</a>
7343 <p><a rel="mw:WikiLink" href="./Special:BookSources/isbn=4-00-026157-6" title="Special:BookSources/isbn=4-00-026157-6">Special:BookSources/isbn=4-00-026157-6</a></p>
7349 Just a test of an article title containing a tilde.
7352 # note that links containing signatures, like [[Foo~~~~]], are
7353 # massaged by the pre-save transform (PST) and so the tildes are never
7354 # seen by the parser.
7356 Link containing a tilde
7360 <p><a href="/wiki/Foo~bar" title="Foo~bar">Foo~bar</a>
7363 <p><a rel="mw:WikiLink" href="./Foo~bar" title="Foo~bar">Foo~bar</a></p>
7367 Link containing double-single-quotes '' (bug 4598)
7369 [[Lista d''e paise d''o munno]]
7371 <p><a href="/index.php?title=Lista_d''e_paise_d''o_munno&action=edit&redlink=1" class="new" title="Lista d''e paise d''o munno (page does not exist)">Lista d''e paise d''o munno</a>
7374 <p><a rel="mw:WikiLink" href="./Lista_d''e_paise_d''o_munno" title="Lista d''e paise d''o munno">Lista d''e paise d''o munno</a></p>
7378 Link containing double-single-quotes '' in text (bug 4598 sanity check)
7380 Some [[Link|pretty ''italics'' and stuff]]!
7382 <p>Some <a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!
7385 <p>Some <a rel="mw:WikiLink" href="Link" title="Link">pretty <i>italics</i> and stuff</a>!</p>
7389 Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check)
7391 ''Some [[Link|pretty ''italics'' and stuff]]!''
7393 <p><i>Some <a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!</i>
7398 Link with double quotes in title part (literal) and alternate part (interpreted)
7400 [[File:Denys_Savchenko_''Pentecoste''.jpg]]
7404 [[''Pentecoste''|Pentecoste]]
7406 [[''Pentecoste''|''Pentecoste'']]
7408 <p><a href="/index.php?title=Special:Upload&wpDestFile=Denys_Savchenko_''Pentecoste''.jpg" class="new" title="File:Denys Savchenko ''Pentecoste''.jpg">File:Denys Savchenko <i>Pentecoste</i>.jpg</a>
7409 </p><p><a href="/index.php?title=''Pentecoste''&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">''Pentecoste''</a>
7410 </p><p><a href="/index.php?title=''Pentecoste''&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">Pentecoste</a>
7411 </p><p><a href="/index.php?title=''Pentecoste''&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)"><i>Pentecoste</i></a>
7414 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}]}'><a href="./File:Denys_Savchenko_''Pentecoste''.jpg"><img resource="./File:Denys_Savchenko_''Pentecoste''.jpg" src="./Special:FilePath/Denys_Savchenko_''Pentecoste''.jpg" height="220" width="220"/></a></span></p>
7415 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''">''Pentecoste''</a></p>
7416 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''">Pentecoste</a></p>
7417 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''"><i>Pentecoste</i></a></p>
7421 Broken image links with HTML captions (bug 39700)
7423 [[File:Nonexistent|<script></script>]]
7424 [[File:Nonexistent|100x100px|<script></script>]]
7425 [[File:Nonexistent|<]]
7426 [[File:Nonexistent|a<i>b</i>c]]
7428 <p><a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
7429 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
7430 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><</a>
7431 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent">abc</a>
7434 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"&lt;script&gt;&lt;/script&gt;"}'><a href="./File:Nonexistent"><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220"/></a></span>
7435 <span typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"&lt;script&gt;&lt;/script&gt;"}'><a href="./File:Nonexistent"><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="100" width="100"/></a></span>
7436 <span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"<span typeof=\"mw:Entity\" data-parsoid=\"{&quot;src&quot;:&quot;&amp;lt;&quot;,&quot;srcContent&quot;:&quot;<&quot;,&quot;dsr&quot;:[107,111,null,null]}\">&lt;</span>"}'><a href="./File:Nonexistent"><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220"/></a></span>
7437 <span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"a<i data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[134,142,3,4]}\">b</i>c"}'><a href="./File:Nonexistent"><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220"/></a></span></p>
7443 [[http://www.example.com]]
7445 <p>[<a rel="nofollow" class="external autonumber" href="http://www.example.com">[1]</a>]
7448 <p>[<a rel="mw:ExtLink" href="http://www.example.com"></a>]</p>
7452 Plain link to URL with link text
7454 [[http://www.example.com Link text]]
7456 <p>[<a rel="nofollow" class="external text" href="http://www.example.com">Link text</a>]
7461 Plain link to protocol-relative URL
7463 [[//www.example.com]]
7465 <p>[<a rel="nofollow" class="external autonumber" href="//www.example.com">[1]</a>]
7468 <p>[<a rel="mw:ExtLink" href="//www.example.com"></a>]</p>
7472 Plain link to protocol-relative URL with link text
7474 [[//www.example.com Link text]]
7476 <p>[<a rel="nofollow" class="external text" href="//www.example.com">Link text</a>]
7481 Plain link to page with question mark in title
7487 <p><a href="/wiki/A%3Fb" title="A?b">A?b</a>
7488 </p><p><a href="/wiki/A%3Fb" title="A?b">Baz</a>
7493 # I'm fairly sure the expected result here is wrong.
7494 # We want these to be URL links, not pseudo-pages with URLs for titles....
7495 # However the current output is also pretty screwy.
7498 # I'm changing it to match the current output--it arguably makes more
7499 # sense in the light of the test above. Old expected result was:
7500 #<p>Piped link to URL: <a href="/index.php?title=Http://www.example.com&action=edit" class="new">an example URL</a>
7502 # But I think this test is bordering on "garbage in, garbage out" anyway.
7507 Piped link to URL: [[http://www.example.com|an example URL]]
7509 <p>Piped link to URL: [<a rel="nofollow" class="external text" href="http://www.example.com%7Can">example URL</a>]
7512 <p>Piped link to URL: [<a rel="mw:ExtLink" href="http://www.example.com|an">example URL</a>]</p>
7516 BUG 2: [[page|http://url/]] should link to page, not http://url/
7518 [[Main Page|http://url/]]
7520 <p><a href="/wiki/Main_Page" title="Main Page">http://url/</a>
7523 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">http://url/</a></p>
7526 # Parsoid does not mark self-links, by design.
7528 BUG 337: Escaped self-links should be bold
7532 [[Bug462]] [[Bug462]]
7534 <p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong>
7537 <p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong></p>
7539 <p><a rel="mw:WikiLink" href="./Bug462" title="Bug462">Bug462</a> <a rel="mw:WikiLink" href="./Bug462" title="Bug462">Bug462</a></p>
7543 Self-link to section should not be bold
7547 [[Main Page#section]]
7549 <p><a href="/wiki/Main_Page#section" title="Main Page">Main Page#section</a>
7560 Self-link to numeric title
7566 <p><strong class="selflink">0</strong>
7571 Link to numeric-equivalent title
7577 <p><a href="/wiki/00" title="00">00</a>
7582 <nowiki> inside a link
7584 [[Main<nowiki> Page</nowiki>]] [[Main Page|the main page <nowiki>[it's not very good]</nowiki>]]
7586 <p>[[Main Page]] <a href="/wiki/Main_Page" title="Main Page">the main page [it's not very good]</a>
7591 Non-breaking spaces in title
7593 [[ Main Page ]]
7595 <p><a href="/wiki/Main_Page" title="Main Page">  Main   Page  </a>
7600 Internal link with ca linktrail, surrounded by bold apostrophes (bug 27473 primary issue)
7606 <p><b><a href="/wiki/Main_Page" title="Main Page">Main Page</a></b>
7611 Internal link with ca linktrail, surrounded by italic apostrophes (bug 27473 primary issue)
7617 <p><i><a href="/wiki/Main_Page" title="Main Page">Main Page</a></i>
7622 Internal link with en linktrail: no apostrophes (bug 27473)
7628 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (page does not exist)">Something</a>'nice
7633 Internal link with ca linktrail with apostrophes (bug 27473)
7639 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (encara no existeix)">Something'nice</a>
7644 Internal link with kaa linktrail with apostrophes (bug 27473)
7650 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (bet ele jaratılmag'an)">Something'nice</a>
7655 Link with multiple ":" in a subpage-supporting namespace (bug 63636)
7657 [[User:Foo/Test/63636:Bar|Test]]
7659 <p><a href="/index.php?title=User:Foo/Test/63636:Bar&action=edit&redlink=1" class="new" title="User:Foo/Test/63636:Bar (page does not exist)">Test</a>
7662 <p><a rel="mw:WikiLink" href="./User:Foo/Test/63636:Bar" title="User:Foo/Test/63636:Bar">Test</a></p>
7666 Purely hash wikilink
7668 title=[[User:test/123]]
7672 <p><a href="#a">b</a>
7675 <p><a rel="mw:WikiLink" href="./User:Test/123#a" data-parsoid='{"stx":"piped","a":{"href":"./User:Test/123#a"},"sa":{"href":"#a"}}'>b</a></p>
7679 1. Interaction of linktrail and template encapsulation
7685 <p><a rel="mw:WikiLink" href="Foo" title="Foo" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Foo]]"}},"i":0}},"l"]}'>Fool</a></p>
7689 2. Interaction of linktrail and template encapsulation
7693 {{echo|Some [[Fool]]}}s
7695 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Some [[Fool]]"}},"i":0}},"s"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>Some </span><a rel="mw:WikiLink" href="./Fool" title="Fool" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a></p>
7699 3. Interaction of linktrail and template encapsulation
7703 {{echo|Some [[Fool]]s are '''bold and foolish'''}}
7705 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Some [[Fool]]s are '''bold and foolish'''"}},"i":0}}]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>Some <a rel="mw:WikiLink" href="./Fool" title="Fool" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a> are <b>bold and foolish</b></p>
7715 Internal link with is link prefix
7719 Aðrir mótmælenda[[söfnuður|söfnuðir]] og
7721 <p>Aðrir <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðir</a> og
7732 Internal link with is link trail and link prefix
7736 [[mótmælendatrú|xxx]]ar
7738 mótmælenda[[söfnuður]]
7739 mótmælenda[[söfnuður|söfnuðir]]
7740 mótmælenda[[söfnuður|söfnuðir]]xxx
7742 <p><a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">xxxar</a>
7743 <a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">mótmælendatrúar</a>
7744 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuður</a>
7745 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðir</a>
7746 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðirxxx</a>
7751 Parsoid link trail escaping
7753 parsoid=html2wt,html2html
7755 <p><a rel="mw:WikiLink" href="Apple" title="Apple">apple</a>s</p>
7761 Parsoid link prefix escaping
7764 parsoid=html2wt,html2html
7766 <p>Aðrir mótmælenda<a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður">söfnuður</a></p>
7768 Aðrir mótmælenda<nowiki/>[[söfnuður]]
7772 Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
7780 [http://wp.org ''foo'']
7782 <p><a href="/wiki/Foo" title="Foo"> bar</a>
7783 </p><p><a href="/wiki/Foo" title="Foo"> <i>bar</i></a>
7784 </p><p><a rel="nofollow" class="external text" href="http://wp.org">foo</a>
7785 </p><p><a rel="nofollow" class="external text" href="http://wp.org"><i>foo</i></a>
7790 Parsoid: Scoped parsing should handle mixed transclusions and plain text
7794 [[Foo|{{echo|a}} b {{echo|c}}]]
7796 <p><a rel="mw:WikiLink" href="Foo" title="Foo"><span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}}]}'>a</span> b <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"c"}},"i":0}}]}'>c</span></a></p>
7800 Link with angle bracket after anchor
7804 <p><a href="/wiki/Foo#.3Cbar.3E" title="Foo">Foo#<bar></a>
7807 <p><a rel="mw:WikiLink" href="./Foo#%3Cbar%3E" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo#%3Cbar%3E"},"sa":{"href":"Foo#<bar>"}}'>Foo#<bar></a></p>
7811 ### Interwiki links (see maintenance/interwiki.sql)
7815 Inline interwiki link
7817 parsoid=wt2html,wt2wt,html2html
7819 [[MeatBall:SoftSecurity]]
7821 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a>
7824 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a></p>
7828 Inline interwiki link with empty title (bug 2372)
7830 parsoid=wt2html,wt2wt,html2html
7834 <p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a>
7837 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?" title="meatball:">MeatBall:</a></p>
7841 Interwiki link encoding conversion (bug 1636)
7843 *[[Wikipedia:ro:Olteniţa]]
7844 *[[Wikipedia:ro:Olteniţa]]
7846 <ul><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
7847 <li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li></ul>
7851 <li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
7852 <li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a></li>
7857 Interwiki link with fragment (bug 2130)
7859 [[MeatBall:SoftSecurity#foo]]
7861 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity#foo</a>
7865 # Ideally the wikipedia: prefix here should be proto-relative too
7866 # [CSA]: this is kind of a bogus test, as the PHP parser test doesn't
7867 # define the 'en' prefix, and originally the test used 'wikipedia',
7868 # which isn't a localinterwiki prefix hence the links to the 'en:Foo'
7871 Different interwiki prefixes mapping to the same URL
7879 [[:wikipedia:Foo|Foo]]
7881 [[wikipedia:en:Foo]]
7883 [[:wikipedia:en:Foo]]
7887 <p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">en:Foo</a></p>
7889 <p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}' title="en:Foo">Foo</a></p>
7891 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">wikipedia:Foo</a></p>
7893 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":":wikipedia:Foo"},"isIW":true}' title="wikipedia:Foo">Foo</a></p>
7895 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":"wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
7897 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/en:Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/en:Foo"},"sa":{"href":":wikipedia:en:Foo"},"isIW":true}' title="wikipedia:en:Foo">wikipedia:en:Foo</a></p>
7899 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":" wikiPEdia :Foo"},"isIW":true}' title="wikipedia:Foo"> wikiPEdia :Foo</a></p>
7903 Interwiki links that cannot be represented in wiki syntax
7906 [[meatball:ok#foo|ok with fragment]]
7907 [[meatball:ok_as_well?|ok ending with ? mark]]
7908 [http://de.wikipedia.org/wiki/Foo?action=history has query]
7909 [http://de.wikipedia.org/wiki/#foo is just fragment]
7912 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?ok" class="extiw" title="meatball:ok">meatball:ok</a>
7913 <a href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" class="extiw" title="meatball:ok">ok with fragment</a>
7914 <a href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well%3F" class="extiw" title="meatball:ok as well?">ok ending with ? mark</a>
7915 <a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
7916 <a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a>
7919 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok" title="meatball:ok">meatball:ok</a>
7920 <a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" title="meatball:ok">ok with fragment</a>
7921 <a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well?" title="meatball:ok as well?">ok ending with ? mark</a>
7922 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
7923 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a></p>
7927 Interwiki links: trail
7929 [[wikipedia:Foo|Ba]]r
7931 <p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
7934 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true,"tail":"r"}' title="wikipedia:Foo">Bar</a></p>
7938 Local interwiki link
7940 parsoid=wt2html,wt2wt,html2html
7942 [[local:Template:Foo]]
7944 <p><a href="/wiki/Template:Foo" title="Template:Foo">local:Template:Foo</a>
7947 <p><a rel="mw:WikiLink" href="./Template:Foo" title="Template:Foo">local:Template:Foo</a></p>
7950 # Parsoid does not mark self-links, by design.
7952 Local interwiki link: self-link to current page
7955 parsoid=wt2html,wt2wt,html2html
7959 <p><strong class="selflink">local:Main Page</strong>
7962 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:Main Page</a></p>
7966 Local interwiki link: prefix only (bug 64167)
7968 parsoid=wt2html,wt2wt,html2html
7972 <p><a href="/wiki/Main_Page" title="Main Page">local:</a>
7975 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:</a></p>
7979 Local interwiki link: with additional interwiki prefix (bug 61357)
7981 parsoid=wt2html,wt2wt,html2html
7983 [[local:meatball:Hello]]
7985 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?Hello" class="extiw" title="meatball:Hello">local:meatball:Hello</a>
7988 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?Hello" title="meatball:Hello">local:meatball:Hello</a></p>
7992 Multiple local interwiki link prefixes
7994 [[local:local:local:local:mi:local:Foo]]
7996 parsoid=wt2html,wt2wt,html2html
7998 <p><a href="/wiki/Foo" title="Foo">local:local:local:local:mi:local:Foo</a>
8001 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">local:local:local:local:mi:local:Foo</a></p>
8005 ### Interlanguage links
8006 ### Language links (so that searching for '### language' matches..)
8012 parsoid=wt2html,wt2wt,html2html
8020 <p>Blah blah blah</p>
8021 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8025 Interlanguage link with spacing
8027 parsoid=wt2html,wt2wt,html2html
8035 <p>Blah blah blah</p>
8036 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8040 Double interlanguage link
8042 parsoid=wt2html,wt2wt,html2html
8051 <p>Blah blah blah</p>
8052 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
8053 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8057 Interlanguage link variations
8059 parsoid=wt2html,wt2wt,html2html
8069 <p>Blah blah blah</p>
8070 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish" />
8071 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese" />
8072 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Foo_bar" />
8076 Space and question mark encoding in interlanguage links (T95473)
8078 parsoid=wt2html,wt2wt,html2html
8086 <p>Blah blah blah</p>
8087 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Foo_bar%3F" />
8091 Interlanguage link, with prefix links
8101 <p>Blah blah blah</p>
8102 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8106 Double interlanguage link, with prefix links (bug 8897)
8117 <p>Blah blah blah</p>
8118 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
8119 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8123 "Extra" interlanguage links (bug 32189 / gerrit 111390)
8131 <p>Blah blah blah</p>
8132 <link rel="mw:PageProp/Language" title="Multilingual" href="http://wikisource.org/wiki/Article"/>
8136 Parsoid-specific test: Wikilinks with should RT properly
8142 <p><a href="/index.php?title=WW_II&action=edit&redlink=1" class="new" title="WW II (lonkásá ezalí tɛ̂)">WW II</a>
8147 Parsoid bug 53221: Wikilinks should be properly entity-escaped
8151 <p>He&nbsp;llo <a href="Foo" rel="mw:WikiLink">He&nbsp;llo</a></p>
8152 <p>He&nbsp;llo <a href="He&nbsp;llo" rel="mw:WikiLink">He&nbsp;llo</a></p>
8154 He&nbsp;llo [[Foo|He&nbsp;llo]]
8156 He&nbsp;llo [[He&nbsp;llo]]
8160 Parsoid: handle constructor well
8166 <p><a href="/index.php?title=Constructor&action=edit&redlink=1" class="new" title="Constructor (page does not exist)">constructor</a>
8167 </p><p><a href="/index.php?title=Constructor:foo&action=edit&redlink=1" class="new" title="Constructor:foo (page does not exist)">constructor:foo</a>
8170 <p><a rel="mw:WikiLink" href="./Constructor" title="Constructor" data-parsoid="{"stx":"simple","a":{"href":"./Constructor"},"sa":{"href":"constructor"}}">constructor</a></p>
8172 <p><a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid="{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"constructor:foo"}}">constructor:foo</a></p>
8181 # Note that `ko` isn't a known interlanguage prefix
8183 Parsoid: recognize interlanguage links without a target page
8193 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/"/>
8195 <p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
8198 # Note that `ko` isn't a known interwiki prefix
8200 Parsoid: recognize interwiki links without a target page
8202 parsoid=wt2html,wt2wt,html2html
8208 <p><a href="http://es.wikipedia.org/wiki/" class="extiw" title="es:">es:</a>
8209 </p><p><a href="/wiki/Ko:" title="Ko:">ko:</a>
8212 <p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/" title="es:">es:</a></p>
8213 <p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
8217 Handle interwiki links pointing to the current wiki as plain wiki links (bug 45209)
8221 <p><a href="/wiki/Foo" title="Foo">mi:Foo</a>
8224 <p><a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"mi:Foo"}}'>mi:Foo</a></p>
8228 Interlanguage link with preceding local interwiki link (bug 68085)
8230 parsoid=wt2html,wt2wt,html2html
8233 [[local:es:Spanish]]
8236 <a href="http://es.wikipedia.org/wiki/Spanish" class="extiw" title="es:Spanish">local:es:Spanish</a>
8240 <a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">local:es:Spanish</a></p>
8244 Looks like an interlanguage link, but is actually a local interwiki
8246 parsoid=wt2html,wt2wt,html2html
8252 <a href="/wiki/Template:Foo" title="Template:Foo">mi:Template:Foo</a>
8256 <a rel="mw:WikiLink" href="./Template:Foo" title="Template:Foo">mi:Template:Foo</a></p>
8260 ### Redirects, Parsoid-only
8264 1. Simple redirect to page
8266 #REDIRECT [[Main Page]]
8268 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8272 2. Other redirect variants
8274 #REDIRECT [[Main_Page]]
8276 <link rel="mw:PageProp/redirect" href="./Main_Page" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./Main_Page"},"sa":{"href":"Main_Page"}}'/>
8279 # Not a valid redirect in PHP (although perhaps it was, once upon a time)
8280 # This tests the Parsoid bail-out code.
8282 3. Other redirect variants
8284 #REDIRECT [[<nowiki>[[Bar]]</nowiki>]]
8286 <ol><li data-parsoid>REDIRECT [[[[Bar]]]]</li></ol>
8290 4. Redirect to a templated destination
8292 #REDIRECT [[{{echo|Foo}}bar]]
8294 <link typeof="mw:ExpandedAttrs" rel="mw:PageProp/redirect" href="./Foobar" data-mw='{"attribs":[[{"txt":"href"},{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[12,24,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;Foo&quot;}},&quot;i&quot;:0}}]}\">Foo</span>bar"}]]}'/>
8300 parsoid=wt2html,wt2wt
8305 <li>REDIRECT [[]]</li></ol>
8309 Optional colon in #REDIRECT
8311 # the colon is archaic syntax. we support it for wt2html, but we
8312 # don't care that it roundtrips back to the modern syntax.
8313 parsoid=wt2html,html2html
8315 #REDIRECT:[[Main Page]]
8317 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8321 Whitespace in #REDIRECT with optional colon
8323 # the colon and gratuitous whitespace is archaic syntax. we support
8324 # it for wt2html, but we don't care that it roundtrips back to the
8325 # modern syntax (without extra whitespace)
8326 parsoid=wt2html,html2html
8333 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8337 Piped link in #REDIRECT
8339 # content after piped link is ignored. we support this syntax,
8340 # but don't care that the piped link is lost when we roundtrip this.
8343 #REDIRECT [[Main Page|bar]]
8345 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8349 Redirect to category (T104502)
8351 parsoid=wt2html,wt2wt
8353 #REDIRECT [[Category:Foo]]
8355 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8359 Redirect to category with URL encoding (T104502)
8363 #REDIRECT [[Category%3AFoo]]
8365 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8369 Redirect to category page
8371 #REDIRECT [[:Category:Foo]]
8373 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8377 Redirect to image page (1)
8379 #REDIRECT [[File:Wiki.png]]
8381 <link rel="mw:PageProp/redirect" href="./File:Wiki.png"/>
8385 Redirect to image page (2)
8387 #REDIRECT [[Image:Wiki.png]]
8389 <link rel="mw:PageProp/redirect" href="./File:Wiki.png" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./File:Wiki.png"},"sa":{"href":"Image:Wiki.png"}}'/>
8392 # html2wt disabled because wts serializes as "#REDIRECT [[:en:File:Wiki.png]]"
8393 # Next test confirms this.
8395 Redirect to language (1) (T104918)
8397 parsoid=wt2html,wt2wt,html2html
8399 #REDIRECT [[en:File:Wiki.png]]
8401 <link rel="mw:PageProp/redirect" href="//en.wikipedia.org/wiki/File:Wiki.png"/>
8405 Redirect to language (2) (T104918)
8407 #REDIRECT [[:en:File:Wiki.png]]
8409 <link rel="mw:PageProp/redirect" href="//en.wikipedia.org/wiki/File:Wiki.png"/>
8413 Redirect to interwiki (T104918)
8415 #REDIRECT [[meatball:File:Wiki.png]]
8417 <link rel="mw:PageProp/redirect" href="http://www.usemod.com/cgi-bin/mb.pl?File:Wiki.png"/>
8421 Non-English #REDIRECT
8425 #TILVÍSUN [[Main Page]]
8427 <link rel="mw:PageProp/redirect" href="./Main_Page" data-parsoid='{"src":"#TILVÍSUN ","a":{"href":"./Main_Page"},"sa":{"href":"Main Page"}}'/>
8431 Redirect syntax under text isn't considered a redirect
8434 #redirect [[Main Page]]
8437 <ol data-parsoid='{}'><li data-parsoid='{}'>redirect <a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"simple","a":{"href":"./Main_Page"},"sa":{"href":"Main Page"}}'>Main Page</a></li></ol>
8440 # FIXME: Should hoist the redirect to the top of the page and ensure there
8447 <p>Foo<link rel="mw:PageProp/redirect" href="./Foo"/></p>
8467 Broken br tag sanitization
8475 # TODO: Fix html2html mode (bug 51055)!
8477 Parsoid: Broken br tag recognition
8490 Incorrecly removing closing slashes from correctly formed XHTML
8492 <br style="clear:both;" />
8494 <p><br style="clear:both;" />
8499 Failing to transform badly formed HTML into correct XHTML
8501 <br style="clear: left;">
8502 <br style="clear: right;">
8503 <br style="clear: both;">
8505 <p><br style="clear: left;" />
8506 <br style="clear: right;" />
8507 <br style="clear: both;" />
8511 ## FIXME: Is Parsoid's acceptance of self-closing html-tags
8512 ## a feature or a bug? See https://phabricator.wikimedia.org/T76962
8514 Handling html with a div self-closing tag
8523 <p><div title />
8527 <p><div title=bar />
8528 <div title=bar/>
8530 <div title="bar/"></div>
8534 <div title="" data-parsoid='{"stx":"html","selfClose":true}'></div>
8535 <div title="" data-parsoid='{"stx":"html","selfClose":true}'></div>
8536 <div title="" data-parsoid='{"stx":"html","selfClose":true,"brokenHTMLTag":true}'></div>
8537 <div title="bar" data-parsoid='{"stx":"html","selfClose":true}'></div>
8538 <div title="bar" data-parsoid='{"stx":"html","selfClose":true}'></div>
8539 <div title="bar/" data-parsoid='{"stx":"html","autoInsertedEnd":true}'></div>
8543 Handling html with a br self-closing tag
8570 Horizontal ruler (should it add that extra space?)
8585 Horizontal ruler -- 4+ dashes render hr
8594 Horizontal ruler -- eats additional dashes on the same line
8603 Horizontal ruler -- does not collapse dashes on consecutive lines
8614 Horizontal ruler -- <4 dashes render as plain text
8623 Horizontal ruler -- Supports content following dashes on same line
8635 ### Block-level elements
8644 <ul><li>Common list</li>
8646 <li>item 3</li></ul>
8657 <ol><li>Numbered list</li>
8659 <li> item 3</li></ol>
8673 ***#Number on level 4
8675 **#Number on level 3
8676 **#Number on level 3
8680 #** Level 3, but ordered
8683 <ol><li> with numbers</li></ol>
8684 <ul><li> and bullets</li></ul>
8685 <ol><li> and numbers</li></ol></li>
8687 <ul><li>bullet level 2
8688 <ul><li>bullet level 3
8689 <ol><li>Number on level 4</li></ol></li></ul></li>
8691 <ol><li>Number on level 3</li>
8692 <li>Number on level 3</li></ol></li></ul>
8693 <ol><li>number level 2</li></ol></li>
8695 <ul><li><ul><li> Level 3</li></ul></li></ul></li></ul>
8696 <ol><li><ul><li><ul><li> Level 3, but ordered</li></ul></li></ul></li></ol>
8707 <ul><li>bar</li></ul></li></ul>
8717 <ul><li><ul><li>foo</li></ul></li>
8723 Nested lists 3 (first element empty)
8729 <ul><li>bar</li></ul></li></ul>
8734 Nested lists 4 (first element empty)
8739 <ul><li><ul><li></li></ul></li>
8745 Nested lists 5 (both elements empty)
8750 <ul><li><ul><li></li></ul></li>
8756 Nested lists 6 (both elements empty)
8762 <ul><li></li></ul></li></ul>
8767 Nested lists 7 (skip initial nesting levels)
8771 <ul><li><ul><li><ul><li> foo</li></ul></li></ul></li></ul>
8776 Nested lists 8 (multiple nesting transitions)
8784 <ul><li><ul><li> bar</li></ul></li>
8785 <li> baz</li></ul></li>
8791 Nested lists 9 (extension interaction)
8797 <ul><li data-parsoid='{}'><ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-parsoid='{}' data-mw='{"name":"references","attrs":{}}'></ol></li></ul>
8801 1. Lists with start-of-line-transparent tokens before bullets: Comments
8814 2. Lists with start-of-line-transparent tokens before bullets: Template close
8819 <ul><li>foo bar</li>
8825 List items are not parsed correctly following a <pre> block (bug 785)
8831 <ul><li> <pre>foo</pre></li>
8832 <li> <pre>bar</pre></li>
8836 <ul><li> <pre data-parsoid='{"stx":"html"}'>foo</pre></li>
8837 <li> <pre data-parsoid='{"stx":"html"}'>bar</pre></li>
8842 List items from template
8853 * notSOL{{inner list}}
8856 <ul><li> item 1</li>
8857 <li> item 2</li></ul>
8858 <ul><li> item 0</li>
8860 <li> item 2</li></ul>
8861 <ul><li> item 0</li>
8864 <li> item 2</li></ul>
8869 List interrupted by empty line or heading
8877 <ul><li> foo</li></ul>
8878 <ul><li><ul><li> bar</li></ul></li></ul>
8879 <h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: A heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
8880 <ul><li> Another list item</li></ul>
8885 Multiple list tags generated by templates
8906 Single-comment whitespace lines dont break lists, and neither do multi-comment whitespace lines
8909 <!--This line will NOT split the list-->
8911 <!--This line will NOT split the list either-->
8913 <!--foo--> <!----> <!--This line NOT split the list either-->
8924 Replacing whitespace with tabs still doesn't break the list (gerrit 78327)
8927 <!--This line will NOT split the list-->
8929 <!--This line will NOT split the list either-->
8931 <!--foo--> <!----> <!--This line NOT split the list
8944 (The PHP parser relies on Tidy for the hack)
8946 parsoid=wt2html,wt2wt
8950 * {{echo|<li>templated li-hack}}
8951 * <!--foo--> <li> unsupported li-hack with preceding comments
8954 <li><li>not a li-hack
8961 <li>templated li-hack</li>
8962 <li>unsupported li-hack with preceding comments</li>
8965 <li>not a li-hack</li>
8970 Parsoid: Make sure nested lists are serialized on their own line even if HTML contains no newlines
8997 Parsoid: Test of whitespace serialization with Templated bullets
9004 <li> </li><li about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"bullet","href":"./Template:Bullet"},"params":{},"i":0}}]}'> Bar</li>
9008 # ------------------------------------------------------------------------
9009 # The next set of tests are about Parsoid's ability to handle badly nested
9010 # tags (parse, minimize scope of fixup, and roundtrip back)
9011 # ------------------------------------------------------------------------
9014 Unbalanced closing block tags break a list
9015 (php parser relies on Tidy to fix up)
9033 # Parsoid fails this test, but it might be tricky to support properly.
9036 Unbalanced closing non-block tags don't break a list
9037 (php parser relies on Tidy to fix up)
9044 <li><span>a</span></li>
9045 <li><span>b</span></li>
9059 Unclosed formatting tags that straddle lists are closed and reopened
9060 (php parser relies on Tidy to fix up)
9062 parsoid=wt2html,wt2wt,html2html
9072 <ol><li> <s> a</s></li>
9073 <li><s> b </s></li></ol>
9078 1. List embedded in a formatting tag
9085 <li><small>foo</small></li>
9095 ## Ugly Parsoid output here
9096 ## Not sure what the right output is.
9098 2. List embedded in a formatting tag
9105 <li><small>a</small></li>
9106 <li><small>b</small></li>
9113 <li><small>b</small></li>
9117 # Ugly Parsoid and PHP parser output here
9118 # Not sure if we want to make this a test!
9121 ## 3. Unclosed formatting tags in list elements
9127 ## <li><small>a</small></li>
9128 ## <li><small><small>b</small></small></li>
9132 ## <li><small>a</small></li>
9134 ## <li><small>b</small></li>
9138 # This is a bug in the PHP parser + tidy combination.
9139 # (The </tr> tag gets parsed as text and html-escaped by PHP,
9140 # and then fostered out of the table by tidy.)
9141 # We believe the Parsoid output to be correct.
9143 Table with missing opening <tr> tag
9145 parsoid=wt2html,wt2wt
9163 # Note that the current date is hard-coded as
9164 # 1970-01-01T00:02:03Z (a Thursday)
9165 # when running parser tests. The timezone is also fixed to GMT, so
9166 # local date will be identical to current date.
9169 Magic Word: {{CURRENTDAY}}
9178 Magic Word: {{CURRENTDAY2}}
9187 Magic Word: {{CURRENTDAYNAME}}
9196 Magic Word: {{CURRENTDOW}}
9205 Magic Word: {{CURRENTMONTH}}
9214 Magic Word: {{CURRENTMONTH1}}
9223 Magic Word: {{CURRENTMONTHABBREV}}
9225 {{CURRENTMONTHABBREV}}
9232 Magic Word: {{CURRENTMONTHNAME}}
9234 {{CURRENTMONTHNAME}}
9241 Magic Word: {{CURRENTMONTHNAMEGEN}}
9243 {{CURRENTMONTHNAMEGEN}}
9250 Magic Word: {{CURRENTTIME}}
9259 Magic Word: {{CURRENTHOUR}}
9268 Magic Word: {{CURRENTWEEK}} (@bug 4594)
9277 Magic Word: {{CURRENTYEAR}}
9286 Magic Word: {{CURRENTTIMESTAMP}}
9288 {{CURRENTTIMESTAMP}}
9295 Magic Words LOCAL (UTC)
9299 * {{LOCALMONTHNAME}}
9300 * {{LOCALMONTHNAMEGEN}}
9301 * {{LOCALMONTHABBREV}}
9310 * {{LOCALTIMESTAMP}}
9325 <li> 19700101000203</li></ul>
9330 Magic Word: {{FULLPAGENAME}}
9332 title=[[User:Ævar Arnfjörð Bjarmason]]
9336 <p>User:Ævar Arnfjörð Bjarmason
9341 Magic Word: {{FULLPAGENAMEE}}
9343 title=[[User:Ævar Arnfjörð Bjarmason]]
9347 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9352 Magic Word: {{TALKSPACE}}
9354 title=[[User:Ævar Arnfjörð Bjarmason]]
9363 Magic Word: {{TALKSPACE}}, same namespace
9365 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9374 Magic Word: {{TALKSPACE}}, main namespace
9376 title=[[Parser Test]]
9385 Magic Word: {{TALKSPACEE}}
9387 title=[[User:Ævar Arnfjörð Bjarmason]]
9396 Magic Word: {{SUBJECTSPACE}}
9398 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9407 Magic Word: {{SUBJECTSPACE}}, same namespace
9409 title=[[User:Ævar Arnfjörð Bjarmason]]
9418 Magic Word: {{SUBJECTSPACE}}, main namespace
9420 title=[[Parser Test]]
9428 Magic Word: {{SUBJECTSPACEE}}
9430 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9439 Magic Word: {{NAMESPACE}}
9441 title=[[User:Ævar Arnfjörð Bjarmason]]
9450 Magic Word: {{NAMESPACEE}}
9452 title=[[User:Ævar Arnfjörð Bjarmason]]
9461 Magic Word: {{NAMESPACENUMBER}}
9463 title=[[User:Ævar Arnfjörð Bjarmason]]
9472 Magic Word: {{SUBPAGENAME}}
9474 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
9483 Magic Word: {{SUBPAGENAMEE}}
9485 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
9494 Magic Word: {{ROOTPAGENAME}}
9496 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
9500 <p>Ævar Arnfjörð Bjarmason
9505 Magic Word: {{ROOTPAGENAMEE}}
9507 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
9511 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9516 Magic Word: {{BASEPAGENAME}}
9518 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
9522 <p>Ævar Arnfjörð Bjarmason
9527 Magic Word: {{BASEPAGENAMEE}}
9529 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
9533 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9538 Magic Word: {{TALKPAGENAME}}
9540 title=[[User:Ævar Arnfjörð Bjarmason]]
9544 <p>User talk:Ævar Arnfjörð Bjarmason
9549 Magic Word: {{TALKPAGENAMEE}}
9551 title=[[User:Ævar Arnfjörð Bjarmason]]
9555 <p>User_talk:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9560 Magic Word: {{SUBJECTPAGENAME}}
9562 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9566 <p>User:Ævar Arnfjörð Bjarmason
9571 Magic Word: {{SUBJECTPAGENAMEE}}
9573 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9575 {{SUBJECTPAGENAMEE}}
9577 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9582 Magic Word: {{NUMBEROFFILES}}
9591 Magic Word: {{PAGENAME}}
9593 title=[[User:Ævar Arnfjörð Bjarmason]]
9597 <p>Ævar Arnfjörð Bjarmason
9602 Magic Word: {{PAGENAME}} with metacharacters
9604 title=[['foo & bar = baz']]
9608 <p><i>'foo & bar = baz'</i>
9611 <p><i>'foo & bar = baz'</i></p>
9615 Magic Word: {{PAGENAME}} with metacharacters (bug 26781)
9617 title=[[*RFC 1234 http://example.com/]]
9621 <p>*RFC 1234 http://example.com/
9624 <p>*RFC 1234 http://example.com/</p>
9628 Magic Word: {{PAGENAMEE}}
9630 title=[[User:Ævar Arnfjörð Bjarmason]]
9634 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9639 Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781)
9641 title=[[*RFC 1234 http://example.com/]]
9645 <p>*RFC_1234_http://example.com/
9648 <p>*RFC_1234_http://example.com/</p>
9652 Magic Word: {{REVISIONID}}
9661 Magic Word: {{SCRIPTPATH}}
9670 Magic Word: {{STYLEPATH}}
9679 Magic Word: {{SERVER}}
9683 <p><a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>
9688 Magic Word: {{SERVERNAME}}
9697 Magic Word: {{SITENAME}}
9706 Case-sensitive magic words, when cased differently, should just be template transclusions
9713 <p><a href="/index.php?title=Template:CurrentMonth&action=edit&redlink=1" class="new" title="Template:CurrentMonth (page does not exist)">Template:CurrentMonth</a>
9714 <a href="/index.php?title=Template:Currentday&action=edit&redlink=1" class="new" title="Template:Currentday (page does not exist)">Template:Currentday</a>
9715 <a href="/index.php?title=Template:CURreNTweEK&action=edit&redlink=1" class="new" title="Template:CURreNTweEK (page does not exist)">Template:CURreNTweEK</a>
9716 <a href="/index.php?title=Template:CurrentHour&action=edit&redlink=1" class="new" title="Template:CurrentHour (page does not exist)">Template:CurrentHour</a>
9721 Case-insensitive magic words should still work with weird casing.
9731 <a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>
9735 # From plwiki:PLOS_ONE
9737 Parsoid: Page property magic word with magic word contents
9739 {{DISPLAYTITLE:''{{PAGENAME}}''}}
9741 <meta property="mw:PageProp/displaytitle" content="Main Page" about="#mwt2" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"content"},{"html":"<i data-parsoid=\"{&quot;dsr&quot;:[15,31,2,2]}\"><span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[]],&quot;dsr&quot;:[17,29,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;PAGENAME&quot;,&quot;function&quot;:&quot;pagename&quot;},&quot;params&quot;:{},&quot;i&quot;:0}}]}\">Main Page</span></i>"}]]}'/>
9745 Parsoid: Template-generated DISPLAYTITLE
9747 {{{{echo|DISPLAYTITLE}}:Foo}}
9749 <meta property="mw:PageProp/displaytitle" content="Foo" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"dsr":[0,29,null,null],"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"{{echo|DISPLAYTITLE}}:Foo"},"params":{},"i":0}}]}'/>
9753 Namespace 1 {{ns:1}}
9762 Namespace 1 {{ns:01}}
9771 Namespace 0 {{ns:0}} (bug 4783)
9779 Namespace 0 {{ns:00}} (bug 4783)
9787 Namespace -1 {{ns:-1}}
9796 Namespace User {{ns:User}}
9805 Namespace User talk {{ns:User_talk}}
9814 Namespace User talk {{ns:uSeR tAlK}}
9823 Namespace File {{ns:File}}
9832 Namespace File {{ns:Image}}
9841 Namespace (lang=de) Benutzer {{ns:User}}
9852 Namespace (lang=de) Benutzer Diskussion {{ns:3}}
9858 <p>Benutzer Diskussion
9866 {{urlencode:hi world?!}}
9867 {{urlencode:hi world?!|WIKI}}
9868 {{urlencode:hi world?!|PATH}}
9869 {{urlencode:hi world?!|QUERY}}
9879 Magic Word: prioritize type info over data-parsoid
9883 <meta property="mw:PageProp/forcetoc" data-parsoid='{"magicSrc":"__NOTOC__"}'/>
9889 Magic Word: serialize on separate line (parsoid)
9891 parsoid=wt2wt,html2wt
9897 foo<meta property="mw:PageProp/notoc"/>bar
9901 Magic Word: rt non-english wikis
9908 <meta property="mw:PageProp/noeditsection" data-parsoid='{"magicSrc":"__NOEDITSECTION__"}'/>
9912 __proto__ is treated as normal wikitext (T105997)
9924 Magic links: internal link to RFC (bug 479)
9928 <p><a href="/index.php?title=RFC_123&action=edit&redlink=1" class="new" title="RFC 123 (page does not exist)">RFC 123</a>
9931 <p><a rel="mw:WikiLink" href="./RFC_123" title="RFC 123">RFC 123</a></p>
9935 Magic links: RFC (bug 479)
9939 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a>
9942 <p><a href="//tools.ietf.org/html/rfc822" rel="mw:ExtLink">RFC 822</a></p>
9946 Magic links: RFC (bug 65278)
9948 This is RFC 822 but thisRFC 822 is not RFC 822linked.
9950 <p>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a> but thisRFC 822 is not RFC 822linked.
9953 <p>This is <a href="//tools.ietf.org/html/rfc822" rel="mw:ExtLink">RFC 822</a> but thisRFC 822 is not RFC 822linked.</p>
9957 Magic links: RFC (w/ non-newline whitespace, bug 28950/29025)
9959 RFC      822
9963 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a>
9968 <p><a href="//tools.ietf.org/html/rfc822" rel="mw:ExtLink">RFC <span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#0160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#xA0;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#Xa0;","srcContent":" "}'> </span> 822</a>
9974 Magic links: ISBN (bug 1937)
9978 <p><a href="/wiki/Special:BookSources/0306406152" class="internal mw-magiclink-isbn">ISBN 0-306-40615-2</a>
9981 <p><a href="./Special:BookSources/0306406152" rel="mw:WikiLink">ISBN 0-306-40615-2</a></p>
9985 Magic links: ISBN (bug 65278)
9987 This is ISBN 978-0-316-09811-3 but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.
9989 <p>This is <a href="/wiki/Special:BookSources/9780316098113" class="internal mw-magiclink-isbn">ISBN 978-0-316-09811-3</a> but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.
9992 <p>This is <a href="./Special:BookSources/9780316098113" rel="mw:WikiLink">ISBN 978-0-316-09811-3</a> but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.</p>
9996 Magic links: ISBN (w/ non-newline whitespace, bug 28950/29025)
9998 ISBN      978 0 316 09811 3
10004 <p><a href="/wiki/Special:BookSources/9780316098113" class="internal mw-magiclink-isbn">ISBN 978 0 316 09811 3</a>
10011 <p><a href="./Special:BookSources/9780316098113" rel="mw:WikiLink">ISBN <span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#0160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#xA0;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#Xa0;","srcContent":" "}'> </span> 978<span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span>0<span typeof="mw:Entity" data-parsoid='{"src":"&#160;","srcContent":" "}'> </span>316<span typeof="mw:Entity" data-parsoid='{"src":"&#0160;","srcContent":" "}'> </span>09811<span typeof="mw:Entity" data-parsoid='{"src":"&#xA0;","srcContent":" "}'> </span>3</a>
10019 Magic links: PMID incorrectly converts space to underscore
10023 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a>
10026 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink">PMID 1234</a></p>
10030 Magic links: PMID (bug 65278)
10032 This is PMID 1234 but thisPMID 1234 is not PMID 1234linked.
10034 <p>This is <a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a> but thisPMID 1234 is not PMID 1234linked.
10037 <p>This is <a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink">PMID 1234</a> but thisPMID 1234 is not PMID 1234linked.</p>
10041 Magic links: PMID (w/ non-newline whitespace, bug 28950/29025)
10043 PMID      1234
10047 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a>
10052 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink">PMID <span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#0160;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#xA0;","srcContent":" "}'> </span><span typeof="mw:Entity" data-parsoid='{"src":"&#Xa0;","srcContent":" "}'> </span> 1234</a>
10062 Nonexistent template
10064 {{thistemplatedoesnotexist}}
10066 <p><a href="/index.php?title=Template:Thistemplatedoesnotexist&action=edit&redlink=1" class="new" title="Template:Thistemplatedoesnotexist (page does not exist)">Template:Thistemplatedoesnotexist</a>
10071 Template with invalid target containing tags
10073 {{a<b>b</b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
10075 <p>{{a<b>b</b>|foo|a=b|a = b}}
10080 Template with invalid target containing unclosed tag
10082 {{a<b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
10084 <p>{{a<b>|foo|a=b|a = b}}</b>
10089 Template with invalid target containing wikilink
10093 <p>{{<a href="/wiki/Main_Page" title="Main Page">Main Page</a>}}
10096 <p><span typeof="mw:Transclusion" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"[[Main Page]]"},"params":{},"i":0}}]}'>{{</span><a rel="mw:WikiLink" href="./Main_Page" about="#mwt1">Main Page</a><span about="#mwt1">}}</span></p>
10100 Template with just whitespace in it, bug #68421
10104 <p><span typeof="mw:Transclusion mw:Nowiki" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{ }}"}},"i":0}}]}'>{{ }}</span></p>
10110 This is a test template
10118 <p>This is a test template
10123 Template with explicit namespace
10127 <p>This is a test template
10135 This is a test template with parameter {{{param}}}
10141 {{paramtest|param=foo}}
10143 <p>This is a test template with parameter foo
10148 Template:paramtestnum
10150 [[{{{1}}}|{{{2}}}]]
10154 Template unnamed parameter
10156 {{paramtestnum|Main Page|the main page}}
10158 <p><a href="/wiki/Main_Page" title="Main Page">the main page</a>
10163 Template:templatesimple
10169 Template:templateredirect
10171 #redirect [[Template:templatesimple]]
10175 Template:templateasargtestnum
10181 Template:templateasargtest
10183 {{template{{{templ}}}}}
10187 Template:templateasargtest2
10193 Template with template name as unnamed argument
10195 {{templateasargtestnum|templatesimple}}
10202 Template with template name as argument
10204 {{templateasargtest|templ=simple}}
10211 Template with template name as argument (2)
10213 {{templateasargtest2|templ=templatesimple}}
10220 Template:templateasargtestdefault
10222 {{{{{templ|templatesimple}}}}}
10232 Template with default value
10234 {{templateasargtestdefault}}
10241 Template with default value (value set)
10243 {{templateasargtestdefault|templ=templa}}
10252 {{templateredirect}}
10257 <link rel="mw:PageProp/redirect" href="./Template:Templatesimple" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"templateredirect","href":"./Template:Templateredirect"},"params":{},"i":0}}]}'/>
10261 Template with argument in separate line
10263 {{ templateasargtest |
10271 Template with complex template as argument
10274 param ={{ templateasargtest |
10275 templ = simple }}}}
10277 <p>This is a test template with parameter (test)
10282 Template with thumb image (with link in description)
10284 {{paramtest|param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
10286 This is a test template with parameter <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a> <div class="thumbcaption"><a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">caption</a></div></div></div>
10289 <p>This is a test template with parameter</p>
10290 <div class="thumb tright">
10291 <div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a>
10292 <div class="thumbcaption"><a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">caption</a></div>
10296 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"paramtest","href":"./Template:Paramtest"},"params":{"param":{"wt":"[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]"}},"i":0}}]}'>This is a test template with parameter </p><figure class="mw-default-size" typeof="mw:Error mw:Image/Thumb" about="#mwt1" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}]}'><a href="./File:Noimage.png" ><img resource="./File:Noimage.png" src="./Special:FilePath/Noimage.png" height="220" width="220"/></a><figcaption><a rel="mw:WikiLink" href="./No_link" title="No link">link</a> <a rel="mw:WikiLink" href="./No_link" title="No link">caption</a></figcaption></figure>
10300 Template:complextemplate
10302 {{{1}}} {{paramtest|
10303 param ={{{param}}}}}
10307 Template with complex arguments
10310 param ={{ templateasargtest |
10311 templ = simple }}|[[Template:complextemplate|link]]}}
10313 <p><a href="/wiki/Template:Complextemplate" title="Template:Complextemplate">link</a> This is a test template with parameter (test)
10318 BUG 553: link with two variables in a piped link
10321 |[[{{{1}}}|{{{2}}}]]
10326 <td>[[{{{1}}}|{{{2}}}]]
10332 Magic variable as template parameter
10334 {{paramtest|param={{SITENAME}}}}
10336 <p>This is a test template with parameter MediaWiki
10343 [[{{{param}}}|link]]
10347 Template parameter as link source
10349 {{linktest|param=Main Page}}
10351 <p><a href="/wiki/Main_Page" title="Main Page">link</a>
10356 Template:paramtest2
10358 including another template, {{paramtest|param={{{arg}}}}}
10362 Template passing argument to another template
10364 {{paramtest2|arg='hmm'}}
10366 <p>including another template, This is a test template with parameter 'hmm'
10377 Template as link source
10381 [[{{linktest2}}|Main Page]]
10383 [[{{linktest2}}]]Page
10385 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
10386 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
10387 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>Page
10405 Template infinite loop
10409 <p><span class="error">Template loop detected: <a href="/wiki/Template:Loop1" title="Template:Loop1">Template:Loop1</a></span>
10414 Template from main namespace
10433 BUG 529: Template with table, not included at beginning of line
10452 BUG 523: Template shouldn't eat newline (or add an extra one before table)
10472 BUG 41: Template parameters shown as broken links
10481 Template with targets containing wikilinks
10485 {{[[{{echo|foo}}]]}}
10487 {{{{echo|[[foo}}]]}}
10489 <p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
10490 </p><p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
10502 Templates: Double quotes as template target
10509 <p>foo <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"''"},"params":{},"i":0}}]}'>bar</span> baz
10514 Template:MSGNW test
10516 ''None'' of '''this''' should be
10518 but rather passed unmodified
10526 # hmm, fix this or just deprecate msgnw and document its behavior?
10530 {{msgnw:MSGNW test}}
10532 <p>''None'' of '''this''' should be
10534  but rather passed unmodified
10535 {{test}}
10539 <!-- comment -->
10546 {{int:youhavenewmessages|lots of money|not!}}
10548 <p>You have lots of money (not!).
10553 int keyword - non-existing message
10564 Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
10568 <includeonly> and <noinclude> being included
10579 <onlyinclude>Foo</onlyinclude>bar
10583 <onlyinclude> being included
10595 <onlyinclude>Foo</onlyinclude>bar<includeonly>zar</includeonly>
10599 <onlyinclude> and <includeonly> being included
10608 <includeonly> and <noinclude> on a page
10610 Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
10617 Un-closed <noinclude>
10624 <onlyinclude> on a page
10626 <onlyinclude>Foo</onlyinclude>bar
10633 Un-closed <onlyinclude>
10640 Self-closed noinclude, includeonly, onlyinclude tags
10651 Unbalanced includeonly and noinclude tags
10655 |b</noinclude></noinclude>
10656 |c</noinclude></includeonly>
10657 |d</includeonly></includeonly>
10666 <td>c</includeonly>
10668 <td>d</includeonly></includeonly>
10674 Template:Includeonly section
10677 ==Includeonly section==
10683 Bug 6563: Edit link generation for section shown by <includeonly>
10685 {{includeonly section}}
10687 <h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-1" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
10688 <h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-2" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
10692 # Uses same input as the contents of [[Template:Includeonly section]]
10694 Bug 6563: Section extraction for section shown by <includeonly>
10699 ==Includeonly section==
10707 Bug 6563: Edit link generation for section suppressed by <includeonly>
10710 ==Includeonly section==
10714 <h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
10719 Bug 6563: Section extraction for section suppressed by <includeonly>
10724 ==Includeonly section==
10732 Un-closed <includeonly>
10739 Includes and comments at SOL
10741 <!-- comment --><noinclude><!-- comment --></noinclude><!-- comment -->== hu ==
10745 </noinclude>* stuff
10748 <includeonly>can have stuff</includeonly>=== here ===
10751 <h2><span class="mw-headline" id="hu">hu</span></h2>
10754 <ul><li> stuff</li>
10755 <li> here</li></ul>
10756 <h3><span class="mw-headline" id="here">here</span></h3>
10759 <!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"<noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"</noinclude>"}'/><!-- comment --><h2> hu </h2>
10761 <meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"<noinclude>"}'/>
10763 <meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"</noinclude>"}'/><ul><li> stuff</li>
10764 <li> here</li></ul>
10766 <meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"<includeonly>can have stuff</includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><h3> here </h3>
10770 # TODO: test with DOM fragment reuse!
10772 Parsoid: DOM fragment reuse
10774 parsoid=wt2wt,wt2html
10776 a{{echo|b<table></table>c}}d
10788 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["a",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b<table></table>c"}},"i":0}},"d"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>ab</p><table about="#mwt1" data-parsoid='{"stx":"html"}'></table><p about="#mwt1">cd</p>
10790 <p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["a",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b\n<table></table>\nc"}},"i":0}},"d"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>ab</p><span about="#mwt2">
10791 </span><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><span about="#mwt2">
10792 </span><p about="#mwt2">cd</p>
10794 <p about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n\n<table></table>\n\nb"}},"i":0}}]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>a</p><span about="#mwt3">
10796 </span><table about="#mwt3" data-parsoid='{"stx":"html"}'></table><span about="#mwt3">
10798 </span><p about="#mwt3">b</p>
10802 Parsoid: Merge double tds (T52603)
10807 |{{echo|{{!}} foo}}
10811 <tr><td about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}} foo"}},"i":0}}]}'> foo</td></tr>
10816 Parsoid: Merge double tds in nested transclusion content (T52603)
10822 |{{echo|{{!}} foo}}
10826 <div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<div>"}},"i":0}},"\n{|\n|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}} foo"}},"i":1}},"\n|}\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"</div>"}},"i":2}}]}'>
10828 <tr><td data-mw='{"parts":["|"]}'> foo</td></tr>
10834 ### <includeonly> and <noinclude> in attributes
10837 0. includeonly around the entire attribute
10839 <span <includeonly>id="v1"</includeonly><noinclude>id="v2"</noinclude>>bar</span>
10841 <p><span id="v2">bar</span>
10846 1. includeonly in html attr key
10848 <span <noinclude>id</noinclude><includeonly>about</includeonly>="foo">bar</span>
10850 <p><span id="foo">bar</span>
10855 2. includeonly in html attr value
10857 <span id="<noinclude>v1</noinclude><includeonly>v2</includeonly>">bar</span>
10858 <span id=<noinclude>"v1"</noinclude><includeonly>"v2"</includeonly>>bar</span>
10860 <p><span id="v1">bar</span>
10861 <span id="v1">bar</span>
10866 3. includeonly in part of an attr value
10868 <span style="color:<noinclude>red</noinclude><includeonly>blue</includeonly>;">bar</span>
10870 <p><span style="color:red;">bar</span>
10875 4. includeonly in table attributes
10899 ### Token Stream Patcher tests
10901 ### These tests won't always pass wt2wt and other modes because
10902 ### on serialization, the table will be output on a new line.
10903 ### For now, we are blacklisting them, and using this to test selser.
10907 1. Table tag in SOL posn. should get reparsed correctly with valid TSR
10909 parsoid=wt2html,wt2wt
10911 {{echo|}}{| width = '100%'
10915 <span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":""}},"i":0}}]}'></span><table width="100%">
10916 <tbody><tr><td>foo</td></tr>
10921 2. Table tag in SOL posn. should get reparsed correctly with valid TSR
10923 parsoid=wt2html,wt2wt
10925 <includeonly>a</includeonly>{| {{{b}}}
10929 <meta typeof="mw:Includes/IncludeOnly"/><meta typeof="mw:Includes/IncludeOnly/End"/><table about="#mwt2" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"{{{b}}}","html":"<span about=\"#mwt1\" typeof=\"mw:Param\" data-parsoid=\"{&quot;dsr&quot;:[31,38,null,null],&quot;src&quot;:&quot;{{{b}}}&quot;}\">{{{b}}}</span>"},{"html":""}]]}' data-parsoid='{"a":{"{{{b}}}":null},"sa":{"{{{b}}}":""}}'>
10930 <tbody><tr><td>c</td></tr>
10936 ### Testing parsing of templates where a template arg
10937 ### has the same name as the template itself.
10943 {{{quote|{{{1}}}}}}
10947 Templates: Template Name/Arg clash: 1. Use of positional param
10956 Templates: Template Name/Arg clash: 2. Use of named param
10958 {{quote|quote=foo}}
10965 Templates: Template Name/Arg clash: 3. Use of named param with empty input
10974 ### Parsoid-centric tests to stress Parsoid's ability to RT them unchanged
10978 Templates: 1. Simple use
10987 Templates: 2. Inside a block tag
10989 <div>{{echo|Foo}}</div>
10990 <blockquote>{{echo|Foo}}</blockquote>
10993 <blockquote>Foo</blockquote>
11003 Templates: P-wrapping: 1a. Templates on consecutive lines
11014 Templates: P-wrapping: 1b. Templates on consecutive lines
11028 Templates: P-wrapping: 1c. Templates on consecutive lines
11031 {{echo|bar}} <div>baz</div>
11044 Templates: P-wrapping: 1d. Template preceded by comment-only line
11053 <p about="#mwt223" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Bar"}},"i":0}}]}'>Bar</p>
11057 Templates: Inline Text: 1. Multiple template uses
11059 {{echo|Foo}}bar{{echo|baz}}
11066 Templates: Inline Text: 2. Back-to-back template uses
11068 {{echo|Foo}}{{echo|bar}}
11075 Templates: Block Tags: 1. Multiple template uses
11077 {{echo|<div>Foo</div>}}<div>bar</div>{{echo|<div>baz</div>}}
11079 <div>Foo</div><div>bar</div><div>baz</div>
11084 Templates: Block Tags: 2. Back-to-back template uses
11086 {{echo|<div>Foo</div>}}{{echo|<div>bar</div>}}
11088 <div>Foo</div><div>bar</div>
11092 # This is an edge case relating to paragraph wrapping.
11094 Templates: Correctly encapsulate templates producing </p> tag without a corresponding <p> tag
11099 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\nb</p>"}},"i":0}}]}'>a
11104 Templates: Links: 1. Simple example
11106 {{echo|[[Foo|bar]]}}
11108 <p><a href="/wiki/Foo" title="Foo">bar</a>
11113 Templates: Links: 2. Generation of link href
11115 [[{{echo|Foo}}|bar]]
11117 <p><a href="/wiki/Foo" title="Foo">bar</a>
11122 Templates: Links: 3. Generation of part of a link href
11124 [[Fo{{echo|o}}|bar]]
11126 [[Foo{{echo|bar}}]]
11128 [[Foo{{echo|bar}}baz]]
11130 [[Foo{{echo|bar}}|bar]]
11132 [[:Foo{{echo|bar}}]]
11134 [[:Foo{{echo|bar}}|bar]]
11136 <p><a href="/wiki/Foo" title="Foo">bar</a>
11137 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11138 </p><p><a href="/index.php?title=Foobarbaz&action=edit&redlink=1" class="new" title="Foobarbaz (page does not exist)">Foobarbaz</a>
11139 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">bar</a>
11140 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11141 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">bar</a>
11146 Templates: Links: 4. Multiple templates generating link href
11148 [[{{echo|F}}{{echo|o}}ob{{echo|ar}}]]
11150 <p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11155 Templates: Links: 5. Generation of link text
11157 [[Foo|{{echo|bar}}]]
11159 <p><a href="/wiki/Foo" title="Foo">bar</a>
11164 Templates: Links: 5. Nested templates (only outermost template should be marked)
11166 {{echo|[[{{echo|Foo}}|bar]]}}
11168 <p><a href="/wiki/Foo" title="Foo">bar</a>
11173 Templates: HTML Tag: 1. Generation of HTML attr. key
11175 <div {{echo|style}}="color:red;">foo</div>
11177 <div style="color:red;">foo</div>
11182 Templates: HTML Tag: 2. Generation of HTML attr. value
11184 <div style={{echo|'color:red;'}}>foo</div>
11186 <div style="color:red;">foo</div>
11191 Templates: HTML Tag: 3. Generation of HTML attr key and value
11193 <div {{echo|style}}={{echo|'color:red;'}}>foo</div>
11195 <div style="color:red;">foo</div>
11200 Templates: HTML Tag: 4. Generation of starting piece of HTML attr value
11202 <div title="{{echo|This is a long title}} with just one piece templated">foo</div>
11204 <div title="This is a long title with just one piece templated">foo</div>
11209 Templates: HTML Tag: 5. Generation of middle piece of HTML attr value
11211 <div title="This is a long title with just {{echo|one piece}} templated">foo</div>
11213 <div title="This is a long title with just one piece templated">foo</div>
11218 Templates: HTML Tag: 6. Generation of end piece of HTML attr value
11220 <div title="This is a long title with just one piece {{echo|templated}}">foo</div>
11222 <div title="This is a long title with just one piece templated">foo</div>
11226 # SSS FIXME: While it is great we added support for all this,
11227 # do we want to make this part of the spec? Maybe we want to
11228 # deprecate this kind of usage in the future?
11230 Templates: HTML Tag: 7. Generation of partial attribute key string
11232 <div st{{echo|yle}}="color:red;">foo</div>
11234 <div style="color:red;">foo</div>
11239 Templates: HTML Tag: 8. Template-generated attribute (k=v)
11241 <div {{echo|1=id="v1"}}>bar</div>
11243 <div id="v1">bar</div>
11248 Templates: HTML Tag: 9. Multiple template-generated attributes
11250 <div {{echo|1=id="v1" title="foo"}}>bar</div>
11252 <div id="v1" title="foo">bar</div>
11257 Templates: Support for templates generating attributes and content
11259 {| {{mixed_attr_content_template}}
11264 <table style="color:red;" title="T48811">
11274 <table style="color:red;" title="T48811" about="#mwt1" typeof="mw:Transclusion mw:ExpandedAttrs" data-mw='{"parts":["{| ",{"template":{"target":{"wt":"mixed_attr_content_template","href":"./Template:Mixed_attr_content_template"},"params":{},"i":0}},"\n|-\n|bar\n|}"]}'>
11283 1. Entities and nowikis inside templated attributes should be handled correctly
11285 <div {{echo|style{{=}}"background:#f9f9f9;"}}>foo</div>
11287 <div style="background:#f9f9f9;">foo</div>
11290 <div style="background:#f9f9f9;" about="#mwt3" typeof="mw:ExpandedAttrs" data-parsoid='{"stx":"html"}' data-mw='{"attribs":[[{"txt":"style","html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[5,49,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;style{{=}}\\&quot;background:&amp;#35;f9f9f9;\\&quot;&quot;}},&quot;i&quot;:0}}]}\">style</span><span typeof=\"mw:Nowiki\" about=\"#mwt1\" data-parsoid=\"{}\">=</span><span about=\"#mwt1\" data-parsoid=\"{}\">\"background:</span><span typeof=\"mw:Entity\" about=\"#mwt1\" data-parsoid=\"{&quot;src&quot;:&quot;&amp;#35;&quot;,&quot;srcContent&quot;:&quot;#&quot;}\">#</span><span about=\"#mwt1\" data-parsoid=\"{}\">f9f9f9;\"</span>"},{"html":""}]]}'>foo</div>
11294 2. Entities and nowikis inside templated attributes should be handled correctly
11297 |{{table_attribs_3}}
11302 <td style="background:#f9f9f9;">Foo
11307 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td style="background:#f9f9f9;" typeof="mw:Transclusion" about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["|",{"template":{"target":{"wt":"table_attribs_3","href":"./Template:Table_attribs_3"},"params":{},"i":0}}]}'>Foo</td></tr>
11312 3. Entities and nowikis inside templated attributes should be handled correctly inside templated tables
11315 |{{table_attribs_3}}
11320 <td style="background:#f9f9f9;">Foo
11324 <table about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[],[],[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"tbl-start","href":"./Template:Tbl-start"},"params":{},"i":0}},"\n|",{"template":{"target":{"wt":"table_attribs_3","href":"./Template:Table_attribs_3"},"params":{},"i":1}},"\n",{"template":{"target":{"wt":"tbl-end","href":"./Template:Tbl-end"},"params":{},"i":2}}]}'>
11325 <tbody><tr><td style="background:#f9f9f9;">Foo</td></tr>
11331 4. Entities and nowikis inside templated attributes should be handled correctly inside templated tables
11334 | {{table_attribs_6}} hi
11339 <td style="background: red;"> hi
11344 <tbody><tr><td style="background: red;" typeof="mw:Transclusion" about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["| ",{"template":{"target":{"wt":"table_attribs_6","href":"./Template:Table_attribs_6"},"params":{},"i":0}}," hi"]}'> hi</td></tr>
11349 Templates: HTML Tables: 1. Generating start of a HTML table
11351 {{echo|<table><tr><td>foo</td>}}</tr></table>
11353 <table><tr><td>foo</td></tr></table>
11358 Templates: HTML Tables: 2a. Generating middle of a HTML table
11360 <table><tr>{{echo|<td>foo</td>}}</tr></table>
11362 <table><tr><td>foo</td></tr></table>
11367 Templates: HTML Tables: 2b. Generating middle of a HTML table
11369 <table>{{echo|<tr><td>foo</td></tr>}}</table>
11371 <table><tr><td>foo</td></tr></table>
11376 Templates: HTML Tables: 3. Generating end of a HTML table
11378 <table><tr>{{echo|<td>foo</td></tr></table>}}
11380 <table><tr><td>foo</td></tr></table>
11385 Templates: HTML Tables: 4a. Generating a single tag of a HTML table
11387 {{echo|<table>}}<tr><td>foo</td></tr></table>
11389 <table><tr><td>foo</td></tr></table>
11394 Templates: HTML Tables: 4b. Generating a single tag of a HTML table
11396 <table>{{echo|<tr>}}<td>foo</td></tr></table>
11398 <table><tr><td>foo</td></tr></table>
11403 Templates: HTML Tables: 4c. Generating a single tag of a HTML table
11405 <table><tr>{{echo|<td>}}foo</td></tr></table>
11407 <table><tr><td>foo</td></tr></table>
11412 Templates: HTML Tables: 4d. Generating a single tag of a HTML table
11414 <table><tr><td>foo{{echo|</td>}}</tr></table>
11416 <table><tr><td>foo</td></tr></table>
11421 Templates: HTML Tables: 4e. Generating a single tag of a HTML table
11423 <table><tr><td>foo</td>{{echo|</tr>}}</table>
11425 <table><tr><td>foo</td></tr></table>
11430 Templates: HTML Tables: 4f. Generating a single tag of a HTML table
11432 <table><tr><td>foo</td></tr>{{echo|</table>}}
11434 <table><tr><td>foo</td></tr></table>
11439 Templates: HTML Tables: 5. Proper fostering of categories from inside
11441 parsoid=wt2html,wt2wt
11443 <table>[[Category:foo1]]<tr><td>foo</td></tr></table>
11444 <!--Two categories (Bug 50330)-->
11445 <table>[[Category:bar1]][[Category:bar2]]<tr><td>foo</td></tr></table>
11447 <link rel="mw:PageProp/Category" href="./Category:Foo1"><table><tbody><tr><td>foo</td></tr></tbody></table>
11448 <!--Two categories (Bug 50330)-->
11449 <link rel="mw:PageProp/Category" href="./Category:Bar1"><link rel="mw:PageProp/Category" href="./Category:Bar2"><table><tbody><tr><td>foo</td></tr></tbody></table>
11453 Templates: Wiki Tables: 1a. Fostering of entire template content
11461 <tr><td></td></tr></table>
11473 Templates: Wiki Tables: 1b. Fostering of entire template content
11486 <tr><td></td></tr></table>
11500 Templates: Wiki Tables: 2. Fostering of partial template content
11510 <tr><td></td></tr></table>
11523 Templates: Wiki Tables: 3. td-content via multiple templates
11526 {{echo|{{pipe}}a}}{{echo|b}}
11537 Templates: Wiki Tables: 4. Templated tags, no content
11543 <tr><td></td></tr></table>
11548 Templates: Wiki Tables: 5. Templated tags, regular td-tags
11562 Templates: Wiki Tables: 6. Templated tags, templated td-tags
11575 ## This test case is very specific to Parsoid's internals
11576 ## and is hence only tested for Parsoid's code. Parsoid uses
11577 ## a <meta> marker tag for <ref> tags and they are expanded
11578 ## much later. We are verifying that this <meta> tag usage
11579 ## doesn't prevent foster parenting.
11581 Templates: Wiki Tables: 7. Fosterable <ref>s should get fostered
11583 {{PartialTable}}<ref>foo</ref>
11588 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"PartialTable","href":"./Template:PartialTable"},"params":{},"i":0}},"<ref>foo</ref>\n|}"]}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span><table about="#mwt2">
11592 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
11596 Templates: Wiki Tables: 8. Fosterable meta-tags should get fostered
11606 <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n{{{!}}\n{{!}}-"}},"i":0}},"\n<onlyinclude>\n|foo\n</onlyinclude>\n{{!}}}"]}'>
11607 </span><meta typeof="mw:Includes/OnlyInclude" about="#mwt1"/><table about="#mwt1">
11611 <meta typeof="mw:Includes/OnlyInclude/End"/></td></tr>
11616 Templates: Lists: Multi-line list-items via templates
11618 *{{echo|a {{nonexistent|
11620 *{{echo|b {{nonexistent|
11623 <ul><li>a <a href="/index.php?title=Template:Nonexistent&action=edit&redlink=1" class="new" title="Template:Nonexistent (page does not exist)">Template:Nonexistent</a></li>
11624 <li>b <a href="/index.php?title=Template:Nonexistent&action=edit&redlink=1" class="new" title="Template:Nonexistent (page does not exist)">Template:Nonexistent</a></li></ul>
11629 Templates: Ugly nesting: 1. Quotes opened/closed across templates (echo)
11631 {{echo|''a}}{{echo|b''c''d}}{{echo|''e}}
11633 <p><i>ab</i>c<i>d</i>e
11638 Templates: Ugly nesting: 2. Quotes opened/closed across templates (echo_with_span)
11639 (PHP parser generates misnested html)
11641 {{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
11643 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo_with_span","href":"./Template:Echo_with_span"},"params":{"1":{"wt":"''a"}},"i":0}}]}"><i>a</i></span><i about="#mwt2" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo_with_span","href":"./Template:Echo_with_span"},"params":{"1":{"wt":"b''c''d"}},"i":0}},{"template":{"target":{"wt":"echo_with_span","href":"./Template:Echo_with_span"},"params":{"1":{"wt":"''e"}},"i":1}}]}"><span>b</span></i><span about="#mwt2">c</span><i about="#mwt2">d<span></span></i><span about="#mwt2">e</span></p>
11647 Templates: Ugly nesting: 3. Quotes opened/closed across templates (echo_with_div)
11648 (PHP parser generates misnested html; Parsoid html2wt mode adds newlines between {{echo}}s)
11650 parsoid=wt2html,wt2wt
11652 {{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
11654 <div about="#mwt1" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo_with_div","href":"./Template:Echo_with_div"},"params":{"1":{"wt":"''a"}},"i":0}}]}"><i>a</i></div>
11655 <div about="#mwt2" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo_with_div","href":"./Template:Echo_with_div"},"params":{"1":{"wt":"b''c''d"}},"i":0}}]}"><i>b</i>c<i>d</i></div>
11656 <div about="#mwt3" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo_with_div","href":"./Template:Echo_with_div"},"params":{"1":{"wt":"''e"}},"i":0}}]}">e</div>
11660 Templates: Ugly nesting: 4. Divs opened/closed across templates
11662 a<div>b{{echo|c</div>d}}e
11673 Templates: Ugly templates: 1. Navbox template parses badly leading to table misnesting
11679 |{{echo|foo</table>}}
11683 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["{|\n|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</table>"}},"i":0}},"\n|bar\n|}"]}'>
11687 <td>foo</td></tr></tbody></table><span about="#mwt1">
11688 </span><span about="#mwt1">|bar</span><span about="#mwt1">
11693 Templates: Ugly templates: 2. Navbox template parses badly leading to table misnesting
11703 <td>1. {{echo|foo </table>}}</td>
11705 <td>2. {{echo|baz </table>}}</td>
11718 <table about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["<table>\n <tr>\n <td>\n <table>\n <tr>\n <td>1. ",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo </table>"}},"i":0}},"</td>\n <td> bar </td>\n <td>2. ",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"baz </table>"}},"i":1}},"</td>\n </tr>\n <tr>\n <td>abc</td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>xyz</td>\n </tr>\n</table>"]}'>
11723 <td>1. foo </td></tr></tbody></table></td>
11725 <td>2. baz </td></tr></tbody></table><span about="#mwt2">
11726 </span><span about="#mwt2">
11727 </span><span about="#mwt2">
11728 </span><span about="#mwt2">abc</span><span about="#mwt2">
11729 </span><span about="#mwt2">
11730 </span><span about="#mwt2">
11731 </span><span about="#mwt2">
11732 </span><span about="#mwt2">
11733 </span><span about="#mwt2">
11734 </span><span about="#mwt2">xyz</span><span about="#mwt2">
11735 </span><span about="#mwt2">
11740 Templates: Ugly templates: 3. newline-only template parameter
11749 # This looks like a bug: a single newline triggers p/br for some reason.
11751 Templates: Ugly templates: 4. newline-only template parameter inconsistency
11760 # Bug 64017 -- ugly wikitext with fostered content generates two template ranges that
11761 # have a true overlap (T1-start - T2-start - T1-end - T2-end).
11763 Templates: Ugly templates: 5. Template encapsulation test: Non-trivial overlap of template ranges is properly handled
11769 <div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<table>"}},"i":0}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<div>foo"}},"i":1}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"</table>"}},"i":2}}]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}]]}'>foo
11770 </div><table about="#mwt1" data-parsoid='{"stx":"html"}'>
11774 # Bug 64017 -- ugly wikitext with fostered content generates two template ranges
11775 # that are "identical" and generate nesting cycles in the algorithm
11777 Templates: Ugly templates: 6. Template encapsulation test: Cyclical nesting of template ranges is properly handled
11779 {{echo|<table><tr><td><table>}}
11783 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<table><tr><td><table>"}},"i":0}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<div>"}},"i":1}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"</div>"}},"i":2}}]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}],[{"k":"1","spc":["","","",""]}]]}'><tbody><tr data-parsoid='{"stx":"html"}'><td data-parsoid='{"stx":"html"}'><div data-parsoid='{"stx":"html"}'>
11784 </div><table about="#mwt1" data-parsoid='{"stx":"html"}'>
11785 </table></td></tr></tbody></table>
11789 Parser Functions: 1. Simple example
11798 Parser Functions: 2. Nested use (only outermost should be marked up)
11807 ### Pre-save transform tests
11810 pre-save transform: subst:
11816 This is a test template
11820 pre-save transform: normal template
11830 pre-save transform: nonexistent template
11834 {{thistemplatedoesnotexist}}
11836 {{thistemplatedoesnotexist}}
11840 pre-save transform: subst magic variables
11849 # This is bug 89, which I fixed. -- wtm
11851 pre-save transform: subst: templates with parameters
11855 {{subst:paramtest|param="something else"}}
11857 This is a test template with parameter "something else"
11861 Template:nowikitest
11863 <nowiki>'''not wiki'''</nowiki>
11867 pre-save transform: nowiki in subst (bug 1188)
11871 {{subst:nowikitest}}
11873 <nowiki>'''not wiki'''</nowiki>
11877 Template:commenttest
11879 This template has <!-- a comment --> in it.
11883 pre-save transform: comment in subst (bug 1936)
11887 {{subst:commenttest}}
11889 This template has <!-- a comment --> in it.
11893 pre-save transform: unclosed tag
11897 <nowiki>'''not wiki'''
11899 <nowiki>'''not wiki'''
11903 pre-save transform: mixed tag case
11907 <NOwiki>'''not wiki'''</noWIKI>
11909 <NOwiki>'''not wiki'''</noWIKI>
11913 pre-save transform: unclosed comment in <nowiki>
11917 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
11919 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
11922 # Leading @ in this template definition works around a limitation
11923 # in parsoid's parserTests which otherwise strips the <span> from the
11924 # result (confusing it for a template wrapper)
11928 @<span onmouseover="alert('crap')">Oh no</span>
11932 (confirming safety of fix for subst bug 1936)
11934 {{Template:dangerous}}
11936 <p>@<span>Oh no</span>
11941 pre-save transform: comment containing gallery (bug 5024)
11945 <!-- <gallery>data</gallery> -->
11947 <!-- <gallery>data</gallery> -->
11951 pre-save transform: comment containing extension
11955 <!-- <tag>data</tag> -->
11957 <!-- <tag>data</tag> -->
11961 pre-save transform: comment containing nowiki
11965 <!-- <nowiki>data</nowiki> -->
11967 <!-- <nowiki>data</nowiki> -->
11971 pre-save transform: <noinclude> in subst (bug 3298)
11981 pre-save transform: <onlyinclude> in subst (bug 3298)
11985 {{subst:Includes2}}
11993 {{<includeonly>subst:</includeonly>Includes}}
11997 Template:SafeSubstTest
11999 {{<includeonly>safesubst:</includeonly>Includes}}
12003 bug 22297: safesubst: works during PST
12007 {{subst:SafeSubstTest}}{{safesubst:SubstTest}}
12013 bug 22297: safesubst: works during normal parse
12022 subst: does not work during normal parse
12026 <p>{{subst:Includes}}
12031 pre-save transform: context links ("pipe trick")
12035 [[Article (context)|]]
12038 [[Bar:Article (context)|]]
12039 [[:Bar:Article (context)|]]
12041 [[|Article (context)]]
12045 [[Article (context)|Article]]
12046 [[Bar:Article|Article]]
12047 [[:Bar:Article|Article]]
12048 [[Bar:Article (context)|Article]]
12049 [[:Bar:Article (context)|Article]]
12051 [[Article (context)]]
12052 [[Bar:X (Y) Z|X (Y) Z]]
12053 [[:Bar:X (Y) Z|X (Y) Z]]
12057 pre-save transform: context links ("pipe trick") with interwiki prefix
12061 [[interwiki:Article|]]
12062 [[:interwiki:Article|]]
12063 [[interwiki:Bar:Article|]]
12064 [[:interwiki:Bar:Article|]]
12066 [[interwiki:Article|Article]]
12067 [[:interwiki:Article|Article]]
12068 [[interwiki:Bar:Article|Bar:Article]]
12069 [[:interwiki:Bar:Article|Bar:Article]]
12073 pre-save transform: context links ("pipe trick") with parens in title
12075 pst title=[[Somearticle (context)]]
12079 [[Article (context)|Article]]
12083 pre-save transform: context links ("pipe trick") with comma in title
12085 pst title=[[Someplace, Somewhere]]
12088 [[Otherplace, Elsewhere|]]
12089 [[Otherplace, Elsewhere, Anywhere|]]
12091 [[Otherplace, Somewhere|Otherplace]]
12092 [[Otherplace, Elsewhere|Otherplace]]
12093 [[Otherplace, Elsewhere, Anywhere|Otherplace]]
12097 pre-save transform: context links ("pipe trick") with parens and comma
12099 pst title=[[Someplace (IGNORED), Somewhere]]
12102 [[Otherplace (place), Elsewhere|]]
12104 [[Otherplace, Somewhere|Otherplace]]
12105 [[Otherplace (place), Elsewhere|Otherplace]]
12109 pre-save transform: context links ("pipe trick") with comma and parens
12111 pst title=[[Who, me? (context)]]
12114 [[Me, Myself, and I (1937 song)|]]
12116 [[Yes, you. (context)|Yes, you.]]
12117 [[Me, Myself, and I (1937 song)|Me, Myself, and I]]
12121 pre-save transform: context links ("pipe trick") with namespace
12123 pst title=[[Ns:Somearticle]]
12127 [[Ns:Article|Article]]
12131 pre-save transform: context links ("pipe trick") with namespace and parens
12133 pst title=[[Ns:Somearticle (context)]]
12137 [[Ns:Article (context)|Article]]
12141 pre-save transform: context links ("pipe trick") with namespace and comma
12143 pst title=[[Ns:Somearticle, Context, Whatever]]
12147 [[Ns:Article, Context, Whatever|Article]]
12151 pre-save transform: context links ("pipe trick") with namespace, comma and parens
12153 pst title=[[Ns:Somearticle, Context (context)]]
12157 [[Ns:Article (context)|Article]]
12161 pre-save transform: context links ("pipe trick") with namespace, parens and comma
12163 pst title=[[Ns:Somearticle (IGNORED), Context]]
12167 [[Ns:Article, Context|Article]]
12171 pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149)
12175 [[Article(context)|]]
12176 [[Bar:Article(context)|]]
12177 [[:Bar:Article(context)|]]
12178 [[|Article(context)]]
12182 [[Article(context)|Article]]
12183 [[Bar:Article(context)|Article]]
12184 [[:Bar:Article(context)|Article]]
12185 [[Article(context)]]
12186 [[Bar:X(Y)Z|X(Y)Z]]
12187 [[:Bar:X(Y)Z|X(Y)Z]]
12191 pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149)
12195 [[Article (context)|]]
12196 [[Bar:Article (context)|]]
12197 [[:Bar:Article (context)|]]
12198 [[|Article (context)]]
12202 [[Article (context)|Article]]
12203 [[Bar:Article (context)|Article]]
12204 [[:Bar:Article (context)|Article]]
12205 [[Article (context)]]
12206 [[Bar:X (Y) Z|X (Y) Z]]
12207 [[:Bar:X (Y) Z|X (Y) Z]]
12211 pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149)
12215 [[Article(context)|]]
12216 [[Bar:Article(context)|]]
12217 [[:Bar:Article(context)|]]
12218 [[|Article(context)]]
12222 [[Article(context)|Article]]
12223 [[Bar:Article(context)|Article]]
12224 [[:Bar:Article(context)|Article]]
12225 [[Article(context)]]
12226 [[Bar:X(Y)Z|X(Y)Z]]
12227 [[:Bar:X(Y)Z|X(Y)Z]]
12231 pre-save transform: context links ("pipe trick") with commas (bug 21660)
12235 [[Article (context), context|]]
12236 [[Article (context),context|]]
12237 [[Bar:Article (context), context|]]
12238 [[Bar:Article (context),context|]]
12239 [[:Bar:Article (context), context|]]
12240 [[:Bar:Article (context),context|]]
12242 [[Article (context), context|Article]]
12243 [[Article (context),context|Article]]
12244 [[Bar:Article (context), context|Article]]
12245 [[Bar:Article (context),context|Article]]
12246 [[:Bar:Article (context), context|Article]]
12247 [[:Bar:Article (context),context|Article]]
12251 pre-save transform: trim trailing empty lines
12255 Empty lines are trimmed
12261 Empty lines are trimmed
12265 pre-save transform: Signature expansion
12270 * <noinclude>~~~</noinclude>
12271 * <includeonly>~~~</includeonly>
12272 * <onlyinclude>~~~</onlyinclude>
12274 * [[Special:Contributions/127.0.0.1|127.0.0.1]]
12275 * <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
12276 * <includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
12277 * <onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude>
12282 pre-save transform: Signature expansion in nowiki tags (bug 93)
12288 <nowiki>~~~~</nowiki>
12290 <includeonly><nowiki>~~~~</nowiki></includeonly>
12292 <noinclude><nowiki>~~~~</nowiki></noinclude>
12294 <onlyinclude><nowiki>~~~~</nowiki></onlyinclude>
12296 {{subst:Foo}} shall be converted to FOO
12298 As well as inside noinclude/onlyinclude
12299 <noinclude>{{subst:Foo}}</noinclude>
12300 <onlyinclude>{{subst:Foo}}</onlyinclude>
12302 But not inside includeonly
12303 <includeonly>{{subst:Foo}}</includeonly>
12307 <nowiki>~~~~</nowiki>
12309 <includeonly><nowiki>~~~~</nowiki></includeonly>
12311 <noinclude><nowiki>~~~~</nowiki></noinclude>
12313 <onlyinclude><nowiki>~~~~</nowiki></onlyinclude>
12315 FOO shall be converted to FOO
12317 As well as inside noinclude/onlyinclude
12318 <noinclude>FOO</noinclude>
12319 <onlyinclude>FOO</onlyinclude>
12321 But not inside includeonly
12322 <includeonly>{{subst:Foo}}</includeonly>
12326 Parsoid: Recognize nowiki with trailing space in tags
12330 <nowiki ><div>[[foo]]</nowiki >
12338 <p><span typeof="mw:Nowiki"><div>[[foo]]</span></p>
12345 Parsoid: Recognize nowiki with odd capitalization
12349 <noWikI ><div>[[foo]]</Nowiki >
12351 <p><span typeof="mw:Nowiki"><div>[[foo]]</span></p>
12356 Parsoid: Escape nowiki with trailing space in tags
12360 <p><nowiki > foo </nowiki ></p>
12361 <p>a<nowiki />b</p>
12362 <p>c<nowiki/ >d</p>
12364 <nowiki > foo </nowiki >
12372 Parsoid: Escape weird noWikI capitalizations
12376 <p><noWikI > foo </NoWikI ></p>
12378 <noWikI > foo </NoWikI >
12382 ### Message transform tests
12385 message transform: magic variables
12395 message transform: should not transform wiki markup
12405 message transform: <noinclude> in transcluded template (bug 4926)
12415 message transform: <onlyinclude> in transcluded template (bug 4926)
12425 {{#special:}} page name, known
12429 {{#special:Recentchanges}}
12431 Special:RecentChanges
12435 {{#special:}} page name with subpage, known
12439 {{#special:Recentchanges/param}}
12441 Special:RecentChanges/param
12445 {{#special:}} page name, unknown
12449 {{#special:foobar nonexistent}}
12451 Special:Foobar nonexistent
12455 {{#speciale:}} page name, known
12459 {{#speciale:Recentchanges}}
12461 Special:RecentChanges
12465 {{#speciale:}} page name with subpage, known
12469 {{#speciale:Recentchanges/param}}
12471 Special:RecentChanges/param
12475 {{#speciale:}} page name, unknown
12479 {{#speciale:foobar nonexistent}}
12481 Special:Foobar_nonexistent
12487 ### For Parsoid-specific tests, see
12488 #### https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
12493 parsoid=wt2html,wt2wt,html2html
12495 [[Image:foobar.jpg]]
12497 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12500 <p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12504 Simple image (using File: namespace, now canonical)
12506 [[File:Foobar.jpg]]
12508 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12511 <p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12515 Right-aligned image
12517 [[File:Foobar.jpg|right]]
12519 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12522 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
12528 [[File:Foobar.jpg|right|Caption text]]
12530 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12533 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption text</figcaption></figure>
12537 Image with caption, bug 53312 #1
12539 [[File:Foobar.jpg|right|Caption page stuff]]
12541 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page stuff"><img alt="Caption page stuff" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12544 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption page stuff</figcaption></figure>
12548 Image with caption, bug 53312 #2
12550 [[File:Foobar.jpg|right|Caption page=]]
12552 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page="><img alt="Caption page=" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12555 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption page=</figcaption></figure>
12559 Image with caption, bug 53312 #3
12561 [[File:Foobar.jpg|right|Caption page=stuff]]
12563 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page=stuff"><img alt="Caption page=stuff" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12566 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption page=stuff</figcaption></figure>
12570 Allow empty links in image captions (Bug 60753)
12574 [[File:Foobar.jpg|thumb|Caption [[Link1]]
12579 <div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Caption <a href="/index.php?title=Link1&action=edit&redlink=1" class="new" title="Link1 (page does not exist)">Link1</a> [[]] <a href="/index.php?title=Link2&action=edit&redlink=1" class="new" title="Link2 (page does not exist)">Link2</a></div></div></div>
12582 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"Caption [[Link1]]\n[[]]\n[[Link2]]\n"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>Caption <a rel="mw:WikiLink" href="./Link1" title="Link1" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"}}'>Link1</a>
12584 <a rel="mw:WikiLink" href="./Link2" title="Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"}}'>Link2</a>
12585 </figcaption></figure>
12589 Titles in unlinked images (T23454)
12591 [[File:Foobar.jpg|link=|stuff]]
12593 <p><img alt="stuff" src="http://example.com/images/3/3a/Foobar.jpg" title="stuff" width="1941" height="220" />
12598 Link with empty target
12607 Image with link trail
12609 Linktrails should not work for images: [[File:Foobar.jpg]]s
12611 <p>Linktrails should not work for images: <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>s
12614 <p>Linktrails should not work for images: <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span>s</p>
12618 Image with empty attribute
12620 parsoid=wt2html,wt2wt,html2html
12622 [[File:Foobar.jpg|right||Caption text]]
12624 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12627 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption text</figcaption></figure>
12631 1. Block image with individual attributes from templates
12633 [[File:Foobar.jpg|thumb|{{echo|137px}}|This is a caption]]
12635 <div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption</div></div></div>
12638 <figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt2" data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["width",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[24,38,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;137px&quot;}},&quot;i&quot;:0}}]}\">137px</span>"}]]}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
12642 2. Block Image with individual attributes from templates
12644 [[File:Foobar.jpg|{{echo|thumb}}|{{echo|137px}}|This is a caption]]
12646 <div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption</div></div></div>
12649 <figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt3" data-mw='{"attribs":[["thumbnail",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[18,32,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;thumb&quot;}},&quot;i&quot;:0}}]}\">thumb</span>"}],["width",{"html":"<span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[33,47,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;137px&quot;}},&quot;i&quot;:0}}]}\">137px</span>"}]]}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
12653 3. Inline image with individual attributes from templates
12655 [[File:Foobar.jpg|{{echo|50px}}]]
12657 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
12660 <p><span typeof="mw:Image mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"width","ak":"{{echo|50px}}"}]}' data-mw='{"attribs":[["width",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]],&quot;dsr&quot;:[18,31,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;50px&quot;}},&quot;i&quot;:0}}]}\">50px</span>"}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
12663 ## Parsoid does not provide editing support for images where templates produce multiple image attributes.
12664 ## To signal this, we add a 'mw:Placeholder' type to such images. This could change in the future.
12666 Image with multiple attributes from the same template
12668 [[File:Foobar.jpg|{{image_attribs}}]]
12670 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12673 <figure class="mw-default-size mw-halign-right" typeof="mw:Image mw:Placeholder"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption text</figcaption></figure>
12677 Image with link tails
12681 123[[File:Foobar.jpg]]456
12682 123[[File:Foobar.jpg|right]]456
12683 123[[File:Foobar.jpg|thumb]]456
12685 <p>123<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>456
12687 123<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>456
12688 123<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>456
12691 <p>123<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>456</p>
12693 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12695 <div class="thumb tright">
12696 <div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
12697 <div class="thumbcaption">
12698 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
12704 <p>123<span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span>456</p>
12705 <p>123</p><figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure><p>456</p>
12706 <p>123</p><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure><p>456</p>
12710 Image with multiple captions -- only last one is accepted
12712 [[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]]
12714 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption3 - accepted"><img alt="Caption3 - accepted" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
12717 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Caption3 - accepted</figcaption></figure>
12721 Image with multiple widths -- use last
12723 [[File:Foobar.jpg|200px|300px|caption]]
12725 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a>
12728 <p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></span></p>
12732 Image with multiple alignments -- use first (bug 48664)
12736 [[File:Foobar.jpg|thumb|left|right|center|caption]]
12738 [[File:Foobar.jpg|middle|text-top|caption]]
12740 <div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
12741 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" style="vertical-align: middle" /></a>
12744 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
12745 <p><span class="mw-default-size mw-valign-middle" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12749 Image with width attribute at different positions
12751 [[File:Foobar.jpg|200px|right|Caption]]
12752 [[File:Foobar.jpg|right|200px|Caption]]
12753 [[File:Foobar.jpg|right|Caption|200px]]
12755 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
12756 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
12757 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
12760 <figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>Caption</figcaption></figure>
12761 <figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>Caption</figcaption></figure>
12762 <figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>Caption</figcaption></figure>
12765 # a sad bit of backward-compatibility
12767 Image with size specified with pxpx (bug 13500, 51628)
12769 parsoid=wt2html,wt2wt,html2html
12771 [[File:Foobar.jpg|20pxpx]]
12772 [[File:Foobar.jpg|200x20pxpx]]
12774 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a>
12775 <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" width="177" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg 2x" /></a>
12778 <p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20"/></a></span> <span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="177"/></a></span></p>
12782 Image with link parameter, wiki target
12784 [[File:Foobar.jpg|link=Main Page]]
12786 <p><a href="/wiki/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12789 <p><span class="mw-default-size" typeof="mw:Image"><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12792 # parsoid bug 49293 (part 1)
12794 Image with link parameter, URL target
12796 [[File:Foobar.jpg|link=http://example.com/]]
12798 <p><a href="http://example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12801 <p><span class="mw-default-size" typeof="mw:Image"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12804 # parsoid bug 49293 (part 2)
12806 Image with link parameter, protocol-less URL target
12808 [[File:Foobar.jpg|link=//example.com/]]
12810 <p><a href="//example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12813 <p><span class="mw-default-size" typeof="mw:Image"><a href="//example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12817 Escaping non-block captions (T107435)
12820 "modes": ["wt2wt"],
12822 ["[typeof~='mw:Image']", "attr", "data-mw", "{\"caption\": \"|\"}"]
12826 [[Image:Foobar.jpg|caption]]
12828 [[Image:Foobar.jpg|<nowiki>|</nowiki>]]
12832 Image with link parameter, wgExternalLinkTarget
12834 [[Image:foobar.jpg|link=http://example.com/]]
12836 wgExternalLinkTarget='foobar'
12838 <p><a href="http://example.com/" target="foobar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12843 Image with link parameter, wgNoFollowLinks set to false
12845 [[Image:foobar.jpg|link=http://example.com/]]
12847 wgNoFollowLinks=false
12849 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12854 Image with link parameter, wgNoFollowDomainExceptions
12856 [[Image:foobar.jpg|link=http://example.com/]]
12858 wgNoFollowDomainExceptions='example.com'
12860 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12865 Image with link parameter, wgExternalLinkTarget, unnamed parameter
12867 [[Image:foobar.jpg|link=http://example.com/|Title]]
12869 wgExternalLinkTarget='foobar'
12871 <p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12876 Image with empty link parameter
12878 [[File:Foobar.jpg|link=]]
12880 <p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" />
12883 <p><span class="mw-default-size" typeof="mw:Image"><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></span></span></p>
12887 Image with link parameter (wiki target) and unnamed parameter
12889 [[File:Foobar.jpg|link=Main_Page|Title]]
12891 <p><a href="/wiki/Main_Page" title="Title"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12894 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12898 Image with link parameter (URL target) and unnamed parameter
12900 [[File:Foobar.jpg|link=http://example.com/|Title]]
12902 <p><a href="http://example.com/" title="Title" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
12905 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
12909 Thumbnail image with link parameter
12912 parsoid=wt2html,wt2wt,html2html
12914 [[File:Foobar.jpg|thumb|link=http://example.com/|Title]]
12916 <div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12919 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>Title</figcaption></figure>
12923 Manually-specified thumbnail image
12927 [[File:Foobar.jpg|thumb=Thumb.png|Title]]
12929 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12932 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
12936 Manually-specified thumbnail image with explicit link to wiki page
12939 parsoid=wt2html,wt2wt,html2html
12941 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|Title]]
12943 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12946 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
12950 Manually-specified thumbnail image with explicit link to url
12953 parsoid=wt2html,wt2wt,html2html
12955 [[File:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
12957 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="http://example.com"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12960 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="http://example.com"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
12964 Manually-specified thumbnail image with explicit no link
12967 parsoid=wt2html,wt2wt,html2html
12969 [[File:Foobar.jpg|thumb=Thumb.png|link=|Title]]
12971 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12974 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><span><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></span><figcaption>Title</figcaption></figure>
12978 Manually-specified thumbnail image with explicit link and alt text
12981 parsoid=wt2html,wt2wt,html2html
12983 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|alt=alttext|Title]]
12985 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
12988 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img alt="alttext" resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
12992 Image with frame and link
12994 parsoid=wt2html,wt2wt,html2html
12996 [[File:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
12998 <div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
13001 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="Main_Page" title="Main Page">Main Page</a></figcaption></figure>
13005 Image with frame and link and explicit alt
13007 parsoid=wt2html,wt2wt,html2html
13009 [[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]]
13011 <div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Altitude" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
13014 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img alt="Altitude" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="Main_Page" title="Main Page">Main Page</a></figcaption></figure>
13018 Image with wiki markup in implicit alt
13020 [[Image:Foobar.jpg|testing '''bold''' in alt]]
13022 [[Image:Foobar.jpg|alt=testing '''bold''' in alt]]
13024 <p><a href="/wiki/File:Foobar.jpg" class="image" title="testing bold in alt"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13025 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13028 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"testing <b data-parsoid=\"{&quot;dsr&quot;:[27,37,3,3]}\">bold</b> in alt"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
13029 <p><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"alt":"testing bold in alt","resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"alt":"alt=testing '''bold''' in alt","resource":"Image:Foobar.jpg"}}'/></a></span></p>
13033 Alt image option should handle most kinds of wikitext without barfing
13035 [[Image:Foobar.jpg|thumb|This is the image caption|alt=This is a [[link]] and a {{echo|''bold template''}}.]]
13037 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a link and a bold template." src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is the image caption</div></div></div>
13040 <figure class="mw-default-size" typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"This is the image caption"},{"ck":"alt","ak":"alt=This is a [[link]] and a {{echo|''bold template''}}."}]}' data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["alt",{"html":"alt=This is a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=\"{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Link&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;link&quot;},&quot;dsr&quot;:[65,73,2,2]}\">link</a> and a <i about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;dsr&quot;:[80,106,null,null],&quot;pi&quot;:[[{&quot;k&quot;:&quot;1&quot;,&quot;spc&quot;:[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]}]]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;''bold template''&quot;}},&quot;i&quot;:0}}]}\">bold template</i>."}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img alt="This is a link and a bold template." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" data-parsoid='{"a":{"alt":"This is a link and a bold template.","resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"alt":"alt=This is a [[link]] and a {{echo|''bold template''}}.","resource":"Image:Foobar.jpg"}}'/></a><figcaption>This is the image caption</figcaption></figure>
13043 ###################
13044 # Conflicting image format options.
13045 # First option specified should 'win'.
13046 # All three cases in each test should be identical.
13049 Image with 'frameless' first.
13051 parsoid=wt2html,wt2wt,html2html
13053 [[File:Foobar.jpg|frameless|caption]]
13055 [[File:Foobar.jpg|frameless|frame|caption]]
13057 [[File:Foobar.jpg|frameless|thumb|caption]]
13059 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
13060 </p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
13061 </p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
13064 <p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
13065 <p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
13066 <p><span class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
13070 Image with 'frame' first.
13072 parsoid=wt2html,wt2wt,html2html
13074 [[File:Foobar.jpg|frame|caption]]
13075 [[File:Foobar.jpg|frame|frameless|caption]]
13076 [[File:Foobar.jpg|frame|thumb|caption]]
13078 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
13079 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
13080 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
13083 <figure class="mw-default-size" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13084 <figure class="mw-default-size" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13085 <figure class="mw-default-size" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13089 Image with 'thumb' first.
13091 parsoid=wt2html,wt2wt,html2html
13093 [[File:Foobar.jpg|thumb|caption]]
13094 [[File:Foobar.jpg|thumb|frameless|caption]]
13095 [[File:Foobar.jpg|thumb|frame|caption]]
13097 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13098 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13099 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13102 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13103 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13104 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13107 ###################
13109 # See https://www.mediawiki.org/wiki/Help:Images#Size_and_frame
13110 # and https://phabricator.wikimedia.org/T64258
13111 # Foobar has actual size of 1941x220
13112 # 1. Thumbs & frameless always reduce, can't be enlarged unless it's
13113 # a scalable format.
13114 # 2. Framed images always ignore size options; always render at default size.
13115 # 3. "Unspecified format" and border are the only types which can be
13119 Image: "unspecified format" and border enlarge
13121 parsoid=wt2html,wt2wt,html2html
13123 [[File:Foobar.jpg|2000px]]
13125 [[File:Foobar.jpg|border|2000px]]
13127 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="2000" height="227" /></a>
13128 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="2000" height="227" class="thumbborder" /></a>
13131 <p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1941px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></span></p>
13132 <p><span class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1941px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000"/></a></span></p>
13136 Image: "unspecified format" and border reduce
13138 parsoid=wt2html,wt2wt,html2html
13140 [[File:Foobar.jpg|1000px]]
13142 [[File:Foobar.jpg|border|1000px]]
13144 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" width="1000" height="113" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
13145 </p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" width="1000" height="113" class="thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
13148 <p><span typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></span></p>
13149 <p><span class="mw-image-border" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000"/></a></span></p>
13153 Image: thumbs reduce
13155 parsoid=wt2html,wt2wt,html2html
13157 [[File:Foobar.jpg|thumb|50px]]
13159 <div class="thumb tright"><div class="thumbinner" style="width:52px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
13162 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></figure>
13166 Image: bitmap thumbs can't be enlarged past original size, but vector can.
13168 parsoid=wt2html,wt2wt,html2html
13170 [[File:Foobar.jpg|thumb|2000px]]
13172 [[File:Foobar.svg|thumb|2000px]]
13174 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
13175 <div class="thumb tright"><div class="thumbinner" style="width:2002px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div></div></div></div>
13178 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1941px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
13179 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000"/></a></figure>
13183 Image: frameless can reduce in size
13185 parsoid=wt2html,wt2wt,html2html
13187 [[File:Foobar.jpg|frameless|50px]]
13189 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
13192 <p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
13196 Image: bitmap frameless can't be enlarged past original size, but vector can
13198 parsoid=wt2html,wt2wt,html2html
13200 [[File:Foobar.jpg|frameless|2000px]]
13202 [[File:Foobar.svg|frameless|2000px]]
13204 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13205 </p><p><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>
13208 <p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/1941px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13209 <p><span typeof="mw:Image/Frameless"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000"/></a></span></p>
13213 Image: framed images are always unscaled.
13215 parsoid=wt2html,wt2wt,html2html
13217 [[File:Foobar.jpg|frame]]
13219 [[File:Foobar.jpg|frame|50px]]
13221 [[File:Foobar.jpg|frame|50x50px]]
13223 [[File:Foobar.jpg|frame|2000px]]
13225 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
13226 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
13227 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
13228 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
13231 <figure class="mw-default-size" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
13232 <figure typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
13233 <figure typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
13234 <figure typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure>
13237 ###################
13240 Link to image page- image page normally doesn't exists, hence edit link
13241 Add test with existing image page
13242 #<p><a href="/wiki/File:Test" title="Image:Test">Image:test</a>
13246 <p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">Image:test</a>
13251 bug 18784 Link to non-existent image page with caption should use caption as link text
13253 [[:Image:test|caption]]
13255 <p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">caption</a>
13260 Frameless image caption with a free URL
13262 [[File:Foobar.jpg|http://example.com]]
13264 <p><a href="/wiki/File:Foobar.jpg" class="image" title="http://example.com"><img alt="http://example.com" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13267 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"<a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid=\"{&quot;stx&quot;:&quot;url&quot;,&quot;dsr&quot;:[18,36,0,0]}\">http://example.com</a>"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13271 Thumbnail image caption with a free URL
13275 [[File:Foobar.jpg|thumb|http://example.com]]
13277 <div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
13280 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
13284 Thumbnail image caption with a free URL and explicit alt
13287 parsoid=wt2html,wt2wt,html2html
13289 [[File:Foobar.jpg|thumb|http://example.com|alt=Alteration]]
13291 <div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
13294 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img alt="Alteration" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
13298 SVG thumbnails with no language set
13301 [[File:Foobar.svg|thumb|caption]]
13303 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13306 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/220px-Foobar.svg" data-file-width="240" data-file-height="180" data-file-type="drawing" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
13310 SVG thumbnails with language de
13312 parsoid=wt2html,wt2wt,html2html
13314 [[File:Foobar.svg|thumb|caption|lang=de]]
13316 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&lang=de" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13319 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/thumb/f/ff/Foobar.svg/220px-Foobar.svg" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
13323 SVG thumbnails with invalid language code
13325 parsoid=wt2html,wt2wt,html2html
13327 [[File:Foobar.svg|thumb|caption|lang=invalid.language.code]]
13329 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>lang=invalid.language.code</div></div></div>
13332 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" data-file-width="240" data-file-height="180" data-file-type="drawing" height="165" width="220"/></a><figcaption>lang=invalid.language.code</figcaption></figure>
13336 BUG 1887: A ISBN with a thumbnail
13338 [[File:Foobar.jpg|thumb|ISBN 1235467890]]
13340 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
13343 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a href="./Special:BookSources/1235467890" rel="mw:WikiLink">ISBN 1235467890</a></figcaption></figure>
13347 BUG 1887: A RFC with a thumbnail
13349 [[File:Foobar.jpg|thumb|This is RFC 12354]]
13351 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
13354 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>This is <a href="//tools.ietf.org/html/rfc12354" rel="mw:ExtLink">RFC 12354</a></figcaption></figure>
13358 BUG 1887: A mailto link with a thumbnail
13360 [[File:Foobar.jpg|thumb|Please mailto:nobody@example.com]]
13362 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
13365 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>Please <a rel="mw:ExtLink" href="mailto:nobody@example.com">mailto:nobody@example.com</a></figcaption></figure>
13368 # Pending resolution to bug 368
13370 BUG 648: Frameless image caption with a link
13372 [[File:Foobar.jpg|text with a [[link]] in it]]
13374 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13377 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=\"{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Link&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;link&quot;},&quot;dsr&quot;:[30,38,2,2]}\">link</a> in it"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13381 BUG 648: Frameless image caption with a link (suffix)
13383 [[File:Foobar.jpg|text with a [[link]]foo in it]]
13385 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13388 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=\"{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Link&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;link&quot;},&quot;dsr&quot;:[30,41,2,5],&quot;tail&quot;:&quot;foo&quot;}\">linkfoo</a> in it"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13392 BUG 648: Frameless image caption with an interwiki link
13394 [[File:Foobar.jpg|text with a [[MeatBall:Link]] in it]]
13396 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13399 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a <a rel=\"mw:ExtLink\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=\"{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;http://www.usemod.com/cgi-bin/mb.pl?Link&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;MeatBall:Link&quot;},&quot;isIW&quot;:true,&quot;dsr&quot;:[30,47,2,2]}\">MeatBall:Link</a> in it"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13403 BUG 648: Frameless image caption with a piped interwiki link
13405 [[File:Foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
13407 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13410 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a <a rel=\"mw:ExtLink\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" data-parsoid=\"{&quot;stx&quot;:&quot;piped&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;http://www.usemod.com/cgi-bin/mb.pl?Link&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;MeatBall:Link&quot;},&quot;isIW&quot;:true,&quot;dsr&quot;:[30,52,16,2]}\">link</a> in it"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13414 T107474: Frameless image caption with <nowiki>
13416 [[File:Foobar.jpg|<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>]]
13418 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"<span typeof=\"mw:Nowiki\" data-parsoid=\"{&quot;dsr&quot;:[18,75,8,9]}\">text with a [[MeatBall:Link|link]] in it</span>"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13422 Escape HTML special chars in image alt text
13424 [[File:Foobar.jpg|& < > "]]
13426 <p><a href="/wiki/File:Foobar.jpg" class="image" title="& < > ""><img alt="& < > "" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13429 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"&amp; &lt; &gt; \""}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13433 BUG 499: Alt text should have Ӓ, not &1234;
13435 [[File:Foobar.jpg|♀]]
13437 <p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13440 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"<span typeof=\"mw:Entity\" data-parsoid=\"{&quot;src&quot;:&quot;&amp;#9792;&quot;,&quot;srcContent&quot;:&quot;♀&quot;,&quot;dsr&quot;:[18,25,null,null]}\">♀</span>"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13444 Broken image caption with link
13446 parsoid=wt2html,wt2wt,html2html
13448 [[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
13450 <p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a href="/wiki/Main_Page" title="Main Page">this</a> is just an ordinary link.
13453 <p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a rel="mw:WikiLink" href="Main_Page" title="Main Page">this</a> is just an ordinary link.</p>
13457 Image caption containing another image
13459 [[File:Foobar.jpg|thumb|This is a caption with another [[File:Thumb.png|image]] inside it!]]
13461 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" /></a> inside it!</div></div></div>
13464 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>This is a caption with another <span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"image"}'><a href="./File:Thumb.png"><img resource="./File:Thumb.png" src="//example.com/images/e/ea/Thumb.png" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135"/></a></span> inside it!</figcaption></figure>
13468 Image: caption containing a newline
13470 [[File:Foobar.jpg|This
13473 <p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13476 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"This\n*is some text"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13480 Image: caption containing leading space
13481 (The leading space should not trigger nowiki escaping in wt2wt mode)
13483 [[File:Foobar.jpg|thumb| bar]]
13485 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>bar</div></div></div>
13488 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption> bar</figcaption></figure>
13492 Image: caption containing a table
13494 parsoid=wt2html,wt2wt,html2html
13496 [[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table
13502 and some more text.]]
13504 <div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is an example image thumbnail caption with a table <table> <tr> <th> Foo </th> <th> Bar </th></tr> <tr> <td> Foo1 </td> <td> Bar1 </td></tr></table> and some more text.</div></div></div>
13507 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>This is an example image thumbnail caption with a table
13510 <tr><th>Foo </th><th>Bar</th></tr>
13513 <td>Bar1</td></tr></tbody></table>and some more text.</figcaption></figure>
13517 Bug 3090: External links other than http: in image captions
13519 [[File:Foobar.jpg|thumb|200x200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
13521 <div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div>
13524 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>This caption has <a rel="mw:ExtLink" href="irc://example.net">irc</a> and <a rel="mw:ExtLink" href="https://example.com">Secure</a> ext links in it.</figcaption></figure>
13530 parsoid=wt2html,wt2wt,html2html
13532 [[Image:foobar.jpg|a|class=b]]
13534 <p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="b" /></a>
13537 <p><span class="mw-default-size b" typeof="mw:Image" data-mw='{"caption":"a"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13541 Localized image handling (1).
13543 parsoid=wt2html,wt2wt,html2html
13546 [[Archivo:Foobar.jpg|izquierda|enlace=foo|caption]]
13548 <div class="floatleft"><a href="/wiki/Foo" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
13551 <figure class="mw-default-size mw-halign-left" typeof="mw:Image"><a href="./Foo"><img resource="./Archivo:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13555 Localized image handling (2).
13558 parsoid=wt2html,wt2wt,html2html
13561 [[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]]
13563 <div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/Foo" title="Foo"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"></a></div>caption</div></div></div>
13566 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="Foo"><img resource="./Archivo:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13570 "border", "frameless" and "class" attributes on an image.
13573 parsoid=wt2html,wt2wt,html2html
13575 [[File:Foobar.jpg|frameless|border|class=extra|caption]]
13577 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="extra thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
13580 <p><span class="mw-default-size mw-image-border extra" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></span></p>
13583 # Note that 'right' is the default alignment, despite the misspelled 'righ' below
13585 Invalid image attributes (bug 62500)
13588 parsoid=wt2html,wt2wt,html2html
13590 [[File:Foobar.jpg|thumb|float|left|caption]]
13592 [[File:Foobar.jpg|thumb|righ|caption]]
13594 [[File:Foobar.jpg|bogus1|thumb|bogus2|left|bogus3|caption]]
13596 <div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13597 <div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13598 <div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
13601 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13602 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13603 <figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
13609 #REDIRECT [[File:Barfoo.jpg]]
13612 # FIXME: Parsoid should run this test -- but we'd need to teach the
13613 # mockAPI about the redirected Barfoo.jpg image.
13617 [[Image:Barfoo.jpg]]
13619 <p><a href="/wiki/File:Barfoo.jpg" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
13624 Missing image with uploads disabled
13628 [[File:Foobaz.jpg]]
13630 <p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a>
13633 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}]}'><a href="./File:Foobaz.jpg"><img resource="./File:Foobaz.jpg" src="./Special:FilePath/Foobaz.jpg" height="220" width="220"/></a></span></p>
13636 # Parsoid-specific testing for images
13637 # https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
13638 # Currently imperfect due to a flaw in the Parsoid testrunner
13640 # THESE TESTS SHOULD BE MOVED UP and merged with the php-specific
13644 Parsoid-specific image handling - simple image with size and middle alignment
13646 [[File:Foobar.jpg|middle|50px]]
13648 <p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
13652 Parsoid-specific image handling - simple image with size, middle alignment,
13653 non-standard namespace alias
13655 parsoid=wt2wt,wt2html,html2html
13657 [[Image:Foobar.jpg|middle|50px]]
13659 <p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
13663 Parsoid-specific image handling - simple image with size and middle alignment
13666 [[File:Foobar.jpg|50px|middle]]
13668 <p><span class="mw-valign-middle" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"middle","ak":"middle"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
13672 Parsoid-specific image handling - simple image with size and middle alignment
13673 and non-standard namespace name
13675 parsoid=wt2html,wt2wt,html2html
13677 [[Image:Foobar.jpg|50px|middle]]
13679 <p><span class="mw-valign-middle" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a></span></p>
13683 Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption
13685 [[File:Foobar.jpg|500x10px|baseline|caption]]
13687 <p><span class="mw-valign-baseline" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"500x10px"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"500x10"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="10" width="89" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"10","width":"89"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
13691 Parsoid-specific image handling - simple image with border and size spec
13693 [[File:Foobar.jpg|50px|border|caption]]
13695 <p><span class="mw-image-border" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
13699 Parsoid-specific image handling - thumbnail with halign, valign, and caption
13701 [[File:Foobar.jpg|left|baseline|thumb|caption content]]
13703 <figure class="mw-default-size mw-halign-left mw-valign-baseline" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption content</figcaption></figure>
13707 Parsoid-specific image handling - thumbnail with halign, valign, and caption
13710 [[File:Foobar.jpg|thumb|left|baseline|caption content]]
13712 <figure class="mw-default-size mw-halign-left mw-valign-baseline" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"left","ak":"left"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption content"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption content</figcaption></figure>
13716 Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption
13718 [[Image:Foobar.jpg|right|middle|thumb|50x50px|caption]]
13720 <figure class="mw-halign-right mw-valign-middle" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50"/></a><figcaption>caption</figcaption></figure>
13724 Parsoid-specific image handling - thumbnail with specific size, halign,
13725 valign, and caption (existing content)
13727 [[File:Foobar.jpg|thumb|50x50px|right|middle|caption]]
13729 <figure class="mw-halign-right mw-valign-middle" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"50x50px"},{"ck":"right","ak":"right"},{"ck":"middle","ak":"middle"},{"ck":"caption","ak":"caption"}],"size":"50x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
13733 Parsoid-specific image handling - framed image with specific size and caption
13736 parsoid=wt2html,wt2wt,html2html
13738 [[File:Foobar.jpg|frame|500x50px|caption]]
13740 <figure typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13744 Parsoid-specific image handling - framed image with specific size, halign, valign, and caption
13747 parsoid=wt2html,wt2wt,html2html
13749 [[File:Foobar.jpg|left|baseline|frame|500x50px|caption]]
13751 <figure class="mw-halign-left mw-valign-baseline" typeof="mw:Image/Frame"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
13755 Parsoid-specific image handling - frameless image with specific size, border, and caption
13757 [[File:Foobar.jpg|frameless|442x50px|border|caption]]
13759 <p><span class="mw-image-border" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"width","ak":"442x50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
13763 Parsoid-specific image handling - simple image with a formatted caption
13765 [[File:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
13767 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"<table data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[18,81,7,8]}\"><tbody data-parsoid=\"{&quot;dsr&quot;:[25,73,0,0]}\"><tr data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[25,54,4,5]}\"><td data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[29,39,4,5]}\">a</td><td data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[39,49,4,5]}\">b</td></tr><tr data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[54,73,4,5]}\"><td data-parsoid=\"{&quot;stx&quot;:&quot;html&quot;,&quot;dsr&quot;:[58,68,4,5]}\">c</td></tr></tbody></table>"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
13771 Parsoid-specific image handling - caption with a template in it
13773 [[File:Foobar.jpg|thumb|200x23px|This caption has a {{echo|transclusion}} in it.]]
13775 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"></a><figcaption>This caption has a <span about="#mwt1" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}">transclusion</span> in it.</figcaption></figure>
13779 Parsoid-specific image handling - caption with unbalanced tags in it
13781 parsoid=wt2html,wt2wt,html2html
13784 [[File:Foobar.jpg|thumb|200x200px|This caption has a <center>unbalanced tag in it.]]
13788 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200"/></a><figcaption>This caption has a <center>unbalanced tag in it.</center></figcaption></figure>
13793 Parsoid-specific image handling - empty caption (1)
13795 parsoid=wt2html,wt2wt
13797 [[File:Foobar.jpg|thumb|]]
13799 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption></figcaption></figure>
13802 # empty captions don't get serialized unless we're in the "round trip" case
13804 Parsoid-specific image handling - empty caption (2)
13808 <figure class="mw-default-size" typeof="mw:Image/Thumb">
13809 <a href="./File:Foobar.jpg">
13810 <img resource="./File:Foobar.jpg"
13811 src="//example.com/images/3/3a/Foobar.jpg"
13812 data-file-width="1941" data-file-height="220" data-file-type="bitmap"
13813 height="25" width="220"/>
13815 <figcaption></figcaption>
13818 [[File:Foobar.jpg|thumb]]
13822 Parsoid-specific image handling - whitespace caption
13824 [[File:Foobar.jpg|thumb| ]]
13826 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption> </figcaption></figure>
13830 Parsoid-specific image handling - lang option
13833 [[File:Foobar.svg|lang=de|caption]]
13837 <span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240"/></a></span>
13841 ## Edge case bug in Parsoid
13843 T93580: Templated <ref> inside images
13845 [[File:Foobar.jpg|thumb|Caption with templated ref: {{echo|<ref>foo</ref>}}]]
13849 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"Caption with templated ref: {{echo|<ref>foo</ref>}}"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>Caption with templated ref: <span about="#mwt5" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<ref>foo</ref>"}},"i":0}}]}'><a href="#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></figcaption></figure>
13851 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">foo</span></li></ol>
13858 Subpage test/subpage
13866 subpage title=[[Subpage test]]
13870 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a>
13875 Subpage noslash link
13877 subpage title=[[Subpage test]]
13881 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a>
13886 Subpage test/1/2/subpage
13892 Relative subpage noslash link
13894 parsoid=wt2wt,wt2html,html2html
13895 subpage title=[[Subpage test/1/2/3/4]]
13901 <p><a href="/wiki/Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">subpage</a>
13902 </p><p><a href="/wiki/Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">Subpage test/1/2/subpage</a>
13905 <p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">subpage</a></p>
13906 <p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">Subpage_test/1/2/subpage</a></p>
13910 Parsoid: dot-slash prefixed wikilinks
13920 </p><p>[[././baz/]]
13925 </p><p>[[././baz/]]
13930 Render invalid page names as plain text (bug 51090)
13943 [[{{echo|./../foo}}|bar]]
13944 [[{{echo|foo/.}}|bar]]
13945 [[{{echo|foo/..}}|bar]]
13946 [[{{echo|foo~~~~bar}}]]
13947 [[{{echo|foo>bar}}]]
13948 [[{{echo|foo././bar}}]]
13949 [[{{echo|foo{bar}}]]
13950 [[{{echo|foo}bar}}]]
13951 [[{{echo|foo[bar}}]]
13952 [[{{echo|foo]bar}}]]
13953 [[{{echo|foo<bar}}]]
13955 <p>[[./../foo|bar]]
13965 </p><p>[[./../foo|bar]]
13978 <p>[[./../foo|bar]]
13989 <p>[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"./../foo"}},"i":0}}]}'>./../foo</span>|bar]]
13990 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/."}},"i":0}}]}'>foo/.</span>|bar]]
13991 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/.."}},"i":0}}]}'>foo/..</span>|bar]]
13992 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo~~~~bar"}},"i":0}}]}'>foo~~~~bar</span>]]
13993 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo>bar"}},"i":0}}]}'>foo>bar</span>]]
13994 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo././bar"}},"i":0}}]}'>foo././bar</span>]]
13995 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo{bar"}},"i":0}}]}'>foo{bar</span>]]
13996 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo}bar"}},"i":0}}]}'>foo}bar</span>]]
13997 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo[bar"}},"i":0}}]}'>foo[bar</span>]]
13998 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo]bar"}},"i":0}}]}'>foo]bar</span>]]
13999 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo<bar"}},"i":0}}]}'>foo<bar</span>]]</p>
14007 <p><a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a>
14012 BUG 561: {{/Subpage}}
14014 subpage title=[[Page]]
14018 <p><a href="/index.php?title=Page/Subpage&action=edit&redlink=1" class="new" title="Page/Subpage (page does not exist)">Page/Subpage</a>
14026 Category:MediaWiki User's Guide
14034 [[:Category:MediaWiki User's Guide]]
14036 <p><a href="/wiki/Category:MediaWiki_User's_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a>
14045 [[Category:MediaWiki User's Guide]]
14047 <a href="/wiki/Category:MediaWiki_User's_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
14051 PAGESINCATEGORY invalid title fatal (r33546 fix)
14053 {{PAGESINCATEGORY:<bogus>}}
14060 Category with different sort key
14064 [[Category:MediaWiki User's Guide|Foo]]
14066 <a href="/wiki/Category:MediaWiki_User's_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
14070 Category with identical sort key
14074 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
14076 <a href="/wiki/Category:MediaWiki_User's_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
14080 Category with empty sort key
14085 [[Category:MediaWiki User's Guide|]]
14087 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
14091 Category with empty sort key and parentheses
14096 [[Category:Foo (bar)|]]
14098 [[Category:Foo (bar)|Foo]]
14102 Category with link tail
14107 123[[Category:Foo]]456
14109 123[[Category:Foo]]456
14113 Category with template
14118 [[Category:{{echo|Foo}}]]
14120 [[Category:{{echo|Foo}}]]
14124 Category with template in sort key
14129 [[Category:Foo|{{echo|Bar}}]]
14131 [[Category:Foo|{{echo|Bar}}]]
14135 Category with template in sort key and title
14140 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
14142 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
14146 Category / paragraph interactions
14148 Foo [[Category:Baz]] Bar
14150 Foo [[Category:Baz]]
14158 [[Category:Baz]] Bar
14171 {{echo|[[Category:Baz]]}}
14185 ## The whitespace on the empty line is part of the test. Please do not delete
14187 1. Categories and newlines: All preceding newlines should be suppressed (courtesy bug 87)
14189 parsoid=wt2html,wt2wt
14193 [[Category:Foo]] and this should be part of same paragraph (not an indent-pre)
14195 {{echo|[[Category:Foo]] and so should this!}}
14197 <p>This and this should be part of same paragraph (not an indent-pre) and so should this!
14202 <link rel="mw:PageProp/Category" href="./Category:Foo"/> and this should be part of same paragraph (not an indent-pre)
14204 <link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Foo]] and so should this!"}},"i":0}}]}'/><span about="#mwt1"> and so should this!</span></p>
14207 ## Parsoid will not try to wt2wt this while preserving newlines because
14208 ## it suppresses excess newlines within list items -- and we don't want to
14209 ## introduce a special case just for categories, which is, in reality somewhat
14210 ## odd behavior -- categories are unlikely to be used in list items like this
14211 ## in top-level pages and are only likely to show up in template-generated
14212 ## list items where this RT-ing is a non-issue.
14214 ## The whitespace on the empty line is part of the test. Please do not delete
14216 2. Categories and newlines: All preceding newlines should be suppressed (courtesy bug 87)
14222 [[Category:Foo]] and this should be part of the same list item
14225 {{echo|[[Category:Foo]] and this should be part of the same list item}}
14227 <ul><li>This and this should be part of the same list item</li>
14228 <li>So should this and this should be part of the same list item</li></ul>
14231 <li>This <link rel="mw:PageProp/Category" href="./Category:Foo"/> and this should be part of the same list item</li>
14232 <li>So should this <link rel="mw:PageProp/Category" href="./Category:Foo" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Foo]] and this should be part of the same list item"}},"i":0}}]}'/><span> and this should be part of the same list item</span></li>
14236 ## Newlines and categories that follow the last item of a list
14237 ## are treated differently because this (list followed by categories)
14238 ## is an extremely common pattern on wikis.
14240 3. Categories and newlines: newline suppression for last list item should RT properly
14253 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
14255 <link rel="mw:PageProp/Category" href="./Category:Bar" data-parsoid='{"stx":"simple","a":{"href":"./Category:Bar"},"sa":{"href":"Category:Bar"}}'/>
14256 <link rel="mw:PageProp/Category" href="./Category:Baz" data-parsoid='{"stx":"simple","a":{"href":"./Category:Baz"},"sa":{"href":"Category:Baz"}}'/>
14260 4. Categories and newlines: newline suppression for last list item should RT properly
14268 <ul><li><ul><li><ul><li> b</li></ul></li></ul></li></ul></li></ul>
14270 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
14273 ## only wt2html for this to make sure the algo only applies to the rightmost path
14275 5. Categories and newlines: migrateTrailingCategories dom pass should only run on the rightmost path of nested lists
14288 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/></li></ul></li>
14290 <ul><li> d</li></ul></li></ul>
14291 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
14295 6. Categories and newlines: migrateTrailingCategories dom pass should not migrate categories not preceded by newlines
14297 * a [[Category:Foo]]
14299 <ul><li>a <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/></li></ul>
14302 # This test also demonstrates because of newline+category tunneling
14303 # through the list hander, template wrapping doesn't expand to the
14304 # containing list when the list item swallows the category.
14306 7. Categories and newlines: migrateTrailingCategories dom pass should leave template content alone
14311 <ul><li> <span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n[[Category:Foo]]"}},"i":0}}]}'>a</span><span about="#mwt1">
14312 </span><link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/></li></ul>
14316 8. Categories and newlines: migrateTrailingCategories dom pass should not get tripped by intervening templates
14320 {{echo|[[Category:Foo]]
14324 <ul><li> a</li></ul>
14326 <link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"},"pi":[[{"k":"1","spc":["","","",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Foo]]\n[[Category:Bar]]"}},"i":0}}]}'/><span about="#mwt1">
14327 </span><link rel="mw:PageProp/Category" href="./Category:Bar" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Category:Bar"},"sa":{"href":"Category:Bar"}}'/>
14328 <link rel="mw:PageProp/Category" href="./Category:Baz" data-parsoid='{"stx":"simple","a":{"href":"./Category:Baz"},"sa":{"href":"Category:Baz"}}'/>
14332 Parsoid: Serialize link to category page with colon escape
14338 [[:Category:Foo|Bar]]
14341 <a rel="mw:WikiLink" href="./Category:Foo" title="Category:Foo">Category:Foo</a>
14342 <a rel="mw:WikiLink" href="./Category:Foo" title="Category:Foo">Bar</a>
14346 # html2wt localizes the "Category" namespace.
14347 # XXX the <link> element needs an empty data-parsoid attribute, or
14348 # else the html2html test fails because spaces are inserted.
14350 Link prefix/suffixes aren't applied to category links
14352 parsoid=wt2html,wt2wt,html2html
14360 <p>x<link rel="mw:PageProp/Category" href="./Flokkur:Foo" data-parsoid=""/>y</p>
14364 Parsoid: Serialize link to file page with colon escape
14370 [[:File:Foo.png|Bar]]
14373 <a rel="mw:WikiLink" href="./File:Foo.png" title="File:Foo.png">File:Foo.png</a>
14374 <a rel="mw:WikiLink" href="./File:Foo.png" title="File:Foo.png">Bar</a>
14379 Parsoid: Serialize a genuine category link without colon escape
14384 [[Category:Foo|Bar]]
14386 <link rel="mw:PageProp/Category" href="./Category:Foo">
14387 <link rel="mw:PageProp/Category" href="./Category:Foo#Bar">
14391 Normalize hrefs properly before testing for invalid link targets (bug 70894)
14395 <link rel="mw:PageProp/Category" href="./Category:Toxine_bactérienne"/>
14397 [[Category:Toxine bactérienne]]
14401 Parsoid: Defaultsort
14403 {{DEFAULTSORT:Foo}}
14405 <meta property="mw:PageProp/categorydefaultsort" content="Foo"/>
14409 Parsoid: Defaultsort (template-generated)
14411 {{{{echo|DEFAULTSORT}}:Foo}}
14413 <meta property="mw:PageProp/categorydefaultsort" content="Foo" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"dsr":[0,28,null,null],"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"{{echo|DEFAULTSORT}}:Foo"},"params":{},"i":0}}]}'/>
14417 ### Inter-language links
14420 Interlanguage links
14428 es:Alimento fr:Nourriture zh:食品
14430 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Alimento"/>
14431 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/Nourriture"/>
14432 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/食品"/>
14436 Duplicate interlanguage links (bug 24502)
14447 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/1"/>
14448 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/2"/>
14449 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/1"/>
14450 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/2"/>
14457 Basic section headings
14464 ===Smaller headline===
14467 <h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14470 <h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14473 <h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Smaller headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14479 Section headings with TOC
14482 === Subheadline 1 ===
14483 ===== Skipping a level =====
14484 ====== Skipping a level ======
14488 ===Another headline===
14490 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14492 <li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
14494 <li class="toclevel-2 tocsection-2"><a href="#Subheadline_1"><span class="tocnumber">1.1</span> <span class="toctext">Subheadline 1</span></a>
14496 <li class="toclevel-3 tocsection-3"><a href="#Skipping_a_level"><span class="tocnumber">1.1.1</span> <span class="toctext">Skipping a level</span></a>
14498 <li class="toclevel-4 tocsection-4"><a href="#Skipping_a_level_2"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Skipping a level</span></a></li>
14505 <li class="toclevel-1 tocsection-5"><a href="#Headline_2"><span class="tocnumber">2</span> <span class="toctext">Headline 2</span></a>
14507 <li class="toclevel-2 tocsection-6"><a href="#Another_headline"><span class="tocnumber">2.1</span> <span class="toctext">Another headline</span></a></li>
14513 <h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14514 <h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Subheadline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14515 <h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
14516 <h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14517 <h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14520 <h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Another headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14525 TOC anchors don't collide
14533 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14535 <li class="toclevel-1 tocsection-1"><a href="#Headline_2"><span class="tocnumber">1</span> <span class="toctext">Headline 2</span></a></li>
14536 <li class="toclevel-1 tocsection-2"><a href="#Headline"><span class="tocnumber">2</span> <span class="toctext">Headline</span></a></li>
14537 <li class="toclevel-1 tocsection-3"><a href="#Headline_2_2"><span class="tocnumber">3</span> <span class="toctext">Headline 2</span></a></li>
14538 <li class="toclevel-1 tocsection-4"><a href="#Headline_3"><span class="tocnumber">4</span> <span class="toctext">Headline</span></a></li>
14542 <h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14543 <h2><span class="mw-headline" id="Headline">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14544 <h2><span class="mw-headline" id="Headline_2_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14545 <h2><span class="mw-headline" id="Headline_3">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14549 # perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10'
14551 Handling of sections up to level 6 and beyond
14554 == Level 2 Heading==
14555 === Level 3 Heading===
14556 ==== Level 4 Heading====
14557 ===== Level 5 Heading=====
14558 ====== Level 6 Heading======
14559 ======= Level 7 Heading=======
14560 ======== Level 8 Heading========
14561 ========= Level 9 Heading=========
14562 ========== Level 10 Heading==========
14564 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14566 <li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
14568 <li class="toclevel-2 tocsection-2"><a href="#Level_2_Heading"><span class="tocnumber">1.1</span> <span class="toctext">Level 2 Heading</span></a>
14570 <li class="toclevel-3 tocsection-3"><a href="#Level_3_Heading"><span class="tocnumber">1.1.1</span> <span class="toctext">Level 3 Heading</span></a>
14572 <li class="toclevel-4 tocsection-4"><a href="#Level_4_Heading"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Level 4 Heading</span></a>
14574 <li class="toclevel-5 tocsection-5"><a href="#Level_5_Heading"><span class="tocnumber">1.1.1.1.1</span> <span class="toctext">Level 5 Heading</span></a>
14576 <li class="toclevel-6 tocsection-6"><a href="#Level_6_Heading"><span class="tocnumber">1.1.1.1.1.1</span> <span class="toctext">Level 6 Heading</span></a></li>
14577 <li class="toclevel-6 tocsection-7"><a href="#.3D_Level_7_Heading.3D"><span class="tocnumber">1.1.1.1.1.2</span> <span class="toctext">= Level 7 Heading=</span></a></li>
14578 <li class="toclevel-6 tocsection-8"><a href="#.3D.3D_Level_8_Heading.3D.3D"><span class="tocnumber">1.1.1.1.1.3</span> <span class="toctext">== Level 8 Heading==</span></a></li>
14579 <li class="toclevel-6 tocsection-9"><a href="#.3D.3D.3D_Level_9_Heading.3D.3D.3D"><span class="tocnumber">1.1.1.1.1.4</span> <span class="toctext">=== Level 9 Heading===</span></a></li>
14580 <li class="toclevel-6 tocsection-10"><a href="#.3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D"><span class="tocnumber">1.1.1.1.1.5</span> <span class="toctext">==== Level 10 Heading====</span></a></li>
14594 <h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Level 1 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14595 <h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Level 2 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14596 <h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Level 3 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14597 <h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Level 4 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
14598 <h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Level 5 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
14599 <h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Level 6 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14600 <h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=7" title="Edit section: = Level 7 Heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14601 <h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=8" title="Edit section: == Level 8 Heading==">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14602 <h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=9" title="Edit section: === Level 9 Heading===">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14603 <h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=10" title="Edit section: ==== Level 10 Heading====">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
14608 TOC regression (T11764)
14612 ==== title 1.1.1 ====
14617 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14619 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
14621 <li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a>
14623 <li class="toclevel-3 tocsection-3"><a href="#title_1.1.1"><span class="tocnumber">1.1.1</span> <span class="toctext">title 1.1.1</span></a></li>
14626 <li class="toclevel-2 tocsection-4"><a href="#title_1.2"><span class="tocnumber">1.2</span> <span class="toctext">title 1.2</span></a></li>
14629 <li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a>
14631 <li class="toclevel-2 tocsection-6"><a href="#title_2.1"><span class="tocnumber">2.1</span> <span class="toctext">title 2.1</span></a></li>
14637 <h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14638 <h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14639 <h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
14640 <h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14641 <h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14642 <h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14647 TOC for heading containing <span id="..."></span> (T96153)
14650 ==<span id="old-anchor"></span>New title==
14652 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14654 <li class="toclevel-1 tocsection-1"><a href="#New_title"><span class="tocnumber">1</span> <span class="toctext">New title</span></a></li>
14658 <h2><span class="mw-headline" id="New_title"><span id="old-anchor"></span>New title</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: New title">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14663 TOC with wgMaxTocLevel=3 (bug 6204)
14669 ==== title 1.1.1 ====
14674 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14676 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
14678 <li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a></li>
14679 <li class="toclevel-2 tocsection-4"><a href="#title_1.2"><span class="tocnumber">1.2</span> <span class="toctext">title 1.2</span></a></li>
14682 <li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a>
14684 <li class="toclevel-2 tocsection-6"><a href="#title_2.1"><span class="tocnumber">2.1</span> <span class="toctext">title 2.1</span></a></li>
14690 <h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14691 <h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14692 <h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
14693 <h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14694 <h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14695 <h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14700 TOC with wgMaxTocLevel=3 and two level four headings (bug 6204)
14706 ====Section 1.1.1====
14707 ====Section 1.1.1.1====
14710 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14712 <li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
14714 <li class="toclevel-2 tocsection-2"><a href="#Section_1.1"><span class="tocnumber">1.1</span> <span class="toctext">Section 1.1</span></a></li>
14717 <li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
14721 <h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14722 <h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14723 <h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Section 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
14724 <h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Section 1.1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
14725 <h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14731 Resolving duplicate section names
14736 <h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14737 <h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14742 Resolving duplicate section names with differing case (bug 10721)
14747 <h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14748 <h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14760 Template with sections, __NOTOC__
14767 <h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 0">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14768 <h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&action=edit&section=T-1" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14769 <h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&action=edit&section=T-2" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14770 <h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14775 __NOEDITSECTION__ keyword
14781 <h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
14782 <h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
14787 Link inside a section heading
14789 ==Section with a [[Main Page|link]] in it==
14791 <h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section with a link in it">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14796 TOC regression (T14077)
14803 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14805 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
14807 <li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a></li>
14810 <li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li>
14814 <h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14815 <h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
14816 <h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14821 BUG 1219 URL next to image (good)
14823 http://example.com [[File:Foobar.jpg]]
14825 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
14828 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> <span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
14832 Short headings with trailing space should match behavior of Parser::doHeadings (bug 19910)
14835 The line above must have a trailing space!
14838 But just in case it doesn't...
14840 <h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14841 <p>The line above must have a trailing space!
14843 <h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14844 <p>But just in case it doesn't...
14849 Header with special characters (bug 25462)
14851 The tooltips shall not show entities to the user (ie. be double escaped)
14868 <p>The tooltips shall not show entities to the user (ie. be double escaped)
14870 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14872 <li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text > text</span></a></li>
14873 <li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text < text</span></a></li>
14874 <li class="toclevel-1 tocsection-3"><a href="#text_.26_text"><span class="tocnumber">3</span> <span class="toctext">text & text</span></a></li>
14875 <li class="toclevel-1 tocsection-4"><a href="#text_.27_text"><span class="tocnumber">4</span> <span class="toctext">text ' text</span></a></li>
14876 <li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li>
14880 <h2><span class="mw-headline" id="text_.3E_text">text > text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: text > text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14883 <h2><span class="mw-headline" id="text_.3C_text">text < text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: text < text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14886 <h2><span class="mw-headline" id="text_.26_text">text & text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: text & text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14889 <h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: text ' text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14892 <h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: text " text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14898 Header with space, plus and underscore as entity
14900 Id should not contain + for spaces
14902 == Space between Text ==
14905 == Space-Entity between Text ==
14908 == Plus+between+Text ==
14911 == Plus-Entity+between+Text ==
14914 == Underscore_between_Text ==
14917 == Underscore-Entity_between_Text ==
14920 [[#Space between Text]]
14921 [[#Space-Entity between Text]]
14922 [[#Plus+between+Text]]
14923 [[#Plus-Entity+between+Text]]
14924 [[#Underscore_between_Text]]
14925 [[#Underscore-Entity_between_Text]]
14927 <p>Id should not contain + for spaces
14929 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14931 <li class="toclevel-1 tocsection-1"><a href="#Space_between_Text"><span class="tocnumber">1</span> <span class="toctext">Space between Text</span></a></li>
14932 <li class="toclevel-1 tocsection-2"><a href="#Space-Entity_between_Text"><span class="tocnumber">2</span> <span class="toctext">Space-Entity between Text</span></a></li>
14933 <li class="toclevel-1 tocsection-3"><a href="#Plus.2Bbetween.2BText"><span class="tocnumber">3</span> <span class="toctext">Plus+between+Text</span></a></li>
14934 <li class="toclevel-1 tocsection-4"><a href="#Plus-Entity.2Bbetween.2BText"><span class="tocnumber">4</span> <span class="toctext">Plus-Entity+between+Text</span></a></li>
14935 <li class="toclevel-1 tocsection-5"><a href="#Underscore_between_Text"><span class="tocnumber">5</span> <span class="toctext">Underscore_between_Text</span></a></li>
14936 <li class="toclevel-1 tocsection-6"><a href="#Underscore-Entity_between_Text"><span class="tocnumber">6</span> <span class="toctext">Underscore-Entity_between_Text</span></a></li>
14940 <h2><span class="mw-headline" id="Space_between_Text">Space between Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Space between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14943 <h2><span class="mw-headline" id="Space-Entity_between_Text">Space-Entity between Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Space-Entity between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14946 <h2><span class="mw-headline" id="Plus.2Bbetween.2BText">Plus+between+Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Plus+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14949 <h2><span class="mw-headline" id="Plus-Entity.2Bbetween.2BText">Plus-Entity+between+Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Plus-Entity+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14952 <h2><span class="mw-headline" id="Underscore_between_Text">Underscore_between_Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Underscore between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14955 <h2><span class="mw-headline" id="Underscore-Entity_between_Text">Underscore-Entity_between_Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Underscore-Entity_between_Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
14957 </p><p><a href="#Space_between_Text">#Space between Text</a>
14958 <a href="#Space-Entity_between_Text">#Space-Entity between Text</a>
14959 <a href="#Plus.2Bbetween.2BText">#Plus+between+Text</a>
14960 <a href="#Plus-Entity.2Bbetween.2BText">#Plus-Entity+between+Text</a>
14961 <a href="#Underscore_between_Text">#Underscore_between_Text</a>
14962 <a href="#Underscore-Entity_between_Text">#Underscore-Entity_between_Text</a>
14967 Headers with excess '=' characters
14968 (Are similar tests necessary beyond the 1st level?)
14972 =''italic'' heading==
14973 ==''italic'' heading=
14975 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
14977 <li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
14978 <li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li>
14979 <li class="toclevel-1 tocsection-3"><a href="#italic_heading.3D"><span class="tocnumber">3</span> <span class="toctext"><i>italic</i> heading=</span></a></li>
14980 <li class="toclevel-1 tocsection-4"><a href="#.3Ditalic_heading"><span class="tocnumber">4</span> <span class="toctext">=<i>italic</i> heading</span></a></li>
14984 <h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: foo=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14985 <h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =foo">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14986 <h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: italic heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14987 <h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: =italic heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
14992 HTML headers vs TOC (bug 23393)
14993 (__NOEDITSECTION__ for clearer output, doesn't matter here)
15005 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15007 <li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
15009 <li class="toclevel-2 tocsection-1"><a href="#Header_1.1"><span class="tocnumber">1.1</span> <span class="toctext">Header 1.1</span></a></li>
15010 <li class="toclevel-2 tocsection-2"><a href="#Header_1.2"><span class="tocnumber">1.2</span> <span class="toctext">Header 1.2</span></a></li>
15013 <li class="toclevel-1"><a href="#Header_2"><span class="tocnumber">2</span> <span class="toctext">Header 2</span></a>
15015 <li class="toclevel-2 tocsection-3"><a href="#Header_2.1"><span class="tocnumber">2.1</span> <span class="toctext">Header 2.1</span></a></li>
15016 <li class="toclevel-2 tocsection-4"><a href="#Header_2.2"><span class="tocnumber">2.2</span> <span class="toctext">Header 2.2</span></a></li>
15022 <h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
15023 <h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
15024 <h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
15025 <h1><span class="mw-headline" id="Header_2">Header 2</span></h1>
15026 <h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
15027 <h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
15032 Single-line or multiline-comments can follow headings
15034 parsoid=wt2html,wt2wt
15042 <h2><span class="mw-headline" id="foo">foo</span></h2>
15043 <h2><span class="mw-headline" id="bar">bar</span></h2>
15044 <h2><span class="mw-headline" id="baz">baz</span></h2>
15049 BUG 1219 URL next to image (broken)
15051 http://example.com[[File:Foobar.jpg]]
15053 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
15056 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a><span class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></span></p>
15060 Bug 1186 news: in the middle of text
15062 http://en.wikinews.org/wiki/Wikinews:Workplace
15064 <p><a rel="nofollow" class="external free" href="http://en.wikinews.org/wiki/Wikinews:Workplace">http://en.wikinews.org/wiki/Wikinews:Workplace</a>
15070 Namespaced link must have a title
15079 Namespaced link must have a title (bad fragment version)
15081 [[Project:#fragment]]
15083 <p>[[Project:#fragment]]
15089 ### HTML tags and HTML attributes
15093 div with no attributes
15095 <div>HTML rocks</div>
15097 <div>HTML rocks</div>
15102 div with double-quoted attribute
15104 <div id="rock">HTML rocks</div>
15106 <div id="rock">HTML rocks</div>
15111 div with single-quoted attribute
15113 <div id='rock'>HTML rocks</div>
15115 <div id="rock">HTML rocks</div>
15120 div with unquoted attribute
15122 <div id=rock>HTML rocks</div>
15124 <div id="rock">HTML rocks</div>
15129 div with illegal double attributes
15131 <div id="a" id="b">HTML rocks</div>
15133 <div id="b">HTML rocks</div>
15137 # FIXME: produce empty string instead of "class" in the PHP parser, following
15140 div with empty attribute value, space before equals
15144 <div class =>HTML rocks</div>
15146 <div class="">HTML rocks</div>
15151 div with multiple empty attribute values
15155 <div id= title=>HTML rocks</div>
15157 <div id="" title="">HTML rocks</div>
15162 table with multiple empty attribute values
15170 <table title="" id="">
15171 <tbody><tr><td> hi</td></tr>
15176 div with braces in attribute value
15178 <div title="{}">Foo</div>
15180 <div title="{}">Foo</div>
15183 <div title="{}">Foo</div>
15186 # This it very inconsistent in the PHP parser: it returns
15187 # class="class" if there is a space between the name and the equal sign (see
15188 # 'div with empty attribute value, space before equals'), but strips the
15189 # attribute completely if the space is missing. We hope that not much content
15190 # depends on this, so are implementing the behavior below in Parsoid for
15191 # consistencies' sake.
15192 # FIXME: fix this behavior in the PHP parser?
15194 div with empty attribute value, no space before equals
15196 parsoid=wt2html,html2html
15198 <div class=>HTML rocks</div>
15200 <div>HTML rocks</div>
15203 <div class="">HTML rocks</div>
15207 HTML multiple attributes correction
15209 <p class="error" class="awesome">Awesome!</p>
15211 <p class="awesome">Awesome!</p>
15216 Table multiple attributes correction
15219 !+ class="error" class="awesome"| status
15224 <th class="awesome"> status
15232 <DIV ID="x">HTML ROCKS</DIV>
15234 <div id="x">HTML ROCKS</div>
15239 Non-ASCII pseudo-tags are rendered as text
15248 Pseudo-tag with URL 'name' renders as url link
15250 <http://example.com/>
15252 <p><<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>>
15257 text with amp in the middle of nowhere
15261 <p>Remember AT&T?
15266 text with character entity: eacute
15268 I always thought é was a cute letter.
15270 <p>I always thought é was a cute letter.
15273 <p>I always thought é was a cute letter.</p>
15277 text with entity-escaped character entity-like string: eacute
15279 I always thought &eacute; was a cute letter.
15281 <p>I always thought &eacute; was a cute letter.
15286 text with undefined character entity: xacute
15288 I always thought &xacute; was a cute letter.
15290 <p>I always thought &xacute; was a cute letter.
15297 <data value="5">five</data>
15298 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
15299 <mark>This highlighted text</mark>
15301 <p><data value="5">five</data>
15302 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
15303 <mark>This highlighted text</mark>
15308 HTML tag with leading space is parsed as text
15312 <p>< div>foo< /div>
15317 ### Nesting tests (see bug 41545, 50604, 51081)
15320 # This test case is fixed in Parsoid by domino 1.0.12. (bug 50604)
15321 # Note that html2wt is considerably more difficult if we use <b> in
15322 # the test case, instead of <big>
15324 Ensure that HTML adoption agency algorithm is properly implemented.
15326 <big>X<big>Y</big>Z</big>
15328 <p><big>X<big>Y</big>Z</big>
15332 # This was bug 41545 in the PHP parser.
15333 # Note that tidy doesn't handle this correctly.
15337 <kbd>X<kbd>Y</kbd>Z</kbd>
15339 <p><kbd>X<kbd>Y</kbd>Z</kbd>
15343 # The following cases were bug 51081 in the PHP parser.
15344 # Note that there are some other nestable tags (b, i, etc) which are
15345 # not covered; see bug 51081 for discussion.
15347 # Note that tidy doesn't handle this correctly.
15351 <em>X<em>Y</em>Z</em>
15353 <p><em>X<em>Y</em>Z</em>
15357 # Note that tidy doesn't handle this correctly.
15359 Nesting of <strong>
15361 <strong>X<strong>Y</strong>Z</strong>
15363 <p><strong>X<strong>Y</strong>Z</strong>
15372 <p><q>X<q>Y</q>Z</q></p>
15375 # Note that tidy doesn't handle this correctly.
15379 <ruby>X<ruby>Y</ruby>Z</ruby>
15381 <p><ruby>X<ruby>Y</ruby>Z</ruby>
15385 # Note that tidy doesn't handle this correctly.
15389 <bdo>X<bdo>Y</bdo>Z</bdo>
15391 <p><bdo>X<bdo>Y</bdo>Z</bdo>
15403 [[Media:Foobar.jpg]]
15405 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a>
15410 Media link with text
15412 [[Media:Foobar.jpg|A neat file to look at]]
15414 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">A neat file to look at</a>
15418 # FIXME: this is still bad HTML tag nesting
15419 # FIXME: doBlockLevels won't wrap this in a paragraph because it contains a div
15421 Media link with nasty text
15423 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
15425 <a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link<div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div></a>
15428 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link</a></p>
15429 <div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div>
15433 Media link to nonexistent file (bug 1702)
15435 [[Media:No such.jpg]]
15437 <p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="No such.jpg">Media:No such.jpg</a>
15442 Image link to nonexistent file (bug 1850 - good)
15444 [[File:No_such.jpg]]
15446 <p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
15449 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}]}'><a href="./File:No_such.jpg"><img resource="./File:No_such.jpg" src="./Special:FilePath/No_such.jpg" height="220" width="220"/></a></span></p>
15453 :Image link to nonexistent file (bug 1850 - bad)
15455 [[:Image:No such.jpg]]
15457 <p><a href="/index.php?title=File:No_such.jpg&action=edit&redlink=1" class="new" title="File:No such.jpg (page does not exist)">Image:No such.jpg</a>
15460 <p><a rel="mw:WikiLink" href="./File:No_such.jpg" title="File:No such.jpg">Image:No such.jpg</a></p>
15466 Character reference normalization in link text (bug 1938)
15468 [[Main Page|this&that]]
15470 <p><a href="/wiki/Main_Page" title="Main Page">this&that</a>
15477 Test for unicode normalization
15479 The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E
15483 (bug 19451) Links should refer to the normalized form.
15491 <p><a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
15492 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
15493 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
15494 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
15495 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
15500 Empty attribute crash test (bug 2067)
15502 <font color="">foo</font>
15504 <p><font color="">foo</font>
15509 Empty attribute crash test single-quotes (bug 2067)
15511 <font color=''>foo</font>
15513 <p><font color="">foo</font>
15518 Attribute test: equals, then nothing
15520 <font color=>foo</font>
15522 <p><font>foo</font>
15527 Attribute test: unquoted value
15529 <font color=x>foo</font>
15531 <p><font color="x">foo</font>
15536 Attribute test: unquoted but illegal value (hash)
15538 <font color=#x>foo</font>
15540 <p><font color="#x">foo</font>
15544 # Parsoid does not serialize to empty attribute syntax,
15545 # so wt2wt and html2wt cases are skipped
15547 Attribute test: no value (T54330)
15549 parsoid=wt2html,html2html
15551 <font color>foo</font>
15553 <p><font color="">foo</font>
15556 <p><font color="">foo</font></p>
15560 Bug 2095: link with three closing brackets
15564 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>]
15567 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a>]</p>
15571 Bug 2095: link with pipe and three closing brackets
15573 [[Main Page|link]]]
15575 <p><a href="/wiki/Main_Page" title="Main Page">link</a>]
15578 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">link</a>]</p>
15582 Bug 2095: link with pipe and three closing brackets, version 2
15584 [[Main Page|[http://example.com/]]]
15586 <p><a href="/wiki/Main_Page" title="Main Page">[http://example.com/]</a>
15589 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">[http://example.com/]</a></p>
15598 Template:Dangerous attribute
15600 " onmouseover="alert(document.cookie)
15604 Template:Dangerous style attribute
15606 border-size: expression(alert(document.cookie))
15612 <div style="float: right; {{{1}}}">Magic div</div>
15616 Bug 2304: HTML attribute safety (safe template; regression bug 2309)
15618 <div title="{{test}}"></div>
15620 <div title="This is a test template"></div>
15624 # Parsoid has enough context to handle this case
15626 Bug 2304: HTML attribute safety (dangerous template; 2309)
15628 <div title="{{dangerous attribute}}"></div>
15630 <div title=""></div>
15633 <div title='" onmouseover="alert(document.cookie)' about="#mwt2" typeof="mw:ExpandedAttrs" data-parsoid='{"stx":"html","a":{"title":"\" onmouseover=\"alert(document.cookie)"},"sa":{"title":"{{dangerous attribute}}"}}' data-mw='{"attribs":[[{"txt":"title"},{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&quot;pi&quot;:[[]],&quot;dsr&quot;:[12,35,null,null]}\" data-mw=\"{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;dangerous attribute&quot;,&quot;href&quot;:&quot;./Template:Dangerous_attribute&quot;},&quot;params&quot;:{},&quot;i&quot;:0}}]}\">\" onmouseover=\"alert(document.cookie)</span>"}]]}'></div>
15637 Bug 2304: HTML attribute safety (dangerous style template; 2309)
15639 <div style="{{dangerous style attribute}}"></div>
15641 <div style="/* insecure input */"></div>
15646 Bug 2304: HTML attribute safety (safe parameter; 2309)
15648 {{div style|width: 200px}}
15650 <div style="float: right; width: 200px">Magic div</div>
15655 Bug 2304: HTML attribute safety (unsafe parameter; 2309)
15657 {{div style|width: expression(alert(document.cookie))}}
15659 <div style="/* insecure input */">Magic div</div>
15664 Bug 2304: HTML attribute safety (unsafe breakout parameter; 2309)
15666 {{div style|"><script>alert(document.cookie)</script>}}
15668 <div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div>
15673 Bug 2304: HTML attribute safety (unsafe breakout parameter 2; 2309)
15675 {{div style|" ><script>alert(document.cookie)</script>}}
15677 <div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div>
15682 Bug 2304: HTML attribute safety (link)
15684 <div title="[[Main Page]]"></div>
15686 <div title="[[Main Page]]"></div>
15691 Bug 2304: HTML attribute safety (italics)
15693 <div title="''foobar''"></div>
15695 <div title="''foobar''"></div>
15700 Bug 2304: HTML attribute safety (bold)
15702 <div title="'''foobar'''"></div>
15704 <div title="'''foobar'''"></div>
15710 Bug 2304: HTML attribute safety (ISBN)
15712 <div title="ISBN 1234567890"></div>
15714 <div title="ISBN 1234567890"></div>
15719 Bug 2304: HTML attribute safety (RFC)
15721 <div title="RFC 1234"></div>
15723 <div title="RFC 1234"></div>
15728 Bug 2304: HTML attribute safety (PMID)
15730 <div title="PMID 1234567890"></div>
15732 <div title="PMID 1234567890"></div>
15737 Bug 2304: HTML attribute safety (web link)
15739 <div title="http://example.com/"></div>
15741 <div title="http://example.com/"></div>
15746 Bug 2304: HTML attribute safety (named web link)
15748 <div title="[http://example.com/ link]"></div>
15750 <div title="[http://example.com/ link]"></div>
15755 Bug 3244: HTML attribute safety (extension; safe)
15757 <div style="<nowiki>background:blue</nowiki>"></div>
15759 <div style="background:blue"></div>
15764 Bug 3244: HTML attribute safety (extension; unsafe)
15766 <div style="<nowiki>border-left:expression(alert(document.cookie))</nowiki>"></div>
15768 <div style="/* insecure input */"></div>
15772 # More MSIE fun discovered by Tom Gilder
15775 MSIE CSS safety test: spurious slash
15777 <div style="background-image:u\rl(javascript:alert('boo'))">evil</div>
15779 <div style="/* insecure input */">evil</div>
15784 MSIE CSS safety test: hex code
15786 <div style="background-image:u\72l(javascript:alert('boo'))">evil</div>
15788 <div style="/* insecure input */">evil</div>
15793 MSIE CSS safety test: comment in url
15795 <div style="background-image:u/**/rl(javascript:alert('boo'))">evil</div>
15797 <div style="background-image:u rl(javascript:alert('boo'))">evil</div>
15802 MSIE CSS safety test: comment in expression
15804 <div style="background-image:expres/**/sion(alert('boo4'))">evil4</div>
15806 <div style="background-image:expres sion(alert('boo4'))">evil4</div>
15811 CSS safety test (all browsers): vertical tab (bug 55332 / CVE-2013-4567)
15813 <p style="font-size: 100px; background-image:url\b(https://www.google.com/images/srpr/logo6w.png)">A</p>
15815 <p style="/* invalid control char */">A</p>
15820 MSIE 6 CSS safety test: Fullwidth (bug 55332)
15822 <p style="font-size: 100px; color: expression((title='XSSed'),'red')">A</p>
15823 <div style="top:EXPRESSION(alert())">B</div>
15825 <p style="/* insecure input */">A</p>
15826 <div style="/* insecure input */">B</div>
15831 MSIE 6 CSS safety test: IPA extensions (bug 55332)
15833 <div style="background-image:uʀʟ(javascript:alert())">A</div>
15834 <p style="font-size: 100px; color: expʀessɪoɴ((title='XSSed'),'red')">B</p>
15836 <div style="/* insecure input */">A</div>
15837 <p style="/* insecure input */">B</p>
15842 MSIE 6 CSS safety test: sup/sub script (bug 55332)
15844 <div style="background-image:url⁽javascript:alert())">A</div>
15845 <div style="background-image:url₍javascript:alert())">B</div>
15846 <p style="font-size: 100px; color: expressioⁿ((title='XSSed'),'red')">C</p>
15848 <div style="/* insecure input */">A</div>
15849 <div style="/* insecure input */">B</div>
15850 <p style="/* insecure input */">C</p>
15858 title="data:text/html,<img src=1 onerror=alert(1)>"
15859 style="-o-link:attr(title);-o-link-source:current">X</div>
15861 <div title="data:text/html,<img src=1 onerror=alert(1)>" style="/* insecure input */">X</div>
15866 MSIE 6 CSS safety test: Repetition markers (bug 55332)
15868 <p style="font-size: 100px; color: expres〱ion((title='XSSed'),'red')">A</p>
15869 <p style="font-size: 100px; color: expresゝion((title='XSSed'),'red')">B</p>
15870 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">C</p>
15871 <p style="font-size: 100px; color: expresヽion((title='XSSed'),'red')">D</p>
15872 <p style="font-size: 100px; color: expresﹽion((title='XSSed'),'red')">E</p>
15873 <p style="font-size: 100px; color: expresﹼion((title='XSSed'),'red')">F</p>
15874 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">G</p>
15876 <p style="/* insecure input */">A</p>
15877 <p style="/* insecure input */">B</p>
15878 <p style="/* insecure input */">C</p>
15879 <p style="/* insecure input */">D</p>
15880 <p style="/* insecure input */">E</p>
15881 <p style="/* insecure input */">F</p>
15882 <p style="/* insecure input */">G</p>
15887 Table attribute legitimate extension
15890 !+ style="<nowiki>color:blue</nowiki>"| status
15895 <th style="color:blue"> status
15901 Table attribute safety
15904 !+ style="<nowiki>border-width:expression(0+alert(document.cookie))</nowiki>"| status
15909 <th style="/* insecure input */"> status
15915 CSS line continuation 1
15917 <div style="background-image: u\ rl(test.jpg);"></div>
15919 <div style="/* insecure input */"></div>
15924 CSS line continuation 2
15926 <div style="background-image: u\ rl(test.jpg); "></div>
15928 <div style="/* invalid control char */"></div>
15939 Expansion of multi-line templates in attribute values (bug 6255)
15941 <div style="background: {{identity|#00FF00}}">-</div>
15943 <div style="background: #00FF00">-</div>
15949 Expansion of multi-line templates in attribute values (bug 6255 sanity check)
15951 <div style="background:
15954 <div style="background: #00FF00">-</div>
15957 <div style="background:
15962 Expansion of multi-line templates in attribute values (bug 6255 sanity check 2)
15964 <div style="background: #00FF00">-</div>
15966 <div style="background: #00FF00">-</div>
15971 evil <math>-wiki-tags without Extension:Math enabled
15973 <math><img src="some evil external link"><script>some_evil_javascript();</script></math>
15975 <p><math><img src="some evil external link"><script>some_evil_javascript();</script></math></p>
15979 ### Parser hooks (see tests/parser/parserTestsParserHook.php for the <tag> extension)
15982 Parser hook: empty input
15995 Parser hook: empty input using terminated empty elements
16008 Parser hook: empty input using terminated empty elements (space before)
16021 Parser hook: basic input
16035 Parser hook: case insensitive
16049 Parser hook: case insensitive, redux
16062 Parser hook: nested tags
16066 <tag><tag></tag></tag>
16077 Parser hook: basic arguments
16079 <tag width=200 height = "100" depth = '50' square></tag>
16094 Parser hook: argument containing a forward slash (bug 5344)
16096 <tag filename='/tmp/bla'></tag>
16101 'filename' => '/tmp/bla',
16108 Parser hook: empty input using terminated empty elements (bug 2374)
16121 # </tag> should be output literally since there is no matching tag that begins it
16123 Parser hook: basic arguments using terminated empty elements (bug 2374)
16125 <tag width=200 height = "100" depth = '50' square/>
16144 ### (see tests/parser/parserTestsParserHook.php for the <statictag> extension)
16148 Parser hook: static parser hook not inside a comment
16150 <statictag>hello, world</statictag>
16151 <statictag action=flush/>
16159 Parser hook: static parser hook inside a comment
16161 <!-- <statictag>hello, world</statictag> -->
16162 <statictag action=flush/>
16168 # Nested template calls; this case was broken by Parser.php rev 1.506,
16172 Template:One-parameter
16174 (My parameter is: {{{1}}})
16178 Template:Map-one-parameter
16180 {{{{{1}}}|{{{2}}}}}
16184 Nested template calls
16186 {{Map-one-parameter|One-parameter|param}}
16188 <p>(My parameter is: param)
16197 # HTML+Tidy effectively strips out the empty tags completely
16198 # But since Parsoid doesn't it wraps the <s></s> tags in p-tags
16199 # which Tidy would have done for the PHP parser had there been content inside it.
16201 Sanitizer: Closing of open tags
16203 <s></s><table></table>
16205 <s></s><table></table>
16208 <p><s></s></p><table></table>
16212 Sanitizer: Closing of open but not closed tags
16221 Sanitizer: Closing of closed but not open tags
16231 Sanitizer: Closing of closed but not open table tags
16235 Table not started</td></tr></table>
16237 <p>Table not started</p>
16239 <p>Table not started</p>
16243 Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=""
16245 <span id="æ: v">byte</span>[[#æ: v|backlink]]
16247 <p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a>
16251 # In HTML5, the restrictions are that id must contain at least one character,
16252 # and must not contain any space characters.
16254 Sanitizer: Validating the contents of the id attribute (bug 4515)
16258 <br id="" /><br id="a space" />
16263 # In HTML5, id must be unique amongst all the ids in the element's home subtree.
16265 Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301)
16269 <br id="foo" /><br id="foo" />
16271 Something need to be done. foo-2 ?
16275 Sanitizer: Validating that <meta> and <link> work, but only for Microdata
16278 <meta itemprop="hello" content="world">
16279 <meta http-equiv="refresh" content="5">
16280 <meta itemprop="hello" http-equiv="refresh" content="5">
16281 <link itemprop="hello" href="{{SERVER}}">
16282 <link rel="stylesheet" href="{{SERVER}}">
16283 <link rel="stylesheet" itemprop="hello" href="{{SERVER}}">
16287 <p> <meta itemprop="hello" content="world" />
16288 <meta http-equiv="refresh" content="5">
16289 <meta itemprop="hello" content="5" />
16291 <link itemprop="hello" href="http://example.org" />
16292 <link rel="stylesheet" href="<a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>">
16293 <link itemprop="hello" href="http://example.org" />
16299 Language converter: output gets cut off unexpectedly (bug 5757)
16303 this bit is safe: }-
16305 but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}-
16307 then we get cut off here: }-
16309 all additional text is vanished
16311 <p>this bit is safe: }-
16312 </p><p>but if we add a conversion instance: xxx
16313 </p><p>then we get cut off here: }-
16314 </p><p>all additional text is vanished
16319 Self closed html pairs (bug 5487)
16322 <center><font id="bug" />Centered text</center>
16323 <div><font id="bug2" />In div text</div>
16325 <center><font id="bug" />Centered text</center>
16326 <div><font id="bug2" />In div text</div>
16335 Punctuation: nbsp before exclamation
16339 <p>C'est grave !
16344 Punctuation: CSS !important (bug 11874)
16346 <div style="width:50% !important">important</div>
16348 <div style="width:50% !important">important</div>
16353 Punctuation: CSS ! important (bug 11874; with space after)
16355 <div style="width:50% ! important">important</div>
16357 <div style="width:50% ! important">important</div>
16362 HTML bullet list, closed tags (bug 5497)
16375 <ul data-parsoid='{"stx":"html"}'>
16376 <li data-parsoid='{"stx":"html"}'>One</li>
16377 <li data-parsoid='{"stx":"html"}'>Two</li>
16383 HTML bullet list, unclosed tags (bug 5497)
16395 <ul data-parsoid='{"stx":"html"}'>
16396 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
16397 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
16403 HTML ordered list, closed tags (bug 5497)
16416 <ol data-parsoid='{"stx":"html"}'>
16417 <li data-parsoid='{"stx":"html"}'>One</li>
16418 <li data-parsoid='{"stx":"html"}'>Two</li>
16424 HTML ordered list, unclosed tags (bug 5497)
16437 <ol data-parsoid='{"stx":"html"}'>
16438 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
16439 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
16445 HTML nested bullet list, closed tags (bug 5497)
16470 HTML nested bullet list, open tags (bug 5497)
16507 HTML nested ordered list, closed tags (bug 5497)
16532 HTML nested ordered list, open tags (bug 5497)
16569 HTML ordered list item with parameters oddity
16571 <ol><li id="fragment">One</li>
16574 <ol><li id="fragment">One</li>
16579 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
16581 bug 5918: autonumbering
16583 [http://first/] [http://second] [ftp://ftp]
16587 [mailto:enclosed@mail.tld With target]
16589 [mailto:enclosed@mail.tld]
16591 mailto:inline@mail.tld
16593 <p><a rel="nofollow" class="external autonumber" href="http://first/">[1]</a> <a rel="nofollow" class="external autonumber" href="http://second">[2]</a> <a rel="nofollow" class="external autonumber" href="ftp://ftp">[3]</a>
16594 </p><p><a rel="nofollow" class="external free" href="ftp://inlineftp">ftp://inlineftp</a>
16595 </p><p><a rel="nofollow" class="external text" href="mailto:enclosed@mail.tld">With target</a>
16596 </p><p><a rel="nofollow" class="external autonumber" href="mailto:enclosed@mail.tld">[4]</a>
16597 </p><p><a rel="nofollow" class="external free" href="mailto:inline@mail.tld">mailto:inline@mail.tld</a>
16600 <p><a rel="mw:ExtLink" href="http://first/"></a> <a rel="mw:ExtLink" href="http://second"></a> <a rel="mw:ExtLink" href="ftp://ftp"></a></p>
16601 <p><a rel="mw:ExtLink" href="ftp://inlineftp">ftp://inlineftp</a></p>
16602 <p><a rel="mw:ExtLink" href="mailto:enclosed@mail.tld">With target</a></p>
16603 <p><a rel="mw:ExtLink" href="mailto:enclosed@mail.tld"></a></p>
16604 <p><a rel="mw:ExtLink" href="mailto:inline@mail.tld">mailto:inline@mail.tld</a></p>
16609 # Security and HTML correctness
16610 # From Nick Jenkins' fuzz testing
16614 Fuzz testing: Parser13
16629 Fuzz testing: Parser14
16634 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
16635 http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
16637 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
16643 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
16645 <div id="toc" class="toc">
16646 <div id="toctitle">
16650 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
16657 Fuzz testing: Parser14-table
16662 <h2><span class="mw-headline" id="a">a</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: a">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
16663 <table style="__TOC__">
16668 <h2><span class="mw-headline" id="a">a</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: a">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
16669 <table style="__TOC__">
16676 # Known to produce bogus xml (extra </td>)
16678 Fuzz testing: Parser16
16707 Fuzz testing: Parser21
16710 ! irc://{{ftp://a" onmouseover="alert('hello world');"
16715 <th> <a rel="nofollow" class="external free" href="irc://{{ftp://a">irc://{{ftp://a</a>" onmouseover="alert('hello world');"
16725 Fuzz testing: Parser22
16727 http://===r:::https://b
16731 <p><a rel="nofollow" class="external free" href="http://===r:::https://b">http://===r:::https://b</a>
16739 # Known to produce bad XML for now
16741 Fuzz testing: Parser24
16748 | {{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--><noinclude>}}}} >
16749 <br style="onmouseover='alert(document.cookie);' " />
16751 MOVE YOUR MOUSE CURSOR OVER THIS TEXT
16756 <u class="|">}}}} >
16757 <br style="onmouseover='alert(document.cookie);'" />
16759 MOVE YOUR MOUSE CURSOR OVER THIS TEXT
16768 # Note: the current result listed for this is not what the original one was,
16769 # but the original bug was JavaScript injection, which is fixed in any case.
16770 # It's not clear that the original result listed was any more correct than the
16771 # current one. Original result:
16774 # <li class="||">
16775 # }}}blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
16777 Fuzz testing: Parser25 (bug 6055)
16783 }}}blah" onmouseover="alert('hello world');" align="left"'''MOVE MOUSE CURSOR OVER HERE
16785 <p><LI CLASS=blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
16790 Fuzz testing: URL adjacent extension (with space, clean)
16792 http://example.com <nowiki>junk</nowiki>
16794 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> junk
16797 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a> <span typeof="mw:Nowiki">junk</span></p>
16801 Fuzz testing: URL adjacent extension (no space, dirty; nowiki)
16803 http://example.com<nowiki>junk</nowiki>
16805 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>junk
16808 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a><span typeof="mw:Nowiki">junk</span></p>
16812 Fuzz testing: URL adjacent extension (no space, dirty; pre)
16814 http://example.com<pre>junk</pre>
16816 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre>
16819 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></p>
16824 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a></p><pre data-parsoid='{"stx":"html"}'>junk</pre>
16828 Fuzz testing: image with bogus manual thumbnail
16830 [[Image:foobar.jpg|thumbnail= ]]
16832 <div class="thumb tright"><div class="thumbinner" style="width:182px;">Error creating thumbnail: <div class="thumbcaption"></div></div></div>
16835 <figure class="mw-default-size" typeof="mw:Error mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"manualthumb","ak":"thumbnail= "}],"dsr":[0,32,2,2]}' data-mw='{"errors":[{"key":"missing-thumbnail","message":"This thumbnail does not exist.","params":{"name":""}}],"thumb":""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{},"dsr":[2,30,null,null]}'><img resource="./File:Foobar.jpg" src="./Special:FilePath/" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"220"},"sa":{"resource":"Image:foobar.jpg"}}'/></a></figure>
16839 Fuzz testing: encoded newline in generated HTML replacements (bug 6577)
16841 <pre dir=" "></pre>
16843 <pre dir=" "></pre>
16848 Parsing optional HTML elements (Bug 6171)
16853 <td> Some tabular data</td>
16854 <td> More tabular data ...
16855 <td> And yet som tabular data</td>
16861 <td> Some tabular data</td>
16862 <td> More tabular data ...
16863 </td><td> And yet som tabular data</td>
16870 Correct handling of <td>, <tr> (Bug 6171)
16875 <td> Some tabular data</td>
16876 <td> More tabular data ...</td>
16877 <td> And yet som tabular data</td>
16883 <td> Some tabular data</td>
16884 <td> More tabular data ...</td>
16885 <td> And yet som tabular data</td>
16893 Parsing crashing regression (fr:JavaScript)
16897 <p></body></x>
16902 Inline wiki vs wiki block nesting
16908 <p><b>Bold paragraph</b>
16909 </p><p>New wiki paragraph
16913 # FIXME: The current php output is documented
16914 # and desired output is the parsoid target.
16916 Inline HTML vs wiki block nesting
16922 <p><b>Bold paragraph
16923 </p><p>New wiki paragraph</b>
16926 <p><b>Bold paragraph</b>
16927 </p><p>New wiki paragraph
16931 # Original result was this:
16932 # <p><b>bold</b><b>bold<i>bolditalics</i></b>
16934 # While that might be marginally more intuitive, maybe, the six-apostrophe
16935 # construct is clearly pathological and the result stated here (which is what
16936 # the parser actually does) is about as reasonable as anything.
16938 Mixing markup for italics and bold
16941 '''bold''''''bold''bolditalics'''''
16943 <p>'<i>bold'</i><b>bold<i>bolditalics</i></b>
16951 Article for special page transclusion test
16955 Special page transclusion
16958 {{Special:Prefixindex/Xyzzyx}}
16960 <table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
16965 Special page transclusion twice (bug 5021)
16968 {{Special:Prefixindex/Xyzzyx}}
16969 {{Special:Prefixindex/Xyzzyx}}
16971 <table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
16972 <table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
16977 Transclusion of default MediaWiki message
16979 {{MediaWiki:Mainpage}}
16986 Transclusion of nonexistent MediaWiki message
16988 {{MediaWiki:Mainpagexxx}}
16990 <p><a href="/index.php?title=MediaWiki:Mainpagexxx&action=edit&redlink=1" class="new" title="MediaWiki:Mainpagexxx (page does not exist)">MediaWiki:Mainpagexxx</a>
16995 Transclusion of MediaWiki message with underscore
16997 {{MediaWiki:history_short}}
17004 Transclusion of MediaWiki message with space
17006 {{MediaWiki:history short}}
17013 Invalid header with following text
17023 Section extraction test (section 0)
17043 Section extraction test (section 1)
17065 Section extraction test (section 2)
17086 Section extraction test (section 3)
17106 Section extraction test (section 4)
17130 Section extraction test (section 5)
17150 Section extraction test (section 6)
17171 Section extraction test (section 7)
17191 Section extraction test (section 8)
17211 Section extraction test (section 9)
17232 Section extraction test (section 10)
17252 Section extraction test (nonexistent section 11)
17271 Section extraction test with bogus heading (section 1)
17276 ==bogus== not a legal section
17280 ==bogus== not a legal section
17284 Section extraction test with bogus heading (section 2)
17289 ==bogus== not a legal section
17296 Section extraction test with comment after heading (section 1)
17308 Section extraction test with comment after heading (section 2)
17320 Section extraction test with bogus <nowiki> heading (section 1)
17325 ==bogus== <nowiki>not a legal section</nowiki>
17329 ==bogus== <nowiki>not a legal section</nowiki>
17333 Section extraction test with bogus <nowiki> heading (section 2)
17338 ==bogus== <nowiki>not a legal section</nowiki>
17344 # Formerly testing for bug 2587, now resolved by the use of unmarked sections
17345 # instead of respecting commented sections
17347 Section extraction prefixed by comment (section 1)
17358 Section extraction prefixed by comment (section 2)
17368 # Formerly testing for bug 2607, now resolved by the use of unmarked sections
17369 # instead of respecting HTML-style headings
17371 Section extraction, mixed wiki and html (section 1)
17387 Section extraction, mixed wiki and html (section 2)
17403 # Formerly testing for bug 3342
17405 Section extraction, heading surrounded by <noinclude>
17409 <noinclude>==unmarked==</noinclude>
17415 # Test behavior of bug 19910
17417 Sectiion with all-equals
17422 The line above must have a trailing space
17425 But just in case it doesn't...
17429 But just in case it doesn't...
17433 Section replacement test (section 0)
17464 Section replacement test (section 1)
17493 Section replacement test (section 2)
17523 Section replacement test (section 3)
17554 Section replacement test (section 4)
17581 Section replacement test (section 5)
17612 Section replacement test (section 6)
17642 Section replacement test (section 7)
17673 Section replacement test (section 8)
17704 Section replacement test (section 9)
17733 Section replacement test (section 10)
17763 Section replacement test with initial whitespace (bug 13728)
17767 Preformatted initial line
17771 Preformatted initial line
17778 Section extraction, heading followed by pre with 20 spaces (bug 6398)
17790 Section extraction, heading followed by pre with 19 spaces (bug 6398 sanity check)
17803 Section extraction, <pre> around bogus header (bug 10309)
17820 Section replacement, <pre> around bogus header (bug 10309)
17822 noxml replace=2,"xxx"
17842 Handling of 
 in URLs
17846 <ul><li><ul><li> <a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
17849 <ul><li><ul><li> <a rel="mw:ExtLink" href="irc://
17851 a</a></li></ul></li></ul>
17855 Handling of %0A in URLs
17859 <ul><li><ul><li> <a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
17862 <ul><li><ul><li> <a rel="mw:ExtLink" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
17866 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
17868 5 quotes, code coverage +1 line
17875 <p><b><i></i></b></p>
17878 # same html as previous, but wikitext adjusted to match parsoid html2wt
17879 # note that wt2html and html2html will put the <i> before the <b>
17881 5 quotes, code coverage +1 line w/ nowiki (1)
17883 parsoid=wt2wt,html2wt
17885 '''''<nowiki/>'''''
17890 <p><b><i></i></b></p>
17893 # same as previous, just swapping the <i> and <b>
17895 5 quotes, code coverage +1 line w/ nowiki (2)
17897 '''''<nowiki/>'''''
17902 <p><i><b></b></i></p>
17906 Special:Search page linking.
17910 <p><a href="/wiki/Special:Search" title="Special:Search">Special:Search</a>
17915 {{!}} is a magic word
17917 {{!}} is a magic word there and {{!}} is still a magic word here
17919 <p>| is a magic word there and | is still a magic word here
17922 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}' data-parsoid='{"pi":[[]]}'>|</span> is a magic word there and <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}' data-parsoid='{"pi":[[]]}'>|</span> is still a magic word here</p>
17928 title=[[Parser test]]
17933 * {{FULLPAGENAMEE}}
17935 * {{BASEPAGENAMEE}}
17939 * {{ROOTPAGENAMEE}}
17941 * {{TALKPAGENAMEE}}
17942 * {{SUBJECTPAGENAME}}
17943 * {{SUBJECTPAGENAMEE}}
17946 * {{NAMESPACENUMBER}}
17950 * {{SUBJECTSPACEE}}
17951 * {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}}
17953 <ul><li> Parser test</li>
17954 <li> Parser_test</li>
17955 <li> Parser test</li>
17956 <li> Parser_test</li>
17957 <li> Parser test</li>
17958 <li> Parser_test</li>
17959 <li> Parser test</li>
17960 <li> Parser_test</li>
17961 <li> Parser test</li>
17962 <li> Parser_test</li>
17963 <li> Talk:Parser test</li>
17964 <li> Talk:Parser_test</li>
17965 <li> Parser test</li>
17966 <li> Parser_test</li>
17974 <li> <a href="/index.php?title=Template:Dynamic&action=edit&redlink=1" class="new" title="Template:Dynamic (page does not exist)">Template:Dynamic</a></li></ul>
17977 ### Note: Above tests excludes the "{{NUMBEROFADMINS}}" magic word because it generates a MySQL error when included.
17987 image4 |300px| centre
17988 image5.svg| http://///////
17993 <ul class="gallery mw-gallery-traditional">
17994 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
17995 <div class="thumb" style="height: 150px;">Image1.png</div>
17996 <div class="gallerytext">
17999 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18000 <div class="thumb" style="height: 150px;">Image2.gif</div>
18001 <div class="gallerytext">
18006 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18007 <div class="thumb" style="height: 150px;">Image3</div>
18008 <div class="gallerytext">
18011 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18012 <div class="thumb" style="height: 150px;">Image4</div>
18013 <div class="gallerytext">
18018 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18019 <div class="thumb" style="height: 150px;">Image5.svg</div>
18020 <div class="gallerytext">
18021 <p><a rel="nofollow" class="external free" href="http://///////">http://///////</a>
18025 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18026 <div class="thumb" style="height: 150px;">* image6</div>
18027 <div class="gallerytext">
18035 Gallery (with options)
18037 <gallery widths='70px' heights='40px' perrow='2' caption='Foo [[Main Page]]' >
18038 File:Nonexistent.jpg|caption
18039 File:Nonexistent.jpg
18040 image:foobar.jpg|some '''caption''' [[Main Page]]
18042 image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
18045 <ul class="gallery mw-gallery-traditional" style="max-width: 226px;_width: 226px;">
18046 <li class='gallerycaption'>Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></li>
18047 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18048 <div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
18049 <div class="gallerytext">
18054 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18055 <div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
18056 <div class="gallerytext">
18059 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18060 <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
18061 <div class="gallerytext">
18062 <p>some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
18066 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18067 <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
18068 <div class="gallerytext">
18071 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18072 <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a foo-bar." src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
18073 <div class="gallerytext">
18083 Gallery with link that has fragment
18086 image:foobar.jpg|link=Main_Page
18087 image:foobar.jpg|link=Main_Page#section
18088 image:foobar.jpg|link=Main Page#section|caption
18091 <ul class="gallery mw-gallery-traditional">
18092 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18093 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18094 <div class="gallerytext">
18097 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18098 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18099 <div class="gallerytext">
18102 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18103 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18104 <div class="gallerytext">
18114 Gallery with wikitext inside caption
18117 File:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=inneralt]]|alt=galleryalt
18118 File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt
18121 <ul class="gallery mw-gallery-traditional">
18122 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18123 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18124 <div class="gallerytext">
18125 <p><a href="/wiki/File:Foobar.jpg" class="image" title="desc"><img alt="inneralt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a>
18129 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18130 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18131 <div class="gallerytext">
18132 <p>This is a test template
18141 gallery (with showfilename option)
18143 <gallery showfilename>
18144 File:Nonexistent.jpg|caption
18145 File:Nonexistent.jpg
18146 image:foobar.jpg|some '''caption''' [[Main Page]]
18150 <ul class="gallery mw-gallery-traditional">
18151 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18152 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18153 <div class="gallerytext">
18154 <p><a href="/wiki/File:Nonexistent.jpg" title="File:Nonexistent.jpg">Nonexistent.jpg</a><br />
18159 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18160 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18161 <div class="gallerytext">
18162 <p><a href="/wiki/File:Nonexistent.jpg" title="File:Nonexistent.jpg">Nonexistent.jpg</a><br />
18166 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18167 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18168 <div class="gallerytext">
18169 <p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
18170 some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
18174 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18175 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18176 <div class="gallerytext">
18177 <p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
18186 Gallery (with namespace-less filenames)
18189 File:Nonexistent.jpg
18195 <ul class="gallery mw-gallery-traditional">
18196 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18197 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18198 <div class="gallerytext">
18201 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18202 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18203 <div class="gallerytext">
18206 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18207 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18208 <div class="gallerytext">
18211 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18212 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
18213 <div class="gallerytext">
18221 HTML Hex character encoding (spells the word "JavaScript")
18223 parsoid=wt2html,wt2wt,html2html
18225 JavaScript
18227 <p>JavaScript
18232 <p><span typeof="mw:Entity">J</span><span typeof="mw:Entity">a</span><span typeof="mw:Entity">v</span><span typeof="mw:Entity">a</span><span typeof="mw:Entity">S</span><span typeof="mw:Entity">c</span><span typeof="mw:Entity">r</span><span typeof="mw:Entity">i</span><span typeof="mw:Entity">p</span><span typeof="mw:Entity">t</span></p>
18236 HTML Hex character encoding bogus encoding (bug 26437 regression check)
18240 <p>&#xsee;&#XSEE;
18243 <p>&#xsee;&#XSEE;</p>
18247 HTML Hex character encoding mixed case
18249 parsoid=wt2html,wt2wt,html2html
18258 <p><span typeof="mw:Entity">î</span><span typeof="mw:Entity">î</span></p>
18261 # See: http://www.w3.org/TR/html5/syntax.html#character-references
18262 # Note that U+000C (form feed) is not a valid XML character, so
18263 # it is banned even though allowed in HTML5.
18265 Illegal character references (T106578)
18270 ; Control (low): 
18271 ; Control (high):  Ÿ
18272 ; Surrogate: ��
18273 ; This is an okay astral character: 💩
18282 <dt>Control (low)</dt>
18284 <dt>Control (high)</dt>
18285 <dd>&#x7F; &#x9F;</dd>
18287 <dd>&#xD83D;&#xDCA9;</dd>
18288 <dt>This is an okay astral character</dt>
18294 __FORCETOC__ override
18306 ISBN 978-0-1234-56 789
18308 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789
18311 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789</p>
18313 <p><a href="./Special:BookSources/9780123456" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978-0-1234-56</a><span typeof="mw:Entity" data-parsoid='{"src":"&#x20;","srcContent":" "}'> </span>789</p>
18317 ISBN followed by 5 spaces
18328 ISBN ISBN 1234567890
18330 <p>ISBN <a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
18333 <p>ISBN <a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a></p>
18336 # Uppercase X and lowercase x as well
18347 <p><a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-X</a>
18348 <a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-x</a>
18349 <a href="/wiki/Special:BookSources/080442957X" class="internal mw-magiclink-isbn">ISBN 080442957X</a>
18350 <a href="/wiki/Special:BookSources/080442957X" class="internal mw-magiclink-isbn">ISBN 080442957x</a>
18351 <a href="/wiki/Special:BookSources/978080442957X" class="internal mw-magiclink-isbn">ISBN 978080442957X</a>
18352 <a href="/wiki/Special:BookSources/978080442957X" class="internal mw-magiclink-isbn">ISBN 978080442957x</a>
18355 <p><a href="./Special:BookSources/346204561X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 3-462-04561-X</a>
18356 <a href="./Special:BookSources/346204561X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 3-462-04561-x</a>
18357 <a href="./Special:BookSources/080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 080442957X</a>
18358 <a href="./Special:BookSources/080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 080442957x</a>
18359 <a href="./Special:BookSources/978080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978080442957X</a>
18360 <a href="./Special:BookSources/978080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978080442957x</a></p>
18364 ISBN with empty prefix (parsoid test)
18368 <p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
18371 <p><a href="./Special:BookSources/1234567890" rel="mw:WikiLink">ISBN 1234567890</a></p>
18375 Bug 22905: <abbr> followed by ISBN followed by </a>
18377 <abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]
18379 <p><abbr>(fr)</abbr> <a href="/wiki/Special:BookSources/2753300917" class="internal mw-magiclink-isbn">ISBN 2753300917</a> <a rel="nofollow" class="external text" href="http://www.example.com">example.com</a>
18382 <p><abbr data-parsoid='{"stx":"html"}'>(fr)</abbr> <a href="./Special:BookSources/2753300917" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 2753300917</a> <a rel="mw:ExtLink" href="http://www.example.com">example.com</a></p>
18390 <p>RFC <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc1234">RFC 1234</a>
18395 Double RFC with a wiki link
18399 <p>RFC <a href="/index.php?title=RFC_1234&action=edit&redlink=1" class="new" title="RFC 1234 (page does not exist)">RFC 1234</a>
18408 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987
18411 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987</p>
18415 Centre-aligned image
18417 [[Image:foobar.jpg|centre]]
18419 <div class="center"><div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div></div>
18426 [[Image:foobar.jpg|none]]
18428 <div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
18433 Width + Height sized image (using px) (height is ignored)
18435 [[Image:foobar.jpg|640x480px]]
18437 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
18442 Width-sized image (using px, no following whitespace)
18444 [[Image:foobar.jpg|640px]]
18446 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
18451 Width-sized image (using px, with following whitespace - test regression from r39467)
18453 [[Image:foobar.jpg|640px ]]
18455 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
18460 Width-sized image (using px, with preceding whitespace - test regression from r39467)
18462 [[Image:foobar.jpg| 640px]]
18464 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
18469 Image with page parameter
18473 [[File:LoremIpsum.djvu|page=2]]
18475 <p><a href="/index.php?title=File:LoremIpsum.djvu&page=2" class="image"><img alt="LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" width="2480" height="3508" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" /></a>
18478 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"page","ak":"page=2"}]}'><a href="./File:LoremIpsum.djvu" data-parsoid='{"a":{"href":"./File:LoremIpsum.djvu"},"sa":{}}'><img resource="./File:LoremIpsum.djvu" src="//example.com/images/5/5f/LoremIpsum.djvu" data-file-width="2480" data-file-height="3508" data-file-type="bitmap" height="3508" width="2480" data-parsoid='{"a":{"resource":"./File:LoremIpsum.djvu","height":"3508","width":"2480"},"sa":{"resource":"File:LoremIpsum.djvu"}}'/></a></span></p>
18482 Another italics / bold test
18490 # FIXME: The php output seems broken. It's interleaving some open/close tags.
18496 <dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dt></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl>
18499 <dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dd></dl></dd></dl></dt></dl></dt></dl></dt></dl></dd></dl>
18504 # Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag.
18506 Images with the "|" character in the comment
18508 [[File:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]]
18510 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&param2=%7Cx">external</a> URL</div></div></div>
18513 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>An <a rel="mw:ExtLink" href="http://test/?param1=|left|&param2=|x">external</a> URL</figcaption></figure>
18517 [Before] HTML without raw HTML enabled ($wgRawHtml==false)
18519 <html><script>alert(1);</script></html>
18521 <p><html><script>alert(1);</script></html>
18526 HTML with raw HTML ($wgRawHtml==true)
18530 <html><script>alert(1);</script></html>
18532 <p><script>alert(1);</script>
18537 Parents of subpages, one level up
18539 subpage title=[[Subpage test/L1/L2/L3]]
18543 <p><a href="/index.php?title=Subpage_test/L1/L2&action=edit&redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">L2</a>
18549 Parents of subpages, one level up, not named
18551 subpage title=[[Subpage test/L1/L2/L3]]
18555 <p><a href="/index.php?title=Subpage_test/L1/L2&action=edit&redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">Subpage test/L1/L2</a>
18562 Parents of subpages, two levels up
18564 subpage title=[[Subpage test/L1/L2/L3]]
18570 <p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1</a>2
18571 </p><p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1l</a>
18576 Parents of subpages, two levels up, without trailing slash or name.
18578 subpage title=[[Subpage test/L1/L2/L3]]
18587 Parents of subpages, two levels up, with lots of extra trailing slashes.
18589 subpage title=[[Subpage test/L1/L2/L3]]
18593 <p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">Subpage test/L1</a>
18598 Subpage test/L1/L2/L3Sibling
18604 Transclusion of a sibling page (one level up)
18606 subpage title=[[Subpage test/L1/L2/L3]]
18615 Transclusion of a child page
18617 subpage title=[[Subpage test/L1/L2]]
18626 Non-transclusion because of too many up levels
18628 subpage title=[[Subpage test/L1/L2/L3]]
18630 {{../../../../More than parent}}
18632 <p>{{../../../../More than parent}}
18637 Definition list code coverage
18643 <dl><dt> title  </dt>
18645 <dt> title </dt>
18651 <dl><dt> title <span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
18652 <dt> title<span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
18653 <dt>title</dt><dd> def</dd></dl>
18657 Don't fall for the self-closing div
18659 <div>hello world</div/>
18661 <div>hello world</div>
18670 <p>[[:Template:Msg]]
18679 <p><a href="/index.php?title=Template:QUERTY&action=edit&redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a>
18683 # This isn't needed for XHTML conformance, but would be handy as a fallback security measure
18685 Always escape literal '>' in output, not just after '<'
18699 <p>This is a test template
18700 This is a test template
18712 Inclusion of !userCanEdit() content
18716 <h2><span class="mw-headline" id="header">header</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=MediaWiki:Fake&action=edit&section=T-1" title="MediaWiki:Fake">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
18722 Out-of-order TOC heading levels
18731 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
18733 <li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a>
18735 <li class="toclevel-2 tocsection-2"><a href="#6"><span class="tocnumber">1.1</span> <span class="toctext">6</span></a></li>
18736 <li class="toclevel-2 tocsection-3"><a href="#3"><span class="tocnumber">1.2</span> <span class="toctext">3</span></a></li>
18739 <li class="toclevel-1 tocsection-4"><a href="#1"><span class="tocnumber">2</span> <span class="toctext">1</span></a>
18741 <li class="toclevel-2 tocsection-5"><a href="#5"><span class="tocnumber">2.1</span> <span class="toctext">5</span></a></li>
18742 <li class="toclevel-2 tocsection-6"><a href="#2_2"><span class="tocnumber">2.2</span> <span class="toctext">2</span></a></li>
18748 <h2><span class="mw-headline" id="2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
18749 <h6><span class="mw-headline" id="6">6</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: 6">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
18750 <h3><span class="mw-headline" id="3">3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: 3">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
18751 <h1><span class="mw-headline" id="1">1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: 1">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
18752 <h5><span class="mw-headline" id="5">5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: 5">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
18753 <h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
18759 ISBN with a dummy number
18769 ISBN with space-delimited number
18773 <p><a href="/wiki/Special:BookSources/9290170328" class="internal mw-magiclink-isbn">ISBN 92 9017 032 8</a>
18779 ISBN with multiple spaces, no number
18798 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
18799 </p><p>ISBN 12345678901
18805 ISBN with trailing year (bug 8110)
18807 ISBN 1-234-56789-0 - 2006
18809 ISBN 1 234 56789 0 - 2006
18811 <p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1-234-56789-0</a> - 2006
18812 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1 234 56789 0</a> - 2006
18820 {{anchorencode:foo bar©#%n}}
18822 <p>foo_bar.C2.A9.23.25n
18827 anchorencode trims spaces
18829 {{anchorencode: __pretty__please__}}
18836 anchorencode deals with links
18838 {{anchorencode: [[hello|world]] [[hi]]}}
18845 anchorencode deals with templates
18847 {{anchorencode: {{Foo}} }}
18854 anchorencode encodes like the TOC generator: (bug 18431)
18856 === _ +:.3A%3A&&]] ===
18857 {{anchorencode: _ +:.3A%3A&&]] }}
18860 <h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&&]]</span></h3>
18861 <p>.2B:.3A.253A.26.26.5D.5D
18866 Bug 6200: blockquotes and paragraph formatting
18887 Bug 8293: Use of center tag ruins paragraph formatting
18908 Parsing of overlapping (improperly nested) inline html tags
18910 <span><s>x</span></s>
18912 <p><span><s>x</span></s></span>
18915 <p><span><s>x</s></span>
18920 ### Language variants related tests
18923 Self-link in language variants
18925 title=[[Dunav]] language=sr
18927 Both [[Dunav]] and [[Дунав]] are names for this river.
18929 <p>Both <strong class="selflink">Dunav</strong> and <strong class="selflink">Дунав</strong> are names for this river.
18940 Link to another existing title shouldn't be parsed as self-link even if it's a variant of this title
18942 title=[[Duna]] language=sr
18944 [[Дуна]] is not a self-link while [[Duna]] and [[Dуна]] are still self-links.
18946 <p><a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Дуна</a> is not a self-link while <strong class="selflink">Duna</strong> and <strong class="selflink">Dуна</strong> are still self-links.
18951 Link to a section of a variant of this title shouldn't be parsed as self-link
18953 title=[[Duna]] language=sr
18955 [[Dуна]] is a self-link while [[Dunа#Foo]] and [[Dуна#Foo]] are not self-links.
18957 <p><strong class="selflink">Dуна</strong> is a self-link while <a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Dunа#Foo</a> and <a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Dуна#Foo</a> are not self-links.
18962 Link to pages in language variants
18966 Main Page can be written as [[Маин Паге]]
18968 <p>Main Page can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>
18974 Multiple links to pages in language variants
18978 [[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]].
18980 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a> same as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>.
18986 Simple template in language variants
18992 <p>This is a test template
18998 Template with explicit namespace in language variants
19004 <p>This is a test template
19010 Basic test for template parameter in language variants
19014 {{парамтест|param=foo}}
19016 <p>This is a test template with parameter foo
19022 Simple category in language variants
19026 [[Category:МедиаWики Усер'с Гуиде]]
19028 <a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%98%D0%B0:MediaWiki_User's_Guide" title="Категорија:MediaWiki User's Guide">MediaWiki User's Guide</a>
19045 Don't convert blue categorylinks to another variant (bug 33210)
19049 [[A]][[Category:分类]]
19051 <a href="/wiki/Category:%E5%88%86%E7%B1%BB" title="Category:分类">分类</a>
19056 Stripping -{}- tags (language variants)
19060 Latin proverb: -{Ne nuntium necare}-
19062 <p>Latin proverb: Ne nuntium necare
19068 Prevent conversion with -{}- tags (language variants)
19070 language=sr variant=sr-ec
19072 Latinski: -{Ne nuntium necare}-
19074 <p>Латински: Ne nuntium necare
19080 Prevent conversion of text with -{}- tags (language variants)
19082 language=sr variant=sr-ec
19084 Latinski: -{Ne nuntium necare}-
19086 <p>Латински: Ne nuntium necare
19092 Prevent conversion of links with -{}- tags (language variants)
19094 language=sr variant=sr-ec
19098 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
19104 -{}- tags within headlines (within html for parserConvert())
19106 language=sr variant=sr-ec
19110 <h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Уреди одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
19116 Explicit definition of language variant alternatives
19118 language=zh variant=zh-tw
19120 -{zh:China;zh-tw:Taiwan}-, not China
19122 <p>Taiwan, not China
19128 Conversion around HTML tags
19130 language=sr variant=sr-ec
19132 -{H|span=>sr-ec:script;title=>sr-ec:src;}-
19133 <span title="La-{sr-el:L;sr-ec:C;}-tin">ski</span>
19136 <span title="ЛаCтин">ски</span>
19142 Explicit session-wise language variant mapping (A flag and - flag)
19144 language=zh variant=zh-tw
19146 Taiwan is not China.
19147 But -{A|zh:China;zh-tw:Taiwan}- is China,
19148 (This-{-|zh:China;zh-tw:Taiwan}- should be stripped!)
19149 and -{China}- is China.
19151 <p>Taiwan is not China.
19152 But Taiwan is Taiwan,
19153 (This should be stripped!)
19154 and China is China.
19159 Explicit session-wise language variant mapping (H flag for hide)
19161 language=zh variant=zh-tw
19163 (This-{H|zh:China;zh-tw:Taiwan}- should be stripped!)
19166 <p>(This should be stripped!)
19172 Adding explicit conversion rule for title (T flag)
19174 language=zh variant=zh-tw showtitle
19176 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
19179 <p>Should be stripped!
19184 Testing that changing the language variant here in the tests actually works
19186 language=zh variant=zh showtitle
19188 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
19191 <p>Should be stripped!
19196 Recursive conversion of alt and title attrs shouldn't clear converter state
19198 language=zh variant=zh-cn showtitle
19200 -{H|zh-cn:Exclamation;zh-tw:exclamation;}-
19201 Should be stripped-{T|zh-cn:China;zh-tw:Taiwan}-<span title="exclamation">!</span>
19205 Should be stripped<span title="Exclamation">!</span>
19210 Bug 24072: more test on conversion rule for title
19212 language=zh variant=zh-tw showtitle
19214 This should be stripped-{T|zh:China;zh-tw:Taiwan}-!
19215 This won't take interferes with the title rule-{H|zh:Beijing;zh-tw:Taipei}-.
19218 <p>This should be stripped!
19219 This won't take interferes with the title rule.
19224 Partly disable title conversion if variant == main language code
19226 language=zh variant=zh title=[[ZH]] showtitle
19228 -{T|zh-cn:CN;zh-tw:TW}-
19236 Partly disable title conversion if variant == main language code, more
19238 language=zh variant=zh title=[[ZH]] showtitle
19248 Raw output of variant escape tags (R flag)
19250 language=zh variant=zh-tw
19252 Raw: -{R|zh:China;zh-tw:Taiwan}-
19254 <p>Raw: zh:China;zh-tw:Taiwan
19259 Strings evaluating false shouldn't be ignored by Language converter (T51072)
19261 language=zh variant=zh-cn
19263 -{zh-cn:0;zh-sg:1;zh-tw:2;zh-hk:3}-
19270 Conversion rules from [numeric-only string] to [something else] (T48634)
19272 language=zh variant=zh-cn
19274 -{H|0=>zh-cn:B}--{H|0=>zh-cn:C;0=>zh-cn:D}--{H|0=>zh-hans:A}-012345-{A|zh-tw:0;zh-cn:E;}-012345
19281 Bidirectional converter rule entries with an empty value should be ignored (T53551)
19283 language=zh variant=zh-cn
19285 -{H|zh-cn:foo;zh-tw:;}-foobar
19292 Unidirectional converter rule entries with an empty "from" string should be ignored (T53551)
19294 language=zh variant=zh-cn
19296 -{H|=>zh-cn:foo;}-foobar
19303 Empty converter rule entries shouldn't be inserted into the conversion table (T53551)
19305 language=zh variant=zh-cn
19314 Nested using of manual convert syntax
19316 language=zh variant=zh-hk
19318 Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-!
19320 <p>Nested: Hello Hong Kong!
19325 Proper conversion of text in external links
19327 language=sr variant=sr-ec
19329 http://www.google.com
19330 gopher://www.google.com
19331 [http://www.google.com http://www.google.com]
19332 [gopher://www.google.com gopher://www.google.com]
19333 [https://www.google.com irc://www.google.com]
19334 [ftp://www.google.com www.google.com/ftp://dir]
19335 [//www.google.com www.google.com]
19337 <p><a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
19338 <a rel="nofollow" class="external free" href="gopher://www.google.com">gopher://www.google.com</a>
19339 <a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
19340 <a rel="nofollow" class="external free" href="gopher://www.google.com">gopher://www.google.com</a>
19341 <a rel="nofollow" class="external text" href="https://www.google.com">irc://www.google.com</a>
19342 <a rel="nofollow" class="external text" href="ftp://www.google.com">www.гоогле.цом/фтп://дир</a>
19343 <a rel="nofollow" class="external text" href="//www.google.com">www.гоогле.цом</a>
19348 Do not convert roman numbers to language variants
19350 language=sr variant=sr-ec
19354 <p>Фридрих IV је цар.
19359 Unclosed language converter markup "-{"
19370 Don't convert raw rule "-{R|=>}-" to "=>"
19381 Don't break link parsing if language converter markup is in the caption.
19383 language=sr variant=sr-ec
19385 [[Main Page|-{R|main page}-]]
19387 <p><a href="/wiki/Main_Page" title="Маин Паге">main page</a>
19391 # FIXME: This test is currently broken in the PHP parser (bug 52661)
19393 Don't break image parsing if language converter markup is in the caption.
19397 [[File:Foobar.jpg|-{R|caption}-]]
19399 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
19403 # FIXME: This test is currently broken in the PHP parser (bug 52661)
19405 Don't break list handling if language converter markup is in the item.
19407 language=zh variant=zh-cn
19409 ;-{zh-cn:AAA;zh-tw:BBB}-
19411 <dl><dt><span class="error">在手动语言转换规则中检测到错误</span></dd></dl>
19418 # FIXME: This test is currently broken in the PHP parser (bug 52661)
19420 Don't break table handling if language converter markup is in the cell.
19422 language=sr variant=sr-ec
19445 Bug 529: Uncovered bullet
19454 # Plain MediaWiki does not remove empty lists, but tidy actually does.
19455 # Templates in Wikipedia rely on this behavior, as tidy has always been
19456 # enabled there. These tests are normally run *without* tidy, so specify the
19457 # full output here.
19458 # To test realistic parsing behavior, apply a tidy-like transformation to both
19459 # the expected output and your parser's output.
19461 Bug 529: Uncovered bullet leaving empty list, normally removed by tidy
19463 ******* Foo {{bullet}}
19465 <ul><li><ul><li><ul><li><ul><li><ul><li><ul><li><ul><li> Foo </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>
19471 Bug 529: Uncovered table already at line-start
19494 Bug 529: Uncovered bullet in parser function result
19496 * Foo {{lc:{{bullet}} }}
19504 Bug 5678: Double-parsed template argument
19506 {{lc:{{{1}}}|hello}}
19513 Bug 5678: Double-parsed template invocation
19515 {{lc:{{paramtest {{!}} param = hello }} }}
19517 <p>{{paramtest | param = hello }}
19522 Case insensitivity of parser functions for non-ASCII characters (bug 8143)
19525 title=[[Main Page]]
19527 {{PRVNÍVELKÉ:ěščř}}
19528 {{prvnívelké:ěščř}}
19548 Morwen/13: Unclosed link followed by heading
19555 <h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
19560 HHP2.1: Heuristics for headings in preprocessor parenthetical structures
19567 <h1><span class="mw-headline" id="heading">heading</span></h1>
19572 HHP2.2: Heuristics for headings in preprocessor parenthetical structures
19579 <h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
19594 Paragraphs inside divs (no extra line breaks)
19606 Paragraphs inside divs (extra line break on open)
19621 Paragraphs inside divs (extra line break on close)
19636 Paragraphs inside divs (extra line break on open and close)
19653 Nesting tags, paragraphs on lines which begin with <div>
19655 <div></div><strong>A
19658 <p><strong>A</strong></p>
19659 <p><strong>B</strong></p>
19667 # Bug 6200: <blockquote> should behave like <div> with respect to line breaks
19669 Bug 6200: paragraphs inside blockquotes (no extra line breaks)
19671 <blockquote>Line one
19673 Line two</blockquote>
19675 <blockquote>Line one
19676 Line two</blockquote>
19680 <p>Line one Line two</p>
19685 Bug 6200: paragraphs inside blockquotes (extra line break on open)
19690 Line two</blockquote>
19695 Line two</blockquote>
19700 Line two</blockquote>
19704 Bug 6200: paragraphs inside blockquotes (extra line break on close)
19706 <blockquote>Line one
19711 <blockquote>Line one
19724 Bug 6200: paragraphs inside blockquotes (extra line break on open and close)
19746 Paragraphs inside blockquotes/divs (no extra line breaks)
19748 <blockquote><div>Line one
19750 Line two</div></blockquote>
19752 <blockquote><div>Line one
19753 Line two</div></blockquote>
19758 Paragraphs inside blockquotes/divs (extra line break on open)
19763 Line two</div></blockquote>
19768 Line two</div></blockquote>
19773 Paragraphs inside blockquotes/divs (extra line break on close)
19775 <blockquote><div>Line one
19778 </div></blockquote>
19780 <blockquote><div>Line one
19783 </div></blockquote>
19788 Paragraphs inside blockquotes/divs (extra line break on open and close)
19794 </div></blockquote>
19800 </div></blockquote>
19805 Interwiki links trounced by replaceExternalLinks after early LinkHolderArray expansion
19807 wgLinkHolderBatchSize=0
19813 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?1" class="extiw" title="meatball:1">meatball:1</a>
19814 <a href="http://www.usemod.com/cgi-bin/mb.pl?2" class="extiw" title="meatball:2">meatball:2</a>
19815 <a href="http://www.usemod.com/cgi-bin/mb.pl?3" class="extiw" title="meatball:3">meatball:3</a>
19820 Free external link invading image caption
19822 [[Image:Foobar.jpg|thumb|http://x|hello]]
19824 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>hello</div></div></div>
19829 Bug 15196: localised external link numbers
19833 [http://en.wikipedia.org/]
19835 <p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/">[۱]</a>
19838 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/"></a></p>
19842 Multibyte character in padleft
19844 {{padleft:-Hello|7|Æ}}
19851 Multibyte character in padright
19853 {{padright:Hello-|7|Æ}}
19860 formatdate parser function
19862 {{#formatdate:2009-03-24}}
19864 <p><span class="mw-formatted-date" title="2009-03-24">2009-03-24</span>
19869 formatdate parser function, with default format
19871 {{#formatdate:2009-03-24|mdy}}
19873 <p><span class="mw-formatted-date" title="2009-03-24">March 24, 2009</span>
19878 Spacing of numbers in formatted dates
19880 {{#formatdate:January 15}}
19882 <p><span class="mw-formatted-date" title="01-15">January 15</span>
19887 formatdate parser function, with default format and on a page of which the content language is always English and different from the wiki content language
19889 language=nl title=[[MediaWiki:Common.css]]
19891 {{#formatdate:2009-03-24|dmy}}
19893 <p><span class="mw-formatted-date" title="2009-03-24">24 March 2009</span>
19906 Edit comment with link
19910 I like the [[Main Page]] a lot
19912 I like the <a href="/wiki/Main_Page" title="Main Page">Main Page</a> a lot
19916 Edit comment with link and link text
19920 I like the [[Main Page|best pages]] a lot
19922 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
19926 Edit comment with link and link text with suffix
19930 I like the [[Main Page|best page]]s a lot
19932 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
19936 Edit comment with section link (non-local, eg in history list)
19938 comment title=[[Main Page]]
19940 /* External links */ removed bogus entries
19942 <a href="/wiki/Main_Page#External_links" title="Main Page">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
19946 Edit comment with section link and text before it (non-local, eg in history list)
19948 comment title=[[Main Page]]
19950 pre-comment text /* External links */ removed bogus entries
19952 pre-comment text <a href="/wiki/Main_Page#External_links" title="Main Page">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
19956 Edit comment with section link (local, eg in diff view)
19958 comment local title=[[Main Page]]
19960 /* External links */ removed bogus entries
19962 <a href="#External_links">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
19966 Edit comment with subpage link (bug 14080)
19970 title=[[Subpage test]]
19972 Poked at a [[/subpage]] here...
19974 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a> here...
19978 Edit comment with subpage link and link text (bug 14080)
19982 title=[[Subpage test]]
19984 Poked at a [[/subpage|neat little page]] here...
19986 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">neat little page</a> here...
19990 Edit comment with bogus subpage link in non-subpage NS (bug 14080)
19993 title=[[Subpage test]]
19995 Poked at a [[/subpage]] here...
19997 Poked at a <a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> here...
20001 Edit comment with bare anchor link (local, as on diff)
20005 title=[[Main Page]]
20009 <a href="#section">#section</a>
20013 Edit comment with bare anchor link (non-local, as on history)
20016 title=[[Main Page]]
20020 <a href="/wiki/Main_Page#section" title="Main Page">#section</a>
20024 Anchor starting with underscore
20028 <p><a href="#_ref">One</a>
20033 Id starting with underscore
20035 <div id="_ref"></div>
20037 <div id="_ref"></div>
20042 Space normalisation on autocomment (bug 22784)
20045 title=[[Main Page]]
20047 /* __hello__world__ */
20049 <a href="/wiki/Main_Page#hello_world" title="Main Page">→</a><span dir="auto"><span class="autocomment">__hello__world__</span></span>
20053 percent-encoding and + signs in comments (Bug 26410)
20057 [[ABC%33D% ++]] [[ABC%33D% ++|+%20]]
20059 <a href="/index.php?title=ABC3D%25_%2B%2B&action=edit&redlink=1" class="new" title="ABC3D% ++ (page does not exist)">ABC3D% ++</a> <a href="/index.php?title=ABC3D%25_%2B%2B&action=edit&redlink=1" class="new" title="ABC3D% ++ (page does not exist)">+%20</a>
20062 # Parsoid doesn't support this yet: see bug 73581
20063 # but it *should* omit the 'src' attribute if the image is bad.
20064 # PHP side of tests was disabled in
20065 # mediawiki/core:6bd31e7d95161a6e88fa86df60871051da997c3c
20066 # because of issues in the PHP parserTests infrastructure
20067 # (but the output below is indeed what the PHP side emits)
20069 Bad images - basic functionality
20072 !! DISABLED/html/php
20074 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"bad-image","message":"This image is blacklisted in this context."}]}'><a href="./File:Bad.jpg"><img resource="./File:Bad.jpg" height="220" width="220"/></a></span></p>
20078 Bad images - bug 16039: text after bad image disappears
20083 !! DISABLED/html/php
20089 <span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"bad-image","message":"This image is blacklisted in this context."}]}'><a href="./File:Bad.jpg"><img resource="./File:Bad.jpg" height="220" width="220"/></a></span>
20094 Verify that displaytitle works (bug #22501) no displaytitle
20098 wgAllowDisplayTitle=true
20099 wgRestrictDisplayTitle=false
20101 this is not the the title
20104 <p>this is not the the title
20109 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=false
20114 wgAllowDisplayTitle=true
20115 wgRestrictDisplayTitle=false
20117 this is not the the title
20118 {{DISPLAYTITLE:whatever}}
20121 <p>this is not the the title
20126 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true mismatch
20131 wgAllowDisplayTitle=true
20132 wgRestrictDisplayTitle=true
20134 this is not the the title
20135 {{DISPLAYTITLE:whatever}}
20138 <p>this is not the the title
20143 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true matching
20148 wgAllowDisplayTitle=true
20149 wgRestrictDisplayTitle=true
20151 this is not the the title
20152 {{DISPLAYTITLE:screen}}
20155 <p>this is not the the title
20160 Verify that displaytitle works (bug #22501) AllowDisplayTitle=false
20165 wgAllowDisplayTitle=false
20167 this is not the the title
20168 {{DISPLAYTITLE:screen}}
20171 <p>this is not the the title
20172 <a href="/index.php?title=Template:DISPLAYTITLE:screen&action=edit&redlink=1" class="new" title="Template:DISPLAYTITLE:screen (page does not exist)">Template:DISPLAYTITLE:screen</a>
20177 Verify that displaytitle works (bug #22501) AllowDisplayTitle=false no DISPLAYTITLE
20182 wgAllowDisplayTitle=false
20184 this is not the the title
20187 <p>this is not the the title
20192 Verify that displaytitle handles inline CSS styles (bug 26547) - rejected value
20197 wgAllowDisplayTitle=true
20198 wgRestrictDisplayTitle=true
20200 this is not the the title
20201 {{DISPLAYTITLE:<span style="display: none;">s</span>creen}}
20203 <span style="/* attempt to bypass $wgRestrictDisplayTitle */">s</span>creen
20204 <p>this is not the the title
20209 Verify that displaytitle handles inline CSS styles (bug 26547) - accepted value
20214 wgAllowDisplayTitle=true
20215 wgRestrictDisplayTitle=true
20217 this is not the the title
20218 {{DISPLAYTITLE:<span style="color: red;">s</span>creen}}
20220 <span style="color: red;">s</span>creen
20221 <p>this is not the the title
20226 Page status indicators: Empty name is invalid
20230 <indicator name=" "></indicator>
20231 <indicator></indicator>
20233 <p><span class="error"><strong>Error:</strong> Page status indicators' <code>name</code> attribute must not be empty.</span>
20234 <span class="error"><strong>Error:</strong> Page status indicators' <code>name</code> attribute must not be empty.</span>
20239 Page status indicators: Weird syntaxes that are okay
20243 <indicator name="empty" />
20244 <indicator name="name"></indicator>
20253 Page status indicators: Torture test
20257 <indicator name="01">hello world</indicator>
20258 <indicator name="02">[[Main Page]]</indicator>
20259 <indicator name="03">[[File:Foobar.jpg|25px|link=]]</indicator>
20260 <indicator name="04">[[File:Foobar.jpg|25px]]</indicator>
20261 <indicator name="05">* foo
20263 <indicator name="06"><nowiki>foo</nowiki></indicator>
20264 <indicator name="07"> Preformatted</indicator>
20265 <indicator name="08"><div>Broken tag</indicator>
20266 <indicator name="09">{| class=wikitable
20269 <indicator name="10">Two
20271 paragraphs</indicator>
20274 02=<a href="/wiki/Main_Page" title="Main Page">Main Page</a>
20275 03=<img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/25px-Foobar.jpg" width="25" height="3" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/38px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg 2x" />
20276 04=<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/25px-Foobar.jpg" width="25" height="3" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/38px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg 2x" /></a>
20277 05=<ul><li> foo</li>
20281 07=<pre>Preformatted
20283 08=<div>Broken tag</div>
20285 09=<table class="wikitable">
20302 preload: check <noinclude> and <includeonly>
20306 Hello <noinclude>cruel</noinclude><includeonly>kind</includeonly> world.
20312 preload: check <onlyinclude>
20316 Goodbye <onlyinclude>Hello world</onlyinclude>
20322 preload: can pass tags through if we want to
20326 <includeonly><</includeonly>includeonly>Hello world<includeonly><</includeonly>/includeonly>
20328 <includeonly>Hello world</includeonly>
20332 preload: check that it doesn't try to do tricks
20336 * <!-- Hello --> ''{{world}}'' {{<includeonly>subst:</includeonly>How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
20338 * <!-- Hello --> ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
20342 Play a bit with r67090 and bug 3158
20344 <div style="width:50% !important"> </div>
20345 <div style="width:50% !important"> </div>
20346 <div style="width:50% !important"> </div>
20347 <div style="border : solid;"> </div>
20349 <div style="width:50% !important"> </div>
20350 <div style="width:50% !important"> </div>
20351 <div style="width:50% !important"> </div>
20352 <div style="border : solid;"> </div>
20355 <div style="width:50% !important" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
20356 <div style="width:50% !important" data-parsoid='{"stx":"html","a":{"style":"width:50% !important"},"sa":{"style":"width:50%&nbsp;!important"}}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
20357 <div style="width:50% !important" data-parsoid='{"stx":"html","a":{"style":"width:50% !important"},"sa":{"style":"width:50%&#160;!important"}}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
20358 <div style="border : solid;" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
20363 HTML5 data attributes
20365 <span data-foo="bar">Baz</span>
20366 <p data-abc-def_hij="">Quuz</p>
20368 <p><span data-foo="bar">Baz</span>
20370 <p data-abc-def_hij="">Quuz</p>
20375 percent-encoding and + signs in internal links (Bug 26410)
20377 [[User:+%]] [[Page+title%]]
20378 [[%+]] [[%+|%20]] [[%+ ]] [[%+r]]
20379 [[%]] [[+]] [[File:%+abc%39|foo|[[bar]]]]
20380 [[%33%45]] [[%33%45+]]
20382 <p><a href="/index.php?title=User:%2B%25&action=edit&redlink=1" class="new" title="User:+% (page does not exist)">User:+%</a> <a href="/index.php?title=Page%2Btitle%25&action=edit&redlink=1" class="new" title="Page+title% (page does not exist)">Page+title%</a>
20383 <a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%+</a> <a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%20</a> <a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%+ </a> <a href="/index.php?title=%25%2Br&action=edit&redlink=1" class="new" title="%+r (page does not exist)">%+r</a>
20384 <a href="/index.php?title=%25&action=edit&redlink=1" class="new" title="% (page does not exist)">%</a> <a href="/index.php?title=%2B&action=edit&redlink=1" class="new" title="+ (page does not exist)">+</a> <a href="/index.php?title=Special:Upload&wpDestFile=%25%2Babc9" class="new" title="File:%+abc9">bar</a>
20385 <a href="/index.php?title=3E&action=edit&redlink=1" class="new" title="3E (page does not exist)">3E</a> <a href="/index.php?title=3E%2B&action=edit&redlink=1" class="new" title="3E+ (page does not exist)">3E+</a>
20388 <p><a rel="mw:WikiLink" href="./User:+%25" title="User:+%">User:+%</a> <a rel="mw:WikiLink" href="Page+title%25" title="Page+title%">Page+title%</a>
20389 <a rel="mw:WikiLink" href="%25+" title="%+">%+</a> <a rel="mw:WikiLink" href="%25+" title="%+">%20</a> <a rel="mw:WikiLink" href="%25+" title="%+">%+ </a> <a rel="mw:WikiLink" href="%25+r" title="%+r">%+r</a>
20390 <a rel="mw:WikiLink" href="%25" title="%">%</a> <a rel="mw:WikiLink" href="+" title="+">+</a> <span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"foo"},{"ck":"caption","ak":"[[bar]]"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"<a rel=\"mw:WikiLink\" href=\"./Bar\" title=\"Bar\" data-parsoid=\"{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Bar&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;bar&quot;},&quot;dsr&quot;:[94,101,2,2]}\">bar</a>"}'><a href="./File:%25+abc9"><img resource="./File:%25+abc9" src="./Special:FilePath/%25+abc9" height="220" width="220" data-parsoid='{"a":{"resource":"./File:%25+abc9","height":"220","width":"220"},"sa":{"resource":"File:%+abc%39"}}'/></a></span>
20391 <a rel="mw:WikiLink" href="./3E" title="3E" data-parsoid='{"stx":"simple","a":{"href":"./3E"},"sa":{"href":"%33%45"}}'>3E</a> <a rel="mw:WikiLink" href="./3E+" title="3E+" data-parsoid='{"stx":"simple","a":{"href":"./3E+"},"sa":{"href":"%33%45+"}}'>3E+</a></p>
20395 Special characters in embedded file links (bug 27679)
20397 [[File:Contains & ampersand.jpg]]
20398 [[File:Does not exist.jpg|Title with & ampersand]]
20400 <p><a href="/index.php?title=Special:Upload&wpDestFile=Contains_%26_ampersand.jpg" class="new" title="File:Contains & ampersand.jpg">File:Contains & ampersand.jpg</a>
20401 <a href="/index.php?title=Special:Upload&wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with & ampersand</a>
20404 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}]}'><a href="./File:Contains_&_ampersand.jpg"><img resource="./File:Contains_&_ampersand.jpg" src="./Special:FilePath/Contains_&_ampersand.jpg" height="220" width="220"/></a></span>
20405 <span class="mw-default-size" typeof="mw:Error mw:Image" data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"Title with &amp; ampersand"}'><a href="./File:Does_not_exist.jpg"><img resource="./File:Does_not_exist.jpg" src="./Special:FilePath/Does_not_exist.jpg" height="220" width="220"/></a></span></p>
20409 Confirm that 'apos' named character reference doesn't make it to output (not legal in HTML 4)
20411 Text's been normalized?
20413 <p>Text's been normalized?
20418 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate free external links
20420 http://www.example.org/ <-- U+3000 (vim: ^Vu3000)
20422 <p><a rel="nofollow" class="external free" href="http://www.example.org/">http://www.example.org/</a> <-- U+3000 (vim: ^Vu3000)
20427 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate bracketed external links
20429 [http://www.example.org/ ideograms]
20431 <p><a rel="nofollow" class="external text" href="http://www.example.org/">ideograms</a>
20436 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate external images links
20438 http://www.example.org/pic.png <-- U+3000 (vim: ^Vu3000)
20440 <p><img src="http://www.example.org/pic.png" alt="pic.png" /> <-- U+3000 (vim: ^Vu3000)
20464 Bug 31098 Template which includes system messages which includes the template
20468 <p><span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
20469 <span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
20474 Bug31490 Turkish: ucfirst 'blah'
20485 Bug31490 Turkish: ucfirst 'ix'
20496 Bug31490 Turkish: lcfirst 'BLAH'
20507 Bug31490 Turkish: ucfırst (with a dotless i)
20513 <p><a href="/index.php?title=%C5%9Eablon:Ucf%C4%B1rst:blah&action=edit&redlink=1" class="new" title="Şablon:Ucfırst:blah (sayfa mevcut değil)">Şablon:Ucfırst:blah</a>
20518 Bug31490 ucfırst (with a dotless i) with English language
20524 <p><a href="/index.php?title=Template:Ucf%C4%B1rst:blah&action=edit&redlink=1" class="new" title="Template:Ucfırst:blah (page does not exist)">Template:Ucfırst:blah</a>
20529 Bug 26375: TOC with italics
20531 title=[[Main Page]]
20534 == ''Lost'' episodes ==
20536 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20538 <li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
20542 <h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Lost episodes">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20547 Bug 26375: TOC with bold
20549 title=[[Main Page]]
20552 == '''should be bold''' then normal text ==
20554 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20556 <li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
20560 <h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: should be bold then normal text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20565 Bug 33845: Headings become cursive in TOC when they contain an image
20567 title=[[Main Page]]
20570 == Image [[Image:foobar.jpg]] ==
20572 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20574 <li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
20578 <h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Image">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20583 Bug 33845 (2): Headings become bold in TOC when they contain a blockquote
20585 title=[[Main Page]]
20588 == <blockquote>Quote</blockquote> ==
20590 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20592 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
20596 <h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20600 <div id="toc" class="toc">
20601 <div id="toctitle">
20605 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
20609 <h2><span class="mw-headline" id="Quote"></span></h2>
20611 <p><span class="mw-headline" id="Quote">Quote</span></p>
20613 <p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></p>
20617 Unclosed tags in TOC
20619 title=[[Main Page]]
20623 <small>Hanc marginis exiguitas non caperet.</small>
20626 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20628 <li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 < 3</span></a></li>
20632 <h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 < 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Proof: 2 < 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20633 <p><small>Hanc marginis exiguitas non caperet.</small>
20639 Multiple tags in TOC
20642 == <i>Foo</i> <b>Bar</b> ==
20644 == <i>Foo</i> <blockquote>Bar</blockquote> ==
20646 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20648 <li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
20649 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
20653 <h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20654 <h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20658 <div id="toc" class="toc">
20659 <div id="toctitle">
20663 <li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
20664 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
20668 <h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20669 <h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i></span></h2>
20671 <p><span class="mw-headline" id="Foo_Bar_2">Bar</span></p>
20673 <p><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></p>
20677 Tags with parameters in TOC
20680 == <sup class="in-h2">Hello</sup> ==
20682 == <sup class="a > b">Evilbye</sup> ==
20684 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20686 <li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li>
20687 <li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b">Evilbye</sup></span></a></li>
20691 <h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Hello">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20692 <h2><span class="mw-headline" id="b.22.3EEvilbye"><sup class="a"> b">Evilbye</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: b">Evilbye">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20697 span tags with directionality in TOC
20700 == <span dir="ltr">C++</span> ==
20702 == <span dir="rtl">זבנג!</span> ==
20704 == <span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span> ==
20706 == <span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span> ==
20708 == <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> ==
20710 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20712 <li class="toclevel-1 tocsection-1"><a href="#C.2B.2B"><span class="tocnumber">1</span> <span class="toctext"><span dir="ltr">C++</span></span></a></li>
20713 <li class="toclevel-1 tocsection-2"><a href="#.D7.96.D7.91.D7.A0.D7.92.21"><span class="tocnumber">2</span> <span class="toctext"><span dir="rtl">זבנג!</span></span></a></li>
20714 <li class="toclevel-1 tocsection-3"><a href="#The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">3</span> <span class="toctext"><span>The attributes on these span tags must be deleted from the TOC</span></span></a></li>
20715 <li class="toclevel-1 tocsection-4"><a href="#All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">4</span> <span class="toctext"><span>All attributes on these span tags must be deleted from the TOC</span></span></a></li>
20716 <li class="toclevel-1 tocsection-5"><a href="#Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">5</span> <span class="toctext"><span dir="ltr">Attributes after dir on these span tags must be deleted from the TOC</span></span></a></li>
20720 <h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: C++">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20721 <h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: זבנג!">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20722 <h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20723 <h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20724 <h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20729 Bug 72884: bdi element in ToC
20732 == <bdi>test</bdi> ==
20734 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20736 <li class="toclevel-1 tocsection-1"><a href="#test"><span class="tocnumber">1</span> <span class="toctext"><bdi>test</bdi></span></a></li>
20740 <h2><span class="mw-headline" id="test"><bdi>test</bdi></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: test">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20744 # Note that the html output does not have the <p></p>, but the
20745 # html+tidy output *does*. This is because the empty <p></p> is
20746 # removed by the sanitizer, but only when tidy is *not* enabled (!).
20748 Empty <p> tag in TOC, removed by Sanitizer (T92892)
20753 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
20755 <li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
20759 <h2><span class="mw-headline" id="x">x</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: x">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20763 <div id="toc" class="toc">
20764 <div id="toctitle">
20768 <li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
20772 <h2><span class="mw-headline" id="x">x</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: x">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20778 == {{int:headline_sample}} ==
20782 Bug 32057: Title needed when expanding <h> nodes.
20784 title=[[Main Page]]
20788 <h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Headline text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20793 Strip marker in urlencode
20795 {{urlencode:x<nowiki/>y}}
20796 {{urlencode:x<nowiki/>y|wiki}}
20797 {{urlencode:x<nowiki/>y|path}}
20798 {{urlencode:x<pre id="one">two</pre>y}}
20826 Strip marker in formatNum
20828 {{formatnum:1<nowiki/>2}}
20829 {{formatnum:1<nowiki/>2|R}}
20837 Check noCommafy in formatNum
20841 {{formatnum:123456.78}}
20842 {{formatnum:123456.78|NOSEP}}
20850 Wrong option for formatNum (bug 56199)
20852 {{formatnum:1,234.56|Random}}
20853 {{formatnum:1,234.56|EVERYTHING}}
20854 {{formatnum:1234.56|any argument that has the string 'NOSEP'}}
20863 Strip marker in grammar
20867 {{grammar:elative|foo<nowiki/>bar}}
20874 Strip marker in padleft
20876 {{padleft:|2|x<nowiki/>y}}
20883 Strip marker in padright
20885 {{padright:|2|x<nowiki/>y}}
20892 Strip marker in anchorencode
20894 {{anchorencode:x<nowiki/>y}}
20901 nowiki inside link inside heading (bug 18295)
20903 ==[[foo|x<nowiki>y</nowiki>z]]==
20905 <h2><span class="mw-headline" id="xyz"><a href="/wiki/Foo" title="Foo">xyz</a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: xyz">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
20910 new support for bdi element (bug 31817)
20912 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
20914 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
20919 Ignore pipe between table row attributes
20923 |- id=foo | style='color: red'
20931 <tr id="foo" style="color: red">
20938 Gallery override link with WikiLink (bug 34852)
20941 File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink
20944 <ul class="gallery mw-gallery-traditional">
20945 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
20946 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
20947 <div class="gallerytext">
20957 Gallery override link with absolute external link (bug 34852)
20960 File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
20963 <ul class="gallery mw-gallery-traditional">
20964 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
20965 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="http://www.example.org"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
20966 <div class="gallerytext">
20976 Gallery override link with malicious javascript (bug 34852)
20979 File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascript code!');
20982 <ul class="gallery mw-gallery-traditional">
20983 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
20984 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert('malicious_javascript_code!');"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
20985 <div class="gallerytext">
20995 Gallery with invalid title as link (bug 43964)
20998 File:foobar.jpg|link=<
21001 <ul class="gallery mw-gallery-traditional">
21002 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
21003 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
21004 <div class="gallerytext">
21012 Language parser function
21021 Padleft and padright as substr
21023 {{padleft:|3|abcde}}
21024 {{padright:|3|abcde}}
21032 Special parser function
21034 {{#special:RandomPage}}
21035 {{#special:BaDtItLe}}
21036 {{#special:Foobar}}
21045 Bug 34939 - Case insensitive link parsing ([HttP://])
21047 [HttP://MediaWiki.Org/]
21049 <p><a rel="nofollow" class="external autonumber" href="HttP://MediaWiki.Org/">[1]</a>
21052 <p><a rel="mw:ExtLink" href="HttP://MediaWiki.Org/"></a></p>
21056 Bug 34939 - Case insensitive link parsing ([HttP:// title])
21058 [HttP://MediaWiki.Org/ MediaWiki]
21060 <p><a rel="nofollow" class="external text" href="HttP://MediaWiki.Org/">MediaWiki</a>
21065 Bug 34939 - Case insensitive link parsing (HttP://)
21067 HttP://MediaWiki.Org/
21069 <p><a rel="nofollow" class="external free" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a>
21072 <p><a rel="mw:ExtLink" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a></p>
21090 <h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
21091 <h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
21092 <h2><span class="mw-headline" id="Section_3">Section 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Section 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
21093 <h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
21094 <h2><span class="mw-headline" id="Section_5">Section 5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Section 5">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
21100 ### Parsoid-specific tests
21101 ### Parsoid-PHP parser incompatibilities
21104 1. SOL-sensitive wikitext tokens as template-args
21106 parsoid=wt2html,wt2wt
21112 <span about="#mwt1" typeof="mw:Transclusion">
21113 </span><ul about="#mwt1"><li>a</li>
21115 <span about="#mwt2" typeof="mw:Transclusion">
21116 </span><ol about="#mwt2"><li>a</li>
21118 <span about="#mwt3" typeof="mw:Transclusion">
21119 </span><dl about="#mwt3"><dd>a</dd>
21123 #### -----------------------------------------------------------------
21124 #### Parsoid-specific functionality tests
21125 #### -----------------------------------------------------------------
21127 # Bug 63642/66749: Formatting elt fixup around images is cleaned up.
21128 # We know wt2wt will fail, but we expect selser to pass.
21129 # Due to the nature of our testing, wt2wt and selser tests will enter the
21130 # blacklist and we'll catch selser regressions based on changes to the
21131 # blacklist entries for selser tests.
21133 1. Bad treebuilder fixup of formatting elt is cleaned up
21135 parsoid=wt2html,wt2wt
21140 [[Image:Foobar.jpg|right|Test]]
21147 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Test</figcaption></figure>
21154 2. Bad treebuilder fixup of formatting elt is cleaned up
21156 parsoid=wt2html,wt2wt
21158 '''foo[[File:Foobar.jpg|thumb|caption]]bar'''
21160 <small>[[Image:Foobar.jpg|right|300px]]</small>
21164 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><b>caption</b></figcaption></figure>
21166 <small><figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></figure></small>
21170 3. Bad treebuilder fixup of formatting elt is cleaned up
21172 parsoid=wt2html,wt2wt
21174 <small>'''foo[[File:Foobar.jpg|thumb|caption]]bar'''</small>
21176 <p><small><b>foo</b></small></p>
21177 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><small><b>caption</b></small></figcaption></figure>
21178 <p><small><b>bar</b></small></p>
21182 4. Bad treebuilder fixup of formatting elt is cleaned up: formatting tags around captionless images are ignored
21184 parsoid=wt2html,wt2wt
21186 '''<small>[[Image:Foobar.jpg|right|300px]]</small>'''
21188 <p><b><small></small></b></p>
21189 <figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></figure>
21193 #### ----------------------------------------------------------------
21194 #### Parsoid-only testing of Parsoid's impl of <ref> and <references>
21195 #### tags. Parsoid's output for these tags differs from that of the
21197 #### ----------------------------------------------------------------
21200 Ref: 1. ref-location should be replaced with an index span
21205 B <ref name="x">foo</ref>
21209 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
21210 B <span about="#mwt4" class="mw-ref" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-2"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2"><span class="mw-reflink-text">[2]</span></a></span>
21211 C <span about="#mwt6" class="mw-ref" id="cite_ref-y_3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="#cite_note-y-3"><span class="mw-reflink-text">[3]</span></a></span></p>
21212 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
21213 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21214 <li about="#cite_note-x-2" id="cite_note-x-2"><a href="#cite_ref-x_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-x-2" class="mw-reference-text">foo</span></li>
21215 <li about="#cite_note-y-3" id="cite_note-y-3"><a href="#cite_ref-y_3-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-y-3" class="mw-reference-text"></span></li>
21220 Ref: 2. ref-tags with identical names should all get the same index
21224 A <ref name="x">foo</ref>
21228 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
21229 B <span about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21230 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21231 <li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
21236 Ref: 3. spaces in ref-names should be ignored
21240 A <ref name="x">foo</ref>
21241 B <ref name=" x " />
21245 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
21246 B <span about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
21247 C <span about="#mwt6" class="mw-ref" id="cite_ref-x_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21248 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
21249 <li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a><a href="#cite_ref-x_1-2"><span class="mw-linkback-text">3 </span></a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
21253 # NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
21255 Ref: 4. 'constructor' should be accepted as a valid ref-name
21259 A <ref name="constructor">foo</ref>
21262 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-constructor-1"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21263 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21264 <li about="#cite_note-constructor-1" id="cite_note-constructor-1"><a href="#cite_ref-constructor_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-constructor-1" class="mw-reference-text">foo</span></li>
21269 Ref: 5. body should accept generic wikitext
21274 This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
21279 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21281 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
21282 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">This is a <b><a rel="mw:WikiLink" href="Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
21288 Ref: 6. indent-pres should not be output in ref-body
21300 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21302 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21303 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
21311 Ref: 7. No p-wrapping in ref-body
21330 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21332 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21333 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
21348 Ref: 8. transclusion wikitext has lower precedence
21352 A <ref> foo {{echo|</ref> B C}}
21356 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C<span typeof="mw:Nowiki">}}</span></p>
21357 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21358 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <span typeof="mw:Nowiki" data-parsoid='{"src":"{{","dsr":[12,14,0,0]}'>{{</span>echo|</span></li>
21363 Ref: 9. unclosed comments should not leak out of ref-body
21367 A <ref> foo <!--</ref> B C
21370 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C</p>
21371 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21372 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <!----></span></li>
21377 Ref: 10. Unclosed HTML tags should not leak out of ref-body
21381 A <ref> <b> foo </ref> B C
21385 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C</p>
21388 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21389 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></span></li>
21394 Ref: 11. ref-tags acts like an inline element wrt P-wrapping
21402 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B
21403 C <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span> D</p>
21404 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21405 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21406 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
21411 Ref: 12. ref-tags act as trailing newline migration barrier
21413 <!--the newline at the end of this line moves out of the p tag-->a
21415 b<!--the newline at the end of this line stays inside the p tag--> <ref />
21421 <!--the newline at the end of this line moves out of the p tag--><p>a</p>
21424 <p>b<!--the newline at the end of this line stays inside the p tag--> <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
21425 <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span></p>
21428 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21429 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"></span></li>
21430 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text"></span></li></ol>
21434 Ref: 13. ref-tags are not SOL-transparent and block indent-pres
21443 <p><span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> A
21444 <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span> B</p>
21445 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21446 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21447 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar
21453 Ref: 14. A nested ref-tag should be emitted as plain text
21457 <ref>foo <ref>bar</ref> baz</ref>
21461 <p><span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
21463 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
21464 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <ref>bar</ref> baz</span></li>
21469 Ref: 15. ref-tags with identical names should get identical indexes
21473 A1 <ref name="a">foo</ref> A2 <ref name="a" />
21474 B1 <ref name="b" /> B2 <ref name="b">bar</ref>
21478 <p>A1 <span about="#mwt3" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a-1"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span> A2 <span about="#mwt4" class="mw-ref" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span>
21479 B1 <span about="#mwt7" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span> B2 <span about="#mwt8" class="mw-ref" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span></p>
21481 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_1-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-a_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-b_2-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
21485 ## We don't bother wt2wt-ing non-standard whitespace
21487 Ref: 16. Tokenizer should accept non-standard whitespace in <ref> and </ref> tags
21495 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21496 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21497 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
21501 Ref: 17. Generate valid HTML5 id/about attributes
21505 <ref name="a b">foo</ref>
21509 <p><span class="mw-ref" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_b-1"},"attrs":{"name":"a b"}}'><a href="#cite_note-a_b-1"><span class="mw-reflink-text">[1]</span></a></span>
21512 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21513 <li about="#cite_note-a_b-1" id="cite_note-a_b-1"><a href="#cite_ref-a_b_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-a_b-1" class="mw-reference-text">foo</span></li>
21518 Ref: 18. T58916: Extension attributes should be parsed as plain text
21522 <ref name="{{echo|a}}">foo</ref>
21526 <p><span class="mw-ref" id="cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1"},"attrs":{"name":"{{echo|a}}"}}'><a href="#cite_note-.7B.7Becho.7Ca.7D.7D-1"><span class="mw-reflink-text">[1]</span></a></span>
21529 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21530 <li about="#cite_note-.7B.7Becho.7Ca.7D.7D-1" id="cite_note-.7B.7Becho.7Ca.7D.7D-1"><a href="#cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1" class="mw-reference-text">foo</span></li>
21535 Ref: 19. ref-tags with identical name encodings should get identical indexes
21539 1 <ref name="a & b">foo</ref> 2 <ref name="a & b" />
21543 <p>1 <span about="#mwt3" class="mw-ref" id="cite_ref-a_.26_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_.26_b-1"},"attrs":{"name":"a & b"}}'><a href="#cite_note-a_.26_b-1"><span class="mw-reflink-text">[1]</span></a></span> 2 <span about="#mwt4" class="mw-ref" id="cite_ref-a_.26_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp; b"}}'><a href="#cite_note-a_.26_b-1"><span class="mw-reflink-text">[1]</span></a></span>
21545 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21546 <li about="#cite_note-a_.26_b-1" id="cite_note-a_.26_b-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_.26_b_1-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-a_.26_b_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a_.26_b-1" class="mw-reference-text">foo</span></li>
21551 Ref: 20. ref-tags with identical names but different content should keep it
21555 A <ref name="foo">Foo one</ref>
21556 B <ref name="foo">Foo two</ref>
21557 C <ref name="foo" />
21561 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-foo_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-foo-1"},"attrs":{"name":"foo"}}'><a href="#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span>
21562 B <span about="#mwt4" class="mw-ref" id="cite_ref-foo_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo two"},"attrs":{"name":"foo"}}'><a href="#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span>
21563 C <span about="#mwt6" class="mw-ref" id="cite_ref-foo_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"}}'><a href="#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21565 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-foo-1" id="cite_note-foo-1"><span rel="mw:referencedBy"><a href="#cite_ref-foo_1-0"><span class="mw-linkback-text">1 </span></a><a href="#cite_ref-foo_1-1"><span class="mw-linkback-text">2 </span></a><a href="#cite_ref-foo_1-2"><span class="mw-linkback-text">3 </span></a></span> <span id="mw-reference-text-cite_note-foo-1" class="mw-reference-text">Foo one</span></li>
21570 References: 1. references tag without any refs should be handled properly
21574 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
21578 References: 2. references tag with group only outputs references from that group
21580 A <ref group="a">foo</ref>
21581 B <ref group="b">bar</ref>
21584 <references group="a" />
21586 <references group="b" />
21588 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></span>
21589 B <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"b"}}'><a href="#cite_note-2" data-mw-group="b"><span class="mw-reflink-text">[b 1]</span></a></span>
21590 C <span class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="#cite_note-3"><span class="mw-reflink-text">[1]</span></a></span></p>
21592 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'>
21593 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" data-mw-group="a" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21595 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
21596 <li about="#cite_note-3" id="cite_note-3"><a href="#cite_ref-3" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">baz</span></li>
21598 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt12" data-mw-group="b" data-mw='{"name":"references","attrs":{"group":"b"}}'>
21599 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" data-mw-group="b" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
21604 References: 3. ref list should be cleared after processing references
21614 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21616 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21619 <p>B <span about="#mwt6" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2"><span class="mw-reflink-text">[1]</span></a></span></p>
21621 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
21622 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
21627 References: 4. only referenced group should be cleared after processing references
21629 A <ref group="a">afoo</ref>
21632 <references group="a" />
21638 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></span>
21639 B <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2"><span class="mw-reflink-text">[1]</span></a></span></p>
21641 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" data-mw-group="a" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">afoo</span></li>
21644 <p>C <span about="#mwt8" class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="#cite_note-3"><span class="mw-reflink-text">[2]</span></a></span></p>
21646 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bfoo</span></li><li about="#cite_note-3" id="cite_note-3"><a href="#cite_ref-3" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">cfoo</span></li>
21651 References: 5. ref tags in references should be processed while ignoring all other content
21654 B <ref name="b">bar</ref>
21657 <ref name="a">foo</ref>
21658 This should just get lost.
21661 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span>
21662 B <span about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span></p>
21665 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","body":{"extsrc":"<ref name=\"a\">foo</ref>\nThis should just get lost.","html":"\n<span about=\"#mwt8\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[59,82,14,6]}' data-mw='{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-a-1\"},\"attrs\":{\"name\":\"a\"}}'><a href=\"#cite_note-a-1\" style=\"counter-reset: mw-Ref 1;\"><span class=\"mw-reflink-text\">[1]</span></a></span>\n"},"attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><a href="#cite_ref-a_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><a href="#cite_ref-b_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
21670 References: 6. <references /> from a transclusion
21672 <ref>Foo</ref> {{echo|<references />}}
21674 <p><span about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p> <ol class="mw-references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>
21679 References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled
21681 A <ref>foo bar for a</ref>
21682 B <ref group="X" name="b" />
21686 <references group="X">
21687 <ref name="b">foo</ref>
21690 <p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
21691 B <span about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2" data-mw-group="X"><span class="mw-reflink-text">[X 1]</span></a></span>
21694 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
21695 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo bar for a</span></li>
21698 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="X" data-mw='{"name":"references","body":{"extsrc":"<ref name=\"b\">foo</ref>","html":"\n<span about=\"#mwt10\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[96,119,14,6]}' data-mw='{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-b-2\"},\"attrs\":{\"name\":\"b\"}}'><a href=\"#cite_note-b-2\" style=\"counter-reset: mw-Ref 1;\" data-mw-group=\"X\"><span class=\"mw-reflink-text\">[X 1]</span></a></span>\n"},"attrs":{"group":"X"}}'>
21699 <li about="#cite_note-b-2" id="cite_note-b-2"><a href="#cite_ref-b_2-0" data-mw-group="X" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">foo</span></li>
21704 References: 8. T88019: Remove <meta>s from templates inside <ref> that's itself inside a template
21706 X{{echo|<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>}}
21709 <p>X<span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>"}},"i":0}}]}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21710 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <b data-parsoid='{"stx":"html"}'>bar</b> and baz boo</span></li>
21714 # This test only works in wt2html now as the <references /> are always generated
21715 # unless selser is active. Once T72722 is fixed, we should add a changes test
21716 # here to ensure that unrelated changes don't add the new <references /> in
21719 References: 9. Generate missing references list at the end
21722 B <ref group="inexistent">bar</ref>
21724 <p>A <span class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B <span class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"inexistent"}}'><a href="#cite_note-2" data-mw-group="inexistent"><span class="mw-reflink-text">[inexistent 1]</span></a></span></p>
21725 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
21726 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
21728 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="inexistent" data-mw='{"name":"references","attrs":{"group":"inexistent"}}'>
21729 <li about="#cite_note-2" id="cite_note-2"><a href="#cite_ref-2" data-mw-group="inexistent" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
21734 References: 10. New <references/> shouldn't be added for unrelated edits.
21737 "modes": ["selser"],
21738 "changes": [["#x", "remove"]],
21742 Unrelated text<span id="x"> that's going to disappear</span>.
21750 Entities in ref name
21752 <ref name="test & me">hi</ref>
21755 <p><span about="#mwt2" class="mw-ref" id="cite_ref-test_.26_me_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-test_.26_me-1"},"attrs":{"name":"test &amp; me"}}'><a href="#cite_note-test_.26_me-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21756 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21757 <li about="#cite_note-test_.26_me-1" id="cite_note-test_.26_me-1"><a href="#cite_ref-test_.26_me_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-test_.26_me-1" class="mw-reference-text">hi</span></li>
21761 # This test is wt2html only because we're permitting the serializer to produce
21762 # dirty diffs, normalizing the unclosed references to the self-closed version.
21764 Generate references for unclosed references tag
21772 <p>a<span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
21773 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
21774 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
21778 New reference serializes on its own line
21780 parsoid=wt2wt,html2wt
21785 foo<ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
21788 #### ----------------------------------------------------------------
21789 #### Parsoid-only testing of Parsoid's impl of LST
21790 #### Not implemented yet, see
21791 #### https://www.mediawiki.org/wiki/Parsoid/HTML_based_LST
21792 #### ----------------------------------------------------------------
21795 LST Sections: 1. Simple section start and end
21797 <section begin="2011-05-16" />
21798 <section end="2014-04-10 (MW 1.23wmf22)" />
21800 <p><meta typeof="mw:Extension/LabeledSectionTransclusion/begin" content="2011-05-16"/>
21801 <meta typeof="mw:Extension/LabeledSectionTransclusion/end" content="2014-04-10 (MW 1.23wmf22)"/></p>
21804 #--------- Test stripping of empty nodes in template content ----------
21806 Empty LI and TR nodes should be stripped from template content
21811 <ul about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyLITest","href":"./Template:EmptyLITest"},"params":{},"i":0}}]}'>
21815 <table about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRTest","href":"./Template:EmptyTRTest"},"params":{},"i":0}}]}'>
21828 Empty LI and TR nodes should not be stripped from top-level content
21855 Empty TR nodes should not be stripped if they have any attributes set
21857 {{EmptyTRWithHTMLAttrTest}}
21859 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRWithHTMLAttrTest","href":"./Template:EmptyTRWithHTMLAttrTest"},"params":{},"i":0}}]}'>
21860 <tr align="center"></tr>
21861 <tr><td>foo</td></tr>
21862 <tr align="center"></tr>
21863 <tr><td>bar</td></tr>
21867 #### ----------------------------------------------------------------
21868 #### The following section of tests are primarily to test
21869 #### wikitext escaping capabilities of Parsoid. Given that
21870 #### escaping can be done any number of ways, the wikitext (input)
21871 #### is always adjusted to reflect how Parsoid adds nowiki
21874 #### We are marking several tests as parsoid-only since the
21875 #### HTML in the result section is different from what the
21876 #### PHP parser generates for it.
21877 #### ----------------------------------------------------------------
21880 #### --------------- Headings ---------------
21882 #### 1. Nested inside html <h1>=foo=</h1>
21883 #### 2. Outside heading nest on a single line <h1>foo</h1>*bar
21884 #### 3. Nested inside html with wikitext split by html tags
21885 #### 4. No escape needed
21886 #### 5. Empty headings <h1></h1>
21887 #### 6. Heading chars in SOL context
21888 #### ----------------------------------------
21890 Headings: 0. Unnested
21894 <nowiki>=foo=</nowiki>
21896 <nowiki> =foo= </nowiki>
21898 <nowiki>=foo=</nowiki>
21900 =foo''a''<nowiki>=</nowiki>
21902 <p><span typeof="mw:Nowiki">=foo=</span></p>
21904 <p><span typeof="mw:Nowiki"> =foo= </span>
21906 <span typeof="mw:Nowiki">=foo=</span></p>
21908 <p>=foo<i>a</i><span typeof="mw:Nowiki">=</span></p>
21911 # New headings and existing headings are handled differently
21913 Headings: 1. Nested inside html
21921 <h1 data-parsoid=''>=foo=</h1>
21922 <h2 data-parsoid=''>=foo=</h2>
21923 <h3 data-parsoid=''>=foo=</h3>
21924 <h4 data-parsoid=''>=foo=</h4>
21925 <h5 data-parsoid=''>=foo=</h5>
21926 <h6 data-parsoid=''>=foo=</h6>
21934 =<nowiki>=foo=</nowiki>=
21935 ==<nowiki>=foo=</nowiki>==
21936 ===<nowiki>=foo=</nowiki>===
21937 ====<nowiki>=foo=</nowiki>====
21938 =====<nowiki>=foo=</nowiki>=====
21939 ======<nowiki>=foo=</nowiki>======
21944 Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
21953 <nowiki>*</nowiki>bar
21959 <nowiki>=bar=</nowiki>
21963 Headings: 3. Nested inside html with wikitext split by html tags
21965 parsoid=html2wt,wt2wt
21967 = ='''bold'''<nowiki>foo=</nowiki> =
21969 <h1>=<b>bold</b>foo=</h1>
21973 Headings: 4a. No escaping needed (testing just h1 and h2)
21998 <h1><i>=</i>foo=</h1>
22002 Headings: 4b. No escaping needed (inside p-tags)
22017 Headings: 5. Empty headings
22027 =====<nowiki/>=====
22029 ======<nowiki/>======
22031 <h1 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h1>
22033 <h2 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h2>
22035 <h3 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h3>
22037 <h4 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h4>
22039 <h5 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h5>
22041 <h6 data-parsoid='{}'><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/></h6>
22045 Headings: 6a. Heading chars in SOL context (with trailing spaces)
22047 <nowiki>=a=</nowiki>
22049 <nowiki>=a=</nowiki>
22051 <nowiki>=a=</nowiki>
22053 <nowiki>=a=</nowiki>
22061 <p><span typeof="mw:Nowiki">=a=</span></p>
22063 <p><span typeof="mw:Nowiki">=a=</span></p>
22065 <p><span typeof="mw:Nowiki">=a=</span></p>
22067 <p><span typeof="mw:Nowiki">=a=</span></p>
22071 Headings: 6b. Heading chars in SOL context (with trailing newlines)
22095 <p><span typeof="mw:Nowiki">=a=
22098 <p><span typeof="mw:Nowiki">=a=
22101 <p><span typeof="mw:Nowiki">=a=
22104 <p><span typeof="mw:Nowiki">=a=
22109 Headings: 6c. Heading chars in SOL context (leading newline break)
22112 <nowiki>=b=</nowiki>
22119 <span typeof="mw:Nowiki">=b=</span>
22123 Headings: 6d. Heading chars in SOL context (with interspersed comments)
22125 <!--c0--><nowiki>=a=</nowiki>
22127 <!--c1--><nowiki>=a=</nowiki> <!--c2--> <!--c3-->
22133 <!--c0--><p><span typeof="mw:Nowiki">=a=</span></p>
22135 <!--c1--><p><span typeof="mw:Nowiki">=a=</span></p> <!--c2--> <!--c3-->
22139 Headings: 6d. Heading chars in SOL context (No escaping needed)
22149 Headings: 7. Insert a newline between new content and headings
22155 <h2 data-parsoid='{}'>A</h2>
22156 <p data-parsoid='{}'>a</p>
22166 #### --------------- Lists ---------------
22167 #### 0. Outside nests (*foo, etc.)
22168 #### 1. Nested inside html <ul><li>*foo</li></ul>
22169 #### 2. Inside definition lists
22170 #### 3. Only bullets at start should be escaped
22171 #### 4. No escapes needed
22172 #### 5. No unnecessary escapes
22173 #### 6. Escape bullets in SOL position
22174 #### 7. Escape bullets in a multi-line context
22175 #### ----------------------------------------
22178 Lists: 0. Outside nests
22180 <nowiki>*</nowiki>foo
22182 <nowiki>#</nowiki>foo
22184 <nowiki>;Foo:</nowiki>bar
22191 <p><span typeof="mw:Nowiki">*</span>foo</p>
22193 <p><span typeof="mw:Nowiki">#</span>foo</p>
22195 <p><span typeof="mw:Nowiki">;Foo:</span>bar</p>
22199 Lists: 1. Nested inside html
22201 *<nowiki>*foo</nowiki>
22203 *<nowiki>#foo</nowiki>
22205 *<nowiki>:foo</nowiki>
22207 *<nowiki>;foo</nowiki>
22209 #<nowiki>*foo</nowiki>
22211 #<nowiki>#foo</nowiki>
22213 #<nowiki>:foo</nowiki>
22215 #<nowiki>;foo</nowiki>
22217 <ul><li>*foo</li></ul>
22218 <ul><li>#foo</li></ul>
22219 <ul><li>:foo</li></ul>
22220 <ul><li>;foo</li></ul>
22221 <ol><li>*foo</li></ol>
22222 <ol><li>#foo</li></ol>
22223 <ol><li>:foo</li></ol>
22224 <ol><li>;foo</li></ol>
22229 Lists: 2. Inside definition lists
22231 ;<nowiki>;foo</nowiki>
22233 ;<nowiki>:foo</nowiki>
22235 ;<nowiki>:foo</nowiki>
22238 :<nowiki>:foo</nowiki>
22240 <dl><dt>;foo</dt></dl>
22241 <dl><dt>:foo</dt></dl>
22244 <dl><dd>:foo</dd></dl>
22249 Lists: 3. Only bullets at start of text should be escaped
22251 *<nowiki>*foo*bar</nowiki>
22253 *<nowiki>*foo</nowiki>''it''*bar
22255 <ul><li>*foo*bar</li></ul>
22256 <ul><li>*foo<i>it</i>*bar</li></ul>
22261 Lists: 4. No escapes needed
22282 <li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>: bar
22286 <li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>*bar
22292 Lists: 5. No unnecessary escapes
22294 * bar <span><nowiki>[[foo]]</nowiki></span>
22296 * =bar <span><nowiki>[[foo]]</nowiki></span>
22298 * [[bar <span><nowiki>[[foo]]</nowiki></span>
22300 * ]]bar <span><nowiki>[[foo]]</nowiki></span>
22302 * =bar <span>foo]]</span>=
22308 <ul><li> bar <span>[[foo]]</span></li></ul>
22309 <ul><li> =bar <span>[[foo]]</span></li></ul>
22310 <ul><li> [[bar <span>[[foo]]</span></li></ul>
22311 <ul><li> ]]bar <span>[[foo]]</span></li></ul>
22312 <ul><li> =bar <span>foo]]</span>=</li></ul>
22313 <ul><li> <s></s>: a</li></ul>
22314 <ul><li> <i>* foo</i></li></ul>
22319 Lists: 6. Escape bullets in SOL position
22323 <p><!--cmt-->*foo</p>
22325 <!--cmt--><nowiki>*</nowiki>foo
22329 Lists: 7. Escape bullets in a multi-line context
22332 <nowiki>*</nowiki>b
22340 Lists: 8. Escape colons only if not present in tags
22344 <dl><dt>a:b<i>c:d</i></dt></dl>
22346 ; <nowiki>a:b</nowiki>''c:d''
22349 #### --------------- HRs ---------------
22350 #### 1. Single line
22351 #### -----------------------------------
22354 HRs: 1. Single line
22356 ----<nowiki>----</nowiki>
22368 #### --------------- Tables ---------------
22369 #### 1a. Simple example
22370 #### 1b. No escaping needed (!foo)
22371 #### 1c. No escaping needed (|foo)
22372 #### 1d. No escaping needed (|}foo)
22374 #### 2a. Nested in td (<td>foo|bar</td>)
22375 #### 2b. Nested in td (<td>foo||bar</td>)
22376 #### 2c. Nested in td -- no escaping needed(<td>foo!!bar</td>)
22378 #### 3a. Nested in th (<th>foo!bar</th>)
22379 #### 3b. Nested in th (<th>foo!!bar</th>)
22380 #### 3c. Nested in th -- no escaping needed(<th>foo||bar</th>)
22384 #### 4c. No escaping needed
22385 #### --------------------------------------
22388 Tables: 1a. Simple example
22399 Tables: 1b. No escaping needed
22408 Tables: 1c. No escaping needed
22417 Tables: 1d. No escaping needed
22426 Tables: 2a. Nested in td
22431 <td>foo|bar</td></tr>
22432 <tr><td>x<div>a|b</div></td>
22436 |<nowiki>foo|bar</nowiki>
22438 |x<div><nowiki>a|b</nowiki></div>
22454 Tables: 2b. Nested in td
22460 <td>a<i>b||c</i></td>
22461 <td>a<i><div>b||c</div></i></td>
22462 </tr></tbody></table>
22465 |<nowiki>foo||bar</nowiki>
22466 |a''<nowiki>b||c</nowiki>''
22467 |a''<div><nowiki>b||c</nowiki></div>''
22476 <td>a<i><div>b||c</div></i>
22482 Tables: 2c. Nested in td -- no escaping needed
22498 Tables: 3a. Nested in th
22514 Tables: 3b. Nested in th
22519 <tr><th>foo!!bar</th>
22520 <th><i>foo|bar</i></th>
22521 <th><i>foo!!bar</i></th>
22522 <th><i><span>foo!!bar</span></i></th>
22523 </tr></tbody></table>
22526 !<nowiki>foo!!bar</nowiki>
22527 !''<nowiki>foo|bar</nowiki>''
22528 !''<nowiki>foo!!bar</nowiki>''
22529 !''<span><nowiki>foo!!bar</nowiki></span>''
22538 <th><i>foo!!bar</i>
22540 <th><i><span>foo!!bar</span></i>
22546 Tables: 3c. Nested in th
22551 <tr><th>foo||bar</th>
22552 <th><span typeof="mw:Nowiki">foo||bar</span></th>
22553 </tr></tbody></table>
22556 !<nowiki>foo||bar</nowiki>
22557 !<nowiki>foo||bar</nowiki>
22570 Tables: 4a. Escape -
22589 |<nowiki>-bar</nowiki>
22594 Tables: 4b. Escape +
22613 |<nowiki>+bar</nowiki>
22618 Tables: 4c. No escaping needed
22661 <tr><td>foo-bar</td><td>foo+bar</td></tr>
22662 <tr><td><i>foo</i>-bar</td><td><i>foo</i>+bar</td></tr>
22668 <div>a|b</div></td>
22673 Tables: 4d. No escaping needed
22683 <td><a href="/wiki/Foo" title="Foo">Foo</a>-bar
22692 <tbody><tr><td><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo</a>-bar</td>
22693 <td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>+1</td>
22694 <td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>-2</td></tr>
22699 Tables: Digest broken attributes on table and tr tag
22716 T97430: Don't emit empty nowiki pairs around marker meta tags
22720 <p>*This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
22721 |** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.</p>
22723 <nowiki>*</nowiki>This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
22724 <nowiki>|</nowiki>** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.
22728 Unclosed xmlish element in table line shouldn't eat end delimiters
22744 <tbody><tr><td> <foo</td>
22745 <td> bar></td></tr>
22749 #### --------------- Links ----------------
22750 #### 1. Quote marks in link text
22751 #### 2. Wikilinks: Escapes needed
22752 #### 3. Wikilinks: No escapes needed
22753 #### 4. Extlinks: Escapes needed
22754 #### 5. Extlinks: No escapes needed
22755 #### --------------------------------------
22757 Links 1. WikiLinks: No escapes needed
22761 [[Foo|x [Foobar] x]]
22763 <p><a href="/wiki/Foo" title="Foo">Foo<i>boo</i></a>
22764 <a href="/wiki/Foo" title="Foo">[Foobar]</a>
22765 <a href="/wiki/Foo" title="Foo">x [Foobar] x</a>
22768 <p><a rel="mw:WikiLink" href="Foo" title="Foo">Foo<i>boo</i></a>
22769 <a rel="mw:WikiLink" href="Foo" title="Foo">[Foobar]</a>
22770 <a rel="mw:WikiLink" href="Foo" title="Foo">x [Foobar] x</a></p>
22774 Links 2. WikiLinks: Escapes needed
22778 <a href="Foo" rel="mw:WikiLink">Foobar]</a>
22779 <a href="Foo" rel="mw:WikiLink">x [http://google.com g] x</a>
22780 <a href="Foo" rel="mw:WikiLink">[[Bar]]</a>
22781 <a href="Foo" rel="mw:WikiLink">x [[Bar]] x</a>
22782 <a href="Foo" rel="mw:WikiLink">|Bar</a>
22783 <a href="Foo" rel="mw:WikiLink">]]bar</a>
22784 <a href="Foo" rel="mw:WikiLink">[[bar</a>
22785 <a href="Foo" rel="mw:WikiLink">x [[ y</a>
22786 <a href="Foo" rel="mw:WikiLink">x ]] y</a>
22787 <a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
22789 [[Foo|<nowiki>Foobar]</nowiki>]]
22790 [[Foo|x <nowiki>[http://google.com g]</nowiki> x]]
22791 [[Foo|<nowiki>[[Bar]]</nowiki>]]
22792 [[Foo|<nowiki>x [[Bar]] x</nowiki>]]
22793 [[Foo|<nowiki>|Bar</nowiki>]]
22794 [[Foo|<nowiki>]]bar</nowiki>]]
22795 [[Foo|<nowiki>[[bar</nowiki>]]
22796 [[Foo|<nowiki>x [[ y</nowiki>]]
22797 [[Foo|<nowiki>x ]] y</nowiki>]]
22798 [[Foo|<nowiki>x ]] y [[ z</nowiki>]]
22800 <p><a href="/wiki/Foo" title="Foo">Foobar]</a>
22801 <a href="/wiki/Foo" title="Foo">x [http://google.com g] x</a>
22802 <a href="/wiki/Foo" title="Foo">[[Bar]]</a>
22803 <a href="/wiki/Foo" title="Foo">x [[Bar]] x</a>
22804 <a href="/wiki/Foo" title="Foo">|Bar</a>
22805 <a href="/wiki/Foo" title="Foo">]]bar</a>
22806 <a href="/wiki/Foo" title="Foo">[[bar</a>
22807 <a href="/wiki/Foo" title="Foo">x [[ y</a>
22808 <a href="/wiki/Foo" title="Foo">x ]] y</a>
22809 <a href="/wiki/Foo" title="Foo">x ]] y [[ z</a>
22814 Links 3. WikiLinks: No escapes needed
22819 <p><a href="/wiki/Foo" title="Foo">[Foobar</a>
22820 <a href="/wiki/Foo" title="Foo">foo|bar</a>
22823 <p><a rel="mw:WikiLink" href="Foo">[Foobar</a>
22824 <a rel="mw:WikiLink" href="Foo" title="Foo">foo|bar</a></p>
22828 Links 4. ExtLinks: Escapes needed
22832 <p><a rel="mw:ExtLink" href="http://google.com">[google]</a>
22833 <a rel="mw:ExtLink" href="http://google.com">google]</a></p>
22834 <p>[http://google.com]</p>
22835 <p>[http://google.com google]</p>
22837 [http://google.com <nowiki>[google]</nowiki>]
22838 [http://google.com <nowiki>google]</nowiki>]
22840 <nowiki>[http://google.com]</nowiki>
22842 <nowiki>[http://google.com google]</nowiki>
22845 <p><a rel="nofollow" class="external text" href="http://google.com">[google]</a>
22846 <a rel="nofollow" class="external text" href="http://google.com">google]</a>
22847 </p><p>[http://google.com]
22848 </p><p>[http://google.com google]
22853 Links 5. ExtLinks: No escapes needed
22855 [http://google.com [google]
22857 <p><a rel="nofollow" class="external text" href="http://google.com">[google</a>
22860 <p><a rel="mw:ExtLink" href="http://google.com">[google</a></p>
22864 Links 6. Add <nowiki/>s between text-nodes and url-links when required (bug 64300)
22866 <p>x<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>y
22867 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>?x
22868 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>&x
22869 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>'x
22870 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,x
22871 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.x
22872 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
22873 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>:x
22874 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
22875 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>!x
22876 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>=x
22877 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>(x)
22878 <a rel="mw:ExtLink" href="http://example.com(x" data-parsoid='{"stx":"url"}'>http://example.com(x</a>)
22881 x<nowiki/>http://example.com<nowiki/>y
22882 http://example.com<nowiki/>?x
22883 http://example.com<nowiki/>&x
22884 http://example.com<nowiki/>'x
22885 http://example.com<nowiki/>,x
22886 http://example.com<nowiki/>.x
22887 http://example.com<nowiki/>;x
22888 http://example.com<nowiki/>:x
22889 http://example.com<nowiki/>;x
22890 http://example.com<nowiki/>!x
22891 http://example.com<nowiki/>=x
22892 http://example.com<nowiki/>(x)
22893 http://example.com(x<nowiki/>)
22897 Links 7a. Don't add spurious <nowiki/>s between text-nodes and url-links (bug 64300)
22900 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>
22902 "<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>"
22903 (<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>)
22904 (<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>) foo
22905 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,
22906 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>, foo
22912 "http://example.com"
22913 (http://example.com)
22914 (http://example.com) foo
22915 http://example.com,
22916 http://example.com, foo
22919 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
22921 "<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>"
22922 (<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
22923 (<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>) foo
22924 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
22925 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>, foo
22930 Links 7b. Don't add spurious <nowiki/>s between text-nodes and url-links (bug 64300)
22932 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.,;:!?\
22933 -<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:</p>
22935 http://example.com.,;:!?\
22936 -http://example.com:
22938 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.,;:!?\
22939 -<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
22944 Links 8. Add <nowiki/>s between text-nodes and RFC-links when required (bug 64300)
22946 <p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>4
22947 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
22948 X<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y</p>
22952 X<nowiki/>RFC 123<nowiki/>y
22956 Links 9. Don't add spurious <nowiki/>s between text-nodes and RFC-links (bug 64300)
22958 <p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>?foo
22959 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>&foo
22960 -<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>-
22967 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>?foo
22968 <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>&foo
22969 -<a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>-
22974 Links 10. Add <nowiki/>s between text-nodes and PMID-links when required (bug 64300)
22976 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>4
22977 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
22978 X<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
22982 X<nowiki/>PMID 123<nowiki/>y
22986 Links 11. Don't add spurious <nowiki/>s between text-nodes and PMID-links (bug 64300)
22988 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>?foo
22989 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>&foo
22990 -<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>-
22997 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>?foo
22998 <a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>&foo
22999 -<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>-
23004 Links 12. Add <nowiki/>s between text-nodes and ISBN-links when required (bug 64300)
23006 <p><a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>1
23007 <a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>x
23008 a<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>b
23011 ISBN 1234567890<nowiki/>1
23012 ISBN 1234567890<nowiki/>x
23013 a<nowiki/>ISBN 1234567890<nowiki/>b
23017 Links 13. Don't add spurious <nowiki/>s between text-nodes and ISBN-links (bug 64300)
23019 <p>-<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>'s
23023 <p>-<a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>'s
23028 Links 14. Protect link-like plain text. (Parsoid bug T78425)
23032 <p>this is not a link: http://example.com
23035 <nowiki>this is not a link: http://example.com</nowiki>
23039 Links 15. Link trails can't become link prefixes.
23043 [[Söfnuður]]-[[00]]
23045 <p><a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">Söfnuður-</a><a href="/wiki/00" title="00">00</a>
23048 <p><a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður" data-parsoid='{"stx":"simple","tail":"-"}'>Söfnuður-</a><a rel="mw:WikiLink" href="00" title="00">00</a></p>
23051 #### --------------- Quotes ---------------
23052 #### 1. Quotes inside <b> and <i>
23053 #### 2. Link fragments separated by <i> and <b> tags
23054 #### 3. Link fragments inside <i> and <b>
23055 #### 4. No escaping needed
23056 #### --------------------------------------
23058 1a. Quotes inside <b> and <i>
23060 parsoid=html2wt,wt2wt
23063 ''<nowiki>''foo''</nowiki>''
23064 ''<nowiki>'''foo'''</nowiki>''
23066 '''<nowiki/>'foo''''
23067 '''<nowiki>''foo''</nowiki>'''
23068 '''<nowiki>'''foo'''</nowiki>'''
23069 '''foo'<nowiki/>''bar'<nowiki/>''baz'''
23070 '''foo'''<nowiki/>'s
23076 '''foo'''<nowiki/>'
23077 ''''foo'''<nowiki/>'
23078 ''fools'<span> errand</span>''
23079 ''<span>fool</span>'s errand''
23080 '<nowiki/>''foo'' bar '''baz''
23081 a|!*#-:;+-~[]{}b'''x''
23090 <b>foo'<i>bar'</i>baz</b>
23099 <i>fools'<span> errand</span></i>
23100 <i><span>fool</span>'s errand</i>
23101 '<i>foo</i> bar '<i>baz</i>
23102 a|!*#-:;+-~[]{}b'<i>x</i>
23107 1b. Quotes inside <b> and <i> with other tags on same line
23109 parsoid=html2wt,wt2wt
23111 '''a'' foo ''[[bar]]''
23112 ''a''' foo ''[[bar]]''
23113 ''a''' foo '''{{echo|[[bar]]}}'''
23114 [[foo]] x'''[[bar]]''
23115 '''foo'' <ref>test</ref>
23116 '''foo'' <div title="name">test</div>
23117 '''foo'' and <br> bar
23120 '<i>a</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
23121 <i>a'</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
23122 <i>a'</i> foo <b><a rel="mw:WikiLink" href="Bar" title="Bar" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[bar]]"}},"i":0}}]}'>bar</a></b>
23123 <a rel="mw:WikiLink" href="Foo" title="Foo">foo</a> x'<i><a href="Bar" rel="mw:WikiLink" title="Bar">bar</a></i>
23124 '<i>foo</i> <span class="mw-ref" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
23125 '<i>foo</i> <div title="name">test</div>
23126 '<i>foo</i> and <br data-parsoid='{"stx":"html","noClose":true}'/> bar
23127 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
23128 <li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">test</span></li>
23133 2. Link fragments separated by <i> and <b> tags
23135 [[''foo''<nowiki>hello]]</nowiki>
23137 [['''foo'''<nowiki>hello]]</nowiki>
23139 <p>[[<i>foo</i>hello]]
23140 </p><p>[[<b>foo</b>hello]]
23144 # FIXME: Escaping one or both of [[ and ]] is also acceptable --
23145 # this is one of the shortcomings of this format
23147 3. Link fragments inside <i> and <b>
23149 ''[[foo''<nowiki>]]</nowiki>
23151 '''[[foo'''<nowiki>]]</nowiki>
23154 </p><p><b>[[foo</b>]]
23159 4. No escaping needed
23161 '<span>''bar''</span>'
23162 '<span>'''bar'''</span>'
23165 <p>'<span><i>bar</i></span>'
23166 '<span><b>bar</b></span>'
23171 #### ----------- Paragraphs ---------------
23172 #### 1. No unnecessary escapes
23173 #### --------------------------------------
23176 1. No unnecessary escapes
23178 bar <span><nowiki>[[foo]]</nowiki></span>
23180 =bar <span><nowiki>[[foo]]</nowiki></span>
23182 [[bar <span><nowiki>[[foo]]</nowiki></span>
23184 ]]bar <span><nowiki>[[foo]]</nowiki></span>
23186 =bar <span>foo]]</span><nowiki>=</nowiki>
23188 <p>bar <span>[[foo]]</span>
23189 </p><p>=bar <span>[[foo]]</span>
23190 </p><p>[[bar <span>[[foo]]</span>
23191 </p><p>]]bar <span>[[foo]]</span>
23192 </p><p>=bar <span>foo]]</span>=
23196 #### ----------------------- PRE --------------------------
23197 #### 1. Leading whitespace in SOL context should be escaped
23198 #### ------------------------------------------------------
23200 1. Leading whitespace in SOL context should be escaped
23202 parsoid=html2wt,wt2wt
23236 <nowiki> </nowiki>a
23238 <nowiki> </nowiki> a
23242 <nowiki> </nowiki> a
23244 <nowiki> </nowiki>a
23247 <nowiki> </nowiki>b
23257 2. Leading whitespace in non-indent-pre contexts should not be escaped
23265 <p>foo <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
23266 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
23267 <li about="#cite_note-1" id="cite_note-1"><a href="#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><i data-parsoid='{"dsr":[9,14,2,2]}'>a</i>
23273 3. Leading whitespace in indent-pre suppressing contexts should not be escaped
23292 4. Leading whitespace in indent-pre suppressing contexts should not be escaped
23296 [[File:Foobar.jpg|thumb|caption]]
23298 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
23302 5. Nowiki escaping should account for indent-pres
23312 T95794: nowiki escaping should account for leading space at start-of-line in an indent-pre block
23325 #### --------------- Behavior Switches --------------------
23328 1. Valid behavior switches should be escaped
23335 <nowiki>__TOC__</nowiki>
23336 ''<nowiki>__TOC__</nowiki>''
23340 2. Invalid behavior switches should not be escaped
23351 # We use indent-pre as an indirect way to test for sol-transparent behavior.
23353 Behavior switches should be SOL-transparent
23357 <!-- this one's bogus -->
23364 <meta property="mw:PageProp/toc" />
23366 <!-- this one's bogus -->
23369 <pre data-parsoid='{}'><meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/> foo</pre>
23371 <meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/><pre data-parsoid='{}'>bar</pre>
23374 #### --------------- HTML tags ---------------
23377 #### 3. multi-line html tag
23378 #### 4. extension tags
23379 #### -----------------------------------------
23385 <a href="http://google.com">google</a>
23387 <a href="http://google.com">google</a>
23393 * <nowiki><div>foo</div></nowiki>
23394 * <nowiki><div style="color:red">foo</div></nowiki>
23395 * <nowiki><td></nowiki>
23397 <ul><li> <div>foo</div></li>
23398 <li> <div style="color:red">foo</div></li>
23399 <li> <td></li></ul>
23404 3. multi-line html tag
23419 <nowiki><ref>foo</ref></nowiki>
23421 <nowiki><ref>bar</nowiki>
23423 baz<nowiki></ref></nowiki>
23425 <p><ref>foo</ref>
23426 </p><p><ref>bar
23427 </p><p>baz</ref>
23431 #### --------------- Others ---------------
23435 <nowiki>foo</nowiki>
23437 <p><nowiki>foo</nowiki>
23441 ## The quote-char in the input is necessary for triggering the bug
23443 (Bug 52035) Nowiki-escaping should not get tripped by " :" in text
23445 parsoid=wt2wt,html2wt
23454 Tag-like HTML structures are passed through as text
23476 </p><p>1<d e>f
23481 HTML tag with necessary entities in attributes
23483 <span title="&amp;">foo</span>
23485 <p><span title="&amp;">foo</span>
23490 HTML tag with 'unnecessary' entity encoding in attributes
23492 <span title="&">foo</span>
23494 <p><span title="&">foo</span>
23499 HTML tag with broken attribute value quoting
23501 <span title="Hello world>Foo</span>
23503 <p><span title="Hello world">Foo</span>
23506 <p><span title="Hello world">Foo</span>
23511 Table with broken attribute value quoting
23514 | title="Hello world|Foo
23519 <td title="Hello world">Foo
23525 <td title="Hello world">Foo
23531 Table with broken attribute value quoting on consecutive lines
23534 | title="Hello world|Foo
23535 | style="color:red|Bar
23540 <td title="Hello world">Foo
23542 <td style="color:red">Bar
23548 <td title="Hello world">Foo
23549 </td><td style="color: red">Bar
23550 </td></tr></tbody></table>
23555 2. Parsoid-only: Don't wrap broken template tags in <nowiki> on wt2wt (Bug 42353)
23565 1. Parsoid-only: Don't wrap broken template tags in <nowiki> on wt2wt (Bug 42353)
23575 Accept empty td cell attribute
23578 | align="center" | foo || |
23583 <td align="center"> foo </td>
23590 Non-empty attributes in th-cells
23593 ! Foo !! style="color: red" | Bar
23599 <th style="color: red"> Bar
23605 Accept empty attributes in th-cells
23620 Empty table rows go away
23641 ### Parsoid-centric tests for testing RTing of inter-element separators
23642 ### Edge cases not tested by existing parser tests and specific to
23643 ### Parsoid-specific serialization strategies.
23647 RT-ed inter-element separators should be valid separators
23659 # Parsoid-only since PHP parser relies on Tidy for correct output
23661 Trailing newlines in a deep dom-subtree that ends a wikitext line should be migrated out
23675 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo
23676 <p>bar</p></small></td></tr>
23680 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo<small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></small></td></tr>
23684 # Note that the "style" attribute is really a template parameter here.
23685 # The = would have to be {{=}} if you wanted the literal.
23687 Empty TD followed by TD with tpl-generated attribute
23692 |{{echo|style='color:red'}}|foo
23706 Indented table with an empty td
23724 ## We have some newline diffs RT-ing this edge case
23725 ## and it is not important enough -- we seem to be emitting
23726 ## at most 2 newlines after a </tr> and this is unrelated to
23727 ## the issue from T85627 that this is testing.
23729 Indented table with blank lines in between (T85627)
23748 Indented block & table
23762 <div data-parsoid='{"stx":"html"}'>foo</div>
23764 <tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'>foo</td></tr>
23769 Indent and comment before table row
23784 <!--hi--><tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
23785 <td data-parsoid='{"autoInsertedEnd":true}'> there</td></tr>
23789 # Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext
23791 Empty TR followed by a template-generated TR
23797 {{echo|<tr><td>foo</td></tr>}}
23803 <tr about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<tr><td>foo</td></tr>"}},"i":0}}]}'>
23808 ## PHP and parsoid output differ for this, and since this is primarily
23809 ## for testing Parsoid's serializer, marking this Parsoid only
23811 Empty TR followed by mixed-ws-comment line should RT correctly
23827 <!--c--> </tr><!--d-->
23833 Multi-line image caption generated by templates with/without trailing newlines
23835 [[File:Foobar.jpg|thumb|300x300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}]]
23836 [[File:Foobar.jpg|thumb|300x300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}\n\n]]
23838 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a><figcaption>foo\n<span about="#mwt9" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"A"}},"i":0}}]}'>A</span>\n<span about="#mwt10" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"B"}},"i":0}}]}'>B</span>\n<span about="#mwt11" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"C"}},"i":0}}]}'>C</span></figcaption></figure>
23839 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a><figcaption>foo\n<span about="#mwt12" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"A"}},"i":0}}]}'>A</span>\n<span about="#mwt13" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"B"}},"i":0}}]}'>B</span>\n<span about="#mwt14" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"C"}},"i":0}}]}'>C</span>\n\n</figcaption></figure>
23843 New element inserted (without intervening newlines) after an old sol-transparent node should serialize correctly
23847 <meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"<includeonly>foo</includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><p>new para</p>
23849 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{}'/><h1>new heading</h1>
23851 <includeonly>foo</includeonly>
23859 ## PHP emits broken html for this, and since this is primarily
23860 ## a Parsoid serializer test, marking this Parsoid only
23862 Improperly nested inline or quotes tags with whitespace in between
23864 <span> <s>x</span> </s>
23867 <p><span> <s>x</s></span><s> </s>
23868 <b> <i>x</i></b><i> </i>
23873 Encapsulate protected attributes from wt
23875 <div typeof="mw:placeholder stuff" data-mw="whoo" data-parsoid="weird" data-parsoid-other="no" about="time" rel="mw:true">foo</div>
23877 <body><div data-x-typeof="mw:placeholder stuff" data-x-data-mw="whoo" data-x-data-parsoid="weird" data-x-data-parsoid-other="no" data-x-about="time" data-x-rel="mw:true">foo</div>
23881 ## Currently the p-wrapper is fragile in how it adds / removes transformations.
23882 ## Having nested or stray pre tags results in the attempt to add duplicates,
23883 ## causing an assertion fail. This test tries to prevent that situation.
23885 Ensure ParagraphWrapper can deal with stray closing pre tags
23895 1. Ensure fostered text content is wrapped in element nodes
23899 <table>hi</table><table>ho</table>
23908 2. Ensure fostered text content is wrapped in element nodes (traps regressions around fostered marker on the element getting lost)
23910 parsoid=wt2html,wt2wt
23919 <tbody><tr><td> a</td></tr>
23924 Encapsulation properly handles null DSR information from foster box
23926 parsoid=wt2html,wt2wt
23928 {{echo|<table>foo<tr><td>bar</td></tr></table>}}
23930 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<table>foo<tr><td>bar</td></tr></table>"}},"i":0}}]}">foo</span><table><tbody><tr><td>bar</td></tr></tbody></table>
23934 1. Encapsulate foster-parented transclusion content
23936 parsoid=wt2wt,wt2html
23938 <table>{{echo|foo<tr><td>bar</td></tr>}}</table>
23940 <p typeof="mw:Transclusion" data-mw="{"parts":["<table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo<tr><td>bar</td></tr>"}},"i":0}},"</table>"]}">foo</p><table>
23950 2. Encapsulate foster-parented transclusion content
23952 parsoid=wt2wt,wt2html
23954 <table><div>{{echo|foo}}</div><tr><td>bar</td></tr></table>
23956 <div typeof="mw:Transclusion" data-mw="{"parts":["<table><div>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}},"</div><tr><td>bar</td></tr></table>"]}">foo</div>
23967 3. Encapsulate foster-parented transclusion content
23969 parsoid=wt2wt,wt2html
23971 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
23973 <div typeof="mw:Transclusion" data-mw="{"parts":["<table><div><p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</p></div><tr><td>"}},"i":0}},"bar</td></tr></table>"]}">
23986 4. Encapsulate foster-parented transclusion content
23988 parsoid=wt2wt,wt2html
23990 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
23992 <div typeof="mw:Transclusion" data-mw="{"parts":["<table><div><p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</p></div><tr><td>"}},"i":0}},"bar</td></tr></table>"]}">
24005 5. Encapsulate foster-parented transclusion content
24007 parsoid=wt2wt,wt2html
24009 <table><tr><td><div><p>{{echo|foo</p></div></td>foo}}</tr></table>
24011 <p typeof="mw:Transclusion" data-mw="{"parts":["<table><tr><td><div><p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</p></div></td>foo"}},"i":0}},"</tr></table>"]}">foo</p>
24026 6. Encapsulate foster-parented transclusion content
24028 parsoid=wt2wt,wt2html
24030 <table><tr><td><div><p>{{echo|foo</p></div></td>foo</tr></table>}}<p>ok</p>
24032 <p typeof="mw:Transclusion" data-mw="{"parts":["<table><tr><td><div><p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</p></div></td>foo</tr></table>"}},"i":0}}]}">foo</p>
24048 7. Encapsulate foster-parented transclusion content
24050 parsoid=wt2wt,wt2html
24052 <table>{{echo|<p>foo</p>}}<td>bar</td></table>
24054 <p typeof="mw:Transclusion" data-mw="{"parts":["<table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<p>foo</p>"}},"i":0}},"<td>bar</td></table>"]}">foo</p>
24064 # Note that the wt is broken on purpose: the = should be {{=}} if you
24065 # don't want it to be a template parameter key.
24067 8. Encapsulate foster-parented transclusion content
24069 parsoid=wt2wt,wt2html
24072 }}{|{{echo|style='color:red'}}
24077 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n"}},"i":0}}]}'>a</p>
24079 <p typeof="mw:Transclusion" data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"style":{"wt":"'color:red'"}},"i":0}},"\n|-\n|b\n|}"]}'>{{{1}}}</p>
24090 9. Encapsulate foster-parented transclusion content
24092 parsoid=wt2wt,wt2html
24094 <table>{{echo|hi</table>hello}}
24096 <p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["<table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi</table>hello"}},"i":0}}]}' data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"pi":[[{"k":"1","spc":["","","",""]}]]}'>hi</p><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><p about="#mwt2">hello</p>
24100 Table in fosterable position
24102 parsoid=wt2html,wt2wt
24111 <div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"OpenTable","href":"./Template:OpenTable"},"params":{},"i":0}},"\n<div>"]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[]]}'></div><span about="#mwt1">
24113 <table about="#mwt1" data-parsoid='{"autoInsertedEnd":true}'></table>
24119 # Parsoid only for bug 64747
24121 Properly encapsulate empty-content transclusions in fosterable positions
24129 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["<table>\n",{"template":{"target":{"wt":"#if:","function":"#if"},"params":{"1":{"wt":"\n<td>foo</td>\n"}},"i":0}},"\n</table>"]}' data-parsoid='{"stx":"html","pi":[[{"k":"1","spc":["","","",""]}]]}'>
24135 Support <object> element with .data attribute
24139 <object data="test.swf"></object>
24141 <object data="test.swf"></object>
24145 Don't block XML namespace declaration
24147 <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">MediaWiki</span>
24149 <p><span>MediaWiki</span>
24152 <p><span xmlns:dct="http://purl.org/dc/terms/" data-x-property="dct:title" data-parsoid='{"stx":"html"}'>MediaWiki</span></p>
24155 # -----------------------------------------------------------------
24156 # The following section of tests are primarily to spec requirements
24157 # around serialization of new/edited content.
24159 # All these tests are marked Parsoid html2wt and html2html only
24160 # ----------------------------------------------------------------
24162 # 'mi' is a localinterwiki prefix as well as a language
24164 Serialize interwiki links pointing to the current wiki as plain wiki links (bug 65869)
24168 <p><a rel="mw:ExtLink" href="http://mi.wikipedia.org/wiki/Foo">Foo</a></p>
24175 New wikilinks should be serialized properly
24179 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{}'>Foo</a>
24180 <a rel="mw:WikiLink" href="./Foo" title="Foo">Foo</a>
24187 New wiki links (href variations)
24191 <a rel="mw:WikiLink" href="./Foo_bar">Foo_bar</a>
24192 <a rel="mw:WikiLink" href="Foo_bar">Foo_bar</a>
24193 <a rel="mw:WikiLink" href="Foo bar">Foo_bar</a>
24194 <a rel="mw:WikiLink" href="./Toxine_bact%C3%A9rienne">Toxine bactérienne</a>
24199 [[Toxine bactérienne]]
24203 New wiki links (content string variations)
24207 <a rel="mw:WikiLink" href="./Foo_bar">Foo_bar</a>
24208 <a rel="mw:WikiLink" href="./Foo_bar">Foo bar</a>
24209 <a rel="mw:WikiLink" href="./Foo_bar">./Foo_bar</a>
24213 [[Foo_bar|./Foo_bar]]
24217 New category links (href variations)
24221 <link rel="mw:PageProp/Category" href="./Category:Toxine_bactérienne" />
24222 <link rel="mw:PageProp/Category" href="./Category:Toxine_bact%C3%A9rienne" />
24223 <link rel="mw:PageProp/Category" href="Category:Toxine_bact%C3%A9rienne" />
24225 [[Category:Toxine bactérienne]]
24226 [[Category:Toxine bactérienne]]
24227 [[Category:Toxine bactérienne]]
24231 New sol transparent links don't need indent-pre nowiki protection
24236 <link rel="mw:PageProp/redirect" href="./Main_Page">
24237 <!-- this is good --> <link rel="mw:PageProp/Category" href="./Category:Good" />
24238 <!-- this is great --> <link rel="mw:PageProp/Category" href="./Kategorie:Great" />
24240 #WEITERLEITUNG [[Main Page]]
24241 <!-- this is good --> [[Category:Good]]
24242 <!-- this is great --> [[Kategorie:Great]]
24246 New interlanguage links (href variations)
24250 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine bactérienne" />
24251 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine_bactérienne" />
24252 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine_bact%C3%A9rienne" />
24254 [[es:Toxine bactérienne]]
24255 [[es:Toxine_bactérienne]]
24256 [[es:Toxine_bactérienne]]
24260 Image: Modifying size of an image (1)
24263 "modes": ["wt2wt"],
24265 ["img[height]", "attr", "height", "22"],
24266 ["img[width]", "attr", "width", "200"]
24270 [[Image:Foobar.jpg|230x230px]]
24272 [[Image:Foobar.jpg|200x200px]]
24276 Image: Modifying size of an image (2)
24279 "modes": ["wt2wt"],
24281 ["img[height]", "attr", "height", "100"],
24282 ["img[width]", "attr", "width", "500"]
24286 [[Image:Foobar.jpg|230x230px]]
24288 [[Image:Foobar.jpg|500x500px]]
24291 # Change in size is ignored so long as class='mw-default-size'
24293 Image: Modifying size of an image (3)
24296 "modes": ["wt2wt"],
24298 ["figure[class]", "removeClass", "mw-default-size"],
24299 ["figure img", "attr", "height", "19"],
24300 ["figure img", "attr", "width", "170"]
24304 [[Image:Foobar.jpg|thumb]]
24306 [[Image:Foobar.jpg|thumb|170x170px]]
24310 Image: Modifying alignment of an image (bug 48665)
24313 "modes": ["wt2wt"],
24315 ["figure[class]", "removeClass", "mw-halign-right"],
24316 ["figure[class]", "addClass", "mw-halign-left"]
24320 [[Image:Foobar.jpg|thumb|caption|right]]
24322 [[Image:Foobar.jpg|thumb|caption|left]]
24326 Image: Modifying mw-default-size of an frameless image (bug 62805)
24329 "modes": ["wt2wt"],
24331 ["figure.mw-default-size", "removeClass", "mw-default-size"]
24335 [[Image:Foobar.jpg|frameless|right]]
24337 [[Image:Foobar.jpg|frameless|right|220x220px]]
24341 Image: Modifying valign of an image (bug 49221)
24344 "modes": ["wt2wt"],
24346 ["*[typeof=\"mw:Image\"]", "removeClass", "mw-valign-middle"],
24347 ["*[typeof=\"mw:Image\"]", "addClass", "mw-valign-text-top"]
24351 [[File:Foobar.jpg|20px|middle]]
24353 [[File:Foobar.jpg|20px|text-top]]
24357 Image: Modifying alt attribute of an image (bug 56400)
24360 "modes": ["wt2wt"],
24362 ["img[alt]", "attr", "alt", "some alternate edited text"]
24366 [[File:Foobar.jpg|thumb|some caption|alt=some alternate text]]
24368 [[File:Foobar.jpg|thumb|some caption|alt=some alternate edited text]]
24372 Image: Modifying caption of an image
24375 "modes": ["wt2wt"],
24377 ["figcaption", "text", "new caption"]
24381 [[Image:Foobar.jpg|thumb|original caption]]
24383 [[Image:Foobar.jpg|thumb|new caption]]
24387 Image: empty alt attribute (bug 48924)
24391 [[File:Foobar.jpg|thumb|alt=|bar]]
24393 <figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"alt","ak":"alt="},{"ck":"caption","ak":"bar"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" data-parsoid='{"a":{"alt":"","resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"alt":"alt=","resource":"File:Foobar.jpg"}}'/></a><figcaption>bar</figcaption></figure>
24397 Image: new attributes should be serialized in wiki's language for RTL languages (bug 51852)
24403 <figure class="mw-default-size mw-halign-right" typeof="mw:Image/Thumb"><a href="./Imagen:Foobar.jpg"><img resource="./Imagen:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180"/></a></figure>
24405 [[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
24409 Image: Block level image should have \n before and after
24412 [[File:Foobar.jpg|right|thumb|150x150px]]
24416 <figure class="mw-halign-right" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="17" width="150"/></a></figure>
24421 Image: New block level image should have \n before and after (existing content)
24424 [[File:Foobar.jpg|right|thumb|150x150px]]
24428 <figure class="mw-halign-right" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"right","ak":"right"},{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"150x150px"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="17" width="150" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"17","width":"150"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure>
24433 Image: upright option (parsoid)
24435 [[File:Foobar.jpg|thumb|upright|caption]]
24436 [[File:Foobar.jpg|thumb|upright=0.5|caption]]
24437 [[File:Foobar.jpg|thumb|500x500px|upright=0.5|caption]]
24439 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/170px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="19" width="170"/></a><figcaption>caption</figcaption></figure>
24440 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/110px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="12" width="110"/></a><figcaption>caption</figcaption></figure>
24441 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500"/></a><figcaption>caption</figcaption></figure>
24445 Image: upright option is ignored on inline and frame images (parsoid)
24447 [[File:Foobar.jpg|500x500px|upright=0.5|caption]]
24449 <p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500"/></a></span></p>
24453 Image: from basic HTML (1)
24457 <span typeof="mw:Image">
24458 <img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
24461 [[File:Foobar.jpg|link=|alt=Alt|100x100px]]
24465 Image: from basic HTML (2)
24469 <img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
24471 [[File:Foobar.jpg|link=|alt=Alt|100x100px]]
24475 Image: from basic HTML (3)
24479 <a href="Main"><img src="./File:Foobar.jpg" width=100 height=100 alt="Alt"></a>
24481 [[File:Foobar.jpg|link=Main|alt=Alt|100x100px]]
24485 Image: from basic HTML (4)
24489 <img src="./File:Foobar.jpg">
24491 [[File:Foobar.jpg|link=]]
24495 Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does)
24500 <li><p>foo</p></li>
24507 Lists: Serialize correctly even when list tags has unneeded whitespace between tags
24511 <ul> <li>foo</li></ul>
24517 Don't strip leading whitespace when handling indent-pre suppressing tags
24522 <tr><td> indented row</td></tr>
24525 <b>This is very bold of you!</b>
24528 indented cell (no pre-wrapping!)
24538 '''This is very bold of you!'''
24542 indented cell (no pre-wrapping!)
24550 Nowiki-wrap leading whitespace when handling indent-pre inducing tags
24568 <nowiki> </nowiki><span>bar</span>
24571 <nowiki> </nowiki></span>bar2
24574 <nowiki> </nowiki><span>bar</span>
24577 <nowiki> </nowiki><span>foo</span>
24582 Lists: Dont insert newlines in a serialized list item.
24586 <ul><li>a<br>b</li><li>c</li></ul>
24593 1. Headings: Force sol-transparent links and behavior switches to serialize before/after
24596 "modes": ["html2wt"],
24597 "scrubWikitext": false
24600 <h2>hello there<link href="./Category:A1" rel="mw:PageProp/Category" /></h2>
24601 <h2><link href="./Category:A2" rel="mw:PageProp/Category" />hi pal</h2>
24603 <h2><!--foo--> <link href="./Category:A3" rel="mw:PageProp/Category" /> how goes it</h2>
24604 <h2>it goes well <link href="./Category:A4" rel="mw:PageProp/Category" /> <!--bar--></h2>
24606 <h2 data-parsoid='{}'>howdy<link href="./Category:A5" rel="mw:PageProp/Category" /></h2>
24608 <h2><meta property="mw:PageProp/toc" /> ok</h2>
24610 == hello there [[Category:A1]] ==
24612 == [[Category:A2]] hi pal ==
24614 == <!--foo--> [[Category:A3]] how goes it ==
24616 == it goes well [[Category:A4]] <!--bar--> ==
24618 ==howdy [[Category:A5]] ==
24624 2. Headings: Force sol-transparent links and behavior switches to serialize before/after
24627 "modes": ["html2wt"],
24628 "scrubWikitext": true
24631 <h2>hello there<link href="./Category:A1" rel="mw:PageProp/Category" /></h2>
24632 <h2><link href="./Category:A2" rel="mw:PageProp/Category" />hi pal</h2>
24634 <h2><!--foo--> <link href="./Category:A3" rel="mw:PageProp/Category" /> how goes it</h2>
24635 <h2>it goes well <link href="./Category:A4" rel="mw:PageProp/Category" /> <!--bar--></h2>
24637 <h2><meta property="mw:PageProp/toc" /> ok</h2>
24645 <!--foo--> [[Category:A3]]
24650 [[Category:A4]] <!--bar-->
24658 Headings: Don't hoist metas that come from templates
24661 "modes": ["html2wt"],
24662 "scrubWikitext": true
24665 <h2><span about="#mwt1" typeof="mw:Transclusion" data-parsoid="{}" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo [[Category:Foo]]"}},"i":0}}]}'>foo </span><link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1" data-parsoid="{}" /></h2>
24667 == {{echo|foo [[Category:Foo]]}} ==
24671 Headings: Category in ref isn't hoisted
24674 "modes": ["html2wt"],
24675 "scrubWikitext": true
24678 <h2> foo <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> </h2>
24680 <ol class="references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">bar <link rel="mw:PageProp/Category" href="./Category:Baz" /> </span></li></ol>
24683 [[Category:Baz]] </ref> ==
24689 Parsoid: Serialize positional parameters with = in them as named parameter
24693 <p about="#mwt1" typeof="mw:Transclusion"
24694 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}},"i":0}}]}'>foo</p>
24696 <p about="#mwt1" typeof="mw:Transclusion"
24697 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}, "2":{"wt":"bar"}},"i":0}}]}'>foo</p>
24699 <!--Orig params with data-parsoid has heuristics for handling = chars-->
24700 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
24701 <p data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]},{"k":"2","spc":["","","",""]}]]}' about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"},"2":{"wt":"bar"}},"i":0}}]}'>foo</p>
24705 {{echo|1 = f=oo|2 = bar}}
24707 <!--Orig params with data-parsoid has heuristics for handling = chars-->
24708 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
24709 {{echo|<nowiki>f=oo</nowiki>|bar}}
24713 Parsoid: Serialize positional parameters with = in extlink as named parameter
24717 <p><a rel="mw:ExtLink" href="http://stuff?is=ok" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://stuff?is=ok"}},"i":0}}]}'>http://stuff?is=ok</a></p>
24719 {{echo|1 = http://stuff?is=ok}}
24723 Parsoid: Correctly serialize block-node children when they are a combination of text and p-nodes
24727 <div>a<p>b</p></div>
24748 Substrings resembling wikitext in hrefs should not get nowiki escapes
24752 <a rel="mw:WikiLink" href="./Foo''bar''baz">Foo''bar''baz</a>
24758 Enforce single-line context in the serializer
24765 <h2> hi <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"bogus","href":"./Template:Bogus"},"params":{"1":{"wt":"there\nyou"}},"i":0}}]}'>there</span><span about="#mwt1">
24766 </span><span about="#mwt1">you</span> </h2>
24768 <h2> foo <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> </h2>
24770 <ol class="references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">hello
24771 there</span></li></ol>
24783 ho </dt><dd data-parsoid='{"stx":"row"}'> hi
24790 </tbody></table></dd></dl>
24794 == hi {{bogus|there
24805 * foo '''bar''' baz
24817 Serialize new placeholder space without spans
24821 <p>foo<span typeof="mw:Placeholder"> </span>: bar</p>
24823 <p>foo<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span>: bar</p>
24825 <span typeof="mw:Extension/ref" data-mw="{"name":"ref","body":{"html":"foo<span typeof=\"mw:Placeholder\">&nbsp;</span>: bar"}}"><sup>[1]</sup></span>ok</p>
24831 <ref>foo : bar</ref>ok
24835 #-----------------------
24836 # Tag minimization tests
24837 #-----------------------
24840 1. I/B quote minimization: wikitext-only tags should be combined
24844 <p><i>A</i><i>B</i></p>
24845 <p><b>A</b><b>B</b></p>
24846 <p><i>A</i><b><i>B</i></b></p>
24847 <p><b>A</b><i><b>B</b></i></p>
24848 <p><b>A</b><i><b>B</b><b>C</b></i><b>D</b></p>
24849 <p><i><b>A</b></i><i><b>B</b></i></p>
24850 <p><i><b>A</b></i><b><i>B</i></b></p>
24851 <p><b><i>A</i></b><i><b>B</b></i></p>
24871 2. I/B quote minimization: wikitext and html tags should not be combined
24875 <p><i>A</i><i data-parsoid='{"stx":"html"}'>B</i></p>
24876 <p><i>A</i><b><i data-parsoid='{"stx":"html"}'>B</i></b></p>
24880 ''A''<nowiki/>'''<i>B</i>'''
24884 3. I/B quote minimization: templated content stops minimization
24888 <p><i>A</i><i about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"''B''"}},"i":0}}]}'>B</i>
24889 <p><i>A</i><b about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"'''''B'''''"}},"i":0}}]}'><i>B</i></b>
24891 ''A''{{echo|''B''}}
24893 ''A''{{echo|'''''B'''''}}
24897 4. I/B quote minimization: new content should be mimimized with adjacent old content
24901 <p><i>A</i><i>B</i></p>
24902 <p><b>A</b><b>B</b></p>
24903 <p><i>A</i><b><i>B</i></b></p>
24913 5a. Merge adjacent quote nodes if they've been edited
24916 "modes": ["wt2wt", "selser"],
24918 ["p", "contents", "remove", ":contains('b')"]
24928 5b. Merge adjacent quote nodes if they've been edited
24931 "modes": ["wt2wt", "selser"],
24937 ''a''<span id="x">b</span>''c''
24943 1. Merge adjacent link nodes as long as at least one element is new
24946 "modes": ["html2wt"],
24947 "scrubWikitext": true
24950 <a rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
24951 <a data-parsoid="{}" rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
24952 <a data-parsoid="{}" rel="mw:WikiLink" href="./Football">Foot</a><a data-parsoid="{}" rel="mw:WikiLink" href="./Football">ball</a>
24956 [[Football|Foot]][[Football|ball]]
24960 2. Merge adjacent link nodes and enable additional normalizations
24963 "modes": ["html2wt"],
24964 "scrubWikitext": true
24967 <a rel="mw:WikiLink" href="./Football"><i>Foot</i></a><a rel="mw:WikiLink" href="./Football"><i>ball</i></a>
24969 [[Football|''Football'']]
24973 3. Don't merge adjacent link nodes if scrubWikitext is false
24976 "modes": ["html2wt"],
24977 "scrubWikitext": false
24980 <a rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
24982 [[Football|Foot]][[Football|ball]]
24985 #------------------------------
24986 # End of tag minimization tests
24987 #------------------------------
24990 Bug 54262: New entities
24994 <span typeof="mw:Entity"> </span>
24999 ## Note that there is no wikitext output for 'unknownproperty' ##
25000 ## Unknown magic words are silently dropped ##
25007 <meta property='mw:PageProp/toc' />
25008 <meta property='mw:PageProp/notoc' />
25009 <meta property='mw:PageProp/forcetoc' />
25010 <meta property='mw:PageProp/index' />
25011 <meta property='mw:PageProp/noindex' />
25012 <meta property='mw:PageProp/nogallery' />
25013 <meta property='mw:PageProp/noeditsection' />
25014 <meta property='mw:PageProp/notitleconvert' />
25015 <meta property='mw:PageProp/nocontentconvert' />
25016 <meta property='mw:PageProp/unknownproperty' />
25026 __NOCONTENTCONVERT__
25030 Consecutive <pre>s should not get merged
25032 parsoid=html2wt,html2html
25034 <pre>a</pre><pre>b</pre>
25062 Edited ISBN links not serializable as ISBN links should serialize as wikilinks
25066 <a href="./Special:BookSources/1234567890" rel="mw:ExtLink">ISBN 1234567895</a>
25068 [[Special:BookSources/1234567890|ISBN 1234567895]]
25072 Edited RFC links not serializable as RFC links should serialize as extlinks
25076 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink">New RFC</a>
25078 [//tools.ietf.org/html/rfc123 New RFC]
25082 Edited PMID links not serializable as PMID links should serialize as extlinks
25086 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink">New PMID</a>
25088 [//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract New PMID]
25092 WTS of autolinks with trailing/surrounding context
25096 <p><a href="http://cscott.net">http://cscott.net</a><b>foo</b></p>
25097 <p><a href="http://cscott.net">http://cscott.net</a><b data-parsoid='{"stx":"html"}'>foo</b></p>
25098 <p><b><a href="http://cscott.net">http://cscott.net</a></b></p>
25099 <p><b><a href="http://cscott.net">http://cscott.net</a> </b></p>
25100 <p><b><a href="http://cscott.net">http://cscott.net</a>x</b></p>
25101 <p><a href="http://cscott.net">http://cscott.net</a>x</p>
25103 http://cscott.net<nowiki/>'''foo'''
25105 http://cscott.net<b>foo</b>
25107 '''http://cscott.net<nowiki/>'''
25109 '''http://cscott.net '''
25111 '''http://cscott.net<nowiki/>x'''
25113 http://cscott.net<nowiki/>x
25117 WTS of autolinks with nowikis (round-trip)
25119 x<nowiki/>http://cscott.net<nowiki/>x
25121 <p>x<a rel="mw:ExtLink" href="http://cscott.net">http://cscott.net</a>x</p>
25124 # this is the "easy" test because it leaves in place all the
25125 # data-parsoid information indicating this is an autolink
25127 WTS of autolinks with escapes (editing)
25130 "modes": ["wt2wt"],
25132 [ "meta", "remove" ]
25136 x<nowiki/>http://cscott.net<nowiki/>x
25138 x<nowiki/>http://cscott.net<nowiki/>x
25142 WTS of edited autolink-like text (T103364)
25145 "modes": ["wt2wt"],
25147 [ "span[typeof]", "removeAttr", "typeof" ]
25151 Not a link: <nowiki>http://example.com</nowiki>.
25153 Not a link: <span><nowiki>http://example.com</nowiki></span>.
25157 WTS of newly-authored autolink-like text (T103364)
25161 <p>http://example.com is not a link.</p>
25163 <nowiki>http://example.com is not a link.</nowiki>
25167 WTS of autolink-like text after an autolink (T108563)
25171 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> http://example.com is not a link.</p>
25173 http://example.com<nowiki> http://example.com is not a link.</nowiki>
25177 Magic links inside links (not autolinked)
25179 [[Foo|http://example.com]]
25182 [[Foo|ISBN 123456789x]]
25184 [http://foo.com http://example.com]
25185 [http://foo.com RFC 1234]
25186 [http://foo.com PMID 1234]
25187 [http://foo.com ISBN 123456789x]
25189 <p><a href="/wiki/Foo" title="Foo">http://example.com</a> <a href="/wiki/Foo" title="Foo">RFC 1234</a> <a href="/wiki/Foo" title="Foo">PMID 1234</a> <a href="/wiki/Foo" title="Foo">ISBN 123456789x</a></p>
25190 <p><a rel="nofollow" class="external text" href="http://foo.com">http://example.com</a> <a rel="nofollow" class="external text" href="http://foo.com">RFC 1234</a> <a rel="nofollow" class="external text" href="http://foo.com">PMID 1234</a> <a rel="nofollow" class="external text" href="http://foo.com">ISBN 123456789x</a></p>
25192 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">http://example.com</a>
25193 <a rel="mw:WikiLink" href="./Foo" title="Foo">RFC 1234</a>
25194 <a rel="mw:WikiLink" href="./Foo" title="Foo">PMID 1234</a>
25195 <a rel="mw:WikiLink" href="./Foo" title="Foo">ISBN 123456789x</a></p>
25197 <p><a rel="mw:ExtLink" href="http://foo.com">http://example.com</a>
25198 <a rel="mw:ExtLink" href="http://foo.com">RFC 1234</a>
25199 <a rel="mw:ExtLink" href="http://foo.com">PMID 1234</a>
25200 <a rel="mw:ExtLink" href="http://foo.com">ISBN 123456789x</a></p>
25204 Magic links inside image captions (autolinked)
25206 [[File:Foobar.jpg|thumb|http://example.com]]
25207 [[File:Foobar.jpg|thumb|RFC 1234]]
25208 [[File:Foobar.jpg|thumb|PMID 1234]]
25209 [[File:Foobar.jpg|thumb|ISBN 123456789x]]
25211 <div class="thumb tright">
25212 <div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
25213 <div class="thumbcaption">
25214 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
25215 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div>
25218 <div class="thumb tright">
25219 <div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
25220 <div class="thumbcaption">
25221 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
25222 <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc1234">RFC 1234</a></div>
25225 <div class="thumb tright">
25226 <div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
25227 <div class="thumbcaption">
25228 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
25229 <a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a></div>
25232 <div class="thumb tright">
25233 <div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
25234 <div class="thumbcaption">
25235 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
25236 <a href="/wiki/Special:BookSources/123456789X" class="internal mw-magiclink-isbn">ISBN 123456789x</a></div>
25240 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
25241 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a href="//tools.ietf.org/html/rfc1234" rel="mw:ExtLink">RFC 1234</a></figcaption></figure>
25242 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink">PMID 1234</a></figcaption></figure>
25243 <figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><a href="./Special:BookSources/123456789X" rel="mw:WikiLink">ISBN 123456789x</a></figcaption></figure>
25247 WTS of magic word text (T109371)
25252 <p><a href="http://foo.com" rel="mw:ExtLink">RFC 1234</a></p>
25253 <p><a href="./Foo" rel="mw:WikiLink">RFC 1234</a></p>
25255 <nowiki>RFC 1234</nowiki>
25257 [http://foo.com RFC 1234]
25263 Edited Redirect link should emit a non-piped wikitext link
25267 <link rel="mw:PageProp/redirect" href="Bar" data-parsoid='{"a":{"href":"./Foo"},"sa":{"href":"Foo"}}'>
25273 T75121: Infer extension name from typeOf if data-mw is not present
25277 <div typeOf="mw:Extension/foo"></div>
25282 # Note that the <p> wrapping isn't present in PHP parser output
25283 # The important thing for this test is that P-wrapping doesn't
25284 # interfere with the <nowiki> protection for leading - in <td>
25285 # (which isn't necessary for <th>).
25287 T88318: p-wrapped dash in table.
25289 parsoid=html2wt,wt2wt
25292 <tr><th><p>-</p></th><th><p>- </p></th></tr>
25293 <tr><td><p>-</p></td><td><p>- </p></td></tr>
25294 <tr><td><small>-</small></td><td><br/><p>-</p></td><td><br/>-</td></tr>
25301 |<nowiki>-</nowiki>
25302 |<nowiki>- </nowiki>
25321 <td><small>-</small></td>
25333 HTML id attribute with Parsoid-like element ids should not be serialized to wikitext
25338 <td id='mwAc'>foo</td>
25339 <td id='serialize-this'>bar</td>
25344 | id="serialize-this" |bar
25349 Parsoid-like element ids should not be serialized to wikitext unless shadowed
25353 <div id="mwAQ" data-parsoid='{"stx":"html","a":{"id":"mwAQ"},"sa":{"id":"hello"}}'>ok</div>
25355 <div id="hello">ok</div>
25362 "modes": ["wt2wt"],
25364 [ "#xyz", "before", "<b>before</b> stuff " ],
25365 [ "#xyz", "after", " stuff <i>after</i>" ],
25366 [ "#xyz", "html", "x <b>y</b> z" ]
25370 <span id="xyz">hello</span>
25372 '''before''' stuff <span id="xyz">x '''y''' z</span> stuff ''after''
25376 Never serialize a-tag as html, regardless of what data-parsoid has to say
25380 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"html"}'>Foo</a>
25385 ## SSS FIXME: This is broken output nevertheless.
25386 ## What might be a reasonable non-broken output for this?
25387 ## This is an edge case unlikely to be seen in production
25388 ## that I am not wasting more time on this right now.
25390 Never serialize a-tag as html, no matter what attributes it has
25394 <a bad='true' href='http://boo.org'><img src='http://boohoo.org' /></a>
25396 [http://boo.org http://boohoo.org]
25399 # Misnested is an indication that selser can reuse the source but these have
25400 # shown to sneak through on occasion. See T101768.
25401 # The original wikitext here is: [http://test.com [[one]] two three]
25403 Strip span tags added to mark as misnested
25407 <p data-parsoid='{}'><a rel="mw:ExtLink" href="http://test.com" data-parsoid='{"targetOff":17,"contentOffsets":[17,34]}'></a><a rel="mw:WikiLink" href="./One" title="One" data-parsoid='{"stx":"simple","a":{"href":"./One"},"sa":{"href":"one"},"misnested":true}'>one</a><span data-parsoid='{"misnested":true}'> two three</span></p>
25409 [http://test.com][[one]] two three
25412 # --------------------------------------------
25413 # Tests spec'ing wikitext serialization norms |
25414 # --------------------------------------------
25417 Lists: Add space after bullets
25424 <li><span> baz</span></li>
25429 * <span> baz</span>
25433 1. Headings: Add space before/after == (T53744)
25440 <h2><span> baz</span></h2>
25448 == <span> baz</span> ==
25452 2. Headings: Add space before/after == even after hoisted content
25455 "modes": ["html2wt"],
25456 "scrubWikitext": true
25459 <h2> <link href="./Category:A2" rel="mw:PageProp/Category" />ok</h2>
25467 1. Headings: suppress newly created empty headings
25470 "modes": ["html2wt"],
25471 "scrubWikitext": true
25479 2. Headings: don't suppress empty headings if scrubWikitext is false
25489 3. Headings: suppress empty headings on edits
25492 "modes": ["selser"],
25493 "scrubWikitext": true,
25499 ==<span id="x">foo</span>==
25504 1. WT Quote Tags: suppress newly created empty style tags
25507 "modes": ["html2wt"],
25508 "scrubWikitext": true
25516 2. WT Quote Tags: don't suppress empty style tags if scrubWikitext is false
25522 ''<nowiki/>'''''<nowiki/>'''
25526 3. WT Quote Tags: suppress empty style tags on edits
25529 "modes": ["selser"],
25530 "scrubWikitext": true,
25536 '''<span id="x">foo</span>'''
25541 1. Anchors: suppress newly created empty anchors
25544 "modes": ["html2wt"],
25545 "scrubWikitext": true
25548 <a rel="mw:WikiLink" href="./Test" title="Test"></a>
25553 2. Anchors: don't suppress empty anchors if scrubWikitext is false
25556 "modes": ["html2wt"],
25557 "scrubWikitext": false
25560 <a rel="mw:WikiLink" href="./Test" title="Test"></a>
25566 3. Anchors: suppress empty anchors on edits
25569 "modes": ["selser"],
25570 "scrubWikitext": true,
25576 [[Test|<span id="x">foo</span>]]
25581 3a. Anchors: do not suppress numbered extlinks
25584 "modes": ["wt2wt"],
25585 "scrubWikitext": true
25590 <a rel="mw:ExtLink" href="http://foo.com"></a>
25594 3b. Anchors: do not suppress numbered extlinks
25597 "modes": ["wt2wt"],
25598 "scrubWikitext": true,
25604 [http://foo.com <span id="x">foo</span>]
25610 Normalizations should be restricted to edited content
25613 "modes": ["selser"],
25614 "scrubWikitext": true,
25616 [ "h1", "before", "<i></i>"]
25630 1. Multiple normalizations (html2wt)
25633 "modes": ["html2wt"],
25634 "scrubWikitext": true
25638 <p><a href='Foo' rel='mw:WikiLink'>foo<i></i>
25639 </a><b><i></i></b>x</p>
25648 2. Multiple normalizations (selser)
25651 "modes": ["selser"],
25652 "scrubWikitext": true,
25654 [ "#x", "after", "<h1><i></i></h1>\n<p> x<b></b></p>"]
25658 <span id="x">foo</span>
25660 <span id="x">foo</span>
25666 1. Indent Pre Nowiki: suppress whitespace at the start of new paragraph
25669 "modes": ["html2wt"],
25670 "scrubWikitext": true
25682 2. Indent Pre Nowiki: don't suppress whitespace at the start of new paragraph if scrubWikitext is false
25689 <nowiki> </nowiki>hi
25691 <nowiki> </nowiki> hello
25695 3. Indent Pre Nowiki: suppress whitespace after newlines in new paragraph or table cell
25698 "modes": ["html2wt"],
25699 "scrubWikitext": true
25708 baz bang</td></tr></table>
25714 bar<span>boo</span></p>
25730 bar<span>boo</span>
25734 4. Indent Pre Nowiki: suppress leading whitespace in edited paragraphs
25737 "modes": ["selser"],
25738 "scrubWikitext": true,
25740 [ "p", "html", " a\n b" ]
25751 1. New links that end in spaces
25754 "modes": ["html2wt"],
25755 "scrubWikitext": false
25758 <p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the capital of Germany.</p>
25759 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
25760 <p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a city.</p>
25762 [[Berlin ]]<nowiki/>is the capital of Germany.
25766 [[Boston ]] is a city.
25770 2. New links that end in spaces
25773 "modes": ["html2wt"],
25774 "scrubWikitext": true
25777 <p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the capital of Germany.</p>
25778 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
25779 <p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a city.</p>
25781 [[Berlin]] is the capital of Germany.
25785 [[Boston]] is a city.
25789 1. Table cells with escapable prefixes
25792 "modes": ["html2wt"],
25793 "scrubWikitext": false
25797 <tr><td>a</td></tr>
25798 <tr><td>-</td></tr>
25799 <tr><td>+</td></tr>
25805 |<nowiki>-</nowiki>
25807 |<nowiki>+</nowiki>
25812 2. Table cells with escapable prefixes
25815 "modes": ["html2wt"],
25816 "scrubWikitext": true
25820 <tr><td>a</td></tr>
25821 <tr><td>-</td></tr>
25822 <tr><td>+</td></tr>
25835 3a. Table cells with escapable prefixes after edits
25838 "modes": ["selser"],
25839 "scrubWikitext": true,
25841 [ "table tbody tr:first-child td:first-child", "remove"]
25855 3b. Table cells with escapable prefixes after edits
25858 "modes": ["selser"],
25859 "scrubWikitext": true,
25861 [ "table tbody tr:first-child td:first-child", "html", "-" ],
25868 |<span id="x">foo</span>+
25877 # FIXME: This test will fail because
25878 # normalization doesn't realize that the id attribute
25879 # will eliminate the escapable scenario
25881 4a. Table cells without escapable prefixes after edits
25884 "modes": ["selser"],
25885 "scrubWikitext": true,
25887 [ "#x", "html", "-" ]
25900 ## This tests normalizer's ability to discriminate between
25901 ## cells having identical content.
25903 4b. Table cells without escapable prefixes after edits
25906 "modes": ["selser"],
25907 "scrubWikitext": true,
25909 [ "td", "html", "-" ]
25922 ## This tests normalizer's ability to not be tripped by
25923 ## comments (and whitespace)
25925 4c. Table cells without escapable prefixes after edits
25928 "modes": ["selser"],
25929 "scrubWikitext": true,
25931 [ "table tbody tr td:first-child", "remove" ]
25946 ## This tests normalizer's ability to handle HTML cells
25948 4d. Table cells without escapable prefixes after edits
25951 "modes": ["selser"],
25952 "scrubWikitext": true,
25954 [ "td", "html", "-" ]
25959 <tr><td>a</td></tr>
25963 <tr><td>-</td></tr>
25968 Escape nowiki DOM elements
25972 <nowiki><i>foo</i></nowiki>
25974 <nowiki>''foo''</nowiki>
25977 # ---------------------------------------------------
25978 # End of tests spec'ing wikitext serialization norms |
25979 # ---------------------------------------------------
25981 # -----------------------------------------------------------------
25982 # End of section for Parsoid-only html2wt tests for serialization
25984 # -----------------------------------------------------------------
25986 # -----------------------------------------------------------------
25987 # The following section of tests are primarily to spec behavior of
25988 # the selective serializer. All these tests have manual selser
25989 # changes. The automated selser changes for all tests handle the
25990 # wide variation of changes, but these tests here capture specs
25991 # deterministically.
25992 # ----------------------------------------------------------------
25996 Selser: New comments should not be lost
25999 "modes": ["selser"],
26001 [ "#a", "after", "<!--c1-->" ],
26002 [ "#b", "before", "<!--c2-->" ]
26006 <span id="a">a</span>
26008 <span id="b">b</span>
26010 <span id="a">a</span><!--c1-->
26012 <!--c2--><span id="b">b</span>
26017 Selser: Check for validity of DSR before using it
26020 "modes": ["selser"],
26022 [ "#a", "before", "<meta property='mw:PageProp/displaytitle' content='foo'>" ]
26026 <span id="a">a</span>
26028 {{DISPLAYTITLE:foo}}
26029 <span id="a">a</span>
26033 1. DOMDiff: Changes to <ref> content should be looked up using id
26036 "modes": ["selser"],
26038 ["#X", "after", "bar"],
26039 ["#Y", "after", "baz"]
26043 X <ref><span id="X">foo</span></ref>
26046 <ref name="a"><span id="Y">foo</span></ref>
26049 X <ref><span id="X">foo</span>bar</ref>
26052 <ref name="a"><span id="Y">foo</span>baz</ref>
26057 2. DOMDiff: Changes to <ref> content should be looked up using id
26060 "modes": ["selser"],
26062 ["#Z", "after", "bar"]
26066 A <ref>foo bar for a</ref>
26067 B <ref group="X" name="b" />
26071 <references group="X">
26072 <ref name="b"><span id="Z">foo</span></ref>
26075 A <ref>foo bar for a</ref>
26076 B <ref group="X" name="b" />
26080 <references group="X">
26081 <ref name="b"><span id="Z">foo</span>bar</ref>