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 # (ignored by Parsoid, since it emits <link>s)
18 # ill add inter-language links
19 # (ignored by Parsoid, since it emits <link>s)
20 # subpage enable subpages (disabled by default)
21 # title=[[XXX]] run test using article title XXX
22 # language=XXX set content language to XXX for this test
23 # variant=XXX set the variant of language for this test (eg zh-tw)
24 # disabled do not run test
25 # parsoid parsoid-specific options (not run by PHP parser unless
26 # the test includes an html/php section)
27 # php php-only test (not run by the parsoid parser unless
28 # the test includes an html/parsoid section)
29 # showtitle make the first line the title
30 # showindicators make the first lines the page status indicators
31 # comment run through Linker::formatComment() instead of main parser
32 # local format section links in edit comment text as local links
33 # notoc disable table of contents
34 # thumbsize=NNN set the default thumb size to NNNpx for this test
36 # You can also set the following parser properties via test options:
37 # wgEnableUploads, wgAllowExternalImages, wgMaxTocLevel,
38 # wgLinkHolderBatchSize, wgRawHtml, wgInterwikiMagic,
41 # For testing purposes, temporary articles can created:
42 # !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle
43 # where '/' denotes a newline.
45 # This is the standard article assumed to exist.
82 MediaWiki:bad image list
84 * [[File:Bad.jpg]] except [[Nasty page]]
112 Template:echo_with_span
118 Template:echo_with_div
131 Template:table_attribs
134 |</noinclude>style="color:red;"|Foo
138 Template:table_attribs_2
141 |</noinclude>style="color:red;"|Foo
146 Template:table_attribs_3
149 |</noinclude>style{{=}}"background:#f9f9f9;"|Foo
153 Template:table_attribs_4
155 | style="background-color:#DC241f;" width="10px" |
159 Template:table_attribs_5
162 |</noinclude>style="color:red;"||Bar
166 Template:table_attribs_6
168 style="background: <nowiki>
175 Template:table_attribs_7
178 |</noinclude>style{{=}}"background:#f9f9f9;"|Foo<ref>foo</ref>
182 Template:table_header_cells
184 {{table_attribs}}!!style='color:red;'|''Bar''||style='color:brown;'|''Foo'' and Baz
190 {{table_attribs}}||style='color:red;'|''Bar''||style='color:brown;'|''Foo'' and Baz
194 Template:PartialTable
201 Template:image_attribs
204 [[File:foobar.jpg|</noinclude>right|Caption text<noinclude>]]</noinclude>
207 ## See T48811 for details
209 Template:mixed_attr_content_template
211 style="color:red;" title="T48811"
217 Template:definition_list
264 Template:EmptyTRWithHTMLAttrTest
267 <tr align="center"></tr>
268 <tr><td>foo</td></tr>
269 <tr align="center"></tr>
270 <tr><td>bar</td></tr>
287 This is a simple paragraph.
289 <p>This is a simple paragraph.
294 Paragraphs with extra newline spacing
317 Paragraphs with newline spacing with comment lines in between
325 <!--foo--><!--More than 1 comment, still stripped-->
329 <!--foo--> <!----> <!-- bar -->
390 Paragraphs with newline spacing with non-empty white-space lines in between
417 Paragraphs with newline spacing with non-empty mixed comment and white-space lines in between
425 <!--foo--><!--More than 1 comment doesn't disable stripping of this line!-->
464 Extra newlines: More paragraphs with indented comment
479 Extra newlines followed by heading
494 <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>
495 <p><a href="/index.php?title=A&action=edit&redlink=1" class="new" title="A (page does not exist)">a</a>
498 <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>
503 Extra newlines between heading and content are swallowed
511 <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>
512 <p><a href="/index.php?title=A&action=edit&redlink=1" class="new" title="A (page does not exist)">a</a>
519 http://fr.wikipedia.org/wiki/🍺
520 <!-- EasterEgg we love beer, better be able be able to link to it -->
522 <p><a rel="nofollow" class="external free" href="http://fr.wikipedia.org/wiki/🍺">http://fr.wikipedia.org/wiki/🍺</a>
526 # Note that the html+tidy output removes the spaces after the <li>,
527 # which is a bug (http://sourceforge.net/p/tidy/bugs/945/, etc).
528 # This is an issue for all tests with lists. We intentionally do
529 # *not* add html+tidy clauses for these, as we don't want to
530 # document/test the broken behavior. (Parsoid matches the non-tidy
531 # output in these cases.)
540 <li> Item 2</li></ul>
548 * plain''italic''plain
549 * plain''italic''plain''italic''plain
550 * plain'''bold'''plain
551 * plain'''bold'''plain'''bold'''plain
552 * plain''italic''plain'''bold'''plain
553 * plain'''bold'''plain''italic''plain
554 * plain''italic'''bold-italic'''italic''plain
555 * plain'''bold''bold-italic''bold'''plain
556 * plain'''''bold-italic'''italic''plain
557 * plain'''''bold-italic''bold'''plain
558 * plain''italic'''bold-italic'''''plain
559 * plain'''bold''bold-italic'''''plain
560 * plain l'''italic''plain
561 * plain l''''bold''' plain
564 <li> plain<i>italic</i>plain</li>
565 <li> plain<i>italic</i>plain<i>italic</i>plain</li>
566 <li> plain<b>bold</b>plain</li>
567 <li> plain<b>bold</b>plain<b>bold</b>plain</li>
568 <li> plain<i>italic</i>plain<b>bold</b>plain</li>
569 <li> plain<b>bold</b>plain<i>italic</i>plain</li>
570 <li> plain<i>italic<b>bold-italic</b>italic</i>plain</li>
571 <li> plain<b>bold<i>bold-italic</i>bold</b>plain</li>
572 <li> plain<i><b>bold-italic</b>italic</i>plain</li>
573 <li> plain<b><i>bold-italic</i>bold</b>plain</li>
574 <li> plain<i>italic<b>bold-italic</b></i>plain</li>
575 <li> plain<b>bold<i>bold-italic</i></b>plain</li>
576 <li> plain l'<i>italic</i>plain</li>
577 <li> plain l'<b>bold</b> plain</li></ul>
581 # this example taken from the [[simple:Moon]] article (bug 47326)
583 Italics and possessives (1)
585 obtained by ''[[Lunar Prospector]]'''s gamma-ray spectrometer
587 <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
591 # this example taken from [[en:Flaming Pie]] (bug 49926)
593 Italics and possessives (2)
595 '''''Flaming Pie''''' is ... released in 1997. In ''Flaming Pie'''s liner notes
597 <p><i><b>Flaming Pie</b></i> is ... released in 1997. In <i>Flaming Pie'</i>s liner notes
601 # this example taken from [[en:Dictionary]] (bug 49926)
603 Italics and possessives (3)
605 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''.
607 <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>.
613 ### 2-quote opening sequence tests
616 Italics and bold: 2-quote opening sequence: (2,2)
625 Italics and bold: 2-quote opening sequence: (2,3)
634 Italics and bold: 2-quote opening sequence: (2,4)
644 # same html as previous, but wikitext adjusted to match parsoid html2wt
646 Italics and bold: 2-quote opening sequence: (2,4) w/ nowiki
648 ''foo<nowiki>''</nowiki>''
654 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
656 Italics and bold: 2-quote opening sequence: (2,5)
669 # same html as previous, but wikitext adjusted to match parsoid html2wt
671 Italics and bold: 2-quote opening sequence: (2,5+3) w/ nowiki
673 ''foo'''''<nowiki/>'''
684 ### 3-quote opening sequence tests
688 Italics and bold: 3-quote opening sequence: (3,2)
697 Italics and bold: 3-quote opening sequence: (3,3)
706 Italics and bold: 3-quote opening sequence: (3,4)
714 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
716 Italics and bold: 3-quote opening sequence: (3,5)
729 # same html as previous, but wikitext adjusted to match parsoid html2wt
731 Italics and bold: 3-quote opening sequence: (3,5+2) w/ nowiki
733 '''foo'''''<nowiki/>''
744 ### 4-quote opening sequence tests
748 Italics and bold: 4-quote opening sequence: (4,2)
758 # same html as previous, but wikitext adjusted to match parsoid html2wt
760 Italics and bold: 4-quote opening sequence: (4,2) w/ nowiki
762 <nowiki>''</nowiki>''foo''
769 Italics and bold: 4-quote opening sequence: (4,3)
778 Italics and bold: 4-quote opening sequence: (4,4)
788 # same html as previous, but wikitext adjusted to match parsoid html2wt
790 Italics and bold: 4-quote opening sequence: (4,4) w/ nowiki
798 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
800 Italics and bold: 4-quote opening sequence: (4,5)
809 <p>'<b>foo</b><i></i>
813 # same html as previous, but wikitext adjusted to match parsoid html2wt
815 Italics and bold: 4-quote opening sequence: (4,5+2) w/ nowiki
817 '<nowiki/>'''foo'''''<nowiki/>''
822 <p>'<b>foo</b><i></i>
828 ### 5-quote opening sequence tests
832 Italics and bold: 5-quote opening sequence: (5,2)
842 # same html as previous, but wikitext adjusted to match parsoid html2wt
844 Italics and bold: 5-quote opening sequence: (5,2+3)
853 Italics and bold: 5-quote opening sequence: (5,3)
863 # same html as previous, but wikitext adjusted to match parsoid html2wt
865 Italics and bold: 5-quote opening sequence: (5,3+2)
874 Italics and bold: 5-quote opening sequence: (5,4)
880 <p><i><b>foo'</b></i>
885 Italics and bold: 5-quote opening sequence: (5,5)
894 Italics and bold: 5-quote opening sequence: (5,6)
898 <p><i><b>foo'</b></i>
903 ### multiple quote sequences in a line
906 Italics and bold: multiple quote sequences: (2,4,2)
912 <p><i>foo'<b>bar</b></i>
917 # same html as previous, but wikitext adjusted to match parsoid html2wt
919 Italics and bold: multiple quote sequences: (2,4,2+3) w/ nowiki
921 ''foo'<nowiki/>'''bar'''''
923 <p><i>foo'<b>bar</b></i>
929 Italics and bold: multiple quote sequences: (2,4,3)
935 <p><i>foo'<b>bar</b></i>
940 # same html as previous, but wikitext adjusted to match parsoid html2wt
942 Italics and bold: multiple quote sequences: (2,4,3+2) w/ nowiki
944 ''foo'<nowiki/>'''bar'''''
946 <p><i>foo'<b>bar</b></i>
952 Italics and bold: multiple quote sequences: (2,4,4)
958 <p><i>foo'<b>bar'</b></i>
963 # same html as previous, but wikitext adjusted to match parsoid html2wt
965 Italics and bold: multiple quote sequences: (2,4,4+2) w/ nowiki
967 ''foo'<nowiki/>'''bar'<nowiki/>'''''
969 <p><i>foo'<b>bar'</b></i>
974 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
976 Italics and bold: multiple quote sequences: (3,4,2)
985 <p><b>foo'</b>bar<i></i>
989 # same html as previous, but wikitext adjusted to match parsoid html2wt
991 Italics and bold: multiple quote sequences: (3,4,2+2) w/ nowiki
995 '''<nowiki>foo'</nowiki>'''bar''<nowiki/>''
1000 <p><b><span typeof="mw:Nowiki">foo'</span></b>bar<i></i>
1005 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
1007 Italics and bold: multiple quote sequences: (3,4,3)
1016 <p><b>foo'</b>bar<b></b>
1020 # same html as previous, but wikitext adjusted to match parsoid html2wt
1022 Italics and bold: multiple quote sequences: (3,4,3+3) w/ nowiki
1024 '''<nowiki>foo'</nowiki>'''bar'''<nowiki/>'''
1029 <p><b><span typeof="mw:Nowiki">foo'</span></b>bar<b></b>
1034 ### other quote tests
1037 Italics and bold: other quote tests: (2,3,5)
1039 ''this is about '''foo's family'''''
1041 <p><i>this is about <b>foo's family</b></i>
1047 Italics and bold: other quote tests: (2,(3,3),2)
1049 ''this is about '''foo's''' family''
1051 <p><i>this is about <b>foo's</b> family</i>
1057 Italics and bold: other quote tests: (3,2,3,2)
1061 '''this is about ''foo'''s family''
1063 <p><b>this is about <i>foo</i></b><i>s family</i>
1068 # same html as previous, but wikitext adjusted to match parsoid html2wt
1070 Italics and bold: other quote tests: (3,2,3+2+2,2)
1072 '''this is about ''foo'''''<nowiki/>''s family''
1074 <p><b>this is about <i>foo</i></b><i>s family</i>
1080 Italics and bold: other quote tests: (3,2,3,3)
1082 '''this is about ''foo'''s family'''
1084 <p>'<i>this is about </i>foo<b>s family</b>
1090 Italics and bold: other quote tests: (3,(2,2),3)
1092 '''this is about ''foo's'' family'''
1094 <p><b>this is about <i>foo's</i> family</b>
1100 Italicized possessive
1102 The ''[[Main Page]]'''s talk page.
1104 <p>The <i><a href="/wiki/Main_Page" title="Main Page">Main Page</a>'</i>s talk page.
1107 <p>The <i><a rel="mw:WikiLink" href="Main_Page" title="Main Page">Main Page</a>'</i>s talk page.</p>
1111 Parsoid only: Quote balancing context should be restricted to td/th cells on the same wikitext line
1112 (Requires tidy for PHP parser output to be fixed up)
1114 parsoid=wt2html,wt2wt
1131 <tbody><tr><th><i>a</i></th><th><i>b</i></th>
1132 <td><i>a</i></td><td><i>b</i></td></tr>
1141 Non-html5 tags should be accepted
1143 <center>''foo''</center>
1145 <font>''foo''</font>
1146 <strike>''foo''</strike>
1149 <center><i>foo</i></center>
1150 <p><big><i>foo</i></big>
1151 <font><i>foo</i></font>
1152 <strike><i>foo</i></strike>
1158 <wbr> is valid wikitext (bug 52468)
1166 # <strike> is HTML4, <s> is HTML4/5.
1168 <s> or <strike> for strikethrough
1170 <strike>strike</strike>
1174 <p><strike>strike</strike>
1182 Text-level semantic html elements in wikitext
1185 <strong>text</strong>
1201 <ruby><rb>明日</rb><rp>(</rp><rt>Ashita</rt><rp> </rp><rtc>あした</rtc><rp>)</rp></ruby>
1208 <strong>text</strong>
1224 <ruby><rb>明日</rb><rp>(</rp><rt>Ashita</rt><rp> </rp><rtc>あした</rtc><rp>)</rp></ruby>
1232 # test cases taken from
1233 # http://www.w3.org/TR/html5/text-level-semantics.html#the-ruby-element
1235 Ruby markup (W3C-style)
1237 ; Mono-ruby for individual base characters
1238 : <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>
1240 : <ruby>今日<rt>きょう</rt></ruby>
1242 : <ruby>法<rb>華</rb><rb>経</rb><rt>ほ</rt><rt>け</rt><rt>きょう</rt></ruby>
1244 : <ruby>東<rb>京</rb><rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp></ruby>
1246 : <ruby><rb>旧</rb><rb>金</rb><rb>山</rb><rt>jiù</rt><rt>jīn</rt><rt>shān</rt><rtc>San Francisco</rtc></ruby>
1248 <rb>♥</rb><rtc><rt>Heart</rt></rtc><rtc lang="fr"><rt>Cœur</rt></rtc>
1249 <rb>☘</rb><rtc><rt>Shamrock</rt></rtc><rtc lang="fr"><rt>Trèfle</rt></rtc>
1250 <rb>✶</rb><rtc><rt>Star</rt></rtc><rtc lang="fr"><rt>Étoile</rt></rtc>
1253 <dl><dt> Mono-ruby for individual base characters</dt>
1254 <dd> <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby></dd>
1255 <dt> Group ruby</dt>
1256 <dd> <ruby>今日<rt>きょう</rt></ruby></dd>
1257 <dt> Jukugo ruby</dt>
1258 <dd> <ruby>法<rb>華</rb><rb>経</rb><rt>ほ</rt><rt>け</rt><rt>きょう</rt></ruby></dd>
1259 <dt> Inline ruby</dt>
1260 <dd> <ruby>東<rb>京</rb><rp>(</rp><rt>とう</rt><rt>きょう</rt><rp>)</rp></ruby></dd>
1261 <dt> Double-sided ruby</dt>
1262 <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>
1264 <rb>♥</rb><rtc><rt>Heart</rt></rtc><rtc lang="fr"><rt>Cœur</rt></rtc>
1265 <rb>☘</rb><rtc><rt>Shamrock</rt></rtc><rtc lang="fr"><rt>Trèfle</rt></rtc>
1266 <rb>✶</rb><rtc><rt>Star</rt></rtc><rtc lang="fr"><rt>Étoile</rt></rtc>
1271 # The next two test different paths in the sanitizer.
1273 Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
1275 <blockquote|>a</blockquote>
1277 <b→> doesn't terminate </b→>
1279 <bä> doesn't terminate </bä>
1281 <boo> doesn't terminate </boo>
1283 <s.foo> doesn't terminate </s.foo>
1287 <p><blockquote|>a</blockquote>
1288 </p><p><b→> doesn't terminate </b→>
1289 </p><p><bä> doesn't terminate </bä>
1290 </p><p><boo> doesn't terminate </boo>
1291 </p><p><s.foo> doesn't terminate </s.foo>
1292 </p><p><sub-ID#1>
1296 # There is a tidy bug here: http://sourceforge.net/p/tidy/bugs/946/
1297 # If the non-word-character tag made it through the sanitizer, tidy
1298 # would munge it up.
1300 Non-word characters don't terminate tag names + tidy
1302 <blockquote|>a</blockquote>
1304 <b→> doesn't terminate </b→>
1306 <bä> doesn't terminate </bä>
1308 <boo> doesn't terminate </boo>
1310 <s.foo> doesn't terminate </s.foo>
1314 <p><blockquote|>a</p>
1315 <p><b→> doesn't terminate </b→></p>
1316 <p><bä> doesn't terminate </bä></p>
1317 <p><boo> doesn't terminate </boo></p>
1318 <p><s.foo> doesn't terminate </s.foo></p>
1319 <p><sub-ID#1></p>
1323 ### See tests/parser/parserTestsParserHook.php for the <tåg> extension)
1324 ### This checks that HTML5 tags (with non-word characters in the tag
1325 ### name) make it safely through the parser -- the Sanitizer will
1326 ### munge them later, as it should.
1329 Non-word characters are valid in extension tags (T19663)
1340 <pre typeof="mw:Extension/tåg" data-mw='{"name":"tåg","attrs":{},"body":{"extsrc":"tåg"}}' data-parsoid='{}' about="#mwt2"></pre>
1344 Isolated close tags should be treated as literal text (bug 52760)
1352 <p><s.foo>s</p>
1354 <p><s.foo>s</p>
1358 ### Special characters
1362 Bare pipe character (bug 52363)
1371 Bare pipe character from a template (bug 52363)
1380 ### <nowiki> test cases
1384 <nowiki> unordered list
1386 <nowiki>* This is not an unordered list item.</nowiki>
1388 <p>* This is not an unordered list item.
1391 <p><span typeof="mw:Nowiki">* This is not an unordered list item.</span></p>
1397 <nowiki>Lorem ipsum dolor
1405 <p>Lorem ipsum dolor
1414 <p><span typeof="mw:Nowiki">Lorem ipsum dolor
1426 :There is not nowiki.
1427 :There is <nowiki>nowiki</nowiki>.
1429 #There is not nowiki.
1430 #There is <nowiki>nowiki</nowiki>.
1432 *There is not nowiki.
1433 *There is <nowiki>nowiki</nowiki>.
1435 <dl><dd>There is not nowiki.</dd>
1436 <dd>There is nowiki.</dd></dl>
1437 <ol><li>There is not nowiki.</li>
1438 <li>There is nowiki.</li></ol>
1439 <ul><li>There is not nowiki.</li>
1440 <li>There is nowiki.</li></ul>
1443 <dl><dd data-parsoid='{}'>There is not nowiki.</dd>
1444 <dd data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</dd></dl>
1446 <ol><li data-parsoid='{}'>There is not nowiki.</li>
1447 <li data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</li></ol>
1449 <ul><li data-parsoid='{}'>There is not nowiki.</li>
1450 <li data-parsoid='{}'>There is <span typeof="mw:Nowiki">nowiki</span>.</li></ul>
1454 Entities inside <nowiki>
1456 <nowiki><</nowiki>
1463 Entities inside template parameters
1469 <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>
1473 Properly escape nowiki when combined with other wiki markup
1477 <p>* </nowiki> tag</p>
1479 <nowiki>*</nowiki> <nowiki></nowiki></nowiki> tag
1483 T93824: Put escaped HTML tags inside nowiki
1487 <p><h2>foo</h2></p>
1489 <nowiki><h2>foo</h2></nowiki>
1493 T71950: 1. Put nowiki as close to cause as possible, even with non-quote escapable chars
1497 <p>This text: L'<a rel="mw:WikiLink" href="./Foo">Foo</a>
1498 This text: L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
1499 This text: L'''<a rel="mw:WikiLink" href="./Foo">Foo</a>''</p>
1501 This text: L'[[Foo]]
1502 This text: L<nowiki>''</nowiki>[[Foo]]
1503 This text: L<nowiki>'''</nowiki>[[Foo]]<nowiki>''</nowiki>
1506 # This test fails because wikitext whitespace is not normalized before comparing.
1508 T71950: 2. Put nowiki as close to cause as possible, after ' :'
1512 <p>This text : L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
1515 This text : L<nowiki>''</nowiki>[[Foo]]
1518 # This test and the next one are html2wt only as they test that incorrect wikitext
1519 # passed in template arguments gets escaped or wrapped in nowikis where required.
1521 T71482: Use {{!}} instead of nowiki for single pipe in template argument
1525 <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>
1526 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo|bar |[["}},"i":0}}]}" about="#mwt2"></p>
1528 {{echo|foo{{!}}bar}}
1529 {{echo|<nowiki>foo|bar |[[</nowiki>}}
1533 T53961: Output correct nowikis in template arguments
1537 <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>
1538 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a }} b"}},"i":0}}]}" about="#mwt2"></span>
1539 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a [[ b"}},"i":0}}]}" about="#mwt3"></span>
1540 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a | {{ ]]"}},"i":0}}]}" about="#mwt4"></span>
1541 <span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a }"}},"i":0}}]}" about="#mwt5"></span></p>
1544 {{echo|<nowiki>a }} b</nowiki>}}
1545 {{echo|<nowiki>a [[ b</nowiki>}}
1546 {{echo|<nowiki>a | {{ ]]</nowiki>}}
1547 {{echo|a <nowiki>}</nowiki>}}
1551 Cases where "!!" needs nowiki protection
1556 <tr><th>this needs protection !! here</th></tr>
1560 <tr><th>this does not need
1561 protection !! here</th></tr>
1565 !<nowiki>this needs protection !! here</nowiki>
1578 Comments and Indent-Pre
1580 <!-- comment 1 --> asdf
1582 <!-- comment 1 --> asdf
1585 <!-- comment 1 --> asdf
1586 <!-- comment 2 -->xyz
1588 <!-- comment 1 --> asdf
1589 <!-- comment 2 --> xyz
1645 asdf<!-- comment 1 -->jkl
1655 <!-- foo --> b <!-- bar -->
1669 <!-- returns a single newline, not nothing, since the newline after > is not stripped -->
1675 Comment semantics and delimiters
1677 <!-- --><!----><!-----><!------>
1681 <!-- --><!----><!-----><!------>
1685 Comment semantics and delimiters, redux
1687 <!-- In SGML every "foo" here would actually show up in the text -- foo -- bar
1688 -- foo -- funky huh? ... -->
1692 <!-- In SGML every "foo" here would actually show up in the text -- foo -- bar
1693 -- foo -- funky huh? ... -->
1697 Comment semantics and delimiters: directors cut
1699 <!-- ... However we like to keep things simple and somewhat XML-ish so we eat
1700 everything starting with < followed by !-- until the first -- and > we see,
1701 that wouldn't be valid XML however, since in XML -- has to terminate a comment
1707 <!-- ... However we like to keep things simple and somewhat XML-ish so we eat
1708 everything starting with < followed by !-- until the first -- and > we see,
1709 that wouldn't be valid XML however, since in XML -- has to terminate a comment
1714 Comment semantics: nesting
1716 <!--<!-- no, we're not going to do anything fancy here -->-->
1721 <!--<!-- no, we're not going to do anything fancy here --><p>--></p>
1724 # Parsoid closes the unclosed comment, even if it means a slight
1727 Comment semantics: unclosed comment at end
1729 parsoid=wt2html,html2html
1731 <!--This comment will run out to the end of the document
1735 <!--This comment will run out to the end of the document-->
1739 Comment semantics: normalize comments to play nice with XML and browsers
1741 <!-- Browsers --!> think this is closed -->
1742 <!--> This would normally be text -->
1743 <!---> As would this -->
1744 <!-- XML doesn't like trailing dashes -------->
1745 <!-- Nor doubled hyphens -- anywhere in the data -->
1746 But this is not a comment.
1748 <p>But this is not a comment.
1751 <!-- Browsers --!> think this is closed -->
1752 <!--> This would normally be text -->
1753 <!---> As would this -->
1754 <!-- XML doesn't like trailing dashes -------->
1755 <!-- Nor doubled hyphens -- anywhere in the data -->
1756 <p>But this is not a comment.</p>
1760 Comment semantics: round-trip even text which contains encoded -->
1762 <!-- hello & goodbye - > --> --&gt; --&xx -->
1764 <!-- hello & goodbye - > --> --&gt; --&xx -->
1768 Comment in template title
1777 Comment on its own line post-expand
1789 Comment on its own line post-expand with non-significant whitespace
1801 Multiple comments should still parse as SOL-transparent
1803 parsoid=wt2html,wt2wt
1806 <!--c2--><!--c3--><!--c4-->*b
1815 <!--c2--><!--c3--><!--c4-->
1822 ### paragraph wrapping tests
1837 Block tag on one line (<div>)
1853 Block tag on one line (<blockquote>)
1855 a <blockquote>foo</blockquote>
1859 a <blockquote>foo</blockquote>
1871 Block tag on both lines (<div>)
1888 Block tag on both lines (<blockquote>)
1890 a <blockquote>foo</blockquote>
1892 b <blockquote>foo</blockquote>
1894 a <blockquote>foo</blockquote>
1895 b <blockquote>foo</blockquote>
1909 Multiple lines without block tags
1933 # Tidy strips out the empty <div> tags. Parsoid doesn't.
1934 # So, we have a separate section for Parsoid. We don't want
1935 # to mimic this stripping behavior in Parsoid. It affects
1936 # editing experience and also requires us to maintain additional
1939 Empty lines between lines with block tags
1977 <div data-parsoid='{"stx":"html"}'></div>
1980 <div data-parsoid='{"stx":"html"}'></div><p>a</p>
1983 <div data-parsoid='{"stx":"html"}'>a</div><p>b</p>
1985 <div data-parsoid='{"stx":"html"}'>b</div><p>d</p>
1988 <div data-parsoid='{"stx":"html"}'>e</div>
1991 ## PHP parser emits output which is broken
1993 Unclosed HTML p-tags should be handled properly
2006 <div data-parsoid='{"stx":"html"}'><p data-parsoid='{"stx":"html", "autoInsertedEnd":true}'>foo</p></div>
2011 ## SSS FIXME: I can come up with other scenarios where this doesn't work because
2012 ## of eager output of buffered tokens in the p-wrapper. But, I'm going to ignore
2015 1. P-wrapping should leave sol-transparent tags outside p-tags where possible
2019 a [[Category:A1]] [[Category:A2]]
2024 <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"/>
2028 2. P-wrapping should leave sol-transparent tags outside p-tags where possible
2034 <link rel="mw:PageProp/Category" href="./Category:A1"/><p>a</p>
2038 ### Preformatted text
2047 And a [[Main Page|link]]
2053 And a <a href="/wiki/Main_Page" title="Main Page">link</a>
2058 Tabs don't trigger preformatted text
2062 This is preformatted text.
2068 <pre>This is preformatted text.
2073 preformatted text.</p>
2074 <pre>This is preformatted text.
2079 Space before tab needs nowiki pre protection
2085 <nowiki> </nowiki> a
2089 Ident preformatting with inline content
2100 <pre> with <nowiki> inside (compatibility with 1.6 and earlier)
2117 Regression with preformatted in <center>
2131 Bug 52763: Preformatted in <blockquote>
2137 indented cell (no pre-wrapping!)
2147 <p> indented cell (no pre-wrapping!)
2155 Bug 51086: Double newlines in blockquotes should be turned into paragraphs
2172 Bug 15491: <ins>/<del> in blockquote
2175 Foo <del>bar</del> <ins>baz</ins> quux
2179 <p>Foo <del>bar</del> <ins>baz</ins> quux
2185 # Note that the p-wrapping is newline sensitive, which could be
2186 # considered a bug: tidy will wrap only the 'Foo' in the example
2187 # below in a <p> tag. (see comment 23-25 of bug #6200)
2189 Bug 15491: <ins>/<del> in blockquote (2)
2191 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
2194 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
2200 <del>bar</del> <ins>baz</ins> quux</blockquote>
2204 <pre> with attributes (bug 3202)
2206 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
2208 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
2213 <pre> with width attribute (bug 3202)
2215 <pre width="8">Narrow screen goodies</pre>
2217 <pre width="8">Narrow screen goodies</pre>
2222 <pre> with forbidden attribute (bug 3202)
2224 <pre width="8" onmouseover="alert(document.cookie)">Narrow screen goodies</pre>
2226 <pre width="8">Narrow screen goodies</pre>
2231 Entities inside <pre>
2240 <pre> with forbidden attribute values (bug 3202)
2242 <pre width="8" style="border-width: expression(alert(document.cookie))">Narrow screen goodies</pre>
2244 <pre width="8" style="/* insecure input */">Narrow screen goodies</pre>
2249 <nowiki> inside <pre> (bug 13238)
2257 <pre><nowiki><nowiki></nowiki>Foo<nowiki></nowiki></nowiki></pre>
2265 <pre><nowiki>Foo</nowiki></pre>
2270 <nowiki> inside of #tag:pre
2272 {{#tag:pre|Foo <nowiki>→bar</nowiki>}}
2274 <pre>Foo →bar</pre>
2277 <pre about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"#tag:pre","function":"#tag"},"params":{"1":{"wt":"Foo <nowiki>&rarr;bar</nowiki>"}},"i":0}}]}'>Foo <span typeof="mw:Entity">→</span>bar</pre>
2281 <nowiki> and <pre> preference (first one wins)
2310 <pre data-parsoid='{"stx":"html","strippedNL":true}'><nowiki>
2312 <p><span typeof="mw:Placeholder" data-parsoid='{"src":"</nowiki>"}'></nowiki></span>
2315 <p><span typeof="mw:Nowiki">
2324 </pre> inside nowiki
2326 <nowiki></pre></nowiki>
2332 # Parsoid doesn't strip empty tags, like Tidy does.
2334 Empty pre; pre inside other HTML tags (bug 54946)
2336 parsoid=wt2html,wt2wt
2367 HTML pre followed by indent-pre
2377 # Note that tidy removes the empty <p> tags from the start and end.
2378 # Parsoid does not, by design.
2382 <p><pre>foo</pre></p>
2388 <p data-parsoid='{"stx":"html","autoInsertedEnd":true}'></p><pre data-parsoid='{"stx":"html"}'>foo</pre><p data-parsoid='{"autoInsertedStart":true,"stx":"html"}'></p>
2392 Templates: Indent-Pre: 1a. Templates that break a line should suppress <pre>
2400 Templates: Indent-Pre: 1b. Templates that break a line should suppress <pre>
2410 Templates: Indent-Pre: 1c: Wrapping should be based on expanded content
2422 Templates: Indent-Pre: 1d: Wrapping should be based on expanded content
2443 Templates: Indent-Pre: 1e. Wrapping should be based on expanded content
2447 {{echo| foo}}{{echo| bar}}
2452 {{echo|<!--cmt--> foo}}
2454 <!--cmt-->{{echo| foo}}
2456 {{echo|{{echo| }}bar}}
2474 Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
2511 Pres with newline attributes
2516 <pre class="one two">hi</pre>
2520 two" data-parsoid='{"stx":"html"}'>hi</pre>
2524 Things that look like <pre> tags aren't treated as such
2526 Barack Obama <President> of the United States
2527 <President></President>
2529 <p>Barack Obama <President> of the United States
2530 <President></President>
2535 Handle broken pre-like tags (bug 64025)
2539 {{echo|<pre <pre>x</pre>}}
2541 <table><pre </table>
2544 <table><pre </table>
2552 <pre about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"a":{"<pre":null},"sa":{"<pre":""},"stx":"html","pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<pre <pre>x</pre>"}},"i":0}}]}'>x</pre>
2561 Parsoid: handle pre with space after attribute
2565 <pre style="width:50%;" >{{echo|foo}}</pre>
2567 <pre style="width:50%;">{{echo|foo}}</pre>
2570 <pre style="width:50%;">{{echo|foo}}</pre>
2573 # TODO / maybe: fix wt2wt for this
2575 Parsoid: Don't paragraph-wrap fosterable content
2601 Parsoid: Don't paragraph-wrap fosterable content even if table syntax is unbalanced
2629 #--------------------------------------------------------------------
2630 # Transclusion parameter whitespace stripping tests
2631 # Behavior is different for positional and named parameters
2632 #--------------------------------------------------------------------
2634 Templates: Strip leading and trailing whitespace from named-param values
2638 {{echo|1= {{echo|b}} }}
2651 <ul><li> d</li></ul>
2656 Templates: Don't strip whitespace from positional-param values
2660 {{echo|{{echo|b}} }}
2692 <ul><li> f</li></ul>
2700 Templates: Handle empty comment-and-ws-only lines correctly
2703 <!--should be ignored-->
2704 <!--should be ignored as well-->
2713 Templates: Handle comments in the target
2716 <!-- should be ignored -->
2719 {{echo<!-- should be ignored -->
2722 {{echo<!-- should be ignored -->|foo}}
2724 {{<!-- should be ignored -->echo|foo}}
2726 <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>
2728 <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>
2730 <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>
2732 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo"}},"i":0}}]}'>foo</p>
2736 Templates: Handle comments in parameter names (bug 67657)
2739 <!-- should be ignored -->
2743 <!-- should be ignored -->
2746 {{echo|1<!-- should be ignored -->=foo}}
2748 {{echo|<!-- should be ignored -->1=foo}}
2750 <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>
2752 <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>
2754 <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>
2756 <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>
2760 Templates: Other wikitext in parameter names (bug 67657)
2764 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"''1''":{"wt":"foo"}},"i":0}}]}'>{{{1}}}</p>
2770 #--------------------------------------------------------------------
2771 # Transclusion parameter escaping tests
2772 #--------------------------------------------------------------------
2774 Templates: Parsoid parameter escaping test 1
2776 {{echo|[foo]|{{echo|[bar]}}}}
2780 <p about="#mwt1" typeof="mw:Transclusion"
2781 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[foo]"},"2":{"wt":"{{echo|[bar]}}"}},"i":0}}]}'>[foo]</p>
2785 Parsoid: Pipes in external links in template parameter
2787 {{echo|[{{echo|http://example.com}} link]}}
2789 <p><a rel="nofollow" class="external text" href="http://example.com">link</a></p>
2791 <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>
2795 Parsoid: pipe in transclusion parameter
2797 {{echo|http://foo.com/a|b}}
2799 <p><a rel="nofollow" class="external free" href="http://foo.com/a%7Cb">http://foo.com/a%7Cb</a></p>
2801 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
2802 typeof="mw:Transclusion"
2803 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>
2807 Parsoid: Pipe in external link target and content in template parameter
2809 parsoid=html2wt,wt2wt
2811 {{echo|[http://foo.com/a|b a|b]}}
2813 <p><a rel="nofollow" class="external text" href="http://foo.com/a%7Cb">a|b</a></p>
2815 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
2816 typeof="mw:Transclusion"
2817 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
2818 "params":{"1":{"wt":"[http://foo.com/a|b a|b]"}},"i":0}}]}'>a|b</a></p>
2822 Parsoid: Pipe in template with nested template in external link target in template parameter (seriously)
2826 {{echo|[{{fullurl:{{FULLPAGENAME}}|action=edit}} bar]}}
2828 <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>
2832 Templates: Don't escape already nowiki-escaped text in template parameters
2834 parsoid=html2wt,wt2wt
2836 {{echo|foo<nowiki>|</nowiki>bar}}
2837 {{echo|<nowiki><div></nowiki>}}
2838 {{echo|<nowiki></nowiki>}}
2840 <p>foo|bar <div></p>
2842 <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>
2843 <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>
2844 <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>
2850 Templates: '=' char in nested transclusions should not trigger nowiki escapes or conversion to named param
2852 parsoid=html2wt,wt2wt
2854 {{echo|{{echo|1=bar}}}}
2858 <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>
2863 Templates parameters with special tokenizing behavior dont get modified because of arg escaping
2869 <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>
2874 Templates: Preserve blank parameter names
2880 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"":{"wt":"foo"}},"i":0}}]}'>{{{1}}}</p>
2884 Templates: Preserve blank parameter names in other positions
2886 {{blank_param|bar|=foo}}
2890 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"},{"k":"","named":true}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"blank_param","href":"./Template:Blank_param"},"params":{"1":{"wt":"bar"},"":{"wt":"foo"}},"i":0}}]}'>bar
2895 ### Parsoid-centric tests for testing RT edge cases for pre
2899 1a. Indent-Pre and Comments
2912 1b. Indent-Pre and Comments
2925 1c. Indent-Pre and Comments
2938 1d. Indent-Pre and Comments
2939 (Pre-handler currently cannot distinguish between comment/ws order and normalizes them to [comment,ws] order)
2952 2a. Indent-Pre and tables
2973 2b. Indent-Pre and tables
2989 2c. Indent-Pre and tables (bug 42252)
3006 2d. Indent-Pre and tables
3023 <tbody><tr><td> b</td></tr>
3028 2e. Indent-Pre and table-line syntax
3041 2f. Indent-pre started by table-line syntax
3060 2g. Indented table markup mixed with indented pre content (proposed in bug 6200)
3065 Text that should be rendered preformatted
3073 <pre>Text that should be rendered preformatted
3082 3a. Indent-Pre and block tags (single-line html)
3086 c <blockquote> foo </blockquote>
3091 c <blockquote> foo </blockquote>
3092 <pre><span> foo </span>
3095 <p>a </p><p data-parsoid='{"stx":"html"}'> foo </p>
3096 <p>b </p><div data-parsoid='{"stx":"html"}'> foo </div>
3097 <p>c </p><blockquote data-parsoid='{"stx":"html"}'> foo </blockquote>
3098 <pre><span> foo </span>
3115 3b. Indent-Pre and block tags (multi-line html)
3120 <pre>a <span>foo</span>
3125 <pre>a <span data-parsoid='{"stx":"html"}'>foo</span></pre>
3126 b <div data-parsoid='{"stx":"html"}'> foo </div>
3136 3c. Indent-Pre and block tags (pre-content on separate line)
3200 4. Indent-Pre and extension tags
3211 a <pre typeof="mw:Extension/tag" about="#mwt2" data-parsoid='{}' data-mw='{"name":"tag","attrs":{},"body":null}'></pre>
3215 Render paragraphs when indent-pre is suppressed in blocklevels
3232 4. Multiple spaces at start-of-line
3250 ## NOTE: the leading white-space chars on empty line are significant
3252 5a. White-space in indent-pre
3264 ## NOTE: the leading white-space chars on empty line are significant
3266 5b. White-space in indent-pre
3285 5c. White-space in indent-pre
3298 6. Pre-blocks should extend across lines with leading WS even when there is no wrappable content
3321 7a. Indent-pre and category links
3323 parsoid=wt2html,wt2wt
3325 [[Category:foo]] <!-- No pre-wrapping -->
3326 {{echo| [[Category:foo]]}} <!-- No pre-wrapping -->
3329 <link rel="mw:PageProp/Category" href="./Category:Foo"> <!-- No pre-wrapping -->
3330 <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 -->
3333 ## We used to, but no longer wt2wt this test since the default serializer
3334 ## will normalize all categories to serialize on their own line.
3335 ## This wikitext usage is going to be fairly uncommon in production and
3336 ## selser will take care of preserving formatting in those scenarios.
3338 7b. Indent-pre and category links
3343 [[Category:foo]] {{echo|b}}
3345 <pre><link rel="mw:PageProp/Category" href="./Category:Foo"> a
3346 <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>
3350 Indent-Pre: Newlines in comments shouldn't affect sol state
3364 ### HTML-pre (some to spec PHP parser behavior and some Parsoid-RT-centric)
3368 HTML-pre: 1. embedded newlines
3403 <pre data-parsoid='{"stx":"html"}'>foo</pre>
3405 <pre data-parsoid='{"stx":"html","strippedNL":"\n"}'>
3409 <pre data-parsoid='{"stx":"html"}'>
3414 <pre data-parsoid='{"stx":"html"}'>
3422 HTML-pre: big spaces
3458 <pre data-parsoid='{"stx":"html"}'>
3477 HTML-pre: 2: indented text
3490 HTML-pre: 3: other wikitext
3509 <pre data-parsoid='{"stx":"html","strippedNL":true}'>* foo
3518 ### Definition lists
3525 <dl><dt> name </dt>
3526 <dd> Definition</dd></dl>
3531 Definition list for indentation only
3535 <dl><dd> Indented text</dd></dl>
3540 Definition list with no space
3545 <dd>Definition</dd></dl>
3550 Definition list with URL link
3552 ; http://example.com/ : definition
3554 <dl><dt> <a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> </dt>
3555 <dd> definition</dd></dl>
3560 Definition list with bracketed URL link
3562 ;[http://www.example.com/ Example]:Something about it
3564 <dl><dt><a rel="nofollow" class="external text" href="http://www.example.com/">Example</a></dt>
3565 <dd>Something about it</dd></dl>
3570 Definition list with wikilink containing colon
3572 ; [[Help:FAQ]]: The least-read page on Wikipedia
3574 <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>
3575 <dd> The least-read page on Wikipedia</dd></dl>
3579 # At Brion's and JeLuF's insistence... :)
3581 Definition list with news link containing colon
3583 ; news:alt.wikipedia.rox: This isn't even a real newsgroup!
3585 <dl><dt> <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
3586 <dd> This isn't even a real newsgroup!</dd></dl>
3589 <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>
3593 Malformed definition list with colon
3595 ; news:alt.wikipedia.rox -- don't crash or enter an infinite loop
3597 <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>
3602 Definition lists: colon in external link text
3604 ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up
3606 <dl><dt> <a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia : The Next Generation</a></dt>
3607 <dd> OK, I made that up</dd></dl>
3612 Definition lists: colon in HTML attribute
3614 ;<b style="display: inline">bold</b>
3616 <dl><dt><b style="display: inline">bold</b></dt></dl>
3621 Definition lists: self-closed tag
3623 ;one<br/>two : two-line fun
3625 <dl><dt>one<br />two </dt>
3626 <dd> two-line fun</dd></dl>
3631 Bug 11748: Literal closing tags
3635 <dd>test test test test test</dd>
3637 <dd>test test test test test</dd>
3642 <dd>test test test test test</dd>
3644 <dd>test test test test test</dd>
3650 Definition and unordered list using wiki syntax nested in unordered list using html tags.
3653 ; term : description
3658 <dl><dt> term </dt>
3659 <dd> description</dd></dl>
3660 <ul><li> unordered</li></ul>
3667 Definition list with empty definition and following paragraph
3679 Nested definition lists using html syntax
3688 Definition Lists: No nesting: Multiple dd's
3701 Definition Lists: Indentation: Regular
3709 <dl><dd>i3</dd></dl></dd></dl></dd></dl>
3714 Definition Lists: Indentation: Missing 1st level
3720 <dl><dd>i3</dd></dl></dd></dl></dd></dl>
3725 Definition Lists: Indentation: Multi-level indent
3729 <dl><dd><dl><dd><dl><dd>i3</dd></dl></dd></dl></dd></dl>
3734 Definition Lists: Hacky use to indent tables
3741 should be left alone
3743 <dl><dd><dl><dd><table>
3748 </td></tr></table></dd></dl></dd></dl>
3750 should be left alone
3755 Definition Lists: Hacky use to indent tables, with comments (bug 63979)
3763 should be left alone
3766 <dl><dd><dl><dd><table><tr>
3769 </tr></table><!-- bar --></dd></dl></dd></dl>
3771 should be left alone</p>
3775 Definition Lists: Hacky use to indent tables, with comment before table
3781 <dl><dd><dl><dd><!-- foo --><table><tr>
3783 </tr></table></dd></dl></dd></dl>
3786 # The trailing whitespace in this test is to catch a regression in
3787 # Parsoid after T54473.
3789 Definition Lists: Hacky use to indent tables (WS-insensitive)
3798 </td></tr></table></dd></dl>
3802 <tbody><tr><td>a</td></tr>
3803 </tbody></table> </dd></dl>
3806 ## The PHP parser treats : items (dd) without a corresponding ; item (dt)
3807 ## as an empty dt item. It also ignores all but the last ";" when followed
3808 ## by ":" later on. So, ";" are not ignored in ";;;t3" but are ignored in
3809 ## ";;;t3 :d1". So, PHP parser behavior is a little inconsistent wrt multiple
3812 ## Ex: ";;t2 ::d2" is transformed into:
3824 ## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text
3825 ## So, the same wikitext above (;;t2 ::d2) is transformed into:
3836 ## All Parsoid only definition list tests have this difference.
3838 ## See also: https://phabricator.wikimedia.org/T8569
3839 ## and http://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html
3842 Table / list interaction: indented table with lists in table contents
3857 <ul><li> b</li></ul>
3861 <ul><li> d</li></ul>
3862 </td></tr></table></dd></dl>
3867 Table / list interaction: lists nested in tables nested in indented lists
3890 </td></tr></table></dd></dl>
3897 Definition Lists: Nesting: Multi-level (Parsoid only)
3927 Definition Lists: Nesting: Test 2 (Parsoid only)
3954 Definition Lists: Nesting: Test 3 (Parsoid only)
3997 Definition Lists: Nesting: Test 4
4002 <dl><dd><dl><dd><dl><dt>t3</dt>
4003 <dd>d3</dd></dl></dd></dl></dd></dl>
4008 ## The Parsoid team believes the following three test exposes a
4009 ## bug in the PHP parser. (Parsoid team thinks the PHP parser is
4010 ## wrong to close the <dl> after the <dt> containing the <ul>.)
4011 ## It also exposes a "misfeature" in tidy, which doesn't like
4012 ## <dl> tags with a single <dt> child; it converts the <dt> into
4013 ## a <dd> in that case. (Parsoid leaves the <dt> alone!)
4015 Definition Lists: Mixed Lists: Test 1
4021 <dl><dd><dl><dt><ul><li> foo</li>
4022 <li> bar</li></ul></dt></dl>
4023 <dl><dt> baz</dt></dl></dd></dl>
4058 Definition Lists: Mixed Lists: Test 2
4063 <ul><li><dl><dd> d1</dd>
4064 <dd> d2</dd></dl></li></ul>
4070 Definition Lists: Mixed Lists: Test 3
4075 <ul><li><dl><dd><dl><dd><dl><dd> d1</dd>
4076 <dd> d2</dd></dl></dd></dl></dd></dl></li></ul>
4082 Definition Lists: Mixed Lists: Test 4
4087 <ul><li><dl><dt>d1 </dt>
4090 <dd>d4</dd></dl></li></ul>
4096 Definition Lists: Mixed Lists: Test 5
4102 <dl><dd> d2</dd></dl></dd></dl></li></ul>
4108 Definition Lists: Mixed Lists: Test 6
4113 <ol><li><ul><li><dl><dd>d1
4114 <dl><dd><dl><dd> d3</dd></dl></dd></dl></dd></dl></li></ul></li></ol>
4120 Definition Lists: Mixed Lists: Test 7
4125 <dl><dd><ul><li> d1</li>
4126 <li> d2</li></ul></dd></dl>
4132 Definition Lists: Mixed Lists: Test 8
4137 <dl><dd><ul><li> d1</li></ul>
4138 <dl><dd><ul><li> d2</li></ul></dd></dl></dd></dl>
4144 Definition Lists: Mixed Lists: Test 9
4148 <ul><li><dl><dt>foo </dt>
4149 <dd>bar</dd></dl></li></ul>
4155 Definition Lists: Mixed Lists: Test 10
4159 <ul><li><ol><li><dl><dt>foo </dt>
4160 <dd>bar</dd></dl></li></ol></li></ul>
4164 # The Parsoid team disagrees with the PHP parser's seemingly-random
4165 # rules regarding dd/dt on the next two tests. Parsoid is more
4166 # consistent, and recognizes the shared nesting and keeps the
4167 # still-open tags around until the nesting is complete.
4168 # (And tidy again converts <dt> to <dd> before 'bar'.)
4171 Definition Lists: Mixed Lists: Test 11
4176 <ul><li><ol><li><ul><li><ol><li><dl><dt>foo </dt>
4177 <dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dd></dl></li></ul></dd></dl>
4178 <dl><dt>boo </dt>
4179 <dd>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
4234 <dt>foo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
4235 <dd data-parsoid='{"stx":"row"}'>bar</dd>
4239 <dt>boo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'> </span></dt>
4240 <dd data-parsoid='{"stx":"row"}'>baz</dd>
4249 # Another case where tidy converts a <dt> to a <dd> (but Parsoid doesn't).
4251 # * The test is wrong, there are two colons where there should be :;
4252 # * The PHP parser is wrong to close the <dl> after the <dt> containing the <ul>.
4254 Definition Lists: Weird Ones: Test 1
4256 *#;*::;; foo : bar (who uses this?)
4258 <ul><li><ol><li><dl><dt> foo </dt>
4259 <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>
4278 <dt>bar (who uses this?)</dt>
4310 <dt> foo<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span></dt>
4311 <dd data-parsoid='{"stx":"row"}'> bar (who uses this?)</dd>
4323 Definition Lists: colons occurring in tags
4341 <dt><span>a:b</span></dt>
4368 <dl><dt>a</dt><dd data-parsoid='{"stx":"row"}'>b</dd>
4370 <dt><i data-parsoid='{"stx":"html"}'>a:b</i></dt>
4371 <dt><span data-parsoid='{"stx":"html"}'>a:b</span></dt>
4372 <dt><div data-parsoid='{"stx":"html"}'>a:b</div></dt>
4373 <dt><div data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a</div></dt>
4375 <dt><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a:b"}},"i":0}}]}'>a:b</span></dt>
4376 <dt><i about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"''a:b''"}},"i":0}}]}'>a:b</i>
4377 <dl><dt><dl><dt><i>a:b</i></dt></dl></dt></dl></dt></dl>
4381 Definition Lists: colons and tables 1
4393 </td></tr></table></dd></dl>
4397 </td></tr></table></dd></dl>
4401 # Parsoid's output (as documented below) differs from php's in this case.
4402 # This is probably a bug. If we fixup parsoid to match php's output, the
4403 # above test should pass and the below test case can be removed. It is
4404 # unclear which output is more desirable.
4407 Definition Lists: colons and tables 2
4419 </td></tr></table></dd>
4423 </td></tr></table></dd></dl>
4427 Definition Lists: template interaction
4429 ::{{definition_list}}
4432 ::{{definition_list}}
4437 <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">
4438 </span><dd about="#mwt1">two</dd></dl></dd></dl>
4440 <dl><dd data-parsoid='{}'>one
4441 <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">
4442 </span><dd about="#mwt2">two
4444 <dd>three</dd></dl></dd>
4445 <dd data-parsoid='{}'>four</dd></dl></dd></dl>
4453 External links: non-bracketed
4455 Non-bracketed: http://example.com
4457 <p>Non-bracketed: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4461 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4463 External links: numbered
4465 Numbered: [http://example.com]
4466 Numbered: [http://example.net]
4467 Numbered: [http://example.com]
4469 <p>Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[1]</a>
4470 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.net">[2]</a>
4471 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[3]</a>
4474 <p>Numbered: <a rel="mw:ExtLink" href="http://example.com"></a>
4475 Numbered: <a rel="mw:ExtLink" href="http://example.net"></a>
4476 Numbered: <a rel="mw:ExtLink" href="http://example.com"></a></p>
4480 External links: specified text
4482 Specified text: [http://example.com link]
4484 <p>Specified text: <a rel="nofollow" class="external text" href="http://example.com">link</a>
4489 External links: trail
4491 Linktrails should not work for external links: [http://example.com link]s
4493 <p>Linktrails should not work for external links: <a rel="nofollow" class="external text" href="http://example.com">link</a>s
4498 External links: dollar sign in URL
4500 http://example.com/1$2345
4502 <p><a rel="nofollow" class="external free" href="http://example.com/1$2345">http://example.com/1$2345</a>
4506 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4508 External links: dollar sign in URL (autonumber)
4510 [http://example.com/1$2345]
4512 <p><a rel="nofollow" class="external autonumber" href="http://example.com/1$2345">[1]</a>
4515 <p><a rel="mw:ExtLink" href="http://example.com/1$2345"></a></p>
4519 External links: open square bracket forbidden in URL (bug 4377)
4521 parsoid=wt2html,wt2wt,html2html
4523 http://example.com/1[2345
4525 <p><a rel="nofollow" class="external free" href="http://example.com/1">http://example.com/1</a>[2345
4528 <p><a rel="mw:ExtLink" href="http://example.com/1">http://example.com/1</a>[2345</p>
4532 External links: open square bracket forbidden in URL (named) (bug 4377)
4534 parsoid=wt2html,html2html
4536 [http://example.com/1[2345]
4538 <p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a>
4541 <p><a rel="mw:ExtLink" href="http://example.com/1">[2345</a></p>
4544 # parsoid adds a space before the link name
4546 External links: open square bracket forbidden in URL (named) (bug 4377)
4549 [http://example.com/1 [2345]
4551 <p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a>
4556 External links: nowiki in URL link text (bug 6230)
4558 [http://example.com/ <nowiki>''example site''</nowiki>]
4560 <p><a rel="nofollow" class="external text" href="http://example.com/">''example site''</a>
4565 External links: newline forbidden in text (bug 6230 regression check)
4567 [http://example.com/ first
4570 <p>[<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> first
4576 External links: Pipe char between url and text
4578 [http://example.com | link]
4580 <p><a rel="nofollow" class="external text" href="http://example.com">| link</a>
4585 External links: protocol-relative URL in brackets
4587 [//example.com/ Test]
4589 <p><a rel="nofollow" class="external text" href="//example.com/">Test</a>
4593 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
4595 External links: protocol-relative URL in brackets without text
4599 <p><a rel="nofollow" class="external autonumber" href="//example.com">[1]</a>
4602 <p><a rel="mw:ExtLink" href="//example.com"></a></p>
4606 External links: protocol-relative URL in free text is left alone
4610 <p>//example.com/Foo
4615 External links: protocol-relative URL in the middle of a word is left alone (bug 30269)
4617 foo//example.com/Foo
4619 <p>foo//example.com/Foo
4624 External links: with no contents
4626 [http://en.wikipedia.org/wiki/Foo]
4628 [[wikipedia:Foo|Bar]]
4630 [[wikipedia:Foo|<span>Bar</span>]]
4632 <p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/wiki/Foo">[1]</a>
4633 </p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
4634 </p><p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo"><span>Bar</span></a>
4637 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo"></a></p>
4638 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo">Bar</a></p>
4639 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo"><span>Bar</span></a></p>
4643 External links: Free with trailing punctuation
4653 http://example.com/url_with_(brackets)
4654 (http://example.com/url_without_brackets)
4655 http://example.com/url_with_entity&
4656 http://example.com/url_with_entity&
4657 http://example.com/url_with_entity&
4658 http://example.com/url_with_entity
4659 http://example.com/url_with_entity 
4660 http://example.com/url_with_entity 
4661 http://example.com/url_with_entity<
4662 http://example.com/url_with_entity<
4663 http://example.com/url_with_entity<
4665 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
4666 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>;
4667 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>\
4668 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.
4669 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
4670 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>!
4671 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>?
4672 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
4673 <a rel="nofollow" class="external free" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
4674 (<a rel="nofollow" class="external free" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
4675 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4676 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4677 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4678 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a> 
4679 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a> 
4680 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a> 
4681 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><
4682 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><
4683 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><
4686 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>,
4687 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>;
4688 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>\
4689 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>.
4690 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:
4691 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>!
4692 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>?
4693 <a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)
4694 <a rel="mw:ExtLink" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
4695 (<a rel="mw:ExtLink" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
4696 <a rel="mw:ExtLink" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4697 <a rel="mw:ExtLink" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4698 <a rel="mw:ExtLink" href="http://example.com/url_with_entity&">http://example.com/url_with_entity&</a>
4699 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span>
4700 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&#xA0;","srcContent":" "}'> </span>
4701 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&#160;","srcContent":" "}'> </span>
4702 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&lt;","srcContent":"<"}'><</span>
4703 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&#x3C;","srcContent":"<"}'><</span>
4704 <a rel="mw:ExtLink" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a><span typeof="mw:Entity" data-parsoid='{"src":"&#60;","srcContent":"<"}'><</span></p>
4708 External links: tricky Parsoid html2html case
4710 parsoid=wt2html,wt2wt,html2html
4712 http://example.com/url_with_entity&amp;
4714 <p><a rel="nofollow" class="external free" href="http://example.com/url_with_entity&amp">http://example.com/url_with_entity&amp</a>;
4717 <p><a rel="mw:ExtLink" href="http://example.com/url_with_entity&amp">http://example.com/url_with_entity&amp</a>;</p>
4721 External links: Free with trailing quotes (T113666)
4723 '''News:''' Stuff here
4727 <p><b>News:</b> Stuff here
4728 </p><p><a rel="nofollow" class="external free" href="news:'a'b">news:'a'b</a><i>c</i>d e
4731 <p><b>News:</b> Stuff here</p>
4732 <p><a rel="mw:ExtLink" href="news:'a'b">news:'a'b</a><i>c</i>d e</p>
4736 External links: Lone protocols are never linked (T105697)
4755 External links: No preceding word characters allowed (bug 65278)
4757 NOPEhttp://example.com
4758 N0http://example.com
4759 ok:http://example.com
4760 ok-http://example.com
4762 <p>NOPEhttp://example.com
4763 N0http://example.com
4764 ok:<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4765 ok-<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4770 External links: nofollow domain exception
4772 A [https://no-nofollow.org/foobar link], and another [https://example.org link].
4774 <p>A <a class="external text" href="https://no-nofollow.org/foobar">link</a>, and another <a rel="nofollow" class="external text" href="https://example.org">link</a>.
4781 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4783 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png"/>
4788 External image from https
4790 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4792 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png"/>
4797 External image (when not allowed)
4799 wgAllowExternalImages=0
4801 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
4803 <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>
4808 Link to non-http image, no img tag
4810 Link to non-http image, no img tag: ftp://example.com/test.jpg
4812 <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>
4817 External links: terminating separator
4819 Terminating separator: http://example.com/thing,
4821 <p>Terminating separator: <a rel="nofollow" class="external free" href="http://example.com/thing">http://example.com/thing</a>,
4826 External links: intervening separator
4828 Intervening separator: http://example.com/1,2,3
4830 <p>Intervening separator: <a rel="nofollow" class="external free" href="http://example.com/1,2,3">http://example.com/1,2,3</a>
4835 External links: old bug with URL in query
4837 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
4839 <p>Old bug with URL in query: <a rel="nofollow" class="external text" href="http://example.com/thing?url=http://example.com">link</a>
4844 External links: old URL-in-URL bug, mixed protocols
4846 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
4848 <p>And again with mixed protocols: <a rel="nofollow" class="external text" href="ftp://example.com?url=http://example.com">link</a>
4852 # Since Parsoid is starting to emit canonical wikitext for links,
4853 # [http://example.com http://example.com] will not RT back to that
4856 External links: URL in text
4860 URL in text: [http://example.com http://example.com]
4862 <p>URL in text: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
4865 <p>URL in text: <a rel="mw:ExtLink" href="http://example.com">http://example.com</a></p>
4869 External links: Clickable images
4871 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
4873 <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>
4876 <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>
4880 External links: raw ampersand
4882 Old & use: http://x&y
4884 <p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a>
4889 External links: encoded ampersand
4891 Old & use: http://x&y
4893 <p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a>
4896 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y">http://x&y</a></p>
4900 External links: encoded equals (bug 6102)
4902 http://example.com/?foo=bar
4904 <p><a rel="nofollow" class="external free" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a>
4907 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a></p>
4911 ## Note that parsoid doesn't explicit mark autonumbered links, nor
4912 ## does it number them. As discussed in bug 53505, we can identify
4913 ## autonumbered links via CSS.
4917 External links: [raw ampersand]
4919 Old & use: [http://x&y]
4921 <p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a>
4924 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y"></a></p>
4927 # note that parsoid html is identical to [raw ampersand] case; so html2wt
4928 # mode will return the [raw ampersand] wikitext
4930 External links: [encoded ampersand]
4932 parsoid=wt2html,wt2wt,html2html
4934 Old & use: [http://x&y]
4936 <p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a>
4939 <p>Old <span typeof="mw:Entity">&</span> use: <a rel="mw:ExtLink" href="http://x&y"></a></p>
4943 External links: [raw equals]
4945 [http://example.com/?foo=bar]
4947 <p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a>
4950 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar"></a></p>
4953 # note that parsoid html is identical to [raw equals] case; so html2wt
4954 # mode will return the [raw equals] wikitext
4956 External links: [encoded equals] (bug 6102)
4958 parsoid=wt2html,wt2wt,html2html
4960 [http://example.com/?foo=bar]
4962 <p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a>
4965 <p><a rel="mw:ExtLink" href="http://example.com/?foo=bar"></a></p>
4968 # xxx parsoid strips the IDN character, so the round-trip tests will
4969 # obviously fail and are disabled. --cscott
4971 External links: [IDN ignored character reference in hostname; strip it right off]
4973 parsoid=wt2html,wt2wt,html2html
4975 [http://e‌xample.com/]
4977 <p><a rel="nofollow" class="external autonumber" href="http://example.com/">[1]</a>
4980 <p><a rel="mw:ExtLink" href="http://example.com/"></a></p>
4983 # FIXME: This test (the IDN characters in the text of a link) is an inconsistency.
4984 # Where an external link could easily circumvent the sanitization of the text of
4985 # a link like this (where an IDN-ignore character is in the URL somewhere), this
4986 # test demands a higher standard. That's a bit strange.
4990 # http://example.com -> [http://example.com|http://example.com]
4991 # [http://example.com|http://example.com] -> [http://example.com|http://example.com]
4993 # The first example is sanitized, but the second is not. Any security benefits
4994 # from this production are trivial to circumvent. Either remove this test and
4995 # let the parser(s) do their thing unaccosted, or fix the inconsistency and change
4996 # the test accordingly.
5000 # xxx parsoid strips the IDN character, so the round-trip tests will
5001 # obviously fail and are disabled. --cscott
5003 External links: IDN ignored character reference in hostname; strip it right off
5005 parsoid=wt2html,html2html
5007 http://e‌xample.com/
5009 <p><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>
5012 <p><a rel="mw:ExtLink" href="http://example.com/">http://example.com/</a></p>
5016 External links: www.jpeg.org (bug 554)
5020 <p><a rel="nofollow" class="external free" href="http://www.jpeg.org">http://www.jpeg.org</a>
5024 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
5026 External links: URL within URL (original bug 2)
5028 [http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp]
5030 <p><a rel="nofollow" class="external autonumber" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp">[1]</a>
5033 <p><a rel="mw:ExtLink" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp"></a></p>
5037 BUG 361: URL inside bracketed URL
5039 [http://www.example.com/foo http://www.example.com/bar]
5041 <p><a rel="nofollow" class="external text" href="http://www.example.com/foo">http://www.example.com/bar</a>
5046 BUG 361: URL within URL, not bracketed
5048 http://www.example.com/foo?=http://www.example.com/bar
5050 <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>
5055 BUG 289: ">"-token in URL-tail
5057 http://www.example.com/<hello>
5059 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><hello>
5064 BUG 289: literal ">"-token in URL-tail
5066 http://www.example.com/<b>html</b>
5068 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><b>html</b>
5071 <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>
5075 BUG 289: ">"-token in bracketed URL
5077 [http://www.example.com/<hello> stuff]
5079 <p><a rel="nofollow" class="external text" href="http://www.example.com/"><hello> stuff</a>
5084 BUG 289: literal ">"-token in bracketed URL
5086 [http://www.example.com/<b>html</b> stuff]
5088 <p><a rel="nofollow" class="external text" href="http://www.example.com/"><b>html</b> stuff</a>
5093 BUG 289: literal double quote at end of URL
5095 http://www.example.com/"hello"
5097 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a>"hello"
5102 BUG 289: literal double quote in bracketed URL
5104 [http://www.example.com/"hello" stuff]
5106 <p><a rel="nofollow" class="external text" href="http://www.example.com/">"hello" stuff</a>
5111 External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081)
5113 [http://www.example.com test]
5115 <p><a rel="nofollow" class="external text" href="http://www.example.com">test</a>
5120 External links: link text with spaces
5122 [http://www.example.com a b c]
5123 [http://www.example.com ''a'' ''b'']
5125 <p><a rel="nofollow" class="external text" href="http://www.example.com">a b c</a>
5126 <a rel="nofollow" class="external text" href="http://www.example.com"><i>a</i> <i>b</i></a>
5131 External links: wiki links within external link (Bug 3695)
5133 parsoid=wt2html,html2html
5135 [http://example.com [[wikilink]] embedded in ext link]
5137 <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>
5140 <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>
5144 BUG 787: Links with one slash after the url protocol are invalid
5148 [http:/example.com title]
5150 <p>http:/example.com
5151 </p><p>[http:/example.com title]
5156 Bracketed external links with template-generated invalid target
5158 [{{echo|http:/example.com}} title]
5160 <p>[http:/example.com title]
5165 Bug 2702: Mismatched <i>, <b> and <a> tags are invalid
5167 ''[http://example.com text'']
5168 [http://example.com '''text]'''
5169 ''Something [http://example.com in italic'']
5170 ''Something [http://example.com mixed''''', even bold]'''
5171 '''''Now [http://example.com both''''']
5173 <p><a rel="nofollow" class="external text" href="http://example.com"><i>text</i></a>
5174 <a rel="nofollow" class="external text" href="http://example.com"><b>text</b></a>
5175 <i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>in italic</i></a>
5176 <i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>mixed</i><b>, even bold</b></a>
5177 <i><b>Now </b></i><a rel="nofollow" class="external text" href="http://example.com"><i><b>both</b></i></a>
5183 Bug 4781: %26 in URL
5185 http://www.example.com/?title=AT%26T
5187 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a>
5190 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a></p>
5193 # According to http://www.w3.org/TR/2011/WD-html5-20110525/Overview.html#parsing-urls a plain
5194 # % is actually legal in HTML5. Any change in output would need testing though.
5196 Bug 4781, 5267: %25 in URL
5198 http://www.example.com/?title=100%25_Bran
5200 <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>
5203 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=100%25_Bran">http://www.example.com/?title=100%25_Bran</a></p>
5207 Bug 4781, 5267: %28, %29 in URL
5209 http://www.example.com/?title=Ben-Hur_%281959_film%29
5211 <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>
5214 <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>
5219 Bug 4781: %26 in autonumber URL
5221 [http://www.example.com/?title=AT%26T]
5223 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=AT%26T">[1]</a>
5226 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T"></a></p>
5230 Bug 4781, 5267: %26 in autonumber URL
5232 [http://www.example.com/?title=100%25_Bran]
5234 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=100%25_Bran">[1]</a>
5237 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=100%25_Bran"></a></p>
5241 Bug 4781, 5267: %28, %29 in autonumber URL
5243 [http://www.example.com/?title=Ben-Hur_%281959_film%29]
5245 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">[1]</a>
5248 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=Ben-Hur_%281959_film%29"></a></p>
5253 Bug 4781: %26 in bracketed URL
5255 [http://www.example.com/?title=AT%26T link]
5257 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=AT%26T">link</a>
5260 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=AT%26T">link</a></p>
5264 Bug 4781, 5267: %25 in bracketed URL
5266 [http://www.example.com/?title=100%25_Bran link]
5268 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=100%25_Bran">link</a>
5273 Bug 4781, 5267: %28, %29 in bracketed URL
5275 [http://www.example.com/?title=Ben-Hur_%281959_film%29 link]
5277 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a>
5280 <p><a rel="mw:ExtLink" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a></p>
5284 External link containing a period in the anchor. (bug 63947)
5286 [//foo.org/bar#baz. bang]
5288 [//foo.org/bar. bang]
5290 <p><a rel="nofollow" class="external text" href="//foo.org/bar#baz.">bang</a>
5291 </p><p><a rel="nofollow" class="external text" href="//foo.org/bar.">bang</a>
5294 <p><a rel="mw:ExtLink" href="//foo.org/bar#baz.">bang</a></p>
5295 <p><a rel="mw:ExtLink" href="//foo.org/bar.">bang</a></p>
5299 External link containing a single quote. (bug 63947)
5303 [//foo.org/bar'baz bang]
5305 <p><a rel="nofollow" class="external autonumber" href="//foo.org/bar'baz">[1]</a>
5306 </p><p><a rel="nofollow" class="external text" href="//foo.org/bar'baz">bang</a>
5309 <p><a rel="mw:ExtLink" href="//foo.org/bar'baz"></a></p>
5310 <p><a rel="mw:ExtLink" href="//foo.org/bar'baz">bang</a></p>
5314 External link containing double-single-quotes in text '' (bug 4598 sanity check)
5316 Some [http://example.com/ pretty ''italics'' and stuff]!
5318 <p>Some <a rel="nofollow" class="external text" href="http://example.com/">pretty <i>italics</i> and stuff</a>!
5323 External link containing double-single-quotes in text embedded in italics (bug 4598 sanity check)
5325 ''Some [http://example.com/ pretty ''italics'' and stuff]!''
5327 <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>
5332 External link containing double-single-quotes with no space separating the url from text in italics
5334 [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]].]
5336 <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>
5339 <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>
5341 <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>
5345 External link with comments in link text
5347 [http://www.google.com Google <!-- comment -->]
5349 <p><a rel="nofollow" class="external text" href="http://www.google.com">Google </a>
5352 <p><a rel="mw:ExtLink" href="http://www.google.com">Google <!-- comment --></a></p>
5356 External link to bare IPv4 address
5358 [http://192.168.0.1 Link]
5360 <p><a rel="nofollow" class="external text" href="http://192.168.0.1">Link</a>
5363 <p><a rel="mw:ExtLink" href="http://192.168.0.1">Link</a></p>
5367 URL-encoding in URL functions (single parameter)
5369 {{localurl:Some page|amp=&}}
5371 <p>/index.php?title=Some_page&amp=&
5376 URL-encoding in URL functions (multiple parameters)
5378 {{localurl:Some page|q=?&=&}}
5380 <p>/index.php?title=Some_page&q=?&amp=&
5387 http://example.com/index.php?foozoid%5B%5D=bar
5389 http://example.com/index.php?foozoid[]=bar
5391 <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>
5392 </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>
5395 <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>
5397 <p><a rel="mw:ExtLink" href="http://example.com/index.php?foozoid[]=bar">http://example.com/index.php?foozoid[]=bar</a></p>
5401 IPv6 urls, autolink format (T23261)
5403 http://[2404:130:0:1000::187:2]/index.php
5405 Examples from RFC 2373, section 2.2:
5406 * http://[1080::8:800:200C:417A]/unicast
5407 * http://[FF01::101]/multicast
5408 * http://[::1]/loopback
5409 * http://[::]/unspecified
5410 * http://[::13.1.68.3]/ipv4compat
5411 * http://[::FFFF:129.144.52.38]/ipv4compat
5413 Examples from RFC 2732, section 2:
5414 * http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
5415 * http://[1080:0:0:0:8:800:200C:417A]/index.html
5416 * http://[3ffe:2a00:100:7031::1]
5417 * http://[1080::8:800:200C:417A]/foo
5418 * http://[::192.9.5.5]/ipng
5419 * http://[::FFFF:129.144.52.38]:80/index.html
5420 * http://[2010:836B:4179::836B:4179]
5423 <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>
5424 </p><p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2373">RFC 2373</a>, section 2.2:
5426 <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>
5427 <li> <a rel="nofollow" class="external free" href="http://[FF01::101]/multicast">http://[FF01::101]/multicast</a></li>
5428 <li> <a rel="nofollow" class="external free" href="http://[::1]/loopback">http://[::1]/loopback</a></li>
5429 <li> <a rel="nofollow" class="external free" href="http://[::]/unspecified">http://[::]/unspecified</a></li>
5430 <li> <a rel="nofollow" class="external free" href="http://[::13.1.68.3]/ipv4compat">http://[::13.1.68.3]/ipv4compat</a></li>
5431 <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>
5432 <p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2732">RFC 2732</a>, section 2:
5434 <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>
5435 <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>
5436 <li> <a rel="nofollow" class="external free" href="http://[3ffe:2a00:100:7031::1]">http://[3ffe:2a00:100:7031::1]</a></li>
5437 <li> <a rel="nofollow" class="external free" href="http://[1080::8:800:200C:417A]/foo">http://[1080::8:800:200C:417A]/foo</a></li>
5438 <li> <a rel="nofollow" class="external free" href="http://[::192.9.5.5]/ipng">http://[::192.9.5.5]/ipng</a></li>
5439 <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>
5440 <li> <a rel="nofollow" class="external free" href="http://[2010:836B:4179::836B:4179]">http://[2010:836B:4179::836B:4179]</a></li></ul>
5443 <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>
5445 <p>Examples from <a href="//tools.ietf.org/html/rfc2373" rel="mw:ExtLink">RFC 2373</a>, section 2.2:</p>
5446 <ul><li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/unicast">http://[1080::8:800:200C:417A]/unicast</a></li>
5447 <li> <a rel="mw:ExtLink" href="http://[FF01::101]/multicast">http://[FF01::101]/multicast</a></li>
5448 <li> <a rel="mw:ExtLink" href="http://[::1]/loopback">http://[::1]/loopback</a></li>
5449 <li> <a rel="mw:ExtLink" href="http://[::]/unspecified">http://[::]/unspecified</a></li>
5450 <li> <a rel="mw:ExtLink" href="http://[::13.1.68.3]/ipv4compat">http://[::13.1.68.3]/ipv4compat</a></li>
5451 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]/ipv4compat">http://[::FFFF:129.144.52.38]/ipv4compat</a></li></ul>
5453 <p>Examples from <a href="//tools.ietf.org/html/rfc2732" rel="mw:ExtLink">RFC 2732</a>, section 2:</p>
5454 <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>
5455 <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>
5456 <li> <a rel="mw:ExtLink" href="http://[3ffe:2a00:100:7031::1]">http://[3ffe:2a00:100:7031::1]</a></li>
5457 <li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/foo">http://[1080::8:800:200C:417A]/foo</a></li>
5458 <li> <a rel="mw:ExtLink" href="http://[::192.9.5.5]/ipng">http://[::192.9.5.5]/ipng</a></li>
5459 <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>
5460 <li> <a rel="mw:ExtLink" href="http://[2010:836B:4179::836B:4179]">http://[2010:836B:4179::836B:4179]</a></li></ul>
5464 IPv6 urls, bracketed format (T23261)
5466 [http://[2404:130:0:1000::187:2]/index.php test]
5468 Examples from RFC 2373, section 2.2:
5469 * [http://[1080::8:800:200C:417A] unicast]
5470 * [http://[FF01::101] multicast]
5471 * [http://[::1]/ loopback]
5472 * [http://[::] unspecified]
5473 * [http://[::13.1.68.3] ipv4compat]
5474 * [http://[::FFFF:129.144.52.38] ipv4compat]
5476 Examples from RFC 2732, section 2:
5477 * [http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html 1]
5478 * [http://[1080:0:0:0:8:800:200C:417A]/index.html 2]
5479 * [http://[3ffe:2a00:100:7031::1] 3]
5480 * [http://[1080::8:800:200C:417A]/foo 4]
5481 * [http://[::192.9.5.5]/ipng 5]
5482 * [http://[::FFFF:129.144.52.38]:80/index.html 6]
5483 * [http://[2010:836B:4179::836B:4179] 7]
5486 <p><a rel="nofollow" class="external text" href="http://[2404:130:0:1000::187:2]/index.php">test</a>
5487 </p><p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2373">RFC 2373</a>, section 2.2:
5489 <ul><li> <a rel="nofollow" class="external text" href="http://[1080::8:800:200C:417A]">unicast</a></li>
5490 <li> <a rel="nofollow" class="external text" href="http://[FF01::101]">multicast</a></li>
5491 <li> <a rel="nofollow" class="external text" href="http://[::1]/">loopback</a></li>
5492 <li> <a rel="nofollow" class="external text" href="http://[::]">unspecified</a></li>
5493 <li> <a rel="nofollow" class="external text" href="http://[::13.1.68.3]">ipv4compat</a></li>
5494 <li> <a rel="nofollow" class="external text" href="http://[::FFFF:129.144.52.38]">ipv4compat</a></li></ul>
5495 <p>Examples from <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc2732">RFC 2732</a>, section 2:
5497 <ul><li> <a rel="nofollow" class="external text" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">1</a></li>
5498 <li> <a rel="nofollow" class="external text" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">2</a></li>
5499 <li> <a rel="nofollow" class="external text" href="http://[3ffe:2a00:100:7031::1]">3</a></li>
5500 <li> <a rel="nofollow" class="external text" href="http://[1080::8:800:200C:417A]/foo">4</a></li>
5501 <li> <a rel="nofollow" class="external text" href="http://[::192.9.5.5]/ipng">5</a></li>
5502 <li> <a rel="nofollow" class="external text" href="http://[::FFFF:129.144.52.38]:80/index.html">6</a></li>
5503 <li> <a rel="nofollow" class="external text" href="http://[2010:836B:4179::836B:4179]">7</a></li></ul>
5506 <p><a rel="mw:ExtLink" href="http://[2404:130:0:1000::187:2]/index.php">test</a></p>
5508 <p>Examples from <a href="//tools.ietf.org/html/rfc2373" rel="mw:ExtLink">RFC 2373</a>, section 2.2:</p>
5509 <ul><li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]">unicast</a></li>
5510 <li> <a rel="mw:ExtLink" href="http://[FF01::101]">multicast</a></li>
5511 <li> <a rel="mw:ExtLink" href="http://[::1]/">loopback</a></li>
5512 <li> <a rel="mw:ExtLink" href="http://[::]">unspecified</a></li>
5513 <li> <a rel="mw:ExtLink" href="http://[::13.1.68.3]">ipv4compat</a></li>
5514 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]">ipv4compat</a></li></ul>
5516 <p>Examples from <a href="//tools.ietf.org/html/rfc2732" rel="mw:ExtLink">RFC 2732</a>, section 2:</p>
5517 <ul><li> <a rel="mw:ExtLink" href="http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html">1</a></li>
5518 <li> <a rel="mw:ExtLink" href="http://[1080:0:0:0:8:800:200C:417A]/index.html">2</a></li>
5519 <li> <a rel="mw:ExtLink" href="http://[3ffe:2a00:100:7031::1]">3</a></li>
5520 <li> <a rel="mw:ExtLink" href="http://[1080::8:800:200C:417A]/foo">4</a></li>
5521 <li> <a rel="mw:ExtLink" href="http://[::192.9.5.5]/ipng">5</a></li>
5522 <li> <a rel="mw:ExtLink" href="http://[::FFFF:129.144.52.38]:80/index.html">6</a></li>
5523 <li> <a rel="mw:ExtLink" href="http://[2010:836B:4179::836B:4179]">7</a></li></ul>
5527 Non-extlinks in brackets
5536 [{{echo|foo}} ''bar'']
5537 [{{echo|foo}}l's] errand
5538 [{{echo|foo}}l's errand]
5540 [url=http://example.com]
5541 [http:// bare protocols don't count]
5554 [url=<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>]
5555 [http:// bare protocols don't count]
5563 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span>]
5564 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span> bar]
5565 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}"}'>foo</span> <i>bar</i>]
5566 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}l's"}'>fool's</span>] errand
5567 [<span typeof="mw:Placeholder" data-parsoid='{"src":"{{echo|foo}}l's"}'>fool's</span> errand]
5568 [<span typeof="mw:Placeholder" data-parsoid='{"src":"url={{echo|foo}}"}'>url=foo</span>]
5569 [url=<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>]
5570 [http:// bare protocols don't count]</p>
5574 Percent encoding in external links
5576 [https://github.com/search?l=&q=ResourceLoader+%40wikimedia Search]
5578 <p><a rel="nofollow" class="external text" href="https://github.com/search?l=&q=ResourceLoader+%40wikimedia">Search</a>
5581 <p><a rel="mw:ExtLink"
5582 href="https://github.com/search?l=&q=ResourceLoader+%40wikimedia">Search</a></p>
5586 Use url link syntax for links where the content is equal the link target
5590 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
5593 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></p>
5597 Parenthesis in external links, especially URL links
5601 http://example.com/test)
5603 http://example.com/(test)
5605 http://example.com/((test)
5607 (http://example.com/(test))
5609 (http://example.com/(test)))))
5611 http://example.com/a)b
5613 [http://example.com) foo]
5615 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
5616 </p><p><a rel="nofollow" class="external free" href="http://example.com/test">http://example.com/test</a>)
5617 </p><p><a rel="nofollow" class="external free" href="http://example.com/(test)">http://example.com/(test)</a>
5618 </p><p><a rel="nofollow" class="external free" href="http://example.com/((test)">http://example.com/((test)</a>
5619 </p><p>(<a rel="nofollow" class="external free" href="http://example.com/(test))">http://example.com/(test))</a>
5620 </p><p>(<a rel="nofollow" class="external free" href="http://example.com/(test)))))">http://example.com/(test)))))</a>
5621 </p><p><a rel="nofollow" class="external free" href="http://example.com/a)b">http://example.com/a)b</a>
5622 </p><p><a rel="nofollow" class="external text" href="http://example.com)">foo</a>
5625 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)</p>
5626 <p><a rel="mw:ExtLink" href="http://example.com/test">http://example.com/test</a>)</p>
5627 <p><a rel="mw:ExtLink" href="http://example.com/(test)">http://example.com/(test)</a></p>
5628 <p><a rel="mw:ExtLink" href="http://example.com/((test)">http://example.com/((test)</a></p>
5629 <p>(<a rel="mw:ExtLink" href="http://example.com/(test))">http://example.com/(test))</a></p>
5630 <p>(<a rel="mw:ExtLink" href="http://example.com/(test)))))">http://example.com/(test)))))</a></p>
5631 <p><a rel="mw:ExtLink" href="http://example.com/a)b">http://example.com/a)b</a></p>
5632 <p><a rel="mw:ExtLink" href="http://example.com)">foo</a></p>
5636 Parenthesis in external links, w/ transclusion or comment
5638 (http://example.com/{{echo|hi}})
5640 (http://example.com<!-- hi -->)
5642 <p>(<a rel="nofollow" class="external free" href="http://example.com/hi">http://example.com/hi</a>)
5643 </p><p>(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
5646 <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='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[20,31,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"hi\"}},\"i\":0}}]}'>hi</span>"}]]}'>http://example.com/hi</a>)</p>
5648 <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>
5652 Serialize <a> tags with invalid link targets as plain text
5654 parsoid={ "modes": ["html2wt"], "suppressErrors": true }
5656 <a rel="mw:WikiLink" href="[[foo]]">text</a>
5657 <a rel="mw:WikiLink" href="[[foo]]">*text</a>
5658 <a rel="mw:WikiLink" href="[[foo]]">[[foo]]</a>
5659 <a rel="mw:WikiLink" href="[[foo]]">*a [[foo]]</a>
5662 <nowiki>*</nowiki>text
5663 <nowiki>[[foo]]</nowiki>
5664 <nowiki>*</nowiki>a <nowiki>[[foo]]</nowiki>
5668 mw:ExtLink -vs- mw:WikiLink (T94723)
5672 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"piped","a":{"href":"./Foo"},"sa":{"href":"Foo"}}'>Bar</a>
5673 <a rel="mw:WikiLink" href="./Foo" title="Foo">Bar</a>
5674 <a rel="mw:WikiLink" href="http://en.wikipedia.org/wiki/Foo" title="Foo">Bar</a>
5675 <a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" title="Foo">Bar</a>
5677 <a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/European_Robin">European Robin</a>
5678 <a rel="mw:WikiLink" href="http://en.wikipedia.org/wiki/European_Robin">European Robin</a>
5683 [[wikipedia:Foo|Bar]]
5684 [[wikipedia:Foo|Bar]]
5686 [[wikipedia:European_Robin|European Robin]]
5687 [[wikipedia:European_Robin|European Robin]]
5691 mw:ExtLink linking to a interwiki URL can be round-tripped losslessly (T94723)
5695 [http://en.wikipedia.org/wiki/European_Robin European Robin]
5697 THIS SECTION IS NOT USED (but Parsoid won't run the test without it)
5708 Normal text. '''Bold text.''' Normal text. ''Italic text.''
5710 Normal text. '''''Bold italic text.''''' Normal text.
5712 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
5713 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
5718 # Parsoid inserts an empty bold tag pair at the end of the line, that the PHP
5719 # parser strips. The wikitext contains just the first half of the bold
5722 Unclosed and unmatched quotes
5724 '''''Bold italic text '''with bold deactivated''' in between.'''''
5726 '''''Bold italic text ''with italic deactivated'' in between.'''''
5730 ..spanning two paragraphs (should not work).'''
5732 '''Bold tag left open
5734 ''Italic tag left open
5738 <!-- Unmatching number of opening, closing tags: -->
5739 '''This year''''s election ''should'' beat '''last year''''s.
5741 ''Tom'''s car is bigger than ''Susan'''s.
5743 Plain ''italic'''s plain
5745 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
5746 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
5747 </p><p><b>Bold text..</b>
5748 </p><p>..spanning two paragraphs (should not work).
5749 </p><p><b>Bold tag left open</b>
5750 </p><p><i>Italic tag left open</i>
5752 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
5753 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
5754 </p><p>Plain <i>italic'</i>s plain
5757 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
5758 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
5759 </p><p><b>Bold text..</b>
5760 </p><p>..spanning two paragraphs (should not work).<b></b>
5761 </p><p><b>Bold tag left open</b>
5762 </p><p><i>Italic tag left open</i>
5765 <!-- Unmatching number of opening, closing tags: -->
5766 <p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
5767 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
5768 </p><p>Plain <i>italic'</i>s plain
5775 ### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables
5778 # This should not produce <table></table> as <table><tr><td></td></tr></table>
5779 # is the bare minimum required by the spec, see:
5780 # http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables
5781 # Parsoid team replies: empty table tags are legal in HTML5
5783 A table with no data.
5796 A table with stray table end tags on start tag line (wt2html)
5800 {|style="color: red;"|}
5802 {|style="color: red;" |}
5806 {|style="color: red;"|} id="foo"
5810 {|style="color: red;" |} id="foo"
5814 <table style="color: red;"></table>
5816 <table style="color: red;">
5822 <table style="color: red;" id="foo">
5828 <table style="color: red;" id="foo">
5837 A table with no data (take 2)
5845 # A table with nothing but a caption is invalid XHTML, we might want to render
5846 # this as <p>caption</p>
5847 # Parsoid team replies: table with only a caption is legal in HTML5
5849 A table with nothing but a caption
5857 </caption><tr><td></td></tr></table>
5860 <table><caption> caption</caption></table>
5864 A table with caption with default-spaced attributes and a table row
5867 |+ style="color: red;" | caption1
5873 <caption style="color: red;"> caption1
5882 A table with captions with non-default spaced attributes and a table row
5885 |+style="color: red;"|caption2
5886 |+ style="color: red;"| caption3
5892 <caption style="color: red;">caption2
5894 <caption style="color: red;"> caption3
5903 Table td-cell syntax variations
5907 | foo bar foo || baz
5908 | style='color:red;' | baz
5909 | style='color:red;' || baz
5916 <td> foo bar foo </td>
5919 <td style="color:red;"> baz
5921 <td> style='color:red;' </td>
5949 Simple table but with multiple dashes for row wikitext
5968 Multiplication table
5970 {| border="1" cellpadding="2"
5971 |+Multiplication table
5973 ! × !! 1 !! 2 !! 3
5991 <table border="1" cellpadding="2">
5992 <caption>Multiplication table
6039 Accept "||" in table headings
6054 Accept "!!" in table data
6068 <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>
6073 Accept "||" in indented table headings
6083 </th></tr></table></dd></dl>
6088 Accept "!!" in templates
6102 <tbody><tr><th typeof="mw:Transclusion" about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"pi":[[{"k":"1"}]]}' 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>
6106 Accept "!!" in table headings after newline
6123 <p>b!!c</p></th></tr>
6128 Accept "!!" in table data of mixed wikitext / html syntax
6132 <tr><td>b!!c</td></tr>
6145 <tbody><tr><th>a</th></tr>
6146 <tr data-parsoid='{"stx":"html"}'><td data-parsoid='{"stx":"html"}'>b!!c</td></tr>
6151 Accept empty attributes in td/th cells (td/th cells starting with leading ||)
6168 Accept "| !" at start of line in tables (ignore !-attribute)
6172 | !style="color:red" | bar
6184 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 +/-
6188 |style='color:red;'|+1
6189 |style='color:blue;'|-1
6201 <td style="color:red;">+1
6203 <td style="color:blue;">-1
6227 |rowspan=2| Cell 2, row 1 (and 2)
6238 <td rowspan="2"> Cell 2, row 1 (and 2)
6256 {| bgcolor=#ABCDEF border=2
6261 |the original table again
6269 <table bgcolor="#ABCDEF" border="2">
6277 <td>the original table again
6283 Invalid attributes in table cell (bug 1830)
6297 Table cell attributes: Pipes protected by nowikis should be treated as a plain character
6301 | title="foo<nowiki>|</nowiki>" |bar
6302 | title="foo<nowiki>|</nowiki>" bar
6309 <td title="foo|">bar
6311 <td> title="foo|" bar
6316 <tbody><tr><td title="foo">bar</td>
6317 <td title="foo|" data-parsoid='{"a":{"title":"foo|"},"sa":{"title":"foo<nowiki>|</nowiki>"},"autoInsertedEnd":true}'>bar</td>
6318 <td> title="foo<span typeof="mw:Nowiki">|</span>" bar</td></tr>
6322 # See: http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html
6323 # N.B. The "|}" to close the table is missing from the input, so parsoid's
6324 # *2wt modes will fail.
6326 Table security: embedded pipes
6328 parsoid=wt2html,html2html
6331 | |[ftp://|x||]" onmouseover="alert(document.cookie)">test
6335 <td>[<a rel="nofollow" class="external free" href="ftp://%7Cx">ftp://%7Cx</a></td>
6336 <td>]" onmouseover="alert(document.cookie)">test
6344 <td data-parsoid='{"startTagSrc":"| ","attrSepSrc":"|","autoInsertedEnd":true}'><a rel="mw:ExtLink" href="ftp://|x||"></a>" onmouseover="alert(document.cookie)">test</td></tr></tbody></table>
6348 Element attributes with double ! should not be broken up by <th>
6351 ! hi <div class="!!">ha</div> ho
6356 <th> hi <div class="!!">ha</div> ho
6361 <tbody><tr><th> hi <div class="!!" data-parsoid='{"stx":"html"}'>ha</div> ho</th></tr>
6366 ! and || in element attributes should not be parsed as <th>/<td>
6369 | <div style="color: red !important;" data-contrived="put this here ||">hi</div>
6374 <td> <div style="color: red !important;" data-contrived="put this here ||">hi</div>
6379 <tbody><tr><td> <div style="color: red !important;" data-contrived="put this here ||" data-parsoid='{"stx":"html"}'>hi</div></td></tr>
6383 # FIXME: The output seems broken. Filed as T110268.
6385 ! and || in td attributes should not be parsed as <th>/<td>
6390 | style="color: red !important;" data-contrived="put this here ||" | foo
6395 <td> style="color: red !important;" data-contrived="put this here </td>
6401 <tbody><tr><td> style="color: red !important;" data-contrived="put this here </td><td data-parsoid='{"stx_v":"row","a":{"\"":null},"sa":{"\"":""},"autoInsertedEnd":true}'> foo</td></tr>
6406 Break on | in element attribute in template
6408 parsoid=wt2html,html2html
6410 {{echo|1=<div class="hi|ho">ha</div>}}
6412 <p>ho">ha</div>
6415 <span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"ho\">ha</div>"}},"i":0}}]}'>ho">ha</span>
6418 ## We don't support roundtripping of these attributes in Parsoid.
6419 ## Selective serialization takes care of preventing dirty diffs.
6420 ## But, on edits, we dirty-diff the invalid attribute text.
6422 Invalid text in table attributes should be discarded
6426 {| <span>boo</span> style='border:1px solid black'
6427 | <span>boo</span> style='color:blue' | 1
6428 |<span>boo</span> style='color:blue'| 2
6431 <table style="border:1px solid black">
6433 <td style="color:blue"> 1
6435 <td style="color:blue"> 2
6439 <table style="border:1px solid black">
6441 <td style="color:blue"> 1</td>
6442 <td style="color:blue"> 2</td>
6448 Invalid text in table attributes should be preserved by selective serializer
6451 "modes": ["selser"],
6453 ["td:first-child", "text", "abc"],
6454 ["td + td", "text", "xyz"]
6458 {| <span>boo</span> style='border:1px solid black'
6459 | <span>boo</span> style='color:blue' | 1
6460 |<span>boo</span> style='color:blue'| 2
6463 {| <span>boo</span> style='border:1px solid black'
6464 | <span>boo</span> style='color:blue' |abc
6465 |<span>boo</span> style='color:blue'|xyz
6470 1. Template-generated table cell attributes and cell content
6475 || {{table_attribs_5}}
6476 | <!--foo--> <!--bar--> <!--baz--> {{table_attribs}}
6477 |align=center {{table_attribs}}
6478 | <!--foo--> align=center <!--bar--> {{table_attribs}}
6483 <td style="color:red;">Foo
6485 <td style="color:red;">Foo
6487 <td> style="color:red;"</td>
6490 <td style="color:red;">Foo
6492 <td align="center" style="color:red;">Foo
6494 <td align="center" style="color:red;">Foo
6500 2. Template-generated table cell attributes and cell content
6503 |{{table_attribs_2}}
6508 <td style="color:red;">Foo
6516 <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>
6517 <td about="#mwt1">Bar</td><td about="#mwt1">Baz</td></tr>
6522 3. Template-generated table cell attributes and cell content
6525 !align=center {{table_header_cells}}
6527 |align=center {{table_cells}}
6532 <th align="center" style="color:red;">Foo</th>
6533 <th style="color:red;"><i>Bar</i></th>
6534 <th style="color:brown;"><i>Foo</i> and Baz
6537 <td align="center" style="color:red;">Foo</td>
6538 <td style="color:red;"><i>Bar</i></td>
6539 <td style="color:brown;"><i>Foo</i> and Baz
6544 <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>
6545 <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>
6550 4. Template-generated table cell attributes and cell content inside a templated table
6553 !align=center {{table_header_cells}}
6555 |align=center {{table_cells}}
6560 <th align="center" style="color:red;">Foo</th>
6561 <th style="color:red;"><i>Bar</i></th>
6562 <th style="color:brown;"><i>Foo</i> and Baz
6565 <td align="center" style="color:red;">Foo</td>
6566 <td style="color:red;"><i>Bar</i></td>
6567 <td style="color:brown;"><i>Foo</i> and Baz
6571 <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}}]}'>
6572 <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>
6574 <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>
6578 ## Edge case fix to prevent future regressions
6580 T107652: <ref>s in templates that also generate table cell attributes should be rendered properly
6583 |{{table_attribs_7}}
6588 <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>
6590 <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>
6594 Table with row followed by newlines and table heading
6596 parsoid=wt2html,html2html
6614 Table with empty line following the start tag
6616 parsoid=wt2html,html2html
6634 Table attributes with empty value
6636 parsoid=wt2html,html2html
6649 <tbody><tr><td style=""> hello</td></tr>
6654 Wikitext table with a lot of comments
6677 Wikitext table comments represented in parsoid dom
6679 {|<!--c1--><!--c2-->
6690 <table><!--c1--><!--c2-->
6691 <tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'><!--c3-->
6692 <td data-parsoid='{"autoInsertedEnd":true}'> x</td></tr>
6697 Wikitext table with double-line table cell
6714 Table cell with a single comment
6731 Table-cell after a comment-only-empty-line
6748 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'>a</td>
6750 <!--c2--><td data-parsoid='{"autoInsertedEnd":true}'> b</td></tr>
6756 Build table with {{!}}
6758 {{{!}} class="wikitable"
6761 {{!}}- style="color:red;"
6762 {{!}} data {{!}}{{!}} style="color:red;" {{!}} second data
6765 <table class="wikitable">
6771 <tr style="color:red;">
6773 <td style="color:red;"> second data
6779 Build table with pipe as data
6781 {| class="wikitable"
6784 |- style="color:red;"
6785 | data || style="color:red;" | second data
6787 | style="color:red;" | data with | || style="color:red;" | second data with |
6789 || data with | ||| second data with |
6792 <table class="wikitable">
6798 <tr style="color:red;">
6800 <td style="color:red;"> second data
6803 <td style="color:red;"> data with | </td>
6804 <td style="color:red;"> second data with |
6807 <td> data with | </td>
6808 <td> second data with |
6814 Build table with wikilink
6816 {| class="wikitable"
6817 ! header || second header
6818 |- style="color:red;"
6819 | data [[Main Page|linktext]] || second data [[Main Page|linktext]]
6821 | data || second data [[Main Page|link|text with pipe]]
6824 <table class="wikitable">
6829 <tr style="color:red;">
6830 <td> data <a href="/wiki/Main_Page" title="Main Page">linktext</a> </td>
6831 <td> second data <a href="/wiki/Main_Page" title="Main Page">linktext</a>
6835 <td> second data <a href="/wiki/Main_Page" title="Main Page">link|text with pipe</a>
6840 # The expected HTML structure in this test is debatable. The PHP parser does
6841 # not parse this kind of table at all. The main focus for Parsoid is on
6842 # round-tripping, so this output is ok for now. TODO: revisit!
6844 Wikitext table with html-syntax row
6854 <td>foo</td></tr></tbody></table>
6857 ## Note that Parsoid output differs from PHP and PHP+tidy here.
6858 ## The lack of <tr> tags in the PHP output is arguably a bug in the
6859 ## PHP parser, which tidy then compounds by fostering the content
6860 ## entirely out of the table. Parsoid recognizes the table context
6861 ## and generates <tr> and <td> wrappers as needed. Hopefully nobody
6862 ## depends on PHP's treatment of broken table markup!
6864 Implicit <td> after a |-
6866 parsoid=wt2html,html2html
6886 # Again, Parsoid adds implicit <td>s here, PHP and Tidy strip the b out.
6888 <pre> tags should be recognized in an explicit <td> context, but not in an implicit <td> context
6890 parsoid=wt2html,html2html
6923 <tr><td><pre>a</pre></td></tr>
6924 <tr><td> b</td></tr>
6929 # PHP + Tidy strips the list out of the table; Parsoid wraps it.
6930 # Parsoid generates the missing <td>, so wt2wt won't succeed.
6932 Lists should be recognized in an implicit <td> context
6934 parsoid=wt2html,html2html
6961 Table cells not properly parsed in an implicit-td context
6965 {{table_attribs_4}} || a || b
6970 <td style="background-color:#DC241f;" width="10px"></td>
6977 <tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
6978 <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>
6983 Parsoid: Round-trip tables directly followed by content (bug 51219)
6985 parsoid=wt2html,wt2wt
7010 Parsoid: Default to a newline after tables in new content (bug 51219)
7015 <tr><td>foo</td></tr></tbody></table> bar
7017 <tr><td>baz</td></tr></tbody></table><b>quux</b>
7022 <nowiki> </nowiki>bar
7030 Parsoid: newline inducing block nodes don't suppress <nowiki>
7042 Parsoid: Row-syntax table headings followed by comment & table cells
7044 parsoid=wt2html,wt2wt
7048 <!-- foo --> || baz || quux
7062 <tbody><tr><th> foo </th><th> bar
7063 <!-- foo --> </th><td> baz </td><td> quux</td></tr>
7068 Parsoid: Recover better from broken table attributes
7088 <p>foo</p></td></tr>
7093 Tables: Digest broken attributes on table and tr tag
7109 # T137406: Whitespace in the HTML
7111 1. Generate correct wikitext for tables with thead/tbody/tfoot
7116 <caption>Test</caption>
7157 <caption>Test</caption>
7177 # T137406: No whitespace in the HTML
7179 2. Generate correct wikitext for tables with thead/tbody/tfoot
7183 <table><thead><tr><th>heading</th></tr></thead><tbody><tr><td>foo</td></tr></tbody></table>
7193 Testing serialization after deletion in references
7202 hi <ref><div id="x">ho</div></ref>
7212 Testing serialization after deletion of table cells
7215 "modes": ["wt2wt", "selser"],
7223 | id="x" |c1 {{!}}{{!}}{{!}}c2 |||c3
7233 Testing selser after addition of new row before first row (T125419)
7236 "modes": ["wt2wt", "selser"],
7238 [ "tr", "before", "<tr><td>X</td></tr>" ]
7254 Serialize new table rows in a HTML table using HTML tags
7257 "modes": ["wt2wt", "selser"],
7259 [ "tr", "before", "<tr><td>X</td></tr>" ]
7263 <table><tr><td>a</td></tr></table>
7265 <table><tr><td>X</td></tr><tr><td>a</td></tr></table>
7269 Serialize new table cells in a HTML row using HTML tags
7272 "modes": ["wt2wt", "selser"],
7274 [ "td", "before", "<td>X</td>" ]
7278 <table><tr><td>a</td></tr></table>
7280 <table><tr><td>X</td><td>a</td></tr></table>
7284 Wikitext tables can be nested inside HTML tables
7288 <table data-parsoid='{"stx":"html"}'>
7291 <tr><td>foo</td></tr>
7306 Serialize wikitext list items as HTML list items when embedded in a HTML list
7310 <ul data-parsoid='{"stx": "html"}'>
7311 <li data-parsoid='{}'>a</li>
7321 # SSS FIXME: Is this actually a good thing given the
7322 # odd nested list output that is generated by MW?
7323 # <ul><li>foo<ul>..</ul></li></ul> instead of
7324 # <ul><li>foo</li><ul>..</ul></ul>
7326 Wikitext lists can be nested inside HTML lists
7330 <ul data-parsoid='{"stx": "html"}'>
7331 <li data-parsoid='{"stx": "html"}'>a
7336 <ul data-parsoid='{"stx": "html"}'>
7359 Plain link, capitalized
7363 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
7368 Plain link, uncapitalized
7372 <p><a href="/wiki/Main_Page" title="Main Page">main Page</a>
7379 [[Main Page|The Main Page]]
7381 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
7386 Piped link with comment in link text
7388 [[Main Page|The Main<!--front--> Page]]
7390 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
7395 Piped link with multiple pipe characters in link text
7397 [[Main Page||The|Main|Page|]]
7399 <p><a href="/wiki/Main_Page" title="Main Page">|The|Main|Page|</a>
7402 <p><a rel="mw:WikiLink" href="Main_Page" title="Main Page">|The|Main|Page|</a></p>
7406 Piped link with no link text
7408 [[Thomas Bek (bishop of St David's)|]]
7410 <p>[[Thomas Bek (bishop of St David's)|]]
7413 <p>[[Thomas Bek (bishop of St David's)|]]</p>
7421 <p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig</a>
7426 Broken link with fragment
7428 [[Zigzagzogzagzig#zug]]
7430 <p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig#zug</a>
7435 Special page link with fragment
7437 [[Special:Version#anchor]]
7439 <p><a href="/wiki/Special:Version#anchor" title="Special:Version">Special:Version#anchor</a>
7444 Nonexistent special page link with fragment
7446 [[Special:ThisNameWillHopefullyNeverBeUsed#anchor]]
7448 <p><a href="/wiki/Special:ThisNameWillHopefullyNeverBeUsed" class="new" title="Special:ThisNameWillHopefullyNeverBeUsed (page does not exist)">Special:ThisNameWillHopefullyNeverBeUsed#anchor</a>
7455 xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
7457 <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>
7464 [[Main Page]]xxx, [[Main Page]]XXX, [[Main Page]]!!!
7466 <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>!!!
7477 Bug 43661: Piped links with identical prefixes
7479 [[prefixed article|prefixed articles with spaces]]
7481 [[prefixed article|prefixed articlesaoeu]]
7483 [[Main Page|Main Page test]]
7485 <p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articles with spaces</a>
7486 </p><p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articlesaoeu</a>
7487 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page test</a>
7493 Link with HTML entity in suffix / tail
7495 [[Main Page]]", [[Main Page]]a
7497 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>", <a href="/wiki/Main_Page" title="Main Page">Main Page</a>a
7500 <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>
7504 Link with 3 brackets
7515 Link with 4 brackets
7519 <p>[[<a href="/wiki/Main_Page" title="Main Page">Main Page</a>]]
7524 Piped link with 3 brackets
7526 [[[main page|the main page]]]
7528 <p>[[[main page|the main page]]]
7533 Piped link with extlink-like text
7536 [[Main Page|This is a [bar]]]
7538 <p><a href="/wiki/Main_Page" title="Main Page">[bar]</a>
7539 <a href="/wiki/Main_Page" title="Main Page">This is a [bar]</a>
7542 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>[bar]</a>
7543 <a rel="mw:WikiLink" href="./Main_Page" title="Main Page" data-parsoid='{"stx":"piped"}'>This is a [bar]</a></p>
7547 Link with multiple pipes
7549 [[Main Page|The|Main|Page]]
7551 <p><a href="/wiki/Main_Page" title="Main Page">The|Main|Page</a>
7555 # Note that parsoid does not munge anchor text; all non-space
7556 # characters are valid in HTML5 ids.
7558 Anchor containing a #. (bug 63430)
7560 [[Main Page#And#Link]]
7562 <p><a href="/wiki/Main_Page#And.23Link" title="Main Page">Main Page#And#Link</a>
7565 <p><a rel="mw:WikiLink" href="./Main_Page#And%23Link" title="Main Page">Main Page#And#Link</a></p>
7571 [[Talk:Parser testing]], [[Meta:Disclaimers]]
7573 <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>
7578 Link with space in namespace
7580 [[User talk:Foo bar]]
7582 <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>
7587 MemoryAlpha:AlphaTest
7589 This is an article in the MemoryAlpha namespace
7590 (which shadows the memoryalpha interwiki link).
7594 Namespace takes precedence over interwiki link (bug 51680)
7596 [[MemoryAlpha:AlphaTest]]
7598 <p><a href="/wiki/MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
7602 # The previous test doesn't work correctly in html2*, due to not recognizing the
7603 # link as an internal one. This one checks for the correct behavior.
7605 Link to namespace preferred over interwiki with correct rel attribute
7607 parsoid=html2wt,html2html
7609 <p><a rel="mw:WikiLink" href="./MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a></p>
7611 [[MemoryAlpha:AlphaTest]]
7615 Piped link to namespace
7617 [[Meta:Disclaimers|The disclaimers]]
7619 <p><a href="/index.php?title=Meta:Disclaimers&action=edit&redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">The disclaimers</a>
7626 [[Usually caused by a typo (oops}]]
7628 <p>[[Usually caused by a typo (oops}]]
7635 Just a test of an article title containing a percent.
7639 Link containing % (not as a hex sequence)
7642 [[7% Solution|7%25 Solution]]
7644 <p><a href="/wiki/7%25_Solution" title="7% Solution">7% Solution</a>
7645 <a href="/wiki/7%25_Solution" title="7% Solution">7%25 Solution</a>
7648 <p><a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7% Solution</a>
7649 <a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7%25 Solution</a></p>
7652 # note that the parsoid HTML is identical to the previous test output,
7653 # so the previous test ensures that the html2wt mode will generate the
7654 # "not as a hex sequence" wikitext.
7656 Link containing % as a single hex sequence interpreted to char
7658 parsoid=wt2wt,wt2html,html2html
7661 [[7%25 Solution|7%25 Solution]]
7663 <p><a href="/wiki/7%25_Solution" title="7% Solution">7% Solution</a>
7664 <a href="/wiki/7%25_Solution" title="7% Solution">7%25 Solution</a>
7667 <p><a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7% Solution</a>
7668 <a rel="mw:WikiLink" href="./7%25_Solution" title="7% Solution">7%25 Solution</a></p>
7672 Link containing % as a double hex sequence interpreted to hex sequence
7676 <p>[[7%2525 Solution]]
7680 # note that parsoid does not munge anchor text; all non-space
7681 # characters are valid in HTML5 anchors.
7683 Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors
7684 Example for such a section: == < ==
7686 [[%23%3c]][[%23%3e]]
7688 <p><a href="#.3C">#<</a><a href="#.3E">#></a>
7691 <p><a rel="mw:WikiLink" href="./Main_Page#%3C" title="Main Page">#<</a><a rel="mw:WikiLink" href="./Main_Page#%3E" title="Main Page">#></a></p>
7695 Link containing "<#" and ">#" as a hex sequences
7697 [[%3c%23]][[%3e%23]]
7699 <p>[[%3c%23]][[%3e%23]]
7704 Link containing an equals sign
7706 [[Special:BookSources/isbn=4-00-026157-6]]
7708 <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>
7711 <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>
7717 Just a test of an article title containing a tilde.
7720 # note that links containing signatures, like [[Foo~~~~]], are
7721 # massaged by the pre-save transform (PST) and so the tildes are never
7722 # seen by the parser.
7724 Link containing a tilde
7728 <p><a href="/wiki/Foo~bar" title="Foo~bar">Foo~bar</a>
7731 <p><a rel="mw:WikiLink" href="./Foo~bar" title="Foo~bar">Foo~bar</a></p>
7735 Link containing double-single-quotes '' (bug 4598)
7737 [[Lista d''e paise d''o munno]]
7739 <p><a href="/index.php?title=Lista_d%27%27e_paise_d%27%27o_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>
7742 <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>
7746 Link containing double-single-quotes '' in text (bug 4598 sanity check)
7748 Some [[Link|pretty ''italics'' and stuff]]!
7750 <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>!
7753 <p>Some <a rel="mw:WikiLink" href="Link" title="Link">pretty <i>italics</i> and stuff</a>!</p>
7757 Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check)
7759 ''Some [[Link|pretty ''italics'' and stuff]]!''
7761 <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>
7766 Link with double quotes in title part (literal) and alternate part (interpreted)
7768 [[File:Denys_Savchenko_''Pentecoste''.jpg]]
7772 [[''Pentecoste''|Pentecoste]]
7774 [[''Pentecoste''|''Pentecoste'']]
7776 <p><a href="/index.php?title=Special:Upload&wpDestFile=Denys_Savchenko_%27%27Pentecoste%27%27.jpg" class="new" title="File:Denys Savchenko ''Pentecoste''.jpg">File:Denys Savchenko <i>Pentecoste</i>.jpg</a>
7777 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">''Pentecoste''</a>
7778 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">Pentecoste</a>
7779 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)"><i>Pentecoste</i></a>
7782 <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>
7783 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''">''Pentecoste''</a></p>
7784 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''">Pentecoste</a></p>
7785 <p><a rel="mw:WikiLink" href="''Pentecoste''" title="''Pentecoste''"><i>Pentecoste</i></a></p>
7789 Broken image links with HTML captions (bug 39700)
7791 [[File:Nonexistent|<script></script>]]
7792 [[File:Nonexistent|100x100px|<script></script>]]
7793 [[File:Nonexistent|<]]
7794 [[File:Nonexistent|a<i>b</i>c]]
7796 <p><a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
7797 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
7798 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><</a>
7799 <a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent">abc</a>
7802 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"<script></script>"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"&lt;script>&lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
7803 <span typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"100x100px"},{"ck":"caption","ak":"<script></script>"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"&lt;script>&lt;/script>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="100" width="100" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"100","width":"100"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
7804 <span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;lt;\",\"srcContent\":\"&lt;\",\"dsr\":[107,111,null,null]}'>&lt;</span>"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span>
7805 <span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"a<i>b</i>c"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"a<i data-parsoid='{\"stx\":\"html\",\"dsr\":[134,142,3,4]}'>b</i>c"}'><a href="./File:Nonexistent" data-parsoid='{"a":{"href":"./File:Nonexistent"},"sa":{}}'><img resource="./File:Nonexistent" src="./Special:FilePath/Nonexistent" height="220" width="220" data-parsoid='{"a":{"resource":"./File:Nonexistent","height":"220","width":"220"},"sa":{"resource":"File:Nonexistent"}}'/></a></span></p>
7811 [[http://www.example.com]]
7813 <p>[<a rel="nofollow" class="external autonumber" href="http://www.example.com">[1]</a>]
7816 <p>[<a rel="mw:ExtLink" href="http://www.example.com"></a>]</p>
7820 Plain link to URL with link text
7822 [[http://www.example.com Link text]]
7824 <p>[<a rel="nofollow" class="external text" href="http://www.example.com">Link text</a>]
7829 Plain link to protocol-relative URL
7831 [[//www.example.com]]
7833 <p>[<a rel="nofollow" class="external autonumber" href="//www.example.com">[1]</a>]
7836 <p>[<a rel="mw:ExtLink" href="//www.example.com"></a>]</p>
7840 Plain link to protocol-relative URL with link text
7842 [[//www.example.com Link text]]
7844 <p>[<a rel="nofollow" class="external text" href="//www.example.com">Link text</a>]
7849 Plain link to page with question mark in title
7855 <p><a href="/wiki/A%3Fb" title="A?b">A?b</a>
7856 </p><p><a href="/wiki/A%3Fb" title="A?b">Baz</a>
7861 # I'm fairly sure the expected result here is wrong.
7862 # We want these to be URL links, not pseudo-pages with URLs for titles....
7863 # However the current output is also pretty screwy.
7866 # I'm changing it to match the current output--it arguably makes more
7867 # sense in the light of the test above. Old expected result was:
7868 #<p>Piped link to URL: <a href="/index.php?title=Http://www.example.com&action=edit" class="new">an example URL</a>
7870 # But I think this test is bordering on "garbage in, garbage out" anyway.
7875 Piped link to URL: [[http://www.example.com|an example URL]]
7877 <p>Piped link to URL: [<a rel="nofollow" class="external text" href="http://www.example.com%7Can">example URL</a>]
7880 <p>Piped link to URL: [<a rel="mw:ExtLink" href="http://www.example.com|an">example URL</a>]</p>
7884 BUG 2: [[page|http://url/]] should link to page, not http://url/
7886 [[Main Page|http://url/]]
7888 <p><a href="/wiki/Main_Page" title="Main Page">http://url/</a>
7891 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">http://url/</a></p>
7894 # Parsoid does not mark self-links, by design.
7896 BUG 337: Escaped self-links should be bold
7900 [[Bug462]] [[Bug462]]
7902 <p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong>
7905 <p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong></p>
7907 <p><a rel="mw:WikiLink" href="./Bug462" title="Bug462">Bug462</a> <a rel="mw:WikiLink" href="./Bug462" title="Bug462">Bug462</a></p>
7911 Self-link to section should not be bold
7915 [[Main Page#section]]
7917 <p><a href="/wiki/Main_Page#section" title="Main Page">Main Page#section</a>
7928 Self-link to numeric title
7934 <p><strong class="selflink">0</strong>
7939 Link to numeric-equivalent title
7945 <p><a href="/wiki/00" title="00">00</a>
7950 <nowiki> inside a link
7952 [[Main<nowiki> Page</nowiki>]] [[Main Page|the main page <nowiki>[it's not very good]</nowiki>]]
7954 <p>[[Main Page]] <a href="/wiki/Main_Page" title="Main Page">the main page [it's not very good]</a>
7959 Non-breaking spaces in title
7961 [[ Main Page ]]
7963 <p><a href="/wiki/Main_Page" title="Main Page">  Main   Page  </a>
7968 Internal link with ca linktrail, surrounded by bold apostrophes (bug 27473 primary issue)
7974 <p><b><a href="/wiki/Main_Page" title="Main Page">Main Page</a></b>
7979 Internal link with ca linktrail, surrounded by italic apostrophes (bug 27473 primary issue)
7985 <p><i><a href="/wiki/Main_Page" title="Main Page">Main Page</a></i>
7990 Internal link with en linktrail: no apostrophes (bug 27473)
7996 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (page does not exist)">Something</a>'nice
8001 Internal link with ca linktrail with apostrophes (bug 27473)
8007 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (encara no existeix)">Something'nice</a>
8012 Internal link with kaa linktrail with apostrophes (bug 27473)
8018 <p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (bet ele jaratılmag'an)">Something'nice</a>
8023 Link with multiple ":" in a subpage-supporting namespace (bug 63636)
8025 [[User:Foo/Test/63636:Bar|Test]]
8027 <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>
8030 <p><a rel="mw:WikiLink" href="./User:Foo/Test/63636:Bar" title="User:Foo/Test/63636:Bar">Test</a></p>
8033 ## Mainly a sanity check for Parsoid
8035 Handle title parsing for subpages
8044 ## FIXME: Add a working php section here
8046 Link to a subpage from a namespace other than main
8052 <p><a rel="mw:WikiLink" href="./User:Test/123" title="User:Test/123" data-parsoid='{"stx":"simple","a":{"href":"./User:Test/123"},"sa":{"href":"/123"}}'>/123</a></p>
8056 Ensure that transclusion titles are not url-decoded
8058 subpage title=[[Test]]
8061 {{Bar%C3%A9}} {{/Bar%C3%A9}}
8063 <p>{{Bar%C3%A9}} {{/Bar%C3%A9}}
8066 <p>{{Bar%C3%A9}} {{/Bar%C3%A9}}</p>
8070 Purely hash wikilink
8072 title=[[User:test/123]]
8076 <p><a href="#a">b</a>
8079 <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>
8083 1. Interaction of linktrail and template encapsulation
8089 <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>
8093 2. Interaction of linktrail and template encapsulation
8097 {{echo|Some [[Fool]]}}s
8099 <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"}]]}'>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>
8103 3. Interaction of linktrail and template encapsulation
8107 {{echo|Some [[Fool]]s are '''bold and foolish'''}}
8109 <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"}]]}'>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>
8119 Internal link with is link prefix
8123 Aðrir mótmælenda[[söfnuður|söfnuðir]] og
8125 <p>Aðrir <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðir</a> og
8136 Internal link with is link trail and link prefix
8140 [[mótmælendatrú|xxx]]ar
8142 mótmælenda[[söfnuður]]
8143 mótmælenda[[söfnuður|söfnuðir]]
8144 mótmælenda[[söfnuður|söfnuðir]]xxx
8146 <p><a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">xxxar</a>
8147 <a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">mótmælendatrúar</a>
8148 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuður</a>
8149 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðir</a>
8150 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðirxxx</a>
8155 Parsoid link trail escaping
8157 parsoid=html2wt,html2html
8159 <p><a rel="mw:WikiLink" href="Apple" title="Apple">apple</a>s</p>
8165 Parsoid link prefix escaping
8168 parsoid=html2wt,html2html
8170 <p>Aðrir mótmælenda<a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður">söfnuður</a></p>
8172 Aðrir mótmælenda<nowiki/>[[söfnuður]]
8176 Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
8184 [http://wp.org ''foo'']
8186 <p><a href="/wiki/Foo" title="Foo"> bar</a>
8187 </p><p><a href="/wiki/Foo" title="Foo"> <i>bar</i></a>
8188 </p><p><a rel="nofollow" class="external text" href="http://wp.org">foo</a>
8189 </p><p><a rel="nofollow" class="external text" href="http://wp.org"><i>foo</i></a>
8194 Parsoid: Scoped parsing should handle mixed transclusions and plain text
8198 [[Foo|{{echo|a}} b {{echo|c}}]]
8200 <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>
8204 Link with angle bracket after anchor
8208 <p><a href="/wiki/Foo#.3Cbar.3E" title="Foo">Foo#<bar></a>
8211 <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>
8215 ### Interwiki links (see maintenance/interwiki.sql)
8219 Inline interwiki link
8221 parsoid=wt2html,wt2wt,html2html
8223 [[MeatBall:SoftSecurity]]
8225 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a>
8228 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a></p>
8232 Inline interwiki link with empty title (bug 2372)
8234 parsoid=wt2html,wt2wt,html2html
8238 <p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a>
8241 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?" title="meatball:">MeatBall:</a></p>
8245 Interwiki link encoding conversion (bug 1636)
8247 *[[Wikipedia:ro:Olteniţa]]
8248 *[[Wikipedia:ro:Olteniţa]]
8250 <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>
8251 <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>
8255 <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>
8256 <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>
8261 Interwiki link with fragment (bug 2130)
8263 [[MeatBall:SoftSecurity#foo]]
8265 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity#foo</a>
8269 # Ideally the wikipedia: prefix here should be proto-relative too
8270 # [CSA]: this is kind of a bogus test, as the PHP parser test doesn't
8271 # define the 'en' prefix, and originally the test used 'wikipedia',
8272 # which isn't a localinterwiki prefix hence the links to the 'en:Foo'
8275 Different interwiki prefixes mapping to the same URL
8283 [[:wikipedia:Foo|Foo]]
8285 [[wikipedia:en:Foo]]
8287 [[:wikipedia:en:Foo]]
8291 <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>
8293 <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>
8295 <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>
8297 <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>
8299 <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>
8301 <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>
8303 <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>
8307 Interwiki links that cannot be represented in wiki syntax
8310 [[meatball:ok#foo|ok with fragment]]
8311 [[meatball:ok_as_well?|ok ending with ? mark]]
8312 [http://de.wikipedia.org/wiki/Foo?action=history has query]
8313 [http://de.wikipedia.org/wiki/#foo is just fragment]
8316 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?ok" class="extiw" title="meatball:ok">meatball:ok</a>
8317 <a href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" class="extiw" title="meatball:ok">ok with fragment</a>
8318 <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>
8319 <a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
8320 <a rel="nofollow" class="external text" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a>
8323 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok" title="meatball:ok">meatball:ok</a>
8324 <a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo" title="meatball:ok">ok with fragment</a>
8325 <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>
8326 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/Foo?action=history">has query</a>
8327 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a></p>
8331 Interwiki links: trail
8333 [[wikipedia:Foo|Ba]]r
8335 <p><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Bar</a>
8338 <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>
8342 Local interwiki link
8344 parsoid=wt2html,wt2wt,html2html
8346 [[local:Template:Foo]]
8348 <p><a href="/wiki/Template:Foo" title="Template:Foo">local:Template:Foo</a>
8351 <p><a rel="mw:WikiLink" href="./Template:Foo" title="Template:Foo">local:Template:Foo</a></p>
8354 # Parsoid does not mark self-links, by design.
8356 Local interwiki link: self-link to current page
8359 parsoid=wt2html,wt2wt,html2html
8363 <p><strong class="selflink">local:Main Page</strong>
8366 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:Main Page</a></p>
8370 Local interwiki link: prefix only (bug 64167)
8372 parsoid=wt2html,wt2wt,html2html
8376 <p><a href="/wiki/Main_Page" title="Main Page">local:</a>
8379 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">local:</a></p>
8383 Local interwiki link: with additional interwiki prefix (bug 61357)
8385 parsoid=wt2html,wt2wt,html2html
8387 [[local:meatball:Hello]]
8389 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?Hello" class="extiw" title="meatball:Hello">local:meatball:Hello</a>
8392 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?Hello" title="meatball:Hello">local:meatball:Hello</a></p>
8396 Multiple local interwiki link prefixes
8398 [[local:local:local:local:mi:local:Foo]]
8400 parsoid=wt2html,wt2wt,html2html
8402 <p><a href="/wiki/Foo" title="Foo">local:local:local:local:mi:local:Foo</a>
8405 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">local:local:local:local:mi:local:Foo</a></p>
8409 ### Interlanguage links
8410 ### Language links (so that searching for '### language' matches..)
8422 <p>Blah blah blah</p>
8423 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8426 ## parsoid html2wt will lose the space variations
8428 Interlanguage link with spacing
8430 parsoid=wt2html,wt2wt,html2html
8438 <p>Blah blah blah</p>
8439 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8443 Double interlanguage link
8452 <p>Blah blah blah</p>
8453 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
8454 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8457 ## parsoid html2wt will lose the space variations
8459 Interlanguage link variations
8461 parsoid=wt2html,wt2wt,html2html
8471 <p>Blah blah blah</p>
8472 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish" />
8473 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese" />
8474 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Foo_bar" />
8477 ## parsoid html2wt will normalize the space to _
8479 Space and question mark encoding in interlanguage links (T95473)
8481 parsoid=wt2html,wt2wt,html2html
8489 <p>Blah blah blah</p>
8490 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Foo_bar%3F" />
8494 Interlanguage link, with prefix links
8504 <p>Blah blah blah</p>
8505 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8509 Double interlanguage link, with prefix links (bug 8897)
8520 <p>Blah blah blah</p>
8521 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Spanish"/>
8522 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/Chinese"/>
8526 "Extra" interlanguage links (bug 32189 / gerrit 111390)
8534 <p>Blah blah blah</p>
8535 <link rel="mw:PageProp/Language" title="Multilingual" href="http://wikisource.org/wiki/Article"/>
8538 ## PHP parser tests script needs an update
8539 ## Parsoid html2wt will normalize output to [[:zh:Chinese]]
8541 Language links render as inline links if $wgInterwikiMagic=false
8543 wgInterwikiMagic=false
8544 parsoid=wt2html,wt2wt,html2html
8549 <p>Blah blah blah <a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
8552 ## PHP parser tests script needs an update
8553 ## Parsoid html2wt will normalize output to [[:zh:Chinese]]
8555 Language links render as inline links in the Talk namespace
8558 parsoid=wt2html,wt2wt,html2html
8563 <p>Blah blah blah <a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese">zh:Chinese</a></p>
8567 Parsoid-specific test: Wikilinks with should RT properly
8573 <p><a href="/index.php?title=WW_II&action=edit&redlink=1" class="new" title="WW II (lonkásá ezalí tɛ̂)">WW II</a>
8578 Parsoid bug 53221: Wikilinks should be properly entity-escaped
8580 parsoid={ "modes": ["html2wt"], "suppressErrors": true }
8582 <p>He&nbsp;llo <a href="Foo" rel="mw:WikiLink">He&nbsp;llo</a></p>
8583 <p>He&nbsp;llo <a href="He&nbsp;llo" rel="mw:WikiLink">He&nbsp;llo</a></p>
8585 He&nbsp;llo [[Foo|He&nbsp;llo]]
8587 He&nbsp;llo He&nbsp;llo
8589 <p>He&nbsp;llo <a href="/wiki/Foo" title="Foo">He&nbsp;llo</a>
8590 </p><p>He&nbsp;llo He&nbsp;llo
8594 # html2wt will fail because of title normalization without data-parsoid
8596 Parsoid: handle constructor well
8598 parsoid=wt2html,wt2wt
8604 <p><a href="/index.php?title=Constructor&action=edit&redlink=1" class="new" title="Constructor (page does not exist)">constructor</a>
8605 </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>
8608 <p><a rel="mw:WikiLink" href="./Constructor" title="Constructor" data-parsoid='{"stx":"simple","a":{"href":"./Constructor"},"sa":{"href":"constructor"}}'>constructor</a></p>
8610 <p><a rel="mw:WikiLink" href="./Constructor:foo" title="Constructor:foo" data-parsoid='{"stx":"simple","a":{"href":"./Constructor:foo"},"sa":{"href":"constructor:foo"}}'>constructor:foo</a></p>
8619 # Note that `ko` isn't a known interlanguage prefix
8621 Parsoid: recognize interlanguage links without a target page
8631 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/"/>
8633 <p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
8636 # Note that `ko` isn't a known interwiki prefix
8638 Parsoid: recognize interwiki links without a target page
8640 parsoid=wt2html,wt2wt,html2html
8646 <p><a href="http://es.wikipedia.org/wiki/" class="extiw" title="es:">es:</a>
8647 </p><p><a href="/wiki/Ko:" title="Ko:">ko:</a>
8650 <p><a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/" title="es:">es:</a></p>
8651 <p><a rel="mw:WikiLink" href="./Ko:" title="Ko:">ko:</a></p>
8655 Handle interwiki links pointing to the current wiki as plain wiki links (bug 45209)
8659 <p><a href="/wiki/Foo" title="Foo">mi:Foo</a>
8662 <p><a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"mi:Foo"}}'>mi:Foo</a></p>
8666 Interlanguage link with preceding local interwiki link (bug 68085)
8668 parsoid=wt2html,wt2wt,html2html
8671 [[local:es:Spanish]]
8674 <a href="http://es.wikipedia.org/wiki/Spanish" class="extiw" title="es:Spanish">local:es:Spanish</a>
8678 <a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">local:es:Spanish</a></p>
8682 Looks like an interlanguage link, but is actually a local interwiki
8684 parsoid=wt2html,wt2wt,html2html
8690 <a href="/wiki/Template:Foo" title="Template:Foo">mi:Template:Foo</a>
8694 <a rel="mw:WikiLink" href="./Template:Foo" title="Template:Foo">mi:Template:Foo</a></p>
8698 ### Redirects, Parsoid-only
8702 1. Simple redirect to page
8704 #REDIRECT [[Main Page]]
8706 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8710 2. Other redirect variants
8712 #REDIRECT [[Main_Page]]
8714 <link rel="mw:PageProp/redirect" href="./Main_Page" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./Main_Page"},"sa":{"href":"Main_Page"}}'/>
8717 # Not a valid redirect in PHP (although perhaps it was, once upon a time)
8718 # This tests the Parsoid bail-out code.
8720 3. Other redirect variants
8722 #REDIRECT [[<nowiki>[[Bar]]</nowiki>]]
8724 <ol><li data-parsoid>REDIRECT [[[[Bar]]]]</li></ol>
8728 4. Redirect to a templated destination
8730 #REDIRECT [[{{echo|Foo}}bar]]
8732 <link about="#mwt2" typeof="mw:ExpandedAttrs" rel="mw:PageProp/redirect" href="./Foobar" data-parsoid='{"a":{"href":"./Foobar"},"sa":{"href":"{{echo|Foo}}bar"}}' data-mw='{"attribs":[[{"txt":"href"},{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[12,24,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"Foo\"}},\"i\":0}}]}'>Foo</span>bar"}]]}'/>
8738 parsoid=wt2html,wt2wt
8743 <li>REDIRECT [[]]</li></ol>
8747 Optional colon in #REDIRECT
8749 # the colon is archaic syntax. we support it for wt2html, but we
8750 # don't care that it roundtrips back to the modern syntax.
8751 parsoid=wt2html,html2html
8753 #REDIRECT:[[Main Page]]
8755 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8759 Whitespace in #REDIRECT with optional colon
8761 # the colon and gratuitous whitespace is archaic syntax. we support
8762 # it for wt2html, but we don't care that it roundtrips back to the
8763 # modern syntax (without extra whitespace)
8764 parsoid=wt2html,html2html
8771 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8775 Piped link in #REDIRECT
8777 # content after piped link is ignored. we support this syntax,
8778 # but don't care that the piped link is lost when we roundtrip this.
8781 #REDIRECT [[Main Page|bar]]
8783 <link rel="mw:PageProp/redirect" href="./Main_Page"/>
8787 Redirect to category (T104502)
8789 parsoid=wt2html,wt2wt
8791 #REDIRECT [[Category:Foo]]
8793 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8797 Redirect to category with URL encoding (T104502)
8801 #REDIRECT [[Category%3AFoo]]
8803 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8807 Redirect to category page
8809 #REDIRECT [[:Category:Foo]]
8811 <link rel="mw:PageProp/redirect" href="./Category:Foo"/>
8815 Redirect to image page (1)
8817 #REDIRECT [[File:Wiki.png]]
8819 <link rel="mw:PageProp/redirect" href="./File:Wiki.png"/>
8823 Redirect to image page (2)
8825 #REDIRECT [[Image:Wiki.png]]
8827 <link rel="mw:PageProp/redirect" href="./File:Wiki.png" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./File:Wiki.png"},"sa":{"href":"Image:Wiki.png"}}'/>
8830 # html2wt disabled because wts serializes as "#REDIRECT [[:en:File:Wiki.png]]"
8831 # Next test confirms this.
8833 Redirect to language (1) (T104918)
8835 parsoid=wt2html,wt2wt,html2html
8837 #REDIRECT [[en:File:Wiki.png]]
8839 <link rel="mw:PageProp/redirect" href="//en.wikipedia.org/wiki/File:Wiki.png"/>
8843 Redirect to language (2) (T104918)
8845 #REDIRECT [[:en:File:Wiki.png]]
8847 <link rel="mw:PageProp/redirect" href="//en.wikipedia.org/wiki/File:Wiki.png"/>
8851 Redirect to interwiki (T104918)
8853 #REDIRECT [[meatball:File:Wiki.png]]
8855 <link rel="mw:PageProp/redirect" href="http://www.usemod.com/cgi-bin/mb.pl?File:Wiki.png"/>
8859 Non-English #REDIRECT
8863 #TILVÍSUN [[Main Page]]
8865 <link rel="mw:PageProp/redirect" href="./Main_Page" data-parsoid='{"src":"#TILVÍSUN ","a":{"href":"./Main_Page"},"sa":{"href":"Main Page"}}'/>
8869 Redirect syntax under text isn't considered a redirect
8872 #redirect [[Main Page]]
8875 <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>
8878 # FIXME: Should hoist the redirect to the top of the page and ensure there
8885 <p>Foo<link rel="mw:PageProp/redirect" href="./Foo"/></p>
8905 Broken br tag sanitization
8913 # TODO: Fix html2html mode (bug 51055)!
8915 Parsoid: Broken br tag recognition
8928 Incorrecly removing closing slashes from correctly formed XHTML
8930 <br style="clear:both;" />
8932 <p><br style="clear:both;" />
8937 Failing to transform badly formed HTML into correct XHTML
8939 <br style="clear: left;">
8940 <br style="clear: right;">
8941 <br style="clear: both;">
8943 <p><br style="clear: left;" />
8944 <br style="clear: right;" />
8945 <br style="clear: both;" />
8949 ## FIXME: Is Parsoid's acceptance of self-closing html-tags
8950 ## a feature or a bug? See https://phabricator.wikimedia.org/T76962
8952 Handling html with a div self-closing tag
8961 <p><div title />
8965 <p><div title=bar />
8966 <div title=bar/>
8968 <div title="bar/"></div>
8972 <div title="" data-parsoid='{"stx":"html","selfClose":true}'></div>
8973 <div title="" data-parsoid='{"stx":"html","selfClose":true}'></div>
8974 <div title="" data-parsoid='{"stx":"html","selfClose":true,"brokenHTMLTag":true}'></div>
8975 <div title="bar" data-parsoid='{"stx":"html","selfClose":true}'></div>
8976 <div title="bar" data-parsoid='{"stx":"html","selfClose":true}'></div>
8977 <div title="bar/" data-parsoid='{"stx":"html","autoInsertedEnd":true}'></div>
8981 Handling html with a br self-closing tag
9008 Horizontal ruler (should it add that extra space?)
9023 Horizontal ruler -- 4+ dashes render hr
9032 Horizontal ruler -- eats additional dashes on the same line
9041 Horizontal ruler -- does not collapse dashes on consecutive lines
9052 Horizontal ruler -- <4 dashes render as plain text
9061 Horizontal ruler -- Supports content following dashes on same line
9073 ### Block-level elements
9082 <ul><li>Common list</li>
9084 <li>item 3</li></ul>
9095 <ol><li>Numbered list</li>
9097 <li> item 3</li></ol>
9111 ***#Number on level 4
9113 **#Number on level 3
9114 **#Number on level 3
9118 #** Level 3, but ordered
9121 <ol><li> with numbers</li></ol>
9122 <ul><li> and bullets</li></ul>
9123 <ol><li> and numbers</li></ol></li>
9125 <ul><li>bullet level 2
9126 <ul><li>bullet level 3
9127 <ol><li>Number on level 4</li></ol></li></ul></li>
9129 <ol><li>Number on level 3</li>
9130 <li>Number on level 3</li></ol></li></ul>
9131 <ol><li>number level 2</li></ol></li>
9133 <ul><li><ul><li> Level 3</li></ul></li></ul></li></ul>
9134 <ol><li><ul><li><ul><li> Level 3, but ordered</li></ul></li></ul></li></ol>
9139 1. Nested mixed wikitext and html list
9142 * <ul><li>ho</li></ul>
9147 <li> <ul><li>ho</li></ul></li>
9149 <ul><li> ho</li></ul></li></ul>
9153 <li> <ul data-parsoid='{"stx":"html"}'><li data-parsoid='{"stx":"html"}'>ho</li></ul></li>
9155 <ul><li> ho</li></ul></li></ul>
9159 2. Nested mixed wikitext and html list (incompatible)
9162 : {{echo|<li>ho</li>}}
9165 <dd> <li>ho</li></dd></dl>
9169 <dd> <li about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<li>ho</li>"}},"i":0}}]}'>ho</li></dd></dl>
9179 <ul><li>bar</li></ul></li></ul>
9189 <ul><li><ul><li>foo</li></ul></li>
9195 Nested lists 3 (first element empty)
9201 <ul><li>bar</li></ul></li></ul>
9206 Nested lists 4 (first element empty)
9211 <ul><li><ul><li></li></ul></li>
9217 Nested lists 5 (both elements empty)
9222 <ul><li><ul><li></li></ul></li>
9228 Nested lists 6 (both elements empty)
9234 <ul><li></li></ul></li></ul>
9239 Nested lists 7 (skip initial nesting levels)
9243 <ul><li><ul><li><ul><li> foo</li></ul></li></ul></li></ul>
9248 Nested lists 8 (multiple nesting transitions)
9256 <ul><li><ul><li> bar</li></ul></li>
9257 <li> baz</li></ul></li>
9263 Nested lists 9 (extension interaction)
9269 <ul><li data-parsoid='{}'><ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-parsoid='{}' data-mw='{"name":"references","attrs":{}}'></ol></li></ul>
9273 1. Lists with start-of-line-transparent tokens before bullets: Comments
9286 2. Lists with start-of-line-transparent tokens before bullets: Template close
9291 <ul><li>foo bar</li>
9297 List items are not parsed correctly following a <pre> block (bug 785)
9303 <ul><li> <pre>foo</pre></li>
9304 <li> <pre>bar</pre></li>
9308 <ul><li> <pre data-parsoid='{"stx":"html"}'>foo</pre></li>
9309 <li> <pre data-parsoid='{"stx":"html"}'>bar</pre></li>
9314 List items from template
9325 * notSOL{{inner list}}
9328 <ul><li> item 1</li>
9329 <li> item 2</li></ul>
9330 <ul><li> item 0</li>
9332 <li> item 2</li></ul>
9333 <ul><li> item 0</li>
9336 <li> item 2</li></ul>
9341 List interrupted by empty line or heading
9349 <ul><li> foo</li></ul>
9350 <ul><li><ul><li> bar</li></ul></li></ul>
9351 <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>
9352 <ul><li> Another list item</li></ul>
9357 Multiple list tags generated by templates
9378 Single-comment whitespace lines dont break lists, and neither do multi-comment whitespace lines
9381 <!--This line will NOT split the list-->
9383 <!--This line will NOT split the list either-->
9385 <!--foo--> <!----> <!--This line NOT split the list either-->
9396 Replacing whitespace with tabs still doesn't break the list (gerrit 78327)
9399 <!--This line will NOT split the list-->
9401 <!--This line will NOT split the list either-->
9403 <!--foo--> <!----> <!--This line NOT split the list
9416 (The PHP parser relies on Tidy for the hack)
9418 parsoid=wt2html,wt2wt
9422 * {{echo|<li>templated li-hack}}
9423 * <!--foo--> <li> unsupported li-hack with preceding comments
9426 <li><li>not a li-hack
9433 <li>templated li-hack</li>
9434 <li>unsupported li-hack with preceding comments</li>
9437 <li>not a li-hack</li>
9442 Parsoid: Make sure nested lists are serialized on their own line even if HTML contains no newlines
9469 Parsoid: Test of whitespace serialization with Templated bullets
9476 <li> </li><li about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"bullet","href":"./Template:Bullet"},"params":{},"i":0}}]}'> Bar</li>
9480 # ------------------------------------------------------------------------
9481 # The next set of tests are about Parsoid's ability to handle badly nested
9482 # tags (parse, minimize scope of fixup, and roundtrip back)
9483 # ------------------------------------------------------------------------
9486 Unbalanced closing block tags break a list
9487 (php parser relies on Tidy to fix up)
9505 # Parsoid fails this test, but it might be tricky to support properly.
9508 Unbalanced closing non-block tags don't break a list
9509 (php parser relies on Tidy to fix up)
9516 <li><span>a</span></li>
9517 <li><span>b</span></li>
9531 Unclosed formatting tags that straddle lists are closed and reopened
9532 (php parser relies on Tidy to fix up)
9534 parsoid=wt2html,wt2wt,html2html
9544 <ol><li> <s> a</s></li>
9545 <li><s> b </s></li></ol>
9550 1. List embedded in a formatting tag
9557 <li><small>foo</small></li>
9567 ## Ugly Parsoid output here
9568 ## Not sure what the right output is.
9570 2. List embedded in a formatting tag
9577 <li><small>a</small></li>
9578 <li><small>b</small></li>
9585 <li><small>b</small></li>
9589 # Ugly Parsoid and PHP parser output here
9590 # Not sure if we want to make this a test!
9593 ## 3. Unclosed formatting tags in list elements
9599 ## <li><small>a</small></li>
9600 ## <li><small><small>b</small></small></li>
9604 ## <li><small>a</small></li>
9606 ## <li><small>b</small></li>
9610 # This is a bug in the PHP parser + tidy combination.
9611 # (The </tr> tag gets parsed as text and html-escaped by PHP,
9612 # and then fostered out of the table by tidy.)
9613 # We believe the Parsoid output to be correct.
9615 Table with missing opening <tr> tag
9617 parsoid=wt2html,wt2wt
9635 # Note that the current date is hard-coded as
9636 # 1970-01-01T00:02:03Z (a Thursday)
9637 # when running parser tests. The timezone is also fixed to GMT, so
9638 # local date will be identical to current date.
9641 Magic Word: {{CURRENTDAY}}
9650 Magic Word: {{CURRENTDAY2}}
9659 Magic Word: {{CURRENTDAYNAME}}
9668 Magic Word: {{CURRENTDOW}}
9677 Magic Word: {{CURRENTMONTH}}
9686 Magic Word: {{CURRENTMONTH1}}
9695 Magic Word: {{CURRENTMONTHABBREV}}
9697 {{CURRENTMONTHABBREV}}
9704 Magic Word: {{CURRENTMONTHNAME}}
9706 {{CURRENTMONTHNAME}}
9713 Magic Word: {{CURRENTMONTHNAMEGEN}}
9715 {{CURRENTMONTHNAMEGEN}}
9722 Magic Word: {{CURRENTTIME}}
9731 Magic Word: {{CURRENTHOUR}}
9740 Magic Word: {{CURRENTWEEK}} (@bug 4594)
9749 Magic Word: {{CURRENTYEAR}}
9758 Magic Word: {{CURRENTTIMESTAMP}}
9760 {{CURRENTTIMESTAMP}}
9767 Magic Words LOCAL (UTC)
9771 * {{LOCALMONTHNAME}}
9772 * {{LOCALMONTHNAMEGEN}}
9773 * {{LOCALMONTHABBREV}}
9782 * {{LOCALTIMESTAMP}}
9797 <li> 19700101000203</li></ul>
9802 Magic Word: {{FULLPAGENAME}}
9804 title=[[User:Ævar Arnfjörð Bjarmason]]
9808 <p>User:Ævar Arnfjörð Bjarmason
9813 Magic Word: {{FULLPAGENAMEE}}
9815 title=[[User:Ævar Arnfjörð Bjarmason]]
9819 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9824 Magic Word: {{TALKSPACE}}
9826 title=[[User:Ævar Arnfjörð Bjarmason]]
9835 Magic Word: {{TALKSPACE}}, same namespace
9837 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9846 Magic Word: {{TALKSPACE}}, main namespace
9848 title=[[Parser Test]]
9857 Magic Word: {{TALKSPACEE}}
9859 title=[[User:Ævar Arnfjörð Bjarmason]]
9868 Magic Word: {{SUBJECTSPACE}}
9870 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9879 Magic Word: {{SUBJECTSPACE}}, same namespace
9881 title=[[User:Ævar Arnfjörð Bjarmason]]
9890 Magic Word: {{SUBJECTSPACE}}, main namespace
9892 title=[[Parser Test]]
9900 Magic Word: {{SUBJECTSPACEE}}
9902 title=[[User talk:Ævar Arnfjörð Bjarmason]]
9911 Magic Word: {{NAMESPACE}}
9913 title=[[User:Ævar Arnfjörð Bjarmason]]
9922 Magic Word: {{NAMESPACEE}}
9924 title=[[User:Ævar Arnfjörð Bjarmason]]
9933 Magic Word: {{NAMESPACENUMBER}}
9935 title=[[User:Ævar Arnfjörð Bjarmason]]
9944 Magic Word: {{SUBPAGENAME}}
9946 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
9955 Magic Word: {{SUBPAGENAMEE}}
9957 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
9966 Magic Word: {{ROOTPAGENAME}}
9968 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
9972 <p>Ævar Arnfjörð Bjarmason
9977 Magic Word: {{ROOTPAGENAMEE}}
9979 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
9983 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
9988 Magic Word: {{BASEPAGENAME}}
9990 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
9994 <p>Ævar Arnfjörð Bjarmason
9999 Magic Word: {{BASEPAGENAMEE}}
10001 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
10005 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
10010 Magic Word: {{TALKPAGENAME}}
10012 title=[[User:Ævar Arnfjörð Bjarmason]]
10016 <p>User talk:Ævar Arnfjörð Bjarmason
10021 Magic Word: {{TALKPAGENAMEE}}
10023 title=[[User:Ævar Arnfjörð Bjarmason]]
10027 <p>User_talk:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
10032 Magic Word: {{SUBJECTPAGENAME}}
10034 title=[[User talk:Ævar Arnfjörð Bjarmason]]
10036 {{SUBJECTPAGENAME}}
10038 <p>User:Ævar Arnfjörð Bjarmason
10043 Magic Word: {{SUBJECTPAGENAMEE}}
10045 title=[[User talk:Ævar Arnfjörð Bjarmason]]
10047 {{SUBJECTPAGENAMEE}}
10049 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
10054 Magic Word: {{NUMBEROFFILES}}
10063 Magic Word: {{PAGENAME}}
10065 title=[[User:Ævar Arnfjörð Bjarmason]]
10069 <p>Ævar Arnfjörð Bjarmason
10074 Magic Word: {{PAGENAME}} with metacharacters
10076 title=[['foo & bar = baz']]
10080 <p><i>'foo & bar = baz'</i>
10083 <p><i>'foo & bar = baz'</i></p>
10087 Magic Word: {{PAGENAME}} with metacharacters (bug 26781)
10089 title=[[*RFC 1234 http://example.com/]]
10093 <p>*RFC 1234 http://example.com/
10096 <p>*RFC 1234 http://example.com/</p>
10100 Magic Word: {{PAGENAMEE}}
10102 title=[[User:Ævar Arnfjörð Bjarmason]]
10106 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
10111 Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781)
10113 title=[[*RFC 1234 http://example.com/]]
10117 <p>*RFC_1234_http://example.com/
10120 <p>*RFC_1234_http://example.com/</p>
10124 Magic Word: {{REVISIONID}}
10133 Magic Word: {{SCRIPTPATH}}
10141 Magic Word: {{STYLEPATH}}
10150 Magic Word: {{SERVER}}
10154 <p><a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>
10159 Magic Word: {{SERVERNAME}}
10168 Magic Word: {{SITENAME}}
10177 Case-sensitive magic words, when cased differently, should just be template transclusions
10184 <p><a href="/index.php?title=Template:CurrentMonth&action=edit&redlink=1" class="new" title="Template:CurrentMonth (page does not exist)">Template:CurrentMonth</a>
10185 <a href="/index.php?title=Template:Currentday&action=edit&redlink=1" class="new" title="Template:Currentday (page does not exist)">Template:Currentday</a>
10186 <a href="/index.php?title=Template:CURreNTweEK&action=edit&redlink=1" class="new" title="Template:CURreNTweEK (page does not exist)">Template:CURreNTweEK</a>
10187 <a href="/index.php?title=Template:CurrentHour&action=edit&redlink=1" class="new" title="Template:CurrentHour (page does not exist)">Template:CurrentHour</a>
10192 Case-insensitive magic words should still work with weird casing.
10202 <a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>
10206 # From plwiki:PLOS_ONE
10208 Parsoid: Page property magic word with magic word contents
10210 {{DISPLAYTITLE:''{{PAGENAME}}''}}
10212 <meta property="mw:PageProp/displaytitle" content="Main Page" about="#mwt2" typeof="mw:ExpandedAttrs" data-parsoid='{"src":"{{DISPLAYTITLE:''{{PAGENAME}}''}}"}' data-mw='{"attribs":[[{"txt":"content"},{"html":"<i data-parsoid='{\"dsr\":[15,31,2,2]}'><span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[]],\"dsr\":[17,29,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"PAGENAME\",\"function\":\"pagename\"},\"params\":{},\"i\":0}}]}'>Main Page</span></i>"}]]}'/>
10216 Parsoid: Template-generated DISPLAYTITLE
10218 {{{{echo|DISPLAYTITLE}}:Foo}}
10220 <meta property="mw:PageProp/displaytitle" content="Foo" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"{{echo|DISPLAYTITLE}}:Foo"},"params":{},"i":0}}]}'/>
10224 Namespace 1 {{ns:1}}
10233 Namespace 1 {{ns:01}}
10242 Namespace 0 {{ns:0}} (bug 4783)
10250 Namespace 0 {{ns:00}} (bug 4783)
10258 Namespace -1 {{ns:-1}}
10267 Namespace User {{ns:User}}
10276 Namespace User talk {{ns:User_talk}}
10285 Namespace User talk {{ns:uSeR tAlK}}
10294 Namespace File {{ns:File}}
10303 Namespace File {{ns:Image}}
10312 Namespace (lang=de) Benutzer {{ns:User}}
10323 Namespace (lang=de) Benutzer Diskussion {{ns:3}}
10329 <p>Benutzer Diskussion
10337 {{urlencode:hi world?!}}
10338 {{urlencode:hi world?!|WIKI}}
10339 {{urlencode:hi world?!|PATH}}
10340 {{urlencode:hi world?!|QUERY}}
10350 Magic Word: prioritize type info over data-parsoid
10354 <meta property="mw:PageProp/forcetoc" data-parsoid='{"magicSrc":"__NOTOC__"}'/>
10360 Magic Word: serialize on separate line (parsoid)
10362 parsoid=wt2wt,html2wt
10368 foo<meta property="mw:PageProp/notoc"/>bar
10372 Magic Word: rt non-english wikis
10379 <meta property="mw:PageProp/noeditsection" data-parsoid='{"magicSrc":"__NOEDITSECTION__"}'/>
10383 __proto__ is treated as normal wikitext (T105997)
10395 Magic links: internal link to RFC (bug 479)
10399 <p><a href="/index.php?title=RFC_123&action=edit&redlink=1" class="new" title="RFC 123 (page does not exist)">RFC 123</a>
10402 <p><a rel="mw:WikiLink" href="./RFC_123" title="RFC 123">RFC 123</a></p>
10406 Magic links: RFC (bug 479)
10410 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a>
10413 <p><a href="//tools.ietf.org/html/rfc822" rel="mw:ExtLink">RFC 822</a></p>
10417 Magic links: RFC (bug 65278)
10419 This is RFC 822 but thisRFC 822 is not RFC 822linked.
10421 <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.
10424 <p>This is <a href="//tools.ietf.org/html/rfc822" rel="mw:ExtLink">RFC 822</a> but thisRFC 822 is not RFC 822linked.</p>
10428 Magic links: RFC (w/ non-newline whitespace, bug 28950/29025)
10430 RFC      822
10434 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a>
10439 <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>
10445 Magic links: ISBN (bug 1937)
10449 <p><a href="/wiki/Special:BookSources/0306406152" class="internal mw-magiclink-isbn">ISBN 0-306-40615-2</a>
10452 <p><a href="./Special:BookSources/0306406152" rel="mw:WikiLink">ISBN 0-306-40615-2</a></p>
10456 Magic links: ISBN (bug 65278)
10458 This is ISBN 978-0-316-09811-3 but thisISBN 978-0-316-09811-3 is not ISBN 978-0-316-09811-3linked.
10460 <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.
10463 <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>
10467 Magic links: ISBN (w/ non-newline whitespace, bug 28950/29025)
10469 ISBN      978 0 316 09811 3
10475 <p><a href="/wiki/Special:BookSources/9780316098113" class="internal mw-magiclink-isbn">ISBN 978 0 316 09811 3</a>
10482 <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>
10490 Magic links: PMID incorrectly converts space to underscore
10494 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a>
10497 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink">PMID 1234</a></p>
10501 Magic links: PMID (bug 65278)
10503 This is PMID 1234 but thisPMID 1234 is not PMID 1234linked.
10505 <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.
10508 <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>
10512 Magic links: PMID (w/ non-newline whitespace, bug 28950/29025)
10514 PMID      1234
10518 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a>
10523 <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>
10528 # <nowiki> nodes shouldn't be inserted during html2wt by Parsoid,
10529 # since these are ExtLinkText, not MagicLinkText
10531 Magic links: use appropriate serialization for "almost" magic links.
10533 X[[Special:BookSources/0978739256|foo]]
10535 X[//tools.ietf.org/html/rfc1234 foo]
10537 <p>X<a href="/wiki/Special:BookSources/0978739256" title="Special:BookSources/0978739256">foo</a>
10538 </p><p>X<a rel="nofollow" class="external text" href="//tools.ietf.org/html/rfc1234">foo</a>
10541 <p>X<a rel="mw:WikiLink" href="./Special:BookSources/0978739256" title="Special:BookSources/0978739256">foo</a></p>
10542 <p>X<a rel="mw:ExtLink" href="//tools.ietf.org/html/rfc1234">foo</a></p>
10546 Magic links: All disabled (T47942)
10548 wgEnableMagicLinks={"ISBN":false, "PMID":false, "RFC":false}
10554 <p>ISBN 0-306-40615-2
10565 Nonexistent template
10567 {{thistemplatedoesnotexist}}
10569 <p><a href="/index.php?title=Template:Thistemplatedoesnotexist&action=edit&redlink=1" class="new" title="Template:Thistemplatedoesnotexist (page does not exist)">Template:Thistemplatedoesnotexist</a>
10574 Template with invalid target containing tags
10576 {{a<b>b</b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
10578 <p>{{a<b>b</b>|foo|a=b|a = b}}
10583 Template with invalid target containing unclosed tag
10585 {{a<b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
10587 <p>{{a<b>|foo|a=b|a = b}}</b>
10592 Template with invalid target containing wikilink
10596 <p>{{<a href="/wiki/Main_Page" title="Main Page">Main Page</a>}}
10599 <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>
10603 Template with just whitespace in it, bug #68421
10607 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{ }}"}},"i":0}}]}'>{{ }}</p>
10613 This is a test template
10621 <p>This is a test template
10626 Template with explicit namespace
10630 <p>This is a test template
10638 This is a test template with parameter {{{param}}}
10644 {{paramtest|param=foo}}
10646 <p>This is a test template with parameter foo
10651 Template:paramtestnum
10653 [[{{{1}}}|{{{2}}}]]
10657 Template unnamed parameter
10659 {{paramtestnum|Main Page|the main page}}
10661 <p><a href="/wiki/Main_Page" title="Main Page">the main page</a>
10666 Template:templatesimple
10672 Template:templateredirect
10674 #redirect [[Template:templatesimple]]
10678 Template:templateasargtestnum
10684 Template:templateasargtest
10686 {{template{{{templ}}}}}
10690 Template:templateasargtest2
10696 Template with template name as unnamed argument
10698 {{templateasargtestnum|templatesimple}}
10705 Template with template name as argument
10707 {{templateasargtest|templ=simple}}
10714 Template with template name as argument (2)
10716 {{templateasargtest2|templ=templatesimple}}
10723 Template:templateasargtestdefault
10725 {{{{{templ|templatesimple}}}}}
10735 Template with default value
10737 {{templateasargtestdefault}}
10744 Template with default value (value set)
10746 {{templateasargtestdefault|templ=templa}}
10755 {{templateredirect}}
10760 <link rel="mw:PageProp/redirect" href="./Template:Templatesimple" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"templateredirect","href":"./Template:Templateredirect"},"params":{},"i":0}}]}'/>
10764 Template with argument in separate line
10766 {{ templateasargtest |
10774 Template with complex template as argument
10777 param ={{ templateasargtest |
10778 templ = simple }}}}
10780 <p>This is a test template with parameter (test)
10785 Template with thumb image (with link in description)
10787 {{paramtest|param=[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
10789 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>
10792 <p>This is a test template with parameter</p>
10793 <div class="thumb tright">
10794 <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>
10795 <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>
10799 <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>
10803 Template:complextemplate
10805 {{{1}}} {{paramtest|
10806 param ={{{param}}}}}
10810 Template with complex arguments
10813 param ={{ templateasargtest |
10814 templ = simple }}|[[Template:complextemplate|link]]}}
10816 <p><a href="/wiki/Template:Complextemplate" title="Template:Complextemplate">link</a> This is a test template with parameter (test)
10821 BUG 553: link with two variables in a piped link
10824 |[[{{{1}}}|{{{2}}}]]
10829 <td>[[{{{1}}}|{{{2}}}]]
10834 <tbody><tr><td>[[<span about="#mwt5" typeof="mw:Param" data-parsoid='{"src":"{{{1}}}"}'>{{{1}}}</span>|<span about="#mwt2" typeof="mw:Param" data-parsoid='{"src":"{{{2}}}"}'>{{{2}}}</span>]]</td></tr>
10839 Abort table cell attribute parsing on wikilink
10842 | testing [[one|two]] | three || four
10843 | testing one two | three || four
10844 | testing="[[one|two]]" | three || four
10849 <td> testing <a href="/index.php?title=One&action=edit&redlink=1" class="new" title="One (page does not exist)">two</a> | three </td>
10855 <td> testing="<a href="/index.php?title=One&action=edit&redlink=1" class="new" title="One (page does not exist)">two</a>" | three </td>
10861 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'> testing <a rel="mw:WikiLink" href="./One" title="One" data-parsoid='{"stx":"piped","a":{"href":"./One"},"sa":{"href":"one"}}'>two</a> | three </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> four</td>
10862 <td data-parsoid='{"a":{"testing":null,"one":null,"two":null},"sa":{"testing":"","one":"","two":""},"autoInsertedEnd":true}'> three </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> four</td>
10863 <td> testing="<a rel="mw:WikiLink" href="./One" title="One" data-parsoid='{"stx":"piped","a":{"href":"./One"},"sa":{"href":"one"}}'>two</a>" | three </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> four</td></tr>
10868 Don't abort table cell attribute parsing if wikilink is found in template arg
10871 | Test {{#tag:ref|One two "[[three]]" four}}
10875 <tbody><tr><td> Test <ref about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"#tag:ref","function":"#tag"},"params":{"1":{"wt":"One two \"[[three]]\" four"}},"i":0}}]}'>One two "<a rel="mw:WikiLink" href="./Three" title="Three">three</a>" four</ref></td></tr>
10880 Magic variable as template parameter
10882 {{paramtest|param={{SITENAME}}}}
10884 <p>This is a test template with parameter MediaWiki
10891 [[{{{param}}}|link]]
10895 Template parameter as link source
10897 {{linktest|param=Main Page}}
10899 <p><a href="/wiki/Main_Page" title="Main Page">link</a>
10904 Template:paramtest2
10906 including another template, {{paramtest|param={{{arg}}}}}
10910 Template passing argument to another template
10912 {{paramtest2|arg='hmm'}}
10914 <p>including another template, This is a test template with parameter 'hmm'
10925 Template as link source
10929 [[{{linktest2}}|Main Page]]
10931 [[{{linktest2}}]]Page
10933 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
10934 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
10935 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>Page
10953 Template infinite loop
10957 <p><span class="error">Template loop detected: <a href="/wiki/Template:Loop1" title="Template:Loop1">Template:Loop1</a></span>
10962 Template from main namespace
10981 BUG 529: Template with table, not included at beginning of line
11000 BUG 523: Template shouldn't eat newline (or add an extra one before table)
11020 BUG 41: Template parameters shown as broken links
11029 Template with targets containing wikilinks
11033 {{[[{{echo|foo}}]]}}
11035 {{{{echo|[[foo}}]]}}
11037 <p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
11038 </p><p>{{<a href="/wiki/Foo" title="Foo">foo</a>}}
11050 Templates: Double quotes as template target
11057 <p>foo <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"''","href":"./Template:''"},"params":{},"i":0}}]}'>bar</span> baz
11061 ## This test is about making sure Parsoid's data-mw is well formed in the
11062 ## face of multiple templates with intersecting and overlapping ranges. The
11063 ## wikitext itself is wretched.
11065 Templates with intersecting and overlapping ranges
11090 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[{"k":"1"}],[{"k":"1"}],[{"k":"1"}]],"firstWikitextNode":"table"}' data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n<p>ha</p>"}},"i":0}},"\n","{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"\n<p>ho</p>"}},"i":1}},"\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}}hi"}},"i":2}},"\n|}"]}'>ha</p><table about="#mwt1" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"","html":""},{"html":""}]]}'>
11092 </table><p about="#mwt1">ho</p><table about="#mwt1" typeof="mw:ExpandedAttrs" data-mw='{"attribs":[[{"txt":"","html":""},{"html":""}]]}'>
11094 <tbody><tr><td>hi</td></tr>
11099 Template:MSGNW test
11101 ''None'' of '''this''' should be
11103 but rather passed unmodified
11111 # hmm, fix this or just deprecate msgnw and document its behavior?
11115 {{msgnw:MSGNW test}}
11117 <p>''None'' of '''this''' should be
11119  but rather passed unmodified
11120 {{test}}
11124 <!-- comment -->
11131 {{int:youhavenewmessages|lots of money|not!}}
11133 <p>You have lots of money (not!).
11138 int keyword - non-existing message
11149 Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
11153 <includeonly> and <noinclude> being included
11164 <onlyinclude>Foo</onlyinclude>bar
11168 <onlyinclude> being included
11180 <onlyinclude>Foo</onlyinclude>bar<includeonly>zar</includeonly>
11184 <onlyinclude> and <includeonly> being included
11193 <includeonly> and <noinclude> on a page
11195 Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
11202 Un-closed <noinclude>
11209 <onlyinclude> on a page
11211 <onlyinclude>Foo</onlyinclude>bar
11218 Un-closed <onlyinclude>
11225 Self-closed noinclude, includeonly, onlyinclude tags
11236 Unbalanced includeonly and noinclude tags
11240 |b</noinclude></noinclude>
11241 |c</noinclude></includeonly>
11242 |d</includeonly></includeonly>
11251 <td>c</includeonly>
11253 <td>d</includeonly></includeonly>
11259 Template:Includeonly section
11262 ==Includeonly section==
11268 Bug 6563: Edit link generation for section shown by <includeonly>
11270 {{includeonly section}}
11272 <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>
11273 <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>
11277 # Uses same input as the contents of [[Template:Includeonly section]]
11279 Bug 6563: Section extraction for section shown by <includeonly>
11284 ==Includeonly section==
11292 Bug 6563: Edit link generation for section suppressed by <includeonly>
11295 ==Includeonly section==
11299 <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>
11304 Bug 6563: Section extraction for section suppressed by <includeonly>
11309 ==Includeonly section==
11317 Un-closed <includeonly>
11322 <meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"<includeonly>"}'/>
11325 ## We used to, but no longer wt2wt this test since the default serializer
11326 ## will normalize the include directives to serialize on their own line.
11327 ## Selser will take care of preserving formatting in scenarios where they
11328 ## intermingled with other wikitext.
11330 Includes and comments at SOL
11332 parsoid=wt2html,html2html
11334 <!-- comment --><noinclude><!-- comment --></noinclude><!-- comment -->== hu ==
11338 </noinclude>* stuff
11341 <includeonly>can have stuff</includeonly>=== here ===
11344 <h2><span class="mw-headline" id="hu">hu</span></h2>
11347 <ul><li> stuff</li>
11348 <li> here</li></ul>
11349 <h3><span class="mw-headline" id="here">here</span></h3>
11352 <!-- 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>
11354 <meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"<noinclude>"}'/>
11356 <meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"</noinclude>"}'/><ul><li> stuff</li>
11357 <li> here</li></ul>
11359 <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>
11363 # TODO: test with DOM fragment reuse!
11365 Parsoid: DOM fragment reuse
11367 parsoid=wt2wt,wt2html
11369 a{{echo|b<table></table>c}}d
11381 <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"}]]}'>ab</p><table about="#mwt1" data-parsoid='{"stx":"html"}'></table><p about="#mwt1">cd</p>
11383 <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"}]]}'>ab</p><span about="#mwt2">
11384 </span><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><span about="#mwt2">
11385 </span><p about="#mwt2">cd</p>
11387 <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"}]]}'>a</p><span about="#mwt3">
11389 </span><table about="#mwt3" data-parsoid='{"stx":"html"}'></table><span about="#mwt3">
11391 </span><p about="#mwt3">b</p>
11395 Parsoid: Merge double tds (T52603)
11400 |{{echo|{{!}} foo}}
11404 <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>
11409 Parsoid: Merge double tds in nested transclusion content (T52603)
11415 |{{echo|{{!}} foo}}
11419 <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}}]}'>
11421 <tr><td data-mw='{"parts":["|"]}'> foo</td></tr>
11427 ### <includeonly> and <noinclude> in attributes
11430 0. includeonly around the entire attribute
11432 <span <includeonly>id="v1"</includeonly><noinclude>id="v2"</noinclude>>bar</span>
11434 <p><span id="v2">bar</span>
11439 1. includeonly in html attr key
11441 <span <noinclude>id</noinclude><includeonly>about</includeonly>="foo">bar</span>
11443 <p><span id="foo">bar</span>
11448 2. includeonly in html attr value
11450 <span id="<noinclude>v1</noinclude><includeonly>v2</includeonly>">bar</span>
11451 <span id=<noinclude>"v1"</noinclude><includeonly>"v2"</includeonly>>bar</span>
11453 <p><span id="v1">bar</span>
11454 <span id="v1">bar</span>
11459 3. includeonly in part of an attr value
11461 <span style="color:<noinclude>red</noinclude><includeonly>blue</includeonly>;">bar</span>
11463 <p><span style="color:red;">bar</span>
11468 4. includeonly in table attributes
11492 ### Token Stream Patcher tests
11494 ### These tests won't always pass wt2wt and other modes because
11495 ### on serialization, the table will be output on a new line.
11496 ### For now, we are blacklisting them, and using this to test selser.
11500 1. Table tag in SOL posn. should get reparsed correctly with valid TSR
11502 parsoid=wt2html,wt2wt
11504 {{echo|}}{| width = '100%'
11508 <span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":""}},"i":0}}]}'></span><table width="100%">
11509 <tbody><tr><td>foo</td></tr>
11513 ## We used to, but no longer wt2wt this test since the default serializer
11514 ## will normalize the include directives to serialize on their own line.
11515 ## Selser will take care of preserving formatting in scenarios where they
11516 ## intermingled with other wikitext.
11518 2. Table tag in SOL posn. should get reparsed correctly with valid TSR
11522 <includeonly>a</includeonly>{| {{{b}}}
11526 <meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"<includeonly>a</includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><table about="#mwt2" typeof="mw:ExpandedAttrs" data-parsoid='{"a":{"{{{b}}}":null},"sa":{"{{{b}}}":""}}' data-mw='{"attribs":[[{"txt":"{{{b}}}","html":"<span about=\"#mwt1\" typeof=\"mw:Param\" data-parsoid='{\"dsr\":[31,38,null,null],\"src\":\"{{{b}}}\"}'>{{{b}}}</span>"},{"html":""}]]}'>
11527 <tbody><tr><td>c</td></tr>
11532 Table wikitext syntax outside wiki-tables
11536 ! not a table heading
11539 | class="foo bar" | baz
11547 ! not a table heading
11550 | class="foo bar" | baz
11559 ### Testing parsing of templates where a template arg
11560 ### has the same name as the template itself.
11566 {{{quote|{{{1}}}}}}
11570 Templates: Template Name/Arg clash: 1. Use of positional param
11579 Templates: Template Name/Arg clash: 2. Use of named param
11581 {{quote|quote=foo}}
11588 Templates: Template Name/Arg clash: 3. Use of named param with empty input
11597 ### Parsoid-centric tests to stress Parsoid's ability to RT them unchanged
11601 Templates: 1. Simple use
11610 Templates: 2. Inside a block tag
11612 <div>{{echo|Foo}}</div>
11613 <blockquote>{{echo|Foo}}</blockquote>
11616 <blockquote>Foo</blockquote>
11626 Templates: P-wrapping: 1a. Templates on consecutive lines
11637 Templates: P-wrapping: 1b. Templates on consecutive lines
11651 Templates: P-wrapping: 1c. Templates on consecutive lines
11654 {{echo|bar}} <div>baz</div>
11667 Templates: P-wrapping: 1d. Template preceded by comment-only line
11676 <p about="#mwt223" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Bar"}},"i":0}}]}'>Bar</p>
11680 Templates: Inline Text: 1. Multiple template uses
11682 {{echo|Foo}}bar{{echo|baz}}
11689 Templates: Inline Text: 2. Back-to-back template uses
11691 {{echo|Foo}}{{echo|bar}}
11698 Templates: Block Tags: 1. Multiple template uses
11700 {{echo|<div>Foo</div>}}<div>bar</div>{{echo|<div>baz</div>}}
11702 <div>Foo</div><div>bar</div><div>baz</div>
11707 Templates: Block Tags: 2. Back-to-back template uses
11709 {{echo|<div>Foo</div>}}{{echo|<div>bar</div>}}
11711 <div>Foo</div><div>bar</div>
11715 # This is an edge case relating to paragraph wrapping.
11717 Templates: Correctly encapsulate templates producing </p> tag without a corresponding <p> tag
11722 <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
11727 Templates: Links: 1. Simple example
11729 {{echo|[[Foo|bar]]}}
11731 <p><a href="/wiki/Foo" title="Foo">bar</a>
11736 Templates: Links: 2. Generation of link href
11738 [[{{echo|Foo}}|bar]]
11740 <p><a href="/wiki/Foo" title="Foo">bar</a>
11745 Templates: Links: 3. Generation of part of a link href
11747 [[Fo{{echo|o}}|bar]]
11749 [[Foo{{echo|bar}}]]
11751 [[Foo{{echo|bar}}baz]]
11753 [[Foo{{echo|bar}}|bar]]
11755 [[:Foo{{echo|bar}}]]
11757 [[:Foo{{echo|bar}}|bar]]
11759 <p><a href="/wiki/Foo" title="Foo">bar</a>
11760 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11761 </p><p><a href="/index.php?title=Foobarbaz&action=edit&redlink=1" class="new" title="Foobarbaz (page does not exist)">Foobarbaz</a>
11762 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">bar</a>
11763 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11764 </p><p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">bar</a>
11769 Templates: Links: 4. Multiple templates generating link href
11771 [[{{echo|F}}{{echo|o}}ob{{echo|ar}}]]
11773 <p><a href="/index.php?title=Foobar&action=edit&redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
11778 Templates: Links: 5. Generation of link text
11780 [[Foo|{{echo|bar}}]]
11782 <p><a href="/wiki/Foo" title="Foo">bar</a>
11787 Templates: Links: 5. Nested templates (only outermost template should be marked)
11789 {{echo|[[{{echo|Foo}}|bar]]}}
11791 <p><a href="/wiki/Foo" title="Foo">bar</a>
11796 Templates: HTML Tag: 1. Generation of HTML attr. key
11798 <div {{echo|style}}="color:red;">foo</div>
11800 <div style="color:red;">foo</div>
11805 Templates: HTML Tag: 2. Generation of HTML attr. value
11807 <div style={{echo|'color:red;'}}>foo</div>
11809 <div style="color:red;">foo</div>
11814 Templates: HTML Tag: 3. Generation of HTML attr key and value
11816 <div {{echo|style}}={{echo|'color:red;'}}>foo</div>
11818 <div style="color:red;">foo</div>
11823 Templates: HTML Tag: 4. Generation of starting piece of HTML attr value
11825 <div title="{{echo|This is a long title}} with just one piece templated">foo</div>
11827 <div title="This is a long title with just one piece templated">foo</div>
11832 Templates: HTML Tag: 5. Generation of middle piece of HTML attr value
11834 <div title="This is a long title with just {{echo|one piece}} templated">foo</div>
11836 <div title="This is a long title with just one piece templated">foo</div>
11841 Templates: HTML Tag: 6. Generation of end piece of HTML attr value
11843 <div title="This is a long title with just one piece {{echo|templated}}">foo</div>
11845 <div title="This is a long title with just one piece templated">foo</div>
11849 # SSS FIXME: While it is great we added support for all this,
11850 # do we want to make this part of the spec? Maybe we want to
11851 # deprecate this kind of usage in the future?
11853 Templates: HTML Tag: 7. Generation of partial attribute key string
11855 <div st{{echo|yle}}="color:red;">foo</div>
11857 <div style="color:red;">foo</div>
11862 Templates: HTML Tag: 8. Template-generated attribute (k=v)
11864 <div {{echo|1=id="v1"}}>bar</div>
11866 <div id="v1">bar</div>
11871 Templates: HTML Tag: 9. Multiple template-generated attributes
11873 <div {{echo|1=id="v1" title="foo"}}>bar</div>
11875 <div id="v1" title="foo">bar</div>
11880 Templates: Support for templates generating attributes and content
11882 {| {{mixed_attr_content_template}}
11887 <table style="color:red;" title="T48811">
11897 <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|}"]}'>
11906 1. Entities and nowikis inside templated attributes should be handled correctly
11908 <div {{echo|style{{=}}"background:#f9f9f9;"}}>foo</div>
11910 <div style="background:#f9f9f9;">foo</div>
11913 <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='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[5,49,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"style{{=}}\\\"background:&amp;#35;f9f9f9;\\\"\"}},\"i\":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='{\"src\":\"&amp;#35;\",\"srcContent\":\"#\"}'>#</span><span about=\"#mwt1\" data-parsoid=\"{}\">f9f9f9;\"</span>"},{"html":""}]]}'>foo</div>
11917 2. Entities and nowikis inside templated attributes should be handled correctly
11920 |{{table_attribs_3}}
11925 <td style="background:#f9f9f9;">Foo
11930 <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>
11935 3. Entities and nowikis inside templated attributes should be handled correctly inside templated tables
11938 |{{table_attribs_3}}
11943 <td style="background:#f9f9f9;">Foo
11947 <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}}]}'>
11948 <tbody><tr><td style="background:#f9f9f9;">Foo</td></tr>
11954 4. Entities and nowikis inside templated attributes should be handled correctly inside templated tables
11957 | {{table_attribs_6}} hi
11962 <td style="background: red;"> hi
11967 <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>
11972 Templates: HTML Tables: 1. Generating start of a HTML table
11974 {{echo|<table><tr><td>foo</td>}}</tr></table>
11976 <table><tr><td>foo</td></tr></table>
11981 Templates: HTML Tables: 2a. Generating middle of a HTML table
11983 <table><tr>{{echo|<td>foo</td>}}</tr></table>
11985 <table><tr><td>foo</td></tr></table>
11990 Templates: HTML Tables: 2b. Generating middle of a HTML table
11992 <table>{{echo|<tr><td>foo</td></tr>}}</table>
11994 <table><tr><td>foo</td></tr></table>
11999 Templates: HTML Tables: 3. Generating end of a HTML table
12001 <table><tr>{{echo|<td>foo</td></tr></table>}}
12003 <table><tr><td>foo</td></tr></table>
12008 Templates: HTML Tables: 4a. Generating a single tag of a HTML table
12010 {{echo|<table>}}<tr><td>foo</td></tr></table>
12012 <table><tr><td>foo</td></tr></table>
12017 Templates: HTML Tables: 4b. Generating a single tag of a HTML table
12019 <table>{{echo|<tr>}}<td>foo</td></tr></table>
12021 <table><tr><td>foo</td></tr></table>
12026 Templates: HTML Tables: 4c. Generating a single tag of a HTML table
12028 <table><tr>{{echo|<td>}}foo</td></tr></table>
12030 <table><tr><td>foo</td></tr></table>
12035 Templates: HTML Tables: 4d. Generating a single tag of a HTML table
12037 <table><tr><td>foo{{echo|</td>}}</tr></table>
12039 <table><tr><td>foo</td></tr></table>
12044 Templates: HTML Tables: 4e. Generating a single tag of a HTML table
12046 <table><tr><td>foo</td>{{echo|</tr>}}</table>
12048 <table><tr><td>foo</td></tr></table>
12053 Templates: HTML Tables: 4f. Generating a single tag of a HTML table
12055 <table><tr><td>foo</td></tr>{{echo|</table>}}
12057 <table><tr><td>foo</td></tr></table>
12062 Templates: HTML Tables: 5. Proper fostering of categories from inside
12064 parsoid=wt2html,wt2wt
12066 <table>[[Category:foo1]]<tr><td>foo</td></tr></table>
12067 <!--Two categories (Bug 50330)-->
12068 <table>[[Category:bar1]][[Category:bar2]]<tr><td>foo</td></tr></table>
12070 <link rel="mw:PageProp/Category" href="./Category:Foo1"><table><tbody><tr><td>foo</td></tr></tbody></table>
12071 <!--Two categories (Bug 50330)-->
12072 <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>
12076 Templates: Wiki Tables: 1a. Fostering of entire template content
12084 <tr><td></td></tr></table>
12096 Templates: Wiki Tables: 1b. Fostering of entire template content
12109 <tr><td></td></tr></table>
12123 Templates: Wiki Tables: 2. Fostering of partial template content
12133 <tr><td></td></tr></table>
12146 Templates: Wiki Tables: 3. td-content via multiple templates
12149 {{echo|{{pipe}}a}}{{echo|b}}
12160 Templates: Wiki Tables: 4. Templated tags, no content
12166 <tr><td></td></tr></table>
12171 Templates: Wiki Tables: 5. Templated tags, regular td-tags
12185 Templates: Wiki Tables: 6. Templated tags, templated td-tags
12198 ## This test case is very specific to Parsoid's internals
12199 ## and is hence only tested for Parsoid's code. Parsoid uses
12200 ## a <meta> marker tag for <ref> tags and they are expanded
12201 ## much later. We are verifying that this <meta> tag usage
12202 ## doesn't prevent foster parenting.
12204 Templates: Wiki Tables: 7. Fosterable <ref>s should get fostered
12206 {{PartialTable}}<ref>foo</ref>
12211 <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">
12215 <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>
12219 Templates: Wiki Tables: 8. Fosterable meta-tags should get fostered
12229 <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{{!}}}"]}'>
12230 </span><meta typeof="mw:Includes/OnlyInclude" about="#mwt1"/><table about="#mwt1">
12234 <meta typeof="mw:Includes/OnlyInclude/End"/></td></tr>
12239 Templates: Lists: Multi-line list-items via templates
12241 *{{echo|a {{nonexistent|
12243 *{{echo|b {{nonexistent|
12246 <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>
12247 <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>
12252 Templates: Ugly nesting: 1. Quotes opened/closed across templates (echo)
12254 {{echo|''a}}{{echo|b''c''d}}{{echo|''e}}
12256 <p><i>ab</i>c<i>d</i>e
12261 Templates: Ugly nesting: 2. Quotes opened/closed across templates (echo_with_span)
12262 (PHP parser generates misnested html)
12264 {{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
12266 <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>
12270 Templates: Ugly nesting: 3. Quotes opened/closed across templates (echo_with_div)
12271 (PHP parser generates misnested html; Parsoid html2wt mode adds newlines between {{echo}}s)
12273 parsoid=wt2html,wt2wt
12275 {{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
12277 <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>
12278 <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>
12279 <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>
12283 Templates: Ugly nesting: 4. Divs opened/closed across templates
12285 a<div>b{{echo|c</div>d}}e
12296 Templates: Ugly templates: 1. Navbox template parses badly leading to table misnesting
12302 |{{echo|foo</table>}}
12306 <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|}"]}'>
12310 <td>foo</td></tr></tbody></table><span about="#mwt1">
12311 </span><span about="#mwt1">|bar</span><span about="#mwt1">
12316 Templates: Ugly templates: 2. Navbox template parses badly leading to table misnesting
12326 <td>1. {{echo|foo </table>}}</td>
12328 <td>2. {{echo|baz </table>}}</td>
12341 <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>"]}'>
12346 <td>1. foo </td></tr></tbody></table></td>
12348 <td>2. baz </td></tr></tbody></table><span about="#mwt2">
12349 </span><span about="#mwt2">
12350 </span><span about="#mwt2">
12351 </span><span about="#mwt2">abc</span><span about="#mwt2">
12352 </span><span about="#mwt2">
12353 </span><span about="#mwt2">
12354 </span><span about="#mwt2">
12355 </span><span about="#mwt2">
12356 </span><span about="#mwt2">
12357 </span><span about="#mwt2">xyz</span><span about="#mwt2">
12358 </span><span about="#mwt2">
12363 Templates: Ugly templates: 3. newline-only template parameter
12372 # This looks like a bug: a single newline triggers p/br for some reason.
12374 Templates: Ugly templates: 4. newline-only template parameter inconsistency
12383 # Bug 64017 -- ugly wikitext with fostered content generates two template ranges that
12384 # have a true overlap (T1-start - T2-start - T1-end - T2-end).
12386 Templates: Ugly templates: 5. Template encapsulation test: Non-trivial overlap of template ranges is properly handled
12392 <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"}],[{"k":"1"}],[{"k":"1"}]]}'>foo
12393 </div><table about="#mwt1" data-parsoid='{"stx":"html"}'>
12397 # Bug 64017 -- ugly wikitext with fostered content generates two template ranges
12398 # that are "identical" and generate nesting cycles in the algorithm
12400 Templates: Ugly templates: 6. Template encapsulation test: Cyclical nesting of template ranges is properly handled
12402 {{echo|<table><tr><td><table>}}
12406 <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"}],[{"k":"1"}],[{"k":"1"}]]}'><tbody><tr data-parsoid='{"stx":"html"}'><td data-parsoid='{"stx":"html"}'><div data-parsoid='{"stx":"html"}'>
12407 </div><table about="#mwt1" data-parsoid='{"stx":"html"}'>
12408 </table></td></tr></tbody></table>
12412 Templates: Parameters substituted at the top-level
12414 {{{foo|''who'' {{echo|me}}? '''never!'''}}}
12416 <p><i>who</i> me? <b>never!</b>
12419 <p about="#mwt2" typeof="mw:Param" data-parsoid="{"src":"{{{foo|''who'' {{echo|me}}? '''never!'''}}}"}"><i>who</i> me? <b>never!</b></p>
12423 Parser Functions: 1. Simple example
12432 Parser Functions: 2. Nested use (only outermost should be marked up)
12441 ### Pre-save transform tests
12444 pre-save transform: subst:
12450 This is a test template
12454 pre-save transform: normal template
12464 pre-save transform: nonexistent template
12468 {{thistemplatedoesnotexist}}
12470 {{thistemplatedoesnotexist}}
12474 pre-save transform: subst magic variables
12483 # This is bug 89, which I fixed. -- wtm
12485 pre-save transform: subst: templates with parameters
12489 {{subst:paramtest|param="something else"}}
12491 This is a test template with parameter "something else"
12495 Template:nowikitest
12497 <nowiki>'''not wiki'''</nowiki>
12501 pre-save transform: nowiki in subst (bug 1188)
12505 {{subst:nowikitest}}
12507 <nowiki>'''not wiki'''</nowiki>
12511 Template:commenttest
12513 This template has <!-- a comment --> in it.
12517 pre-save transform: comment in subst (bug 1936)
12521 {{subst:commenttest}}
12523 This template has <!-- a comment --> in it.
12527 pre-save transform: unclosed tag
12531 <nowiki>'''not wiki'''
12533 <nowiki>'''not wiki'''
12537 pre-save transform: mixed tag case
12541 <NOwiki>'''not wiki'''</noWIKI>
12543 <NOwiki>'''not wiki'''</noWIKI>
12547 pre-save transform: unclosed comment in <nowiki>
12551 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
12553 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
12556 # Leading @ in this template definition works around a limitation
12557 # in parsoid's parserTests which otherwise strips the <span> from the
12558 # result (confusing it for a template wrapper)
12562 @<span onmouseover="alert('crap')">Oh no</span>
12566 (confirming safety of fix for subst bug 1936)
12568 {{Template:dangerous}}
12570 <p>@<span>Oh no</span>
12575 pre-save transform: comment containing gallery (bug 5024)
12579 <!-- <gallery>data</gallery> -->
12581 <!-- <gallery>data</gallery> -->
12585 pre-save transform: comment containing extension
12589 <!-- <tag>data</tag> -->
12591 <!-- <tag>data</tag> -->
12595 pre-save transform: comment containing nowiki
12599 <!-- <nowiki>data</nowiki> -->
12601 <!-- <nowiki>data</nowiki> -->
12605 pre-save transform: <noinclude> in subst (bug 3298)
12615 pre-save transform: <onlyinclude> in subst (bug 3298)
12619 {{subst:Includes2}}
12627 {{<includeonly>subst:</includeonly>Includes}}
12631 Template:SafeSubstTest
12633 {{<includeonly>safesubst:</includeonly>Includes}}
12637 bug 22297: safesubst: works during PST
12641 {{subst:SafeSubstTest}}{{safesubst:SubstTest}}
12647 bug 22297: safesubst: works during normal parse
12656 subst: does not work during normal parse
12660 <p>{{subst:Includes}}
12665 pre-save transform: context links ("pipe trick")
12669 [[Article (context)|]]
12672 [[Bar:Article (context)|]]
12673 [[:Bar:Article (context)|]]
12675 [[|Article (context)]]
12679 [[Article (context)|Article]]
12680 [[Bar:Article|Article]]
12681 [[:Bar:Article|Article]]
12682 [[Bar:Article (context)|Article]]
12683 [[:Bar:Article (context)|Article]]
12685 [[Article (context)]]
12686 [[Bar:X (Y) Z|X (Y) Z]]
12687 [[:Bar:X (Y) Z|X (Y) Z]]
12691 pre-save transform: context links ("pipe trick") with interwiki prefix
12695 [[interwiki:Article|]]
12696 [[:interwiki:Article|]]
12697 [[interwiki:Bar:Article|]]
12698 [[:interwiki:Bar:Article|]]
12700 [[interwiki:Article|Article]]
12701 [[:interwiki:Article|Article]]
12702 [[interwiki:Bar:Article|Bar:Article]]
12703 [[:interwiki:Bar:Article|Bar:Article]]
12707 pre-save transform: context links ("pipe trick") with parens in title
12709 pst title=[[Somearticle (context)]]
12713 [[Article (context)|Article]]
12717 pre-save transform: context links ("pipe trick") with comma in title
12719 pst title=[[Someplace, Somewhere]]
12722 [[Otherplace, Elsewhere|]]
12723 [[Otherplace, Elsewhere, Anywhere|]]
12725 [[Otherplace, Somewhere|Otherplace]]
12726 [[Otherplace, Elsewhere|Otherplace]]
12727 [[Otherplace, Elsewhere, Anywhere|Otherplace]]
12731 pre-save transform: context links ("pipe trick") with parens and comma
12733 pst title=[[Someplace (IGNORED), Somewhere]]
12736 [[Otherplace (place), Elsewhere|]]
12738 [[Otherplace, Somewhere|Otherplace]]
12739 [[Otherplace (place), Elsewhere|Otherplace]]
12743 pre-save transform: context links ("pipe trick") with comma and parens
12745 pst title=[[Who, me? (context)]]
12748 [[Me, Myself, and I (1937 song)|]]
12750 [[Yes, you. (context)|Yes, you.]]
12751 [[Me, Myself, and I (1937 song)|Me, Myself, and I]]
12755 pre-save transform: context links ("pipe trick") with namespace
12757 pst title=[[Ns:Somearticle]]
12761 [[Ns:Article|Article]]
12765 pre-save transform: context links ("pipe trick") with namespace and parens
12767 pst title=[[Ns:Somearticle (context)]]
12771 [[Ns:Article (context)|Article]]
12775 pre-save transform: context links ("pipe trick") with namespace and comma
12777 pst title=[[Ns:Somearticle, Context, Whatever]]
12781 [[Ns:Article, Context, Whatever|Article]]
12785 pre-save transform: context links ("pipe trick") with namespace, comma and parens
12787 pst title=[[Ns:Somearticle, Context (context)]]
12791 [[Ns:Article (context)|Article]]
12795 pre-save transform: context links ("pipe trick") with namespace, parens and comma
12797 pst title=[[Ns:Somearticle (IGNORED), Context]]
12801 [[Ns:Article, Context|Article]]
12805 pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149)
12809 [[Article(context)|]]
12810 [[Bar:Article(context)|]]
12811 [[:Bar:Article(context)|]]
12812 [[|Article(context)]]
12816 [[Article(context)|Article]]
12817 [[Bar:Article(context)|Article]]
12818 [[:Bar:Article(context)|Article]]
12819 [[Article(context)]]
12820 [[Bar:X(Y)Z|X(Y)Z]]
12821 [[:Bar:X(Y)Z|X(Y)Z]]
12825 pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149)
12829 [[Article (context)|]]
12830 [[Bar:Article (context)|]]
12831 [[:Bar:Article (context)|]]
12832 [[|Article (context)]]
12836 [[Article (context)|Article]]
12837 [[Bar:Article (context)|Article]]
12838 [[:Bar:Article (context)|Article]]
12839 [[Article (context)]]
12840 [[Bar:X (Y) Z|X (Y) Z]]
12841 [[:Bar:X (Y) Z|X (Y) Z]]
12845 pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149)
12849 [[Article(context)|]]
12850 [[Bar:Article(context)|]]
12851 [[:Bar:Article(context)|]]
12852 [[|Article(context)]]
12856 [[Article(context)|Article]]
12857 [[Bar:Article(context)|Article]]
12858 [[:Bar:Article(context)|Article]]
12859 [[Article(context)]]
12860 [[Bar:X(Y)Z|X(Y)Z]]
12861 [[:Bar:X(Y)Z|X(Y)Z]]
12865 pre-save transform: context links ("pipe trick") with commas (bug 21660)
12869 [[Article (context), context|]]
12870 [[Article (context),context|]]
12871 [[Bar:Article (context), context|]]
12872 [[Bar:Article (context),context|]]
12873 [[:Bar:Article (context), context|]]
12874 [[:Bar:Article (context),context|]]
12876 [[Article (context), context|Article]]
12877 [[Article (context),context|Article]]
12878 [[Bar:Article (context), context|Article]]
12879 [[Bar:Article (context),context|Article]]
12880 [[:Bar:Article (context), context|Article]]
12881 [[:Bar:Article (context),context|Article]]
12885 pre-save transform: trim trailing empty lines
12889 Empty lines are trimmed
12895 Empty lines are trimmed
12899 pre-save transform: Signature expansion
12904 * <noinclude>~~~</noinclude>
12905 * <includeonly>~~~</includeonly>
12906 * <onlyinclude>~~~</onlyinclude>
12908 * [[Special:Contributions/127.0.0.1|127.0.0.1]]
12909 * <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
12910 * <includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
12911 * <onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude>
12916 pre-save transform: Signature expansion in nowiki tags (bug 93)
12922 <nowiki>~~~~</nowiki>
12924 <includeonly><nowiki>~~~~</nowiki></includeonly>
12926 <noinclude><nowiki>~~~~</nowiki></noinclude>
12928 <onlyinclude><nowiki>~~~~</nowiki></onlyinclude>
12930 {{subst:Foo}} shall be converted to FOO
12932 As well as inside noinclude/onlyinclude
12933 <noinclude>{{subst:Foo}}</noinclude>
12934 <onlyinclude>{{subst:Foo}}</onlyinclude>
12936 But not inside includeonly
12937 <includeonly>{{subst:Foo}}</includeonly>
12941 <nowiki>~~~~</nowiki>
12943 <includeonly><nowiki>~~~~</nowiki></includeonly>
12945 <noinclude><nowiki>~~~~</nowiki></noinclude>
12947 <onlyinclude><nowiki>~~~~</nowiki></onlyinclude>
12949 FOO shall be converted to FOO
12951 As well as inside noinclude/onlyinclude
12952 <noinclude>FOO</noinclude>
12953 <onlyinclude>FOO</onlyinclude>
12955 But not inside includeonly
12956 <includeonly>{{subst:Foo}}</includeonly>
12960 Parsoid: Recognize nowiki with trailing space in tags
12964 <nowiki ><div>[[foo]]</nowiki >
12972 <p><span typeof="mw:Nowiki"><div>[[foo]]</span></p>
12979 Parsoid: Recognize nowiki with odd capitalization
12983 <noWikI ><div>[[foo]]</Nowiki >
12985 <p><span typeof="mw:Nowiki"><div>[[foo]]</span></p>
12990 Parsoid: Escape nowiki with trailing space in tags
12994 <p><nowiki > foo </nowiki ></p>
12995 <p>a<nowiki />b</p>
12996 <p>c<nowiki/ >d</p>
12998 <nowiki > foo </nowiki >
13006 Parsoid: Escape weird noWikI capitalizations
13010 <p><noWikI > foo </NoWikI ></p>
13012 <noWikI > foo </NoWikI >
13016 ### Message transform tests
13019 message transform: magic variables
13029 message transform: should not transform wiki markup
13039 message transform: <noinclude> in transcluded template (bug 4926)
13049 message transform: <onlyinclude> in transcluded template (bug 4926)
13059 {{#special:}} page name, known
13063 {{#special:Recentchanges}}
13065 Special:RecentChanges
13069 {{#special:}} page name with subpage, known
13073 {{#special:Recentchanges/param}}
13075 Special:RecentChanges/param
13079 {{#special:}} page name, unknown
13083 {{#special:foobar nonexistent}}
13085 Special:Foobar nonexistent
13089 {{#speciale:}} page name, known
13093 {{#speciale:Recentchanges}}
13095 Special:RecentChanges
13099 {{#speciale:}} page name with subpage, known
13103 {{#speciale:Recentchanges/param}}
13105 Special:RecentChanges/param
13109 {{#speciale:}} page name, unknown
13113 {{#speciale:foobar nonexistent}}
13115 Special:Foobar_nonexistent
13121 ### For Parsoid-specific tests, see
13122 #### https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
13127 parsoid=wt2html,wt2wt,html2html
13129 [[Image:foobar.jpg]]
13131 <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>
13134 <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>
13138 Simple image (using File: namespace, now canonical)
13140 [[File:Foobar.jpg]]
13142 <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>
13145 <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>
13149 Right-aligned image
13151 [[File:Foobar.jpg|right]]
13153 <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>
13156 <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>
13162 [[File:Foobar.jpg|right|Caption text]]
13164 <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>
13167 <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>
13171 Image with caption, bug 53312 #1
13173 [[File:Foobar.jpg|right|Caption page stuff]]
13175 <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>
13178 <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>
13182 Image with caption, bug 53312 #2
13184 [[File:Foobar.jpg|right|Caption page=]]
13186 <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>
13189 <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>
13193 Image with caption, bug 53312 #3
13195 [[File:Foobar.jpg|right|Caption page=stuff]]
13197 <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>
13200 <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>
13204 Allow empty links in image captions (Bug 60753)
13208 [[File:Foobar.jpg|thumb|Caption [[Link1]]
13213 <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>
13216 <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>
13218 <a rel="mw:WikiLink" href="./Link2" title="Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"}}'>Link2</a>
13219 </figcaption></figure>
13223 Titles in unlinked images (T23454)
13225 [[File:Foobar.jpg|link=|stuff]]
13227 <p><img alt="stuff" src="http://example.com/images/3/3a/Foobar.jpg" title="stuff" width="1941" height="220" />
13232 Link with empty target
13241 Image with link trail
13243 Linktrails should not work for images: [[File:Foobar.jpg]]s
13245 <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
13248 <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>
13252 Image with empty attribute
13254 parsoid=wt2html,wt2wt,html2html
13256 [[File:Foobar.jpg|right||Caption text]]
13258 <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>
13261 <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>
13265 1. Block image with individual attributes from templates
13267 [[File:Foobar.jpg|thumb|{{echo|137px}}|This is a caption]]
13269 <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>
13272 <figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"{{echo|137px}}"},{"ck":"caption","ak":"This is a caption"}]}' data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["width",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[24,38,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"137px\"}},\"i\":0}}]}'>137px</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/137px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"16","width":"137"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>This is a caption</figcaption></figure>
13276 2. Block Image with individual attributes from templates
13278 [[File:Foobar.jpg|{{echo|thumb}}|{{echo|137px}}|This is a caption]]
13280 <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>
13283 <figure typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt3" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"{{echo|thumb}}"},{"ck":"width","ak":"{{echo|137px}}"},{"ck":"caption","ak":"This is a caption"}]}' data-mw='{"attribs":[["thumbnail",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[18,32,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"thumb\"}},\"i\":0}}]}'>thumb</span>"}],["width",{"html":"<span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[33,47,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"137px\"}},\"i\":0}}]}'>137px</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/137px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"16","width":"137"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>This is a caption</figcaption></figure>
13287 3. Inline image with individual attributes from templates
13289 [[File:Foobar.jpg|{{echo|50px}}]]
13291 <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>
13294 <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='{\"pi\":[[{\"k\":\"1\"}]],\"dsr\":[18,31,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"50px\"}},\"i\":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" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
13297 ## Parsoid does not provide editing support for images where templates produce multiple image attributes.
13298 ## To signal this, we add a 'mw:Placeholder' type to such images. This could change in the future.
13300 Image with multiple attributes from the same template
13302 [[File:Foobar.jpg|{{image_attribs}}]]
13304 <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>
13307 <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>
13311 Image with link tails
13315 123[[File:Foobar.jpg]]456
13316 123[[File:Foobar.jpg|right]]456
13317 123[[File:Foobar.jpg|thumb]]456
13319 <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
13321 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
13322 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
13325 <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>
13327 <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>
13329 <div class="thumb tright">
13330 <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>
13331 <div class="thumbcaption">
13332 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
13338 <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>
13339 <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>
13340 <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>
13344 Image with multiple captions -- only last one is accepted
13346 [[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]]
13348 <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>
13351 <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>
13355 Image with multiple widths -- use last
13357 [[File:Foobar.jpg|200px|300px|caption]]
13359 <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>
13362 <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>
13366 Image with multiple alignments -- use first (bug 48664)
13370 [[File:Foobar.jpg|thumb|left|right|center|caption]]
13372 [[File:Foobar.jpg|middle|text-top|caption]]
13374 <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>
13375 <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>
13378 <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>
13379 <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>
13383 Image with width attribute at different positions
13385 [[File:Foobar.jpg|200px|right|Caption]]
13386 [[File:Foobar.jpg|right|200px|Caption]]
13387 [[File:Foobar.jpg|right|Caption|200px]]
13389 <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>
13390 <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>
13391 <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>
13394 <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>
13395 <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>
13396 <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>
13399 # a sad bit of backward-compatibility
13401 Image with size specified with pxpx (bug 13500, 51628)
13403 parsoid=wt2html,wt2wt,html2html
13405 [[File:Foobar.jpg|20pxpx]]
13406 [[File:Foobar.jpg|200x20pxpx]]
13408 <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>
13409 <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>
13412 <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>
13416 Image with link parameter, wiki target
13418 [[File:Foobar.jpg|link=Main Page]]
13420 <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>
13423 <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>
13426 # parsoid bug 49293 (part 1)
13428 Image with link parameter, URL target
13430 [[File:Foobar.jpg|link=http://example.com/]]
13432 <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>
13435 <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>
13438 # parsoid bug 49293 (part 2)
13440 Image with link parameter, protocol-less URL target
13442 [[File:Foobar.jpg|link=//example.com/]]
13444 <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>
13447 <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>
13451 Escaping non-block captions (T107435)
13454 "modes": ["wt2wt"],
13456 ["[typeof~='mw:Image']", "attr", "data-mw", "{\"caption\": \"|\"}"]
13460 [[Image:Foobar.jpg|caption]]
13462 [[Image:Foobar.jpg|<nowiki>|</nowiki>]]
13465 # wgExternalLinkTarget not supported by Parsoid
13467 Image with link parameter, wgExternalLinkTarget
13469 [[Image:foobar.jpg|link=http://example.com/]]
13471 wgExternalLinkTarget='foobar'
13473 <p><a href="http://example.com/" target="foobar" rel="nofollow noreferrer noopener"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13478 Image with link parameter, wgNoFollowLinks set to false
13480 [[Image:foobar.jpg|link=http://example.com/]]
13482 wgNoFollowLinks=false
13484 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13489 Image with link parameter, wgNoFollowDomainExceptions
13491 [[Image:foobar.jpg|link=http://example.com/]]
13493 wgNoFollowDomainExceptions='example.com'
13495 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13499 # wgExternalLinkTarget not supported by Parsoid
13501 Image with link parameter, wgExternalLinkTarget, unnamed parameter
13503 [[Image:foobar.jpg|link=http://example.com/|Title]]
13505 wgExternalLinkTarget='foobar'
13507 <p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow noreferrer noopener"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
13512 Image with empty link parameter
13514 [[File:Foobar.jpg|link=]]
13516 <p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" />
13519 <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>
13523 Image with link parameter (wiki target) and unnamed parameter
13525 [[File:Foobar.jpg|link=Main_Page|Title]]
13527 <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>
13530 <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>
13534 Image with link parameter (URL target) and unnamed parameter
13536 [[File:Foobar.jpg|link=http://example.com/|Title]]
13538 <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>
13541 <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>
13545 Thumbnail image with link parameter
13548 parsoid=wt2html,wt2wt,html2html
13550 [[File:Foobar.jpg|thumb|link=http://example.com/|Title]]
13552 <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>
13555 <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>
13559 Manually-specified thumbnail image
13563 [[File:Foobar.jpg|thumb=Thumb.png|Title]]
13565 <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>
13568 <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>
13572 Manually-specified thumbnail image with explicit link to wiki page
13575 parsoid=wt2html,wt2wt,html2html
13577 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|Title]]
13579 <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>
13582 <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>
13586 Manually-specified thumbnail image with explicit link to url
13589 parsoid=wt2html,wt2wt,html2html
13591 [[File:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
13593 <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>
13596 <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>
13600 Manually-specified thumbnail image with explicit no link
13603 parsoid=wt2html,wt2wt,html2html
13605 [[File:Foobar.jpg|thumb=Thumb.png|link=|Title]]
13607 <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>
13610 <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>
13614 Manually-specified thumbnail image with explicit link and alt text
13617 parsoid=wt2html,wt2wt,html2html
13619 [[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|alt=alttext|Title]]
13621 <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>
13624 <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>
13628 Image with frame and link
13630 parsoid=wt2html,wt2wt,html2html
13632 [[File:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
13634 <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>
13637 <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>
13641 Image with frame and link and explicit alt
13643 parsoid=wt2html,wt2wt,html2html
13645 [[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]]
13647 <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>
13650 <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>
13654 Image with wiki markup in implicit alt
13656 [[Image:Foobar.jpg|testing '''bold''' in alt]]
13658 [[Image:Foobar.jpg|alt=testing '''bold''' in alt]]
13660 <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>
13661 </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>
13664 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"testing '''bold''' in alt"}]}' data-mw='{"caption":"testing <b data-parsoid='{\"dsr\":[27,37,3,3]}'>bold</b> in alt"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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>
13666 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=testing '''bold''' in alt"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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>
13670 Alt image option should handle most kinds of wikitext without barfing
13672 [[Image:Foobar.jpg|thumb|This is the image caption|alt=This is a [[link]] and a {{echo|''bold template''}}.]]
13674 <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>
13677 <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='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[65,73,2,2]}'>link</a> and a <i about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[80,106,null,null],\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"&#39;&#39;bold template&#39;&#39;\"}},\"i\":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>
13680 ###################
13681 # Conflicting image format options.
13682 # First option specified should 'win'.
13683 # All three cases in each test should be identical.
13686 Image with 'frameless' first.
13688 parsoid=wt2html,wt2wt,html2html
13690 [[File:Foobar.jpg|frameless|caption]]
13692 [[File:Foobar.jpg|frameless|frame|caption]]
13694 [[File:Foobar.jpg|frameless|thumb|caption]]
13696 <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>
13697 </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>
13698 </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>
13701 <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>
13702 <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>
13703 <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>
13707 Image with 'frame' first.
13709 parsoid=wt2html,wt2wt,html2html
13711 [[File:Foobar.jpg|frame|caption]]
13712 [[File:Foobar.jpg|frame|frameless|caption]]
13713 [[File:Foobar.jpg|frame|thumb|caption]]
13715 <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>
13716 <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>
13717 <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>
13720 <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>
13721 <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>
13722 <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>
13726 Image with 'thumb' first.
13728 parsoid=wt2html,wt2wt,html2html
13730 [[File:Foobar.jpg|thumb|caption]]
13731 [[File:Foobar.jpg|thumb|frameless|caption]]
13732 [[File:Foobar.jpg|thumb|frame|caption]]
13734 <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>
13735 <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>
13736 <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>
13739 <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>
13740 <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>
13741 <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>
13744 ###################
13746 # See https://www.mediawiki.org/wiki/Help:Images#Size_and_frame
13747 # and https://phabricator.wikimedia.org/T64258
13748 # Foobar has actual size of 1941x220
13749 # 1. Thumbs & frameless always reduce, can't be enlarged unless it's
13750 # a scalable format.
13751 # 2. Framed images always ignore size options; always render at default size.
13752 # 3. "Unspecified format" and border are the only types which can be
13756 Image: "unspecified format" and border enlarge
13758 parsoid=wt2html,wt2wt,html2html
13760 [[File:Foobar.jpg|2000px]]
13762 [[File:Foobar.jpg|border|2000px]]
13764 <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>
13765 </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>
13768 <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>
13769 <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>
13773 Image: "unspecified format" and border reduce
13775 parsoid=wt2html,wt2wt,html2html
13777 [[File:Foobar.jpg|1000px]]
13779 [[File:Foobar.jpg|border|1000px]]
13781 <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>
13782 </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>
13785 <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>
13786 <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>
13790 Image: thumbs reduce
13792 parsoid=wt2html,wt2wt,html2html
13794 [[File:Foobar.jpg|thumb|50px]]
13796 <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>
13799 <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>
13803 Image: bitmap thumbs can't be enlarged past original size, but vector can.
13805 parsoid=wt2html,wt2wt,html2html
13807 [[File:Foobar.jpg|thumb|2000px]]
13809 [[File:Foobar.svg|thumb|2000px]]
13811 <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>
13812 <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>
13815 <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>
13816 <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>
13820 Image: frameless can reduce in size
13822 parsoid=wt2html,wt2wt,html2html
13824 [[File:Foobar.jpg|frameless|50px]]
13826 <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>
13829 <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>
13833 Image: bitmap frameless can't be enlarged past original size, but vector can
13835 parsoid=wt2html,wt2wt,html2html
13837 [[File:Foobar.jpg|frameless|2000px]]
13839 [[File:Foobar.svg|frameless|2000px]]
13841 <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>
13842 </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>
13845 <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>
13846 <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>
13850 Image: framed images are always unscaled.
13852 parsoid=wt2html,wt2wt,html2html
13854 [[File:Foobar.jpg|frame]]
13856 [[File:Foobar.jpg|frame|50px]]
13858 [[File:Foobar.jpg|frame|50x50px]]
13860 [[File:Foobar.jpg|frame|2000px]]
13862 <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>
13863 <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>
13864 <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>
13865 <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>
13868 <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>
13869 <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>
13870 <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>
13871 <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>
13874 ###################
13877 Link to image page- image page normally doesn't exists, hence edit link
13878 Add test with existing image page
13879 #<p><a href="/wiki/File:Test" title="Image:Test">Image:test</a>
13883 <p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">Image:test</a>
13888 bug 18784 Link to non-existent image page with caption should use caption as link text
13890 [[:Image:test|caption]]
13892 <p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">caption</a>
13897 Frameless image caption with a free URL
13899 [[File:Foobar.jpg|http://example.com]]
13901 <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>
13904 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"http://example.com"}]}' data-mw='{"caption":"<a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"stx\":\"url\",\"dsr\":[18,36,0,0]}'>http://example.com</a>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
13908 Thumbnail image caption with a free URL
13912 [[File:Foobar.jpg|thumb|http://example.com]]
13914 <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>
13917 <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>
13921 Thumbnail image caption with a free URL and explicit alt
13924 parsoid=wt2html,wt2wt,html2html
13926 [[File:Foobar.jpg|thumb|http://example.com|alt=Alteration]]
13928 <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>
13931 <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>
13935 SVG thumbnails with no language set
13938 [[File:Foobar.svg|thumb|caption]]
13940 <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>
13943 <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>
13947 SVG thumbnails with language de
13949 parsoid=wt2html,wt2wt,html2html
13951 [[File:Foobar.svg|thumb|caption|lang=de]]
13953 <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>
13956 <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>
13960 SVG thumbnails with invalid language code
13962 parsoid=wt2html,wt2wt,html2html
13964 [[File:Foobar.svg|thumb|caption|lang=invalid.language.code]]
13966 <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>
13969 <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>
13973 BUG 1887: A ISBN with a thumbnail
13975 [[File:Foobar.jpg|thumb|ISBN 1235467890]]
13977 <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>
13980 <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>
13984 BUG 1887: A RFC with a thumbnail
13986 [[File:Foobar.jpg|thumb|This is RFC 12354]]
13988 <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>
13991 <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>
13995 BUG 1887: A mailto link with a thumbnail
13997 [[File:Foobar.jpg|thumb|Please mailto:nobody@example.com]]
13999 <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>
14002 <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>
14005 # Pending resolution to bug 368
14007 BUG 648: Frameless image caption with a link
14009 [[File:Foobar.jpg|text with a [[link]] in it]]
14011 <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>
14014 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]] in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,38,2,2]}'>link</a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14018 BUG 648: Frameless image caption with a link (suffix)
14020 [[File:Foobar.jpg|text with a [[link]]foo in it]]
14022 <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>
14025 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]]foo in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,41,2,5],\"tail\":\"foo\"}'>linkfoo</a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14029 BUG 648: Frameless image caption with an interwiki link
14031 [[File:Foobar.jpg|text with a [[MeatBall:Link]] in it]]
14033 <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>
14036 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link]] in it"}]}' 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='{\"stx\":\"simple\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,47,2,2]}'>MeatBall:Link</a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14040 BUG 648: Frameless image caption with a piped interwiki link
14042 [[File:Foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
14044 <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>
14047 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link|link]] in it"}]}' 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='{\"stx\":\"piped\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,52,16,2]}'>link</a> in it"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14051 T107474: Frameless image caption with <nowiki>
14053 [[File:Foobar.jpg|<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>]]
14055 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>"}]}' data-mw='{"caption":"<span typeof=\"mw:Nowiki\" data-parsoid='{\"dsr\":[18,75,8,9]}'>text with a [[MeatBall:Link|link]] in it</span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14059 Escape HTML special chars in image alt text
14061 [[File:Foobar.jpg|& < > "]]
14063 <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>
14066 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"& < > \""}]}' data-mw='{"caption":"&amp; &lt; > \""}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14070 Entities in file name and attributes
14072 [[File:7%25 solution.gif|manualthumb=7%25 solution.gif|link=7%25 solution|[[7%25 solution]]]]
14074 <p><a href="/index.php?title=Special:Upload&wpDestFile=7%25_solution.gif" class="new" title="File:7% solution.gif">7% solution</a>
14077 <p><span class="mw-default-size" typeof="mw:Error mw:Image" data-parsoid='{"optList":[{"ck":"bogus","ak":"manualthumb=7%25 solution.gif"},{"ck":"link","ak":"link=7%25 solution"},{"ck":"caption","ak":"[[7%25 solution]]"}]}' data-mw='{"errors":[{"key":"missing-image","message":"This image does not exist."}],"caption":"<a rel=\"mw:WikiLink\" href=\"./7%25_solution\" title=\"7% solution\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./7%25_solution\"},\"sa\":{\"href\":\"7%25 solution\"},\"dsr\":[74,91,2,2]}'>7% solution</a>"}'><a href="./7%25_solution" data-parsoid='{"a":{"href":"./7%25_solution"},"sa":{"href":"link=7%25 solution"}}'><img resource="./File:7%25_solution.gif" src="./Special:FilePath/7%25_solution.gif" height="220" width="220" data-parsoid='{"a":{"resource":"./File:7%25_solution.gif","height":"220","width":"220"},"sa":{"resource":"File:7%25 solution.gif"}}'/></a></span></p>
14081 BUG 499: Alt text should have Ӓ, not &1234;
14083 [[File:Foobar.jpg|♀]]
14085 <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>
14088 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"&#9792;"}]}' data-mw='{"caption":"<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;#9792;\",\"srcContent\":\"♀\",\"dsr\":[18,25,null,null]}'>♀</span>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14092 Broken image caption with link
14094 parsoid=wt2html,wt2wt,html2html
14096 [[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
14098 <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.
14101 <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>
14105 Image caption containing another image
14107 [[File:Foobar.jpg|thumb|This is a caption with another [[File:Thumb.png|image]] inside it!]]
14109 <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>
14112 <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>
14116 Image: caption containing a newline
14118 [[File:Foobar.jpg|This
14121 <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>
14124 <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>
14128 Image: caption containing leading space
14129 (The leading space should not trigger nowiki escaping in wt2wt mode)
14131 [[File:Foobar.jpg|thumb| bar]]
14133 <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>
14136 <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>
14140 Image: caption containing a table
14142 parsoid=wt2html,wt2wt,html2html
14144 [[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table
14150 and some more text.]]
14152 <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>
14155 <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
14158 <tr><th>Foo </th><th>Bar</th></tr>
14161 <td>Bar1</td></tr></tbody></table>and some more text.</figcaption></figure>
14165 Bug 3090: External links other than http: in image captions
14167 [[File:Foobar.jpg|thumb|200x200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
14169 <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>
14172 <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>
14178 parsoid=wt2html,wt2wt,html2html
14180 [[Image:foobar.jpg|a|class=b]]
14182 <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>
14185 <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>
14189 Localized image handling (1).
14191 parsoid=wt2html,wt2wt,html2html
14194 [[Archivo:Foobar.jpg|izquierda|enlace=foo|caption]]
14196 <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>
14199 <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>
14203 Localized image handling (2).
14206 parsoid=wt2html,wt2wt,html2html
14209 [[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]]
14211 <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>
14214 <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>
14218 Localized image handling (3).
14223 <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>
14225 [[File:Foobar.jpg|بندانگشتی]]
14229 "border", "frameless" and "class" attributes on an image.
14232 parsoid=wt2html,wt2wt,html2html
14234 [[File:Foobar.jpg|frameless|border|class=extra|caption]]
14236 <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>
14239 <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>
14242 # Note that 'right' is the default alignment, despite the misspelled 'righ' below
14244 Invalid image attributes (bug 62500)
14247 parsoid=wt2html,wt2wt,html2html
14249 [[File:Foobar.jpg|thumb|float|left|caption]]
14251 [[File:Foobar.jpg|thumb|righ|caption]]
14253 [[File:Foobar.jpg|bogus1|thumb|bogus2|left|bogus3|caption]]
14255 <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>
14256 <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>
14257 <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>
14260 <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>
14261 <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>
14262 <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>
14268 #REDIRECT [[File:Barfoo.jpg]]
14271 # FIXME: Parsoid should run this test -- but we'd need to teach the
14272 # mockAPI about the redirected Barfoo.jpg image.
14276 [[Image:Barfoo.jpg]]
14278 <p><a href="/wiki/File:Barfoo.jpg" class="mw-redirect" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
14283 Missing image with uploads disabled
14287 [[File:Foobaz.jpg]]
14289 <p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a>
14292 <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>
14295 # Parsoid-specific testing for images
14296 # https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
14297 # Currently imperfect due to a flaw in the Parsoid testrunner
14299 # THESE TESTS SHOULD BE MOVED UP and merged with the php-specific
14303 Parsoid-specific image handling - simple image with size and middle alignment
14305 [[File:Foobar.jpg|middle|50px]]
14307 <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>
14311 Parsoid-specific image handling - simple image with size, middle alignment,
14312 non-standard namespace alias
14314 parsoid=wt2wt,wt2html,html2html
14316 [[Image:Foobar.jpg|middle|50px]]
14318 <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>
14322 Parsoid-specific image handling - simple image with size and middle alignment
14325 [[File:Foobar.jpg|50px|middle]]
14327 <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>
14331 Parsoid-specific image handling - simple image with size and middle alignment
14332 and non-standard namespace name
14334 parsoid=wt2html,wt2wt,html2html
14336 [[Image:Foobar.jpg|50px|middle]]
14338 <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>
14342 Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption
14344 [[File:Foobar.jpg|500x10px|baseline|caption]]
14346 <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>
14350 Parsoid-specific image handling - simple image with border and size spec
14352 [[File:Foobar.jpg|50px|border|caption]]
14354 <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>
14358 Parsoid-specific image handling - thumbnail with halign, valign, and caption
14360 [[File:Foobar.jpg|left|baseline|thumb|caption content]]
14362 <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>
14366 Parsoid-specific image handling - thumbnail with halign, valign, and caption
14369 [[File:Foobar.jpg|thumb|left|baseline|caption content]]
14371 <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>
14375 Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption
14377 [[Image:Foobar.jpg|right|middle|thumb|50x50px|caption]]
14379 <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>
14383 Parsoid-specific image handling - thumbnail with specific size, halign,
14384 valign, and caption (existing content)
14386 [[File:Foobar.jpg|thumb|50x50px|right|middle|caption]]
14388 <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>
14392 Parsoid-specific image handling - framed image with specific size and caption
14395 parsoid=wt2html,wt2wt,html2html
14397 [[File:Foobar.jpg|frame|500x50px|caption]]
14399 <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>
14403 Parsoid-specific image handling - framed image with specific size, halign, valign, and caption
14406 parsoid=wt2html,wt2wt,html2html
14408 [[File:Foobar.jpg|left|baseline|frame|500x50px|caption]]
14410 <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>
14414 Parsoid-specific image handling - frameless image with specific size, border, and caption
14416 [[File:Foobar.jpg|frameless|442x50px|border|caption]]
14418 <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>
14422 Parsoid-specific image handling - simple image with a formatted caption
14424 [[File:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
14426 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>"}]}' data-mw='{"caption":"<table data-parsoid='{\"stx\":\"html\",\"dsr\":[18,81,7,8]}'><tbody data-parsoid='{\"dsr\":[25,73,0,0]}'><tr data-parsoid='{\"stx\":\"html\",\"dsr\":[25,54,4,5]}'><td data-parsoid='{\"stx\":\"html\",\"dsr\":[29,39,4,5]}'>a</td><td data-parsoid='{\"stx\":\"html\",\"dsr\":[39,49,4,5]}'>b</td></tr><tr data-parsoid='{\"stx\":\"html\",\"dsr\":[54,73,4,5]}'><td data-parsoid='{\"stx\":\"html\",\"dsr\":[58,68,4,5]}'>c</td></tr></tbody></table>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14430 Parsoid-specific image handling - caption with a template in it
14432 [[File:Foobar.jpg|thumb|200x23px|This caption has a {{echo|transclusion}} in it.]]
14434 <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>
14438 Parsoid-specific image handling - caption with unbalanced tags in it
14440 parsoid=wt2html,wt2wt,html2html
14443 [[File:Foobar.jpg|thumb|200x200px|This caption has a <center>unbalanced tag in it.]]
14447 <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>
14452 Parsoid-specific image handling - empty caption (1)
14454 parsoid=wt2html,wt2wt
14456 [[File:Foobar.jpg|thumb|]]
14458 <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>
14461 # empty captions don't get serialized unless we're in the "round trip" case
14463 Parsoid-specific image handling - empty caption (2)
14467 <figure class="mw-default-size" typeof="mw:Image/Thumb">
14468 <a href="./File:Foobar.jpg">
14469 <img resource="./File:Foobar.jpg"
14470 src="//example.com/images/3/3a/Foobar.jpg"
14471 data-file-width="1941" data-file-height="220" data-file-type="bitmap"
14472 height="25" width="220"/>
14474 <figcaption></figcaption>
14477 [[File:Foobar.jpg|thumb]]
14481 Parsoid-specific image handling - whitespace caption
14483 [[File:Foobar.jpg|thumb| ]]
14485 <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>
14489 Parsoid-specific image handling - lang option
14492 [[File:Foobar.svg|lang=de|caption]]
14496 <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>
14500 ## Edge case bugs in Parsoid from T93580
14502 T93580: 1. Templated <ref> inside block images
14504 [[File:Foobar.jpg|thumb|Caption with templated ref: {{echo|<ref>foo</ref>}}]]
14508 <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>
14510 <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>
14514 T93580: 2. <ref> inside inline images
14516 [[File:Foobar.jpg|Undisplayed caption in inline image with ref: <ref>foo</ref>]]
14520 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: <ref>foo</ref>"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: <span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[64,78,5,6]}' data-mw='{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-1\"},\"attrs\":{}}'><a href=\"#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></span><meta typeof=\"mw:Extension/ref/Marker\" about=\"#mwt2\" data-parsoid='{\"group\":\"\",\"name\":\"\",\"content\":\"foo\",\"hasRefInRef\":false,\"dsr\":[64,78,5,6]}'/>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14522 <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" data-parsoid="{}">foo</span></li></ol>
14526 T93580: 3. Templated <ref> inside inline images
14528 [[File:Foobar.jpg|Undisplayed caption in inline image with ref: {{echo|<ref>{{echo|foo}}</ref>}}]]
14532 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"caption","ak":"Undisplayed caption in inline image with ref: {{echo|<ref>{{echo|foo}}</ref>}}"}]}' data-mw='{"caption":"Undisplayed caption in inline image with ref: <span about=\"#mwt2\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Transclusion mw:Extension/ref\" data-parsoid='{\"dsr\":[64,96,null,null],\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"&lt;ref>{{echo|foo}}&lt;/ref>\"}},\"i\":0}}]}'><a href=\"#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></span><meta typeof=\"mw:Transclusion mw:Extension/ref/Marker\" about=\"#mwt2\" data-parsoid='{\"group\":\"\",\"name\":\"\",\"content\":\"foo\",\"hasRefInRef\":false,\"dsr\":[64,96,null,null],\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"&lt;ref>{{echo|foo}}&lt;/ref>\"}},\"i\":0}}]}'/>"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
14534 <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>
14541 Subpage test/subpage
14549 subpage title=[[Subpage test]]
14553 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a>
14558 Subpage noslash link
14560 subpage title=[[Subpage test]]
14564 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a>
14569 Subpage test/1/2/subpage
14575 Relative subpage noslash link
14577 parsoid=wt2wt,wt2html,html2html
14578 subpage title=[[Subpage test/1/2/3/4]]
14584 <p><a href="/wiki/Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">subpage</a>
14585 </p><p><a href="/wiki/Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">Subpage test/1/2/subpage</a>
14588 <p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">subpage</a></p>
14589 <p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage" title="Subpage test/1/2/subpage">Subpage_test/1/2/subpage</a></p>
14593 Parsoid: dot-slash prefixed wikilinks
14603 </p><p>[[././baz/]]
14608 </p><p>[[././baz/]]
14613 Render invalid page names as plain text (bug 51090)
14626 [[{{echo|./../foo}}|bar]]
14627 [[{{echo|foo/.}}|bar]]
14628 [[{{echo|foo/..}}|bar]]
14629 [[{{echo|foo~~~~bar}}]]
14630 [[{{echo|foo>bar}}]]
14631 [[{{echo|foo././bar}}]]
14632 [[{{echo|foo{bar}}]]
14633 [[{{echo|foo}bar}}]]
14634 [[{{echo|foo[bar}}]]
14635 [[{{echo|foo]bar}}]]
14636 [[{{echo|foo<bar}}]]
14638 <p>[[./../foo|bar]]
14648 </p><p>[[./../foo|bar]]
14661 <p>[[./../foo|bar]]
14672 <p>[[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"./../foo"}},"i":0}}]}'>./../foo</span>|bar]]
14673 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/."}},"i":0}}]}'>foo/.</span>|bar]]
14674 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo/.."}},"i":0}}]}'>foo/..</span>|bar]]
14675 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo~~~~bar"}},"i":0}}]}'>foo~~~~bar</span>]]
14676 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo>bar"}},"i":0}}]}'>foo>bar</span>]]
14677 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo././bar"}},"i":0}}]}'>foo././bar</span>]]
14678 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo{bar"}},"i":0}}]}'>foo{bar</span>]]
14679 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo}bar"}},"i":0}}]}'>foo}bar</span>]]
14680 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo[bar"}},"i":0}}]}'>foo[bar</span>]]
14681 [[<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo]bar"}},"i":0}}]}'>foo]bar</span>]]
14682 [[<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>
14690 <p><a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a>
14695 BUG 561: {{/Subpage}}
14697 subpage title=[[Page]]
14701 <p><a href="/index.php?title=Page/Subpage&action=edit&redlink=1" class="new" title="Page/Subpage (page does not exist)">Page/Subpage</a>
14709 Category:MediaWiki User's Guide
14717 [[:Category:MediaWiki User's Guide]]
14719 <p><a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a>
14728 [[Category:MediaWiki User's Guide]]
14730 cat=MediaWiki_User's_Guide sort=
14734 PAGESINCATEGORY invalid title fatal (r33546 fix)
14736 {{PAGESINCATEGORY:<bogus>}}
14743 Category with different sort key
14747 [[Category:MediaWiki User's Guide|Foo]]
14749 cat=MediaWiki_User's_Guide sort=Foo
14753 Category with identical sort key
14757 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
14759 cat=MediaWiki_User's_Guide sort=MediaWiki User's Guide
14763 Category with empty sort key
14768 [[Category:MediaWiki User's Guide|]]
14770 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
14774 Category with empty sort key and parentheses
14779 [[Category:Foo (bar)|]]
14781 [[Category:Foo (bar)|Foo]]
14784 ## We used to, but no longer wt2wt this test since the default serializer
14785 ## will normalize all categories to serialize on their own line.
14786 ## This wikitext usage is going to be fairly uncommon in production and
14787 ## selser will take care of preserving formatting in those scenarios.
14789 Category with link tail
14795 123[[Category:Foo]]456
14797 123[[Category:Foo]]456
14799 <p>123<link rel="mw:PageProp/Category" href="Category:Foo"/>456</p>
14803 Category with template
14808 [[Category:{{echo|Foo}}]]
14810 [[Category:{{echo|Foo}}]]
14814 Category with template in sort key
14819 [[Category:Foo|{{echo|Bar}}]]
14821 [[Category:Foo|{{echo|Bar}}]]
14825 Category with template in sort key and title
14830 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
14832 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
14835 ## We used to, but no longer wt2wt this test since the default serializer
14836 ## will normalize all categories to serialize on their own line.
14837 ## This wikitext usage is going to be fairly uncommon in production and
14838 ## selser will take care of preserving formatting in those scenarios.
14840 Category / paragraph interactions
14844 Foo [[Category:Baz]] Bar
14846 Foo [[Category:Baz]]
14854 [[Category:Baz]] Bar
14867 {{echo|[[Category:Baz]]}}
14880 <p>Foo <link rel="mw:PageProp/Category" href="Category:Baz"/> Bar</p>
14881 <p>Foo <link rel="mw:PageProp/Category" href="Category:Baz"/> Bar</p>
14882 <p>Foo <link rel="mw:PageProp/Category" href="Category:Baz"/> Bar</p>
14883 <p>Foo <link rel="mw:PageProp/Category" href="Category:Baz"/> Bar</p>
14884 <p>Foo <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz"/> Bar <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz"/> <link rel="mw:PageProp/Category" href="Category:Baz" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Baz]]"}},"i":0}}]}'/></p>
14885 <link rel="mw:PageProp/Category" href="Category:Baz"/>
14888 ## We used to, but no longer wt2wt this test since the default serializer
14889 ## will normalize all categories to serialize on their own line.
14890 ## This wikitext usage is going to be fairly uncommon in production and
14891 ## selser will take care of preserving formatting in those scenarios.
14893 ## The whitespace on the empty line is part of the test. Please do not delete
14895 1. Categories and newlines: All preceding newlines should be suppressed (courtesy bug 87)
14901 [[Category:Foo]] and this should be part of same paragraph (not an indent-pre)
14903 {{echo|[[Category:Foo]] and so should this!}}
14905 <p>This and this should be part of same paragraph (not an indent-pre) and so should this!
14910 <link rel="mw:PageProp/Category" href="./Category:Foo"/> and this should be part of same paragraph (not an indent-pre)
14912 <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>
14915 ## Parsoid will not try to wt2wt this while preserving newlines because
14916 ## it suppresses excess newlines within list items -- and we don't want to
14917 ## introduce a special case just for categories, which is, in reality somewhat
14918 ## odd behavior -- categories are unlikely to be used in list items like this
14919 ## in top-level pages and are only likely to show up in template-generated
14920 ## list items where this RT-ing is a non-issue.
14922 ## The whitespace on the empty line is part of the test. Please do not delete
14924 2. Categories and newlines: All preceding newlines should be suppressed (courtesy bug 87)
14930 [[Category:Foo]] and this should be part of the same list item
14933 {{echo|[[Category:Foo]] and this should be part of the same list item}}
14935 <ul><li>This and this should be part of the same list item</li>
14936 <li>So should this and this should be part of the same list item</li></ul>
14939 <li>This <link rel="mw:PageProp/Category" href="./Category:Foo"/> and this should be part of the same list item</li>
14940 <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>
14944 ## Newlines and categories that follow the last item of a list
14945 ## are treated differently because this (list followed by categories)
14946 ## is an extremely common pattern on wikis.
14948 3. Categories and newlines: newline suppression for last list item should RT properly
14961 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
14963 <link rel="mw:PageProp/Category" href="./Category:Bar" data-parsoid='{"stx":"simple","a":{"href":"./Category:Bar"},"sa":{"href":"Category:Bar"}}'/>
14964 <link rel="mw:PageProp/Category" href="./Category:Baz" data-parsoid='{"stx":"simple","a":{"href":"./Category:Baz"},"sa":{"href":"Category:Baz"}}'/>
14968 4. Categories and newlines: newline suppression for last list item should RT properly
14976 <ul><li><ul><li><ul><li> b</li></ul></li></ul></li></ul></li></ul>
14978 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
14981 ## only wt2html for this to make sure the algo only applies to the rightmost path
14983 5. Categories and newlines: migrateTrailingCategories dom pass should only run on the rightmost path of nested lists
14996 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/></li></ul></li>
14998 <ul><li> d</li></ul></li></ul>
14999 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{"stx":"simple","a":{"href":"./Category:Foo"},"sa":{"href":"Category:Foo"}}'/>
15002 ## We used to, but no longer wt2wt this test since the default serializer
15003 ## will normalize all categories to serialize on their own line.
15004 ## This wikitext usage is going to be fairly uncommon in production and
15005 ## selser will take care of preserving formatting in those scenarios.
15007 6. Categories and newlines: migrateTrailingCategories dom pass should not migrate categories not preceded by newlines
15011 * a [[Category:Foo]]
15013 <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>
15016 # This test also demonstrates because of newline+category tunneling
15017 # through the list hander, template wrapping doesn't expand to the
15018 # containing list when the list item swallows the category.
15020 7. Categories and newlines: migrateTrailingCategories dom pass should leave template content alone
15025 <ul><li> <span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n[[Category:Foo]]"}},"i":0}}]}'>a
15026 </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>
15030 8. Categories and newlines: migrateTrailingCategories dom pass should not get tripped by intervening templates
15034 {{echo|[[Category:Foo]]
15038 <ul><li> a</li></ul>
15040 <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"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Foo]]\n[[Category:Bar]]"}},"i":0}}]}'/><span about="#mwt1">
15041 </span><link rel="mw:PageProp/Category" href="./Category:Bar" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Category:Bar"},"sa":{"href":"Category:Bar"}}'/>
15042 <link rel="mw:PageProp/Category" href="./Category:Baz" data-parsoid='{"stx":"simple","a":{"href":"./Category:Baz"},"sa":{"href":"Category:Baz"}}'/>
15046 Category links with multiple namespaces
15048 [[Category:Project:Foo]]
15050 <link rel="mw:PageProp/Category" href="./Category:Project:Foo" />
15054 Parsoid: Serialize link to category page with colon escape
15060 [[:Category:Foo|Bar]]
15063 <a rel="mw:WikiLink" href="./Category:Foo" title="Category:Foo">Category:Foo</a>
15064 <a rel="mw:WikiLink" href="./Category:Foo" title="Category:Foo">Bar</a>
15068 # We used to, but no longer wt2wt this test since the default serializer
15069 # will normalize all categories to serialize on their own line.
15070 # This wikitext usage is going to be fairly uncommon in production and
15071 # selser will take care of preventing whitespace insertion if this
15072 # occurs in an article.
15074 # html2html disabled for the same reason (whitespace insertion between
15077 # html2wt disabled because it localizes the "Category" namespace.
15079 Link prefix/suffixes aren't applied to category links
15089 <p>x<link rel="mw:PageProp/Category" href="./Flokkur:Foo" data-parsoid=""/>y</p>
15093 Parsoid: Serialize link to file page with colon escape
15099 [[:File:Foo.png|Bar]]
15102 <a rel="mw:WikiLink" href="./File:Foo.png" title="File:Foo.png">File:Foo.png</a>
15103 <a rel="mw:WikiLink" href="./File:Foo.png" title="File:Foo.png">Bar</a>
15108 Parsoid: Serialize a genuine category link without colon escape
15113 [[Category:Foo|Bar]]
15115 <link rel="mw:PageProp/Category" href="./Category:Foo">
15116 <link rel="mw:PageProp/Category" href="./Category:Foo#Bar">
15120 Normalize hrefs properly before testing for invalid link targets (bug 70894)
15124 <link rel="mw:PageProp/Category" href="./Category:Toxine_bactérienne"/>
15126 [[Category:Toxine bactérienne]]
15130 Parsoid: Defaultsort
15132 {{DEFAULTSORT:Foo}}
15134 <meta property="mw:PageProp/categorydefaultsort" content="Foo"/>
15138 Parsoid: Defaultsort (template-generated)
15140 {{{{echo|DEFAULTSORT}}:Foo}}
15142 <meta property="mw:PageProp/categorydefaultsort" content="Foo" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"{{echo|DEFAULTSORT}}:Foo"},"params":{},"i":0}}]}'/>
15146 ### Inter-language links
15149 Interlanguage links
15157 es:Alimento fr:Nourriture zh:食品
15159 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Alimento"/>
15160 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/Nourriture"/>
15161 <link rel="mw:PageProp/Language" href="http://zh.wikipedia.org/wiki/食品"/>
15165 Duplicate interlanguage links (bug 24502)
15176 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/1"/>
15177 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/2"/>
15178 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/1"/>
15179 <link rel="mw:PageProp/Language" href="http://fr.wikipedia.org/wiki/2"/>
15186 Basic section headings
15193 ===Smaller headline===
15196 <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>
15199 <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>
15202 <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>
15208 Section headings with TOC
15211 === Subheadline 1 ===
15212 ===== Skipping a level =====
15213 ====== Skipping a level ======
15217 ===Another headline===
15219 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15221 <li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
15223 <li class="toclevel-2 tocsection-2"><a href="#Subheadline_1"><span class="tocnumber">1.1</span> <span class="toctext">Subheadline 1</span></a>
15225 <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>
15227 <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>
15234 <li class="toclevel-1 tocsection-5"><a href="#Headline_2"><span class="tocnumber">2</span> <span class="toctext">Headline 2</span></a>
15236 <li class="toclevel-2 tocsection-6"><a href="#Another_headline"><span class="tocnumber">2.1</span> <span class="toctext">Another headline</span></a></li>
15242 <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>
15243 <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>
15244 <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>
15245 <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>
15246 <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>
15249 <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>
15254 TOC anchors don't collide
15262 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15264 <li class="toclevel-1 tocsection-1"><a href="#Headline_2"><span class="tocnumber">1</span> <span class="toctext">Headline 2</span></a></li>
15265 <li class="toclevel-1 tocsection-2"><a href="#Headline"><span class="tocnumber">2</span> <span class="toctext">Headline</span></a></li>
15266 <li class="toclevel-1 tocsection-3"><a href="#Headline_2_2"><span class="tocnumber">3</span> <span class="toctext">Headline 2</span></a></li>
15267 <li class="toclevel-1 tocsection-4"><a href="#Headline_3"><span class="tocnumber">4</span> <span class="toctext">Headline</span></a></li>
15271 <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>
15272 <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>
15273 <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>
15274 <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>
15278 # perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10'
15280 Handling of sections up to level 6 and beyond
15283 == Level 2 Heading==
15284 === Level 3 Heading===
15285 ==== Level 4 Heading====
15286 ===== Level 5 Heading=====
15287 ====== Level 6 Heading======
15288 ======= Level 7 Heading=======
15289 ======== Level 8 Heading========
15290 ========= Level 9 Heading=========
15291 ========== Level 10 Heading==========
15293 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15295 <li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
15297 <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>
15299 <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>
15301 <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>
15303 <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>
15305 <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>
15306 <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>
15307 <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>
15308 <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>
15309 <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>
15323 <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>
15324 <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>
15325 <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>
15326 <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>
15327 <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>
15328 <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>
15329 <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>
15330 <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>
15331 <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>
15332 <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>
15337 TOC regression (T11764)
15341 ==== title 1.1.1 ====
15346 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15348 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
15350 <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>
15352 <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>
15355 <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>
15358 <li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a>
15360 <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>
15366 <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>
15367 <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>
15368 <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>
15369 <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>
15370 <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>
15371 <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>
15376 TOC for heading containing <span id="..."></span> (T96153)
15379 ==<span id="old-anchor"></span>New title==
15381 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15383 <li class="toclevel-1 tocsection-1"><a href="#New_title"><span class="tocnumber">1</span> <span class="toctext">New title</span></a></li>
15387 <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>
15392 TOC with wgMaxTocLevel=3 (bug 6204)
15398 ==== title 1.1.1 ====
15403 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15405 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
15407 <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>
15408 <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>
15411 <li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a>
15413 <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>
15419 <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>
15420 <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>
15421 <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>
15422 <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>
15423 <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>
15424 <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>
15429 TOC with wgMaxTocLevel=3 and two level four headings (bug 6204)
15435 ====Section 1.1.1====
15436 ====Section 1.1.1.1====
15439 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15441 <li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
15443 <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>
15446 <li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
15450 <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>
15451 <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>
15452 <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>
15453 <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>
15454 <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>
15460 Resolving duplicate section names
15465 <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>
15466 <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>
15471 Resolving duplicate section names with differing case (bug 10721)
15476 <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>
15477 <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>
15489 Template with sections, __NOTOC__
15496 <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>
15497 <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>
15498 <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>
15499 <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>
15504 __NOEDITSECTION__ keyword
15510 <h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
15511 <h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
15516 Link inside a section heading
15518 ==Section with a [[Main Page|link]] in it==
15520 <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>
15525 TOC regression (T14077)
15532 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15534 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
15536 <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>
15539 <li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li>
15543 <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>
15544 <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>
15545 <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>
15550 BUG 1219 URL next to image (good)
15552 http://example.com [[File:Foobar.jpg]]
15554 <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>
15557 <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>
15561 Short headings with trailing space should match behavior of Parser::doHeadings (bug 19910)
15564 The line above must have a trailing space!
15567 But just in case it doesn't...
15569 <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>
15570 <p>The line above must have a trailing space!
15572 <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>
15573 <p>But just in case it doesn't...
15578 Header with special characters (bug 25462)
15580 The tooltips shall not show entities to the user (ie. be double escaped)
15597 <p>The tooltips shall not show entities to the user (ie. be double escaped)
15599 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15601 <li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text > text</span></a></li>
15602 <li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text < text</span></a></li>
15603 <li class="toclevel-1 tocsection-3"><a href="#text_.26_text"><span class="tocnumber">3</span> <span class="toctext">text & text</span></a></li>
15604 <li class="toclevel-1 tocsection-4"><a href="#text_.27_text"><span class="tocnumber">4</span> <span class="toctext">text ' text</span></a></li>
15605 <li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li>
15609 <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>
15612 <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>
15615 <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>
15618 <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>
15621 <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>
15627 Header with space, plus and underscore as entity
15629 Id should not contain + for spaces
15631 == Space between Text ==
15634 == Space-Entity between Text ==
15637 == Plus+between+Text ==
15640 == Plus-Entity+between+Text ==
15643 == Underscore_between_Text ==
15646 == Underscore-Entity_between_Text ==
15649 [[#Space between Text]]
15650 [[#Space-Entity between Text]]
15651 [[#Plus+between+Text]]
15652 [[#Plus-Entity+between+Text]]
15653 [[#Underscore_between_Text]]
15654 [[#Underscore-Entity_between_Text]]
15656 <p>Id should not contain + for spaces
15658 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15660 <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>
15661 <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>
15662 <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>
15663 <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>
15664 <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>
15665 <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>
15669 <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>
15672 <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>
15675 <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>
15678 <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>
15681 <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>
15684 <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>
15686 </p><p><a href="#Space_between_Text">#Space between Text</a>
15687 <a href="#Space-Entity_between_Text">#Space-Entity between Text</a>
15688 <a href="#Plus.2Bbetween.2BText">#Plus+between+Text</a>
15689 <a href="#Plus-Entity.2Bbetween.2BText">#Plus-Entity+between+Text</a>
15690 <a href="#Underscore_between_Text">#Underscore_between_Text</a>
15691 <a href="#Underscore-Entity_between_Text">#Underscore-Entity_between_Text</a>
15696 Headers with excess '=' characters
15697 (Are similar tests necessary beyond the 1st level?)
15701 =''italic'' heading==
15702 ==''italic'' heading=
15704 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15706 <li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
15707 <li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li>
15708 <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>
15709 <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>
15713 <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>
15714 <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>
15715 <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>
15716 <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>
15721 HTML headers vs TOC (bug 23393)
15722 (__NOEDITSECTION__ for clearer output, doesn't matter here)
15734 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
15736 <li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
15738 <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>
15739 <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>
15742 <li class="toclevel-1"><a href="#Header_2"><span class="tocnumber">2</span> <span class="toctext">Header 2</span></a>
15744 <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>
15745 <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>
15751 <h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
15752 <h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
15753 <h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
15754 <h1><span class="mw-headline" id="Header_2">Header 2</span></h1>
15755 <h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
15756 <h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
15761 Single-line or multiline-comments can follow headings
15763 parsoid=wt2html,wt2wt
15771 <h2><span class="mw-headline" id="foo">foo</span></h2>
15772 <h2><span class="mw-headline" id="bar">bar</span></h2>
15773 <h2><span class="mw-headline" id="baz">baz</span></h2>
15778 BUG 1219 URL next to image (broken)
15780 http://example.com[[File:Foobar.jpg]]
15782 <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>
15785 <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>
15789 Bug 1186 news: in the middle of text
15791 http://en.wikinews.org/wiki/Wikinews:Workplace
15793 <p><a rel="nofollow" class="external free" href="http://en.wikinews.org/wiki/Wikinews:Workplace">http://en.wikinews.org/wiki/Wikinews:Workplace</a>
15799 Namespaced link must have a title
15808 Namespaced link must have a title (bad fragment version)
15810 [[Project:#fragment]]
15812 <p>[[Project:#fragment]]
15818 ### HTML tags and HTML attributes
15822 div with no attributes
15824 <div>HTML rocks</div>
15826 <div>HTML rocks</div>
15831 div with double-quoted attribute
15833 <div id="rock">HTML rocks</div>
15835 <div id="rock">HTML rocks</div>
15840 div with single-quoted attribute
15842 <div id='rock'>HTML rocks</div>
15844 <div id="rock">HTML rocks</div>
15849 div with unquoted attribute
15851 <div id=rock>HTML rocks</div>
15853 <div id="rock">HTML rocks</div>
15858 div with illegal double attributes
15860 <div id="a" id="b">HTML rocks</div>
15862 <div id="b">HTML rocks</div>
15867 div with empty attribute value, space before equals
15869 parsoid=wt2html,html2html
15871 <div class =>HTML rocks</div>
15873 <div class="">HTML rocks</div>
15876 <div class="" data-parsoid='{"stx":"html"}'>HTML rocks</div>
15880 div with multiple empty attribute values
15882 parsoid=wt2html,html2html
15884 <div id= title=>HTML rocks</div>
15886 <div id="title.3D">HTML rocks</div>
15889 <div id="title=" data-parsoid='{"stx":"html"}'>HTML rocks</div>
15893 table with multiple empty attribute values
15895 parsoid=wt2html,html2html
15901 <table title="id=">
15907 <table title="id=">
15908 <tbody><tr><td> hi</td></tr>
15913 div with braces in attribute value
15915 <div title="{}">Foo</div>
15917 <div title="{}">Foo</div>
15920 <div title="{}">Foo</div>
15924 div with empty attribute value, no space before equals
15926 parsoid=wt2html,html2html
15928 <div class=>HTML rocks</div>
15930 <div class="">HTML rocks</div>
15933 <div class="">HTML rocks</div>
15937 HTML multiple attributes correction
15939 <p class="error" class="awesome">Awesome!</p>
15941 <p class="awesome">Awesome!</p>
15946 Table multiple attributes correction
15949 !+ class="error" class="awesome"| status
15954 <th class="awesome"> status
15962 <DIV ID="x">HTML ROCKS</DIV>
15964 <div id="x">HTML ROCKS</div>
15969 Non-ASCII pseudo-tags are rendered as text
15978 Pseudo-tag with URL 'name' renders as url link
15980 <http://example.com/>
15982 <p><<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>>
15987 text with amp in the middle of nowhere
15991 <p>Remember AT&T?
15996 text with character entity: eacute
15998 I always thought é was a cute letter.
16000 <p>I always thought é was a cute letter.
16003 <p>I always thought é was a cute letter.</p>
16007 text with entity-escaped character entity-like string: eacute
16009 I always thought &eacute; was a cute letter.
16011 <p>I always thought &eacute; was a cute letter.
16016 text with undefined character entity: xacute
16018 I always thought &xacute; was a cute letter.
16020 <p>I always thought &xacute; was a cute letter.
16027 <data value="5">five</data>
16028 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
16029 <mark>This highlighted text</mark>
16031 <p><data value="5">five</data>
16032 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
16033 <mark>This highlighted text</mark>
16038 HTML tag with leading space is parsed as text
16042 <p>< div>foo< /div>
16047 ### Nesting tests (see bug 41545, 50604, 51081)
16050 # This test case is fixed in Parsoid by domino 1.0.12. (bug 50604)
16051 # Note that html2wt is considerably more difficult if we use <b> in
16052 # the test case, instead of <big>
16054 Ensure that HTML adoption agency algorithm is properly implemented.
16056 <big>X<big>Y</big>Z</big>
16058 <p><big>X<big>Y</big>Z</big>
16062 # This was bug 41545 in the PHP parser.
16063 # Note that tidy doesn't handle this correctly.
16067 <kbd>X<kbd>Y</kbd>Z</kbd>
16069 <p><kbd>X<kbd>Y</kbd>Z</kbd>
16073 # The following cases were bug 51081 in the PHP parser.
16074 # Note that there are some other nestable tags (b, i, etc) which are
16075 # not covered; see bug 51081 for discussion.
16077 # Note that tidy doesn't handle this correctly.
16081 <em>X<em>Y</em>Z</em>
16083 <p><em>X<em>Y</em>Z</em>
16087 # Note that tidy doesn't handle this correctly.
16089 Nesting of <strong>
16091 <strong>X<strong>Y</strong>Z</strong>
16093 <p><strong>X<strong>Y</strong>Z</strong>
16102 <p><q>X<q>Y</q>Z</q></p>
16105 # Note that tidy doesn't handle this correctly.
16109 <ruby>X<ruby>Y</ruby>Z</ruby>
16111 <p><ruby>X<ruby>Y</ruby>Z</ruby>
16115 # Note that tidy doesn't handle this correctly.
16119 <bdo>X<bdo>Y</bdo>Z</bdo>
16121 <p><bdo>X<bdo>Y</bdo>Z</bdo>
16133 [[Media:Foobar.jpg]]
16135 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a>
16140 Media link with text
16142 [[Media:Foobar.jpg|A neat file to look at]]
16144 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">A neat file to look at</a>
16148 # FIXME: this is still bad HTML tag nesting
16149 # FIXME: doBlockLevels won't wrap this in a paragraph because it contains a div
16151 Media link with nasty text
16153 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
16155 <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>
16158 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link</a></p>
16159 <div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div>
16163 Media link to nonexistent file (bug 1702)
16165 [[Media:No such.jpg]]
16167 <p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="No such.jpg">Media:No such.jpg</a>
16172 Image link to nonexistent file (bug 1850 - good)
16174 [[File:No_such.jpg]]
16176 <p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
16179 <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>
16183 :Image link to nonexistent file (bug 1850 - bad)
16185 [[:Image:No such.jpg]]
16187 <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>
16190 <p><a rel="mw:WikiLink" href="./File:No_such.jpg" title="File:No such.jpg">Image:No such.jpg</a></p>
16196 Character reference normalization in link text (bug 1938)
16198 [[Main Page|this&that]]
16200 <p><a href="/wiki/Main_Page" title="Main Page">this&that</a>
16207 Test for unicode normalization
16209 The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E
16213 (bug 19451) Links should refer to the normalized form.
16221 <p><a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
16222 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
16223 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
16224 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
16225 <a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a>
16230 Empty attribute crash test (bug 2067)
16232 <font color="">foo</font>
16234 <p><font color="">foo</font>
16239 Empty attribute crash test single-quotes (bug 2067)
16241 <font color=''>foo</font>
16243 <p><font color="">foo</font>
16248 Attribute test: equals, then nothing
16250 parsoid=wt2html,html2html
16252 <font color=>foo</font>
16254 <p><font color="">foo</font>
16257 <p><font color="" data-parsoid='{"stx":"html"}'>foo</font></p>
16261 Attribute test: unquoted value
16263 parsoid=wt2html,html2html
16265 <font color=x>foo</font>
16267 <p><font color="x">foo</font>
16270 <p><font color="x" data-parsoid='{"stx":"html"}'>foo</font></p>
16274 Attribute test: unquoted but illegal value (hash)
16276 <font color=#x>foo</font>
16278 <p><font color="#x">foo</font>
16282 # Parsoid does not serialize to empty attribute syntax,
16283 # so wt2wt and html2wt cases are skipped
16285 Attribute test: no value (T54330)
16287 parsoid=wt2html,html2html
16289 <font color>foo</font>
16291 <p><font color="">foo</font>
16294 <p><font color="">foo</font></p>
16298 Bug 2095: link with three closing brackets
16302 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>]
16305 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a>]</p>
16309 Bug 2095: link with pipe and three closing brackets
16311 [[Main Page|link]]]
16313 <p><a href="/wiki/Main_Page" title="Main Page">link</a>]
16316 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">link</a>]</p>
16320 Bug 2095: link with pipe and three closing brackets, version 2
16322 [[Main Page|[http://example.com/]]]
16324 <p><a href="/wiki/Main_Page" title="Main Page">[http://example.com/]</a>
16327 <p><a rel="mw:WikiLink" href="./Main_Page" title="Main Page">[http://example.com/]</a></p>
16336 Template:Dangerous attribute
16338 " onmouseover="alert(document.cookie)
16342 Template:Dangerous style attribute
16344 border-size: expression(alert(document.cookie))
16350 <div style="float: right; {{{1}}}">Magic div</div>
16354 Bug 2304: HTML attribute safety (safe template; regression bug 2309)
16356 <div title="{{test}}"></div>
16358 <div title="This is a test template"></div>
16362 # Parsoid has enough context to handle this case
16364 Bug 2304: HTML attribute safety (dangerous template; 2309)
16366 <div title="{{dangerous attribute}}"></div>
16368 <div title=""></div>
16371 <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='{\"pi\":[[]],\"dsr\":[12,35,null,null]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"dangerous attribute\",\"href\":\"./Template:Dangerous_attribute\"},\"params\":{},\"i\":0}}]}'>\" onmouseover=\"alert(document.cookie)</span>"}]]}'></div>
16375 Bug 2304: HTML attribute safety (dangerous style template; 2309)
16377 <div style="{{dangerous style attribute}}"></div>
16379 <div style="/* insecure input */"></div>
16384 Bug 2304: HTML attribute safety (safe parameter; 2309)
16386 {{div style|width: 200px}}
16388 <div style="float: right; width: 200px">Magic div</div>
16393 Bug 2304: HTML attribute safety (unsafe parameter; 2309)
16395 {{div style|width: expression(alert(document.cookie))}}
16397 <div style="/* insecure input */">Magic div</div>
16402 Bug 2304: HTML attribute safety (unsafe breakout parameter; 2309)
16404 {{div style|"><script>alert(document.cookie)</script>}}
16406 <div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div>
16411 Bug 2304: HTML attribute safety (unsafe breakout parameter 2; 2309)
16413 {{div style|" ><script>alert(document.cookie)</script>}}
16415 <div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div>
16420 Bug 2304: HTML attribute safety (link)
16422 <div title="[[Main Page]]"></div>
16424 <div title="[[Main Page]]"></div>
16429 Bug 2304: HTML attribute safety (italics)
16431 <div title="''foobar''"></div>
16433 <div title="''foobar''"></div>
16438 Bug 2304: HTML attribute safety (bold)
16440 <div title="'''foobar'''"></div>
16442 <div title="'''foobar'''"></div>
16448 Bug 2304: HTML attribute safety (ISBN)
16450 <div title="ISBN 1234567890"></div>
16452 <div title="ISBN 1234567890"></div>
16457 Bug 2304: HTML attribute safety (RFC)
16459 <div title="RFC 1234"></div>
16461 <div title="RFC 1234"></div>
16466 Bug 2304: HTML attribute safety (PMID)
16468 <div title="PMID 1234567890"></div>
16470 <div title="PMID 1234567890"></div>
16475 Bug 2304: HTML attribute safety (web link)
16477 <div title="http://example.com/"></div>
16479 <div title="http://example.com/"></div>
16484 Bug 2304: HTML attribute safety (named web link)
16486 <div title="[http://example.com/ link]"></div>
16488 <div title="[http://example.com/ link]"></div>
16493 Bug 3244: HTML attribute safety (extension; safe)
16495 <div style="<nowiki>background:blue</nowiki>"></div>
16497 <div style="background:blue"></div>
16502 Bug 3244: HTML attribute safety (extension; unsafe)
16504 <div style="<nowiki>border-left:expression(alert(document.cookie))</nowiki>"></div>
16506 <div style="/* insecure input */"></div>
16510 # More MSIE fun discovered by Tom Gilder
16513 MSIE CSS safety test: spurious slash
16515 <div style="background-image:u\rl(javascript:alert('boo'))">evil</div>
16517 <div style="/* insecure input */">evil</div>
16522 MSIE CSS safety test: hex code
16524 <div style="background-image:u\72l(javascript:alert('boo'))">evil</div>
16526 <div style="/* insecure input */">evil</div>
16531 MSIE CSS safety test: comment in url
16533 <div style="background-image:u/**/rl(javascript:alert('boo'))">evil</div>
16535 <div style="background-image:u rl(javascript:alert('boo'))">evil</div>
16540 MSIE CSS safety test: comment in expression
16542 <div style="background-image:expres/**/sion(alert('boo4'))">evil4</div>
16544 <div style="background-image:expres sion(alert('boo4'))">evil4</div>
16549 CSS safety test (all browsers): vertical tab (bug 55332 / CVE-2013-4567)
16551 <p style="font-size: 100px; background-image:url\b(https://www.google.com/images/srpr/logo6w.png)">A</p>
16553 <p style="/* invalid control char */">A</p>
16558 MSIE 6 CSS safety test: Fullwidth (bug 55332)
16560 <p style="font-size: 100px; color: expression((title='XSSed'),'red')">A</p>
16561 <div style="top:EXPRESSION(alert())">B</div>
16563 <p style="/* insecure input */">A</p>
16564 <div style="/* insecure input */">B</div>
16569 MSIE 6 CSS safety test: IPA extensions (bug 55332)
16571 <div style="background-image:uʀʟ(javascript:alert())">A</div>
16572 <p style="font-size: 100px; color: expʀessɪoɴ((title='XSSed'),'red')">B</p>
16574 <div style="/* insecure input */">A</div>
16575 <p style="/* insecure input */">B</p>
16580 MSIE 6 CSS safety test: sup/sub script (bug 55332)
16582 <div style="background-image:url⁽javascript:alert())">A</div>
16583 <div style="background-image:url₍javascript:alert())">B</div>
16584 <p style="font-size: 100px; color: expressioⁿ((title='XSSed'),'red')">C</p>
16586 <div style="/* insecure input */">A</div>
16587 <div style="/* insecure input */">B</div>
16588 <p style="/* insecure input */">C</p>
16592 # FIXME: Parsoid fails to sanitize this! See T58846.
16597 title="data:text/html,<img src=1 onerror=alert(1)>"
16598 style="-o-link:attr(title);-o-link-source:current">X</div>
16600 <div title="data:text/html,<img src=1 onerror=alert(1)>" style="/* insecure input */">X</div>
16605 MSIE 6 CSS safety test: Repetition markers (bug 55332)
16607 <p style="font-size: 100px; color: expres〱ion((title='XSSed'),'red')">A</p>
16608 <p style="font-size: 100px; color: expresゝion((title='XSSed'),'red')">B</p>
16609 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">C</p>
16610 <p style="font-size: 100px; color: expresヽion((title='XSSed'),'red')">D</p>
16611 <p style="font-size: 100px; color: expresﹽion((title='XSSed'),'red')">E</p>
16612 <p style="font-size: 100px; color: expresﹼion((title='XSSed'),'red')">F</p>
16613 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">G</p>
16615 <p style="/* insecure input */">A</p>
16616 <p style="/* insecure input */">B</p>
16617 <p style="/* insecure input */">C</p>
16618 <p style="/* insecure input */">D</p>
16619 <p style="/* insecure input */">E</p>
16620 <p style="/* insecure input */">F</p>
16621 <p style="/* insecure input */">G</p>
16626 Table attribute legitimate extension
16629 !+ style="<nowiki>color:blue</nowiki>"| status
16634 <th style="color:blue"> status
16640 Table attribute safety
16643 !+ style="<nowiki>border-width:expression(0+alert(document.cookie))</nowiki>"| status
16648 <th style="/* insecure input */"> status
16654 CSS line continuation 1
16656 <div style="background-image: u\ rl(test.jpg);"></div>
16658 <div style="/* insecure input */"></div>
16663 CSS line continuation 2
16665 <div style="background-image: u\ rl(test.jpg); "></div>
16667 <div style="/* invalid control char */"></div>
16678 Expansion of multi-line templates in attribute values (bug 6255)
16680 <div style="background: {{identity|#00FF00}}">-</div>
16682 <div style="background: #00FF00">-</div>
16688 Expansion of multi-line templates in attribute values (bug 6255 sanity check)
16690 <div style="background:
16693 <div style="background: #00FF00">-</div>
16696 <div style="background:
16701 Expansion of multi-line templates in attribute values (bug 6255 sanity check 2)
16703 <div style="background: #00FF00">-</div>
16705 <div style="background: #00FF00">-</div>
16710 evil <math>-wiki-tags without Extension:Math enabled
16712 <math><img src="some evil external link"><script>some_evil_javascript();</script></math>
16714 <p><math><img src="some evil external link"><script>some_evil_javascript();</script></math></p>
16718 ### Parser hooks (see tests/parser/parserTestsParserHook.php for the <tag> extension)
16721 Parser hook: empty input
16732 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":""}}' data-parsoid='{}' about="#mwt2"></pre>
16735 ## Don't expect parsoid to rt this form.
16737 Parser hook: empty input using terminated empty elements
16739 parsoid=wt2html,html2html
16750 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":null}' data-parsoid='{}' about="#mwt2"></pre>
16754 Parser hook: empty input using terminated empty elements (space before)
16765 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":null}' data-parsoid='{}' about="#mwt2"></pre>
16769 Parser hook: basic input
16780 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"input"}}' data-parsoid='{}' about="#mwt2"></pre>
16783 ## Don't expect parsoid to rt this form.
16785 Parser hook: case insensitive
16787 parsoid=wt2html,html2html
16798 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"input"}}' data-parsoid='{}' about="#mwt2"></pre>
16801 ## Don't expect parsoid to rt this form.
16803 Parser hook: case insensitive, redux
16805 parsoid=wt2html,html2html
16816 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"input"}}' data-parsoid='{}' about="#mwt2"></pre>
16820 Parser hook: nested tags
16822 <tag><tag></tag></tag>
16831 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"<tag>"}}' data-parsoid='{}' about="#mwt2"></pre></tag>
16835 Parser hook: basic arguments
16837 <tag width="200" height="100" depth="50" square=""></tag>
16850 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"width":"200","height":"100","depth":"50","square":""},"body":{"extsrc":""}}' data-parsoid='{}' about="#mwt2"></pre>
16853 ## Don't expect parsoid to rt this form.
16855 Parser hook: basic arguments, variations
16857 parsoid=wt2html,html2html
16859 <tag width=200 height = "100" depth = '50' square></tag>
16872 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"width":"200","height":"100","depth":"50","square":""},"body":{"extsrc":""}}' data-parsoid='{}' about="#mwt2"></pre>
16876 Parser hook: argument containing a forward slash (bug 5344)
16878 <tag filename="/tmp/bla"></tag>
16883 'filename' => '/tmp/bla',
16888 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"filename":"/tmp/bla"},"body":{"extsrc":""}}' data-parsoid='{}' about="#mwt2"></pre>
16891 ## Don't expect parsoid to rt this form.
16893 Parser hook: empty input using terminated empty elements (bug 2374)
16895 parsoid=wt2html,html2html
16907 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"foo":"bar"},"body":null}' data-parsoid='{}' about="#mwt2"></pre>text
16910 ## </tag> should be output literally since there is no matching tag that begins it
16911 ## Don't expect parsoid to rt this form.
16913 Parser hook: basic arguments using terminated empty elements (bug 2374)
16917 <tag width=200 height = "100" depth = '50' square/>
16934 <pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"width":"200","height":"100","depth":"50","square":""},"body":null}' about="#mwt2"></pre><p>other stuff
16938 ## Don't expect parsoid to rt this form.
16940 Parser hook: Don't allow unclosed extension tags
16946 this is a '''test'''
16948 <p>test <tag>123
16949 </p><p>this is a <b>test</b>
16952 <p>test <tag>123</p>
16954 <p>this is a <b>test</b></p>
16958 ### (see tests/parser/parserTestsParserHook.php for the <statictag> extension)
16962 Parser hook: static parser hook not inside a comment
16964 <statictag>hello, world</statictag>
16966 <statictag action="flush" />
16972 <p><span typeof="mw:Extension/statictag" data-mw='{"name":"statictag","attrs":{},"body":{"extsrc":"hello, world"}}' data-parsoid='{}' about="#mwt2"></span></p>
16973 <p typeof="mw:Extension/statictag" data-mw='{"name":"statictag","attrs":{"action":"flush"},"body":null}' data-parsoid='{}' about="#mwt4">hello, world</p>
16977 Parser hook: static parser hook inside a comment
16979 <!-- <statictag>hello, world</statictag> -->
16980 <statictag action="flush" />
16985 <!-- <statictag>hello, world</statictag> -->
16986 <p typeof="mw:Extension/statictag" data-mw='{"name":"statictag","attrs":{"action":"flush"},"body":null}' data-parsoid='{}' about="#mwt2"></p>
16989 # Nested template calls; this case was broken by Parser.php rev 1.506,
16993 Template:One-parameter
16995 (My parameter is: {{{1}}})
16999 Template:Map-one-parameter
17001 {{{{{1}}}|{{{2}}}}}
17005 Nested template calls
17007 {{Map-one-parameter|One-parameter|param}}
17009 <p>(My parameter is: param)
17018 # HTML+Tidy effectively strips out the empty tags completely
17019 # But since Parsoid doesn't it wraps the <s></s> tags in p-tags
17020 # which Tidy would have done for the PHP parser had there been content inside it.
17022 Sanitizer: Closing of open tags
17024 <s></s><table></table>
17026 <s></s><table></table>
17029 <p><s></s></p><table></table>
17033 Sanitizer: Closing of open but not closed tags
17042 Sanitizer: Closing of closed but not open tags
17052 Sanitizer: Closing of closed but not open table tags
17056 Table not started</td></tr></table>
17058 <p>Table not started</p>
17060 <p>Table not started</p>
17064 Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=""
17066 <span id="æ: v">byte</span>[[#æ: v|backlink]]
17068 <p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a>
17072 # In HTML5, the restrictions are that id must contain at least one character,
17073 # and must not contain any space characters.
17075 Sanitizer: Validating the contents of the id attribute (bug 4515)
17079 <br id="" /><br id="a space" />
17084 # In HTML5, id must be unique amongst all the ids in the element's home subtree.
17086 Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301)
17090 <br id="foo" /><br id="foo" />
17092 Something need to be done. foo-2 ?
17096 Sanitizer: Validating that <meta> and <link> work, but only for Microdata
17099 <meta itemprop="hello" content="world">
17100 <meta http-equiv="refresh" content="5">
17101 <meta itemprop="hello" http-equiv="refresh" content="5">
17102 <link itemprop="hello" href="{{SERVER}}">
17103 <link rel="stylesheet" href="{{SERVER}}">
17104 <link rel="stylesheet" itemprop="hello" href="{{SERVER}}">
17108 <p> <meta itemprop="hello" content="world" />
17109 <meta http-equiv="refresh" content="5">
17110 <meta itemprop="hello" content="5" />
17112 <link itemprop="hello" href="http://example.org" />
17113 <link rel="stylesheet" href="<a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>">
17114 <link itemprop="hello" href="http://example.org" />
17120 Language converter: output gets cut off unexpectedly (bug 5757)
17124 this bit is safe: }-
17126 but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}-
17128 then we get cut off here: }-
17130 all additional text is vanished
17132 <p>this bit is safe: }-
17133 </p><p>but if we add a conversion instance: xxx
17134 </p><p>then we get cut off here: }-
17135 </p><p>all additional text is vanished
17140 Self closed html pairs (bug 5487)
17143 <center><font id="bug" />Centered text</center>
17144 <div><font id="bug2" />In div text</div>
17146 <center><font id="bug" />Centered text</center>
17147 <div><font id="bug2" />In div text</div>
17156 Punctuation: nbsp before exclamation
17160 <p>C'est grave !
17165 Punctuation: CSS !important (bug 11874)
17167 <div style="width:50% !important">important</div>
17169 <div style="width:50% !important">important</div>
17174 Punctuation: CSS ! important (bug 11874; with space after)
17176 <div style="width:50% ! important">important</div>
17178 <div style="width:50% ! important">important</div>
17183 HTML bullet list, closed tags (bug 5497)
17196 <ul data-parsoid='{"stx":"html"}'>
17197 <li data-parsoid='{"stx":"html"}'>One</li>
17198 <li data-parsoid='{"stx":"html"}'>Two</li>
17204 HTML bullet list, unclosed tags (bug 5497)
17216 <ul data-parsoid='{"stx":"html"}'>
17217 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
17218 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
17224 HTML ordered list, closed tags (bug 5497)
17237 <ol data-parsoid='{"stx":"html"}'>
17238 <li data-parsoid='{"stx":"html"}'>One</li>
17239 <li data-parsoid='{"stx":"html"}'>Two</li>
17245 HTML ordered list, unclosed tags (bug 5497)
17258 <ol data-parsoid='{"stx":"html"}'>
17259 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>One</li>
17260 <li data-parsoid='{"stx":"html","autoInsertedEnd":true}'>Two</li>
17266 HTML nested bullet list, closed tags (bug 5497)
17289 <ul data-parsoid='{"stx":"html"}'>
17290 <li data-parsoid='{"stx":"html"}'>One</li>
17291 <li data-parsoid='{"stx":"html"}'>Two:
17292 <ul data-parsoid='{"stx":"html"}'>
17293 <li data-parsoid='{"stx":"html"}'>Sub-one</li>
17294 <li data-parsoid='{"stx":"html"}'>Sub-two</li>
17301 HTML nested bullet list, open tags (bug 5497)
17338 HTML nested ordered list, closed tags (bug 5497)
17363 HTML nested ordered list, open tags (bug 5497)
17400 HTML ordered list item with parameters oddity
17402 <ol><li id="fragment">One</li>
17405 <ol><li id="fragment">One</li>
17410 # parsoid doesn't explicitly mark autonumbered links, see bug 53505
17412 bug 5918: autonumbering
17414 [http://first/] [http://second] [ftp://ftp]
17418 [mailto:enclosed@mail.tld With target]
17420 [mailto:enclosed@mail.tld]
17422 mailto:inline@mail.tld
17424 <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>
17425 </p><p><a rel="nofollow" class="external free" href="ftp://inlineftp">ftp://inlineftp</a>
17426 </p><p><a rel="nofollow" class="external text" href="mailto:enclosed@mail.tld">With target</a>
17427 </p><p><a rel="nofollow" class="external autonumber" href="mailto:enclosed@mail.tld">[4]</a>
17428 </p><p><a rel="nofollow" class="external free" href="mailto:inline@mail.tld">mailto:inline@mail.tld</a>
17431 <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>
17432 <p><a rel="mw:ExtLink" href="ftp://inlineftp">ftp://inlineftp</a></p>
17433 <p><a rel="mw:ExtLink" href="mailto:enclosed@mail.tld">With target</a></p>
17434 <p><a rel="mw:ExtLink" href="mailto:enclosed@mail.tld"></a></p>
17435 <p><a rel="mw:ExtLink" href="mailto:inline@mail.tld">mailto:inline@mail.tld</a></p>
17440 # Security and HTML correctness
17441 # From Nick Jenkins' fuzz testing
17445 Fuzz testing: Parser13
17460 Fuzz testing: Parser14
17465 <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>
17466 http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
17468 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
17474 <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>
17476 <div id="toc" class="toc">
17477 <div id="toctitle">
17481 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
17488 Fuzz testing: Parser14-table
17490 parsoid=wt2html,html2html
17495 <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>
17496 <table style="__TOC__">
17501 <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>
17502 <table style="__TOC__">
17509 <table style="__TOC__"></table>
17512 # Known to produce bogus xml (extra </td>)
17514 Fuzz testing: Parser16
17541 Fuzz testing: Parser21
17544 ! irc://{{ftp://a" onmouseover="alert('hello world');"
17549 <th> <a rel="nofollow" class="external free" href="irc://{{ftp://a">irc://{{ftp://a</a>" onmouseover="alert('hello world');"
17559 Fuzz testing: Parser22
17561 http://===r:::https://b
17565 <p><a rel="nofollow" class="external free" href="http://===r:::https://b">http://===r:::https://b</a>
17573 # Known to produce bad XML for now
17575 Fuzz testing: Parser24
17580 | {{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--><noinclude>}}}} >
17581 <br style="onmouseover='alert(document.cookie);' " />
17583 MOVE YOUR MOUSE CURSOR OVER THIS TEXT
17588 <u class="|">}}}} >
17589 <br style="onmouseover='alert(document.cookie);'" />
17591 MOVE YOUR MOUSE CURSOR OVER THIS TEXT
17600 # Note: the current result listed for this is not what the original one was,
17601 # but the original bug was JavaScript injection, which is fixed in any case.
17602 # It's not clear that the original result listed was any more correct than the
17603 # current one. Original result:
17606 # <li class="||">
17607 # }}}blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
17609 Fuzz testing: Parser25 (bug 6055)
17615 }}}blah" onmouseover="alert('hello world');" align="left"'''MOVE MOUSE CURSOR OVER HERE
17617 <p><LI CLASS=blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
17622 Fuzz testing: URL adjacent extension (with space, clean)
17624 http://example.com <nowiki>junk</nowiki>
17626 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> junk
17629 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a> <span typeof="mw:Nowiki">junk</span></p>
17633 Fuzz testing: URL adjacent extension (no space, dirty; nowiki)
17635 http://example.com<nowiki>junk</nowiki>
17637 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>junk
17640 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a><span typeof="mw:Nowiki">junk</span></p>
17644 Fuzz testing: URL adjacent extension (no space, dirty; pre)
17646 http://example.com<pre>junk</pre>
17648 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre>
17651 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></p>
17656 <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>
17660 Fuzz testing: image with bogus manual thumbnail
17662 [[Image:foobar.jpg|thumbnail= ]]
17664 <div class="thumb tright"><div class="thumbinner" style="width:182px;">Error creating thumbnail: <div class="thumbcaption"></div></div></div>
17667 <figure class="mw-default-size" typeof="mw:Error mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"manualthumb","ak":"thumbnail= "}]}' 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":{}}'><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>
17671 Fuzz testing: encoded newline in generated HTML replacements (bug 6577)
17673 <pre dir=" "></pre>
17675 <pre dir=" "></pre>
17680 Parsing optional HTML elements (Bug 6171)
17685 <td> Some tabular data</td>
17686 <td> More tabular data ...
17687 <td> And yet som tabular data</td>
17693 <td> Some tabular data</td>
17694 <td> More tabular data ...
17695 </td><td> And yet som tabular data</td>
17702 Correct handling of <td>, <tr> (Bug 6171)
17707 <td> Some tabular data</td>
17708 <td> More tabular data ...</td>
17709 <td> And yet som tabular data</td>
17715 <td> Some tabular data</td>
17716 <td> More tabular data ...</td>
17717 <td> And yet som tabular data</td>
17725 Parsing crashing regression (fr:JavaScript)
17729 <p></body></x>
17734 Inline wiki vs wiki block nesting
17740 <p><b>Bold paragraph</b>
17741 </p><p>New wiki paragraph
17745 # FIXME: The current php output is documented
17746 # and desired output is the parsoid target.
17748 Inline HTML vs wiki block nesting
17754 <p><b>Bold paragraph
17755 </p><p>New wiki paragraph</b>
17758 <p><b>Bold paragraph</b>
17759 </p><p>New wiki paragraph
17763 # Original result was this:
17764 # <p><b>bold</b><b>bold<i>bolditalics</i></b>
17766 # While that might be marginally more intuitive, maybe, the six-apostrophe
17767 # construct is clearly pathological and the result stated here (which is what
17768 # the parser actually does) is about as reasonable as anything.
17770 Mixing markup for italics and bold
17773 '''bold''''''bold''bolditalics'''''
17775 <p>'<i>bold'</i><b>bold<i>bolditalics</i></b>
17783 Article for special page transclusion test
17787 Special page transclusion
17790 {{Special:Prefixindex/Xyzzyx}}
17792 <ul class="mw-prefixindex-list"><li><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></li>
17798 Special page transclusion twice (bug 5021)
17801 {{Special:Prefixindex/Xyzzyx}}
17802 {{Special:Prefixindex/Xyzzyx}}
17804 <ul class="mw-prefixindex-list"><li><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></li>
17806 <ul class="mw-prefixindex-list"><li><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></li>
17812 Transclusion of default MediaWiki message
17814 {{MediaWiki:Mainpage}}
17821 Transclusion of nonexistent MediaWiki message
17823 {{MediaWiki:Mainpagexxx}}
17825 <p><a href="/index.php?title=MediaWiki:Mainpagexxx&action=edit&redlink=1" class="new" title="MediaWiki:Mainpagexxx (page does not exist)">MediaWiki:Mainpagexxx</a>
17830 Transclusion of MediaWiki message with underscore
17832 {{MediaWiki:history_short}}
17839 Transclusion of MediaWiki message with space
17841 {{MediaWiki:history short}}
17848 Invalid header with following text
17858 Section extraction test (section 0)
17878 Section extraction test (section 1)
17900 Section extraction test (section 2)
17921 Section extraction test (section 3)
17941 Section extraction test (section 4)
17965 Section extraction test (section 5)
17985 Section extraction test (section 6)
18006 Section extraction test (section 7)
18026 Section extraction test (section 8)
18046 Section extraction test (section 9)
18067 Section extraction test (section 10)
18087 Section extraction test (nonexistent section 11)
18106 Section extraction test with bogus heading (section 1)
18111 ==bogus== not a legal section
18115 ==bogus== not a legal section
18119 Section extraction test with bogus heading (section 2)
18124 ==bogus== not a legal section
18131 Section extraction test with comment after heading (section 1)
18143 Section extraction test with comment after heading (section 2)
18155 Section extraction test with bogus <nowiki> heading (section 1)
18160 ==bogus== <nowiki>not a legal section</nowiki>
18164 ==bogus== <nowiki>not a legal section</nowiki>
18168 Section extraction test with bogus <nowiki> heading (section 2)
18173 ==bogus== <nowiki>not a legal section</nowiki>
18179 # Formerly testing for bug 2587, now resolved by the use of unmarked sections
18180 # instead of respecting commented sections
18182 Section extraction prefixed by comment (section 1)
18193 Section extraction prefixed by comment (section 2)
18203 # Formerly testing for bug 2607, now resolved by the use of unmarked sections
18204 # instead of respecting HTML-style headings
18206 Section extraction, mixed wiki and html (section 1)
18222 Section extraction, mixed wiki and html (section 2)
18238 # Formerly testing for bug 3342
18240 Section extraction, heading surrounded by <noinclude>
18244 <noinclude>==unmarked==</noinclude>
18250 # Test behavior of bug 19910
18252 Sectiion with all-equals
18257 The line above must have a trailing space
18260 But just in case it doesn't...
18264 But just in case it doesn't...
18268 Section replacement test (section 0)
18299 Section replacement test (section 1)
18328 Section replacement test (section 2)
18358 Section replacement test (section 3)
18389 Section replacement test (section 4)
18416 Section replacement test (section 5)
18447 Section replacement test (section 6)
18477 Section replacement test (section 7)
18508 Section replacement test (section 8)
18539 Section replacement test (section 9)
18568 Section replacement test (section 10)
18598 Section replacement test with initial whitespace (bug 13728)
18602 Preformatted initial line
18606 Preformatted initial line
18613 Section extraction, heading followed by pre with 20 spaces (bug 6398)
18625 Section extraction, heading followed by pre with 19 spaces (bug 6398 sanity check)
18638 Section extraction, <pre> around bogus header (bug 10309)
18655 Section replacement, <pre> around bogus header (bug 10309)
18677 Handling of 
 in URLs
18681 <ul><li><ul><li> <a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
18684 <ul><li><ul><li> <a rel="mw:ExtLink" href="irc://
18686 a</a></li></ul></li></ul>
18690 Handling of %0A in URLs
18694 <ul><li><ul><li> <a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
18697 <ul><li><ul><li> <a rel="mw:ExtLink" href="irc://%0Aa">irc://%0Aa</a></li></ul></li></ul>
18701 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
18703 5 quotes, code coverage +1 line
18710 <p><b><i></i></b></p>
18713 # same html as previous, but wikitext adjusted to match parsoid html2wt
18714 # note that wt2html and html2html will put the <i> before the <b>
18716 5 quotes, code coverage +1 line w/ nowiki (1)
18718 parsoid=wt2wt,html2wt
18720 '''''<nowiki/>'''''
18725 <p><b><i></i></b></p>
18728 # same as previous, just swapping the <i> and <b>
18730 5 quotes, code coverage +1 line w/ nowiki (2)
18732 '''''<nowiki/>'''''
18737 <p><i><b></b></i></p>
18741 Special:Search page linking.
18745 <p><a href="/wiki/Special:Search" title="Special:Search">Special:Search</a>
18750 {{!}} is a magic word
18752 {{!}} is a magic word there and {{!}} is still a magic word here
18753 | is not a magic word here but {{!}} is still a magic word here
18755 <p>| is a magic word there and | is still a magic word here
18756 | is not a magic word here but | is still a magic word here
18759 <p><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}'>|</span> is a magic word there and <span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}'>|</span> is still a magic word here
18760 | is not a magic word here but <span about="#mwt3" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"!","href":"./Template:!"},"params":{},"i":0}}]}'>|</span> is still a magic word here</p>
18767 title=[[Parser test]]
18772 * {{FULLPAGENAMEE}}
18774 * {{BASEPAGENAMEE}}
18778 * {{ROOTPAGENAMEE}}
18780 * {{TALKPAGENAMEE}}
18781 * {{SUBJECTPAGENAME}}
18782 * {{SUBJECTPAGENAMEE}}
18785 * {{NAMESPACENUMBER}}
18789 * {{SUBJECTSPACEE}}
18790 * {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}}
18792 <ul><li> Parser test</li>
18793 <li> Parser_test</li>
18794 <li> Parser test</li>
18795 <li> Parser_test</li>
18796 <li> Parser test</li>
18797 <li> Parser_test</li>
18798 <li> Parser test</li>
18799 <li> Parser_test</li>
18800 <li> Parser test</li>
18801 <li> Parser_test</li>
18802 <li> Talk:Parser test</li>
18803 <li> Talk:Parser_test</li>
18804 <li> Parser test</li>
18805 <li> Parser_test</li>
18813 <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>
18816 ### Note: Above tests excludes the "{{NUMBEROFADMINS}}" magic word because it generates a MySQL error when included.
18826 image4 |300px| centre
18827 image5.svg| http://///////
18832 <ul class="gallery mw-gallery-traditional">
18833 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18834 <div class="thumb" style="height: 150px;">Image1.png</div>
18835 <div class="gallerytext">
18838 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18839 <div class="thumb" style="height: 150px;">Image2.gif</div>
18840 <div class="gallerytext">
18843 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18844 <div class="thumb" style="height: 150px;">Image3</div>
18845 <div class="gallerytext">
18848 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18849 <div class="thumb" style="height: 150px;">Image4</div>
18850 <div class="gallerytext">
18855 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18856 <div class="thumb" style="height: 150px;">Image5.svg</div>
18857 <div class="gallerytext">
18858 <p><a rel="nofollow" class="external free" href="http://///////">http://///////</a>
18862 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18863 <div class="thumb" style="height: 150px;">* image6</div>
18864 <div class="gallerytext">
18872 Gallery (with options)
18874 <gallery widths='70px' heights='40px' perrow='2' caption='Foo [[Main Page]]' >
18875 File:Nonexistent.jpg|caption
18876 File:Nonexistent.jpg
18877 image:foobar.jpg|some '''caption''' [[Main Page]]
18879 image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
18882 <ul class="gallery mw-gallery-traditional" style="max-width: 226px;_width: 226px;">
18883 <li class='gallerycaption'>Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></li>
18884 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18885 <div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
18886 <div class="gallerytext">
18891 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18892 <div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
18893 <div class="gallerytext">
18896 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18897 <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>
18898 <div class="gallerytext">
18899 <p>some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
18903 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18904 <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>
18905 <div class="gallerytext">
18908 <li class="gallerybox" style="width: 105px"><div style="width: 105px">
18909 <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>
18910 <div class="gallerytext">
18920 Gallery with link that has fragment
18923 image:foobar.jpg|link=Main_Page
18924 image:foobar.jpg|link=Main_Page#section
18925 image:foobar.jpg|link=Main Page#section|caption
18928 <ul class="gallery mw-gallery-traditional">
18929 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18930 <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>
18931 <div class="gallerytext">
18934 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18935 <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>
18936 <div class="gallerytext">
18939 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18940 <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>
18941 <div class="gallerytext">
18951 Gallery with wikitext inside caption
18954 File:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=inneralt]]|alt=galleryalt
18955 File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt
18958 <ul class="gallery mw-gallery-traditional">
18959 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18960 <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>
18961 <div class="gallerytext">
18962 <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>
18966 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18967 <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>
18968 <div class="gallerytext">
18969 <p>This is a test template
18978 gallery (with showfilename option)
18980 <gallery showfilename>
18981 File:Nonexistent.jpg|caption
18982 File:Nonexistent.jpg
18983 image:foobar.jpg|some '''caption''' [[Main Page]]
18987 <ul class="gallery mw-gallery-traditional">
18988 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18989 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18990 <div class="gallerytext">
18991 <p><a href="/wiki/File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">Nonexistent.jpg</a>
18996 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
18997 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
18998 <div class="gallerytext">
18999 <p><a href="/wiki/File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">Nonexistent.jpg</a>
19003 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19004 <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>
19005 <div class="gallerytext">
19006 <p><a href="/wiki/File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">Foobar.jpg</a>
19007 some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
19011 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19012 <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>
19013 <div class="gallerytext">
19014 <p><a href="/wiki/File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">Foobar.jpg</a>
19023 Gallery (with namespace-less filenames)
19026 File:Nonexistent.jpg
19032 <ul class="gallery mw-gallery-traditional">
19033 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19034 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
19035 <div class="gallerytext">
19038 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19039 <div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
19040 <div class="gallerytext">
19043 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19044 <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>
19045 <div class="gallerytext">
19048 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
19049 <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>
19050 <div class="gallerytext">
19058 HTML Hex character encoding (spells the word "JavaScript")
19060 parsoid=wt2html,wt2wt,html2html
19062 JavaScript
19064 <p>JavaScript
19069 <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>
19073 HTML Hex character encoding bogus encoding (bug 26437 regression check)
19077 <p>&#xsee;&#XSEE;
19080 <p>&#xsee;&#XSEE;</p>
19084 HTML Hex character encoding mixed case
19086 parsoid=wt2html,wt2wt,html2html
19095 <p><span typeof="mw:Entity">î</span><span typeof="mw:Entity">î</span></p>
19098 # See: http://www.w3.org/TR/html5/syntax.html#character-references
19099 # Note that U+000C (form feed) is not a valid XML character, so
19100 # it is banned even though allowed in HTML5.
19102 Illegal character references (T106578)
19107 ; Control (low): 
19108 ; Control (high):  Ÿ
19109 ; Surrogate: ��
19110 ; This is an okay astral character: 💩
19119 <dt>Control (low)</dt>
19121 <dt>Control (high)</dt>
19122 <dd>&#x7F; &#x9F;</dd>
19124 <dd>&#xD83D;&#xDCA9;</dd>
19125 <dt>This is an okay astral character</dt>
19131 __FORCETOC__ override
19143 ISBN 978-0-1234-56 789
19145 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789
19148 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789</p>
19150 <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>
19154 ISBN followed by 5 spaces
19165 ISBN ISBN 1234567890
19167 <p>ISBN <a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
19170 <p>ISBN <a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a></p>
19173 # Uppercase X and lowercase x as well
19184 <p><a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-X</a>
19185 <a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-x</a>
19186 <a href="/wiki/Special:BookSources/080442957X" class="internal mw-magiclink-isbn">ISBN 080442957X</a>
19187 <a href="/wiki/Special:BookSources/080442957X" class="internal mw-magiclink-isbn">ISBN 080442957x</a>
19188 <a href="/wiki/Special:BookSources/978080442957X" class="internal mw-magiclink-isbn">ISBN 978080442957X</a>
19189 <a href="/wiki/Special:BookSources/978080442957X" class="internal mw-magiclink-isbn">ISBN 978080442957x</a>
19192 <p><a href="./Special:BookSources/346204561X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 3-462-04561-X</a>
19193 <a href="./Special:BookSources/346204561X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 3-462-04561-x</a>
19194 <a href="./Special:BookSources/080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 080442957X</a>
19195 <a href="./Special:BookSources/080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 080442957x</a>
19196 <a href="./Special:BookSources/978080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978080442957X</a>
19197 <a href="./Special:BookSources/978080442957X" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 978080442957x</a></p>
19201 ISBN with empty prefix (parsoid test)
19205 <p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
19208 <p><a href="./Special:BookSources/1234567890" rel="mw:WikiLink">ISBN 1234567890</a></p>
19212 Bug 22905: <abbr> followed by ISBN followed by </a>
19214 <abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]
19216 <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>
19219 <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>
19227 <p>RFC <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc1234">RFC 1234</a>
19232 Double RFC with a wiki link
19236 <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>
19245 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987
19248 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987</p>
19252 Centre-aligned image
19254 [[Image:foobar.jpg|centre]]
19256 <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>
19263 [[Image:foobar.jpg|none]]
19265 <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>
19270 Width + Height sized image (using px) (height is ignored)
19272 [[Image:foobar.jpg|640x480px]]
19274 <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>
19279 Width-sized image (using px, no following whitespace)
19281 [[Image:foobar.jpg|640px]]
19283 <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>
19288 Width-sized image (using px, with following whitespace - test regression from r39467)
19290 [[Image:foobar.jpg|640px ]]
19292 <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>
19297 Width-sized image (using px, with preceding whitespace - test regression from r39467)
19299 [[Image:foobar.jpg| 640px]]
19301 <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>
19306 Image with page parameter
19310 [[File:LoremIpsum.djvu|page=2]]
19312 <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>
19315 <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>
19319 Another italics / bold test
19327 # FIXME: The php output seems broken. It's interleaving some open/close tags.
19333 <dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dt></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl>
19336 <dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd></dd></dl></dd></dl></dt></dl></dt></dl></dt></dl></dd></dl>
19341 # Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag.
19343 Images with the "|" character in the comment
19345 [[File:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]]
19347 <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>
19350 <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>
19354 [Before] HTML without raw HTML enabled ($wgRawHtml==false)
19356 <html><script>alert(1);</script></html>
19358 <p><html><script>alert(1);</script></html>
19363 HTML with raw HTML ($wgRawHtml==true)
19367 <html><script>alert(1);</script></html>
19369 <p><script>alert(1);</script>
19374 Parents of subpages, one level up
19376 subpage title=[[Subpage test/L1/L2/L3]]
19380 <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>
19386 Parents of subpages, one level up, not named
19388 subpage title=[[Subpage test/L1/L2/L3]]
19392 <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>
19399 Parents of subpages, two levels up
19401 subpage title=[[Subpage test/L1/L2/L3]]
19407 <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
19408 </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>
19413 Parents of subpages, two levels up, without trailing slash or name.
19415 subpage title=[[Subpage test/L1/L2/L3]]
19424 Parents of subpages, two levels up, with lots of extra trailing slashes.
19426 subpage title=[[Subpage test/L1/L2/L3]]
19430 <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>
19435 Subpage test/L1/L2/L3Sibling
19441 Transclusion of a sibling page (one level up)
19443 subpage title=[[Subpage test/L1/L2/L3]]
19452 Transclusion of a child page
19454 subpage title=[[Subpage test/L1/L2]]
19462 # This is wt2html only in Parsoid because we add <nowiki>
19463 # because of {{..}} and we don't expect to fix that to
19464 # eliminate the nowikis selective for {{..}} markup.
19466 Non-transclusion because of too many up levels
19468 subpage title=[[Subpage test/L1/L2/L3]]
19471 {{../../../../More than parent}}
19473 <p>{{../../../../More than parent}}
19476 <p>{{../../../../More than parent}}</p>
19480 Definition list code coverage
19486 <dl><dt> title  </dt>
19488 <dt> title </dt>
19494 <dl><dt> title <span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
19495 <dt> title<span typeof="mw:Placeholder"> </span></dt><dd> def</dd>
19496 <dt>title</dt><dd> def</dd></dl>
19500 Don't fall for the self-closing div
19502 <div>hello world</div/>
19504 <div>hello world</div>
19513 <p>[[:Template:Msg]]
19522 <p><a href="/index.php?title=Template:QUERTY&action=edit&redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a>
19526 # This isn't needed for XHTML conformance, but would be handy as a fallback security measure
19528 Always escape literal '>' in output, not just after '<'
19542 <p>This is a test template
19543 This is a test template
19555 Inclusion of !userCanEdit() content
19559 <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>
19565 Out-of-order TOC heading levels
19574 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
19576 <li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a>
19578 <li class="toclevel-2 tocsection-2"><a href="#6"><span class="tocnumber">1.1</span> <span class="toctext">6</span></a></li>
19579 <li class="toclevel-2 tocsection-3"><a href="#3"><span class="tocnumber">1.2</span> <span class="toctext">3</span></a></li>
19582 <li class="toclevel-1 tocsection-4"><a href="#1"><span class="tocnumber">2</span> <span class="toctext">1</span></a>
19584 <li class="toclevel-2 tocsection-5"><a href="#5"><span class="tocnumber">2.1</span> <span class="toctext">5</span></a></li>
19585 <li class="toclevel-2 tocsection-6"><a href="#2_2"><span class="tocnumber">2.2</span> <span class="toctext">2</span></a></li>
19591 <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>
19592 <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>
19593 <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>
19594 <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>
19595 <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>
19596 <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>
19602 ISBN with a dummy number
19612 ISBN with space-delimited number
19616 <p><a href="/wiki/Special:BookSources/9290170328" class="internal mw-magiclink-isbn">ISBN 92 9017 032 8</a>
19622 ISBN with multiple spaces, no number
19641 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
19642 </p><p>ISBN 12345678901
19648 ISBN with trailing year (bug 8110)
19650 ISBN 1-234-56789-0 - 2006
19652 ISBN 1 234 56789 0 - 2006
19654 <p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1-234-56789-0</a> - 2006
19655 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1 234 56789 0</a> - 2006
19663 {{anchorencode:foo bar©#%n}}
19665 <p>foo_bar.C2.A9.23.25n
19670 anchorencode trims spaces
19672 {{anchorencode: __pretty__please__}}
19679 anchorencode deals with links
19681 {{anchorencode: [[hello|world]] [[hi]]}}
19688 anchorencode deals with templates
19690 {{anchorencode: {{Foo}} }}
19697 anchorencode encodes like the TOC generator: (bug 18431)
19699 === _ +:.3A%3A&&]] ===
19700 {{anchorencode: _ +:.3A%3A&&]] }}
19703 <h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&&]]</span></h3>
19704 <p>.2B:.3A.253A.26.26.5D.5D
19709 Bug 6200: blockquotes and paragraph formatting
19730 Bug 8293: Use of center tag ruins paragraph formatting
19751 Parsing of overlapping (improperly nested) inline html tags
19753 <span><s>x</span></s>
19755 <p><span><s>x</span></s></span>
19758 <p><span><s>x</s></span>
19763 ### Language variants related tests
19766 Self-link in language variants
19768 title=[[Dunav]] language=sr
19770 Both [[Dunav]] and [[Дунав]] are names for this river.
19772 <p>Both <strong class="selflink">Dunav</strong> and <strong class="selflink">Дунав</strong> are names for this river.
19783 Link to another existing title shouldn't be parsed as self-link even if it's a variant of this title
19785 title=[[Duna]] language=sr
19787 [[Дуна]] is not a self-link while [[Duna]] and [[Dуна]] are still self-links.
19789 <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.
19794 Link to a section of a variant of this title shouldn't be parsed as self-link
19796 title=[[Duna]] language=sr
19798 [[Dуна]] is a self-link while [[Dunа#Foo]] and [[Dуна#Foo]] are not self-links.
19800 <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.
19805 Link to pages in language variants
19809 Main Page can be written as [[Маин Паге]]
19811 <p>Main Page can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>
19817 Multiple links to pages in language variants
19821 [[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]].
19823 <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>.
19829 Simple template in language variants
19835 <p>This is a test template
19841 Template with explicit namespace in language variants
19847 <p>This is a test template
19853 Basic test for template parameter in language variants
19857 {{парамтест|param=foo}}
19859 <p>This is a test template with parameter foo
19865 Simple category in language variants
19869 [[Category:МедиаWики Усер'с Гуиде]]
19871 cat=МедиаWики_Усер'с_Гуиде sort=
19887 ## We used to, but no longer wt2wt this test since the default serializer
19888 ## will normalize all categories to serialize on their own line.
19889 ## This wikitext usage is going to be fairly uncommon in production and
19890 ## selser will take care of preserving formatting in those scenarios.
19892 Don't convert blue categorylinks to another variant (bug 33210)
19898 [[A]][[Category:分类]]
19902 <p><a rel="mw:WikiLink" href="A" title="A">A</a></p>
19903 <link rel="mw:PageProp/Category" href="Category:分类"/>
19907 Stripping -{}- tags (language variants)
19911 Latin proverb: -{Ne nuntium necare}-
19913 <p>Latin proverb: Ne nuntium necare
19919 Prevent conversion with -{}- tags (language variants)
19921 language=sr variant=sr-ec
19923 Latinski: -{Ne nuntium necare}-
19925 <p>Латински: Ne nuntium necare
19931 Prevent conversion of text with -{}- tags (language variants)
19933 language=sr variant=sr-ec
19935 Latinski: -{Ne nuntium necare}-
19937 <p>Латински: Ne nuntium necare
19943 Prevent conversion of links with -{}- tags (language variants)
19945 language=sr variant=sr-ec
19949 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
19955 -{}- tags within headlines (within html for parserConvert())
19957 language=sr variant=sr-ec
19961 <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>
19967 Explicit definition of language variant alternatives
19969 language=zh variant=zh-tw
19971 -{zh:China;zh-tw:Taiwan}-, not China
19973 <p>Taiwan, not China
19979 Conversion around HTML tags
19981 language=sr variant=sr-ec
19983 -{H|span=>sr-ec:script;title=>sr-ec:src;}-
19984 <span title="La-{sr-el:L;sr-ec:C;}-tin">ski</span>
19987 <span title="ЛаCтин">ски</span>
19993 Explicit session-wise language variant mapping (A flag and - flag)
19995 language=zh variant=zh-tw
19997 Taiwan is not China.
19998 But -{A|zh:China;zh-tw:Taiwan}- is China,
19999 (This-{-|zh:China;zh-tw:Taiwan}- should be stripped!)
20000 and -{China}- is China.
20002 <p>Taiwan is not China.
20003 But Taiwan is Taiwan,
20004 (This should be stripped!)
20005 and China is China.
20010 Explicit session-wise language variant mapping (H flag for hide)
20012 language=zh variant=zh-tw
20014 (This-{H|zh:China;zh-tw:Taiwan}- should be stripped!)
20017 <p>(This should be stripped!)
20023 Adding explicit conversion rule for title (T flag)
20025 language=zh variant=zh-tw showtitle
20027 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
20030 <p>Should be stripped!
20035 Testing that changing the language variant here in the tests actually works
20037 language=zh variant=zh showtitle
20039 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
20042 <p>Should be stripped!
20047 Recursive conversion of alt and title attrs shouldn't clear converter state
20049 language=zh variant=zh-cn showtitle
20051 -{H|zh-cn:Exclamation;zh-tw:exclamation;}-
20052 Should be stripped-{T|zh-cn:China;zh-tw:Taiwan}-<span title="exclamation">!</span>
20056 Should be stripped<span title="Exclamation">!</span>
20061 Bug 24072: more test on conversion rule for title
20063 language=zh variant=zh-tw showtitle
20065 This should be stripped-{T|zh:China;zh-tw:Taiwan}-!
20066 This won't take interferes with the title rule-{H|zh:Beijing;zh-tw:Taipei}-.
20069 <p>This should be stripped!
20070 This won't take interferes with the title rule.
20075 Partly disable title conversion if variant == main language code
20077 language=zh variant=zh title=[[ZH]] showtitle
20079 -{T|zh-cn:CN;zh-tw:TW}-
20087 Partly disable title conversion if variant == main language code, more
20089 language=zh variant=zh title=[[ZH]] showtitle
20099 Raw output of variant escape tags (R flag)
20101 language=zh variant=zh-tw
20103 Raw: -{R|zh:China;zh-tw:Taiwan}-
20105 <p>Raw: zh:China;zh-tw:Taiwan
20110 Strings evaluating false shouldn't be ignored by Language converter (T51072)
20112 language=zh variant=zh-cn
20114 -{zh-cn:0;zh-sg:1;zh-tw:2;zh-hk:3}-
20121 Conversion rules from [numeric-only string] to [something else] (T48634)
20123 language=zh variant=zh-cn
20125 -{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
20132 Bidirectional converter rule entries with an empty value should be ignored (T53551)
20134 language=zh variant=zh-cn
20136 -{H|zh-cn:foo;zh-tw:;}-foobar
20143 Unidirectional converter rule entries with an empty "from" string should be ignored (T53551)
20145 language=zh variant=zh-cn
20147 -{H|=>zh-cn:foo;}-foobar
20154 Empty converter rule entries shouldn't be inserted into the conversion table (T53551)
20156 language=zh variant=zh-cn
20165 Nested using of manual convert syntax
20167 language=zh variant=zh-hk
20169 Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-!
20171 <p>Nested: Hello Hong Kong!
20175 # Since Parsoid is starting to emit canonical wikitext for links,
20176 # [http://example.com http://example.com] will not RT back to that
20179 Proper conversion of text in external links
20181 language=sr variant=sr-ec
20184 http://www.google.com
20185 gopher://www.google.com
20186 [http://www.google.com http://www.google.com]
20187 [gopher://www.google.com gopher://www.google.com]
20188 [https://www.google.com irc://www.google.com]
20189 [ftp://www.google.com www.google.com/ftp://dir]
20190 [//www.google.com www.google.com]
20192 <p><a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
20193 <a rel="nofollow" class="external free" href="gopher://www.google.com">gopher://www.google.com</a>
20194 <a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
20195 <a rel="nofollow" class="external free" href="gopher://www.google.com">gopher://www.google.com</a>
20196 <a rel="nofollow" class="external text" href="https://www.google.com">irc://www.google.com</a>
20197 <a rel="nofollow" class="external text" href="ftp://www.google.com">www.гоогле.цом/фтп://дир</a>
20198 <a rel="nofollow" class="external text" href="//www.google.com">www.гоогле.цом</a>
20201 <p><a rel="mw:ExtLink" href="http://www.google.com">http://www.google.com</a>
20202 <a rel="mw:ExtLink" href="gopher://www.google.com">gopher://www.google.com</a>
20203 <a rel="mw:ExtLink" href="http://www.google.com">http://www.google.com</a>
20204 <a rel="mw:ExtLink" href="gopher://www.google.com">gopher://www.google.com</a>
20205 <a rel="mw:ExtLink" href="https://www.google.com">irc://www.google.com</a>
20206 <a rel="mw:ExtLink" href="ftp://www.google.com">www.гоогле.цом/фтп://дир</a>
20207 <a rel="mw:ExtLink" href="//www.google.com">www.гоогле.цом</a></p>
20211 Do not convert roman numbers to language variants
20213 language=sr variant=sr-ec
20217 <p>Фридрих IV је цар.
20222 Unclosed language converter markup "-{"
20233 Don't convert raw rule "-{R|=>}-" to "=>"
20244 Don't break link parsing if language converter markup is in the caption.
20246 language=sr variant=sr-ec
20248 [[Main Page|-{R|main page}-]]
20250 <p><a href="/wiki/Main_Page" title="Маин Паге">main page</a>
20254 # FIXME: This test is currently broken in the PHP parser (bug 52661)
20256 Don't break image parsing if language converter markup is in the caption.
20260 [[File:Foobar.jpg|-{R|caption}-]]
20262 <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>
20266 # FIXME: This test is currently broken in the PHP parser (bug 52661)
20268 Don't break list handling if language converter markup is in the item.
20270 language=zh variant=zh-cn
20272 ;-{zh-cn:AAA;zh-tw:BBB}-
20274 <dl><dt><span class="error">在手动语言转换规则中检测到错误</span></dd></dl>
20281 # FIXME: This test is currently broken in the PHP parser (bug 52661)
20283 Don't break table handling if language converter markup is in the cell.
20285 language=sr variant=sr-ec
20308 Bug 529: Uncovered bullet
20317 # Plain MediaWiki does not remove empty lists, but tidy actually does.
20318 # Templates in Wikipedia rely on this behavior, as tidy has always been
20319 # enabled there. These tests are normally run *without* tidy, so specify the
20320 # full output here.
20321 # To test realistic parsing behavior, apply a tidy-like transformation to both
20322 # the expected output and your parser's output.
20324 Bug 529: Uncovered bullet leaving empty list, normally removed by tidy
20326 ******* Foo {{bullet}}
20328 <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>
20334 Bug 529: Uncovered table already at line-start
20357 Bug 529: Uncovered bullet in parser function result
20359 * Foo {{lc:{{bullet}} }}
20367 Bug 5678: Double-parsed template argument
20369 {{lc:{{{1}}}|hello}}
20376 Bug 5678: Double-parsed template invocation
20378 {{lc:{{paramtest {{!}} param = hello }} }}
20380 <p>{{paramtest | param = hello }}
20385 Case insensitivity of parser functions for non-ASCII characters (bug 8143)
20388 title=[[Main Page]]
20390 {{PRVNÍVELKÉ:ěščř}}
20391 {{prvnívelké:ěščř}}
20411 Morwen/13: Unclosed link followed by heading
20418 <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>
20423 HHP2.1: Heuristics for headings in preprocessor parenthetical structures
20430 <h1><span class="mw-headline" id="heading">heading</span></h1>
20435 HHP2.2: Heuristics for headings in preprocessor parenthetical structures
20442 <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>
20457 Paragraphs inside divs (no extra line breaks)
20469 Paragraphs inside divs (extra line break on open)
20484 Paragraphs inside divs (extra line break on close)
20499 Paragraphs inside divs (extra line break on open and close)
20516 Nesting tags, paragraphs on lines which begin with <div>
20518 <div></div><strong>A
20521 <p><strong>A</strong></p>
20522 <p><strong>B</strong></p>
20530 # Bug 6200: <blockquote> should behave like <div> with respect to line breaks
20532 Bug 6200: paragraphs inside blockquotes (no extra line breaks)
20534 <blockquote>Line one
20536 Line two</blockquote>
20538 <blockquote>Line one
20539 Line two</blockquote>
20543 <p>Line one Line two</p>
20548 Bug 6200: paragraphs inside blockquotes (extra line break on open)
20553 Line two</blockquote>
20558 Line two</blockquote>
20563 Line two</blockquote>
20567 Bug 6200: paragraphs inside blockquotes (extra line break on close)
20569 <blockquote>Line one
20574 <blockquote>Line one
20587 Bug 6200: paragraphs inside blockquotes (extra line break on open and close)
20609 Paragraphs inside blockquotes/divs (no extra line breaks)
20611 <blockquote><div>Line one
20613 Line two</div></blockquote>
20615 <blockquote><div>Line one
20616 Line two</div></blockquote>
20621 Paragraphs inside blockquotes/divs (extra line break on open)
20626 Line two</div></blockquote>
20631 Line two</div></blockquote>
20636 Paragraphs inside blockquotes/divs (extra line break on close)
20638 <blockquote><div>Line one
20641 </div></blockquote>
20643 <blockquote><div>Line one
20646 </div></blockquote>
20651 Paragraphs inside blockquotes/divs (extra line break on open and close)
20657 </div></blockquote>
20663 </div></blockquote>
20668 Interwiki links trounced by replaceExternalLinks after early LinkHolderArray expansion
20670 wgLinkHolderBatchSize=0
20676 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?1" class="extiw" title="meatball:1">meatball:1</a>
20677 <a href="http://www.usemod.com/cgi-bin/mb.pl?2" class="extiw" title="meatball:2">meatball:2</a>
20678 <a href="http://www.usemod.com/cgi-bin/mb.pl?3" class="extiw" title="meatball:3">meatball:3</a>
20683 Free external link invading image caption
20685 [[Image:Foobar.jpg|thumb|http://x|hello]]
20687 <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>
20692 Bug 15196: localised external link numbers
20696 [http://en.wikipedia.org/]
20698 <p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/">[۱]</a>
20701 <p><a rel="mw:ExtLink" href="http://en.wikipedia.org/"></a></p>
20705 Multibyte character in padleft
20707 {{padleft:-Hello|7|Æ}}
20714 Multibyte character in padright
20716 {{padright:Hello-|7|Æ}}
20723 formatdate parser function
20725 {{#formatdate:2009-03-24}}
20727 <p><span class="mw-formatted-date" title="2009-03-24">2009-03-24</span>
20732 formatdate parser function, with default format
20734 {{#formatdate:2009-03-24|mdy}}
20736 <p><span class="mw-formatted-date" title="2009-03-24">March 24, 2009</span>
20741 Spacing of numbers in formatted dates
20743 {{#formatdate:January 15}}
20745 <p><span class="mw-formatted-date" title="01-15">January 15</span>
20750 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
20752 language=nl title=[[MediaWiki:Common.css]]
20754 {{#formatdate:2009-03-24|dmy}}
20756 <p><span class="mw-formatted-date" title="2009-03-24">24 March 2009</span>
20769 Edit comment with link
20773 I like the [[Main Page]] a lot
20775 I like the <a href="/wiki/Main_Page" title="Main Page">Main Page</a> a lot
20779 Edit comment with link and link text
20783 I like the [[Main Page|best pages]] a lot
20785 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
20789 Edit comment with link and link text with suffix
20793 I like the [[Main Page|best page]]s a lot
20795 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
20799 Edit comment with section link (non-local, eg in history list)
20801 comment title=[[Main Page]]
20803 /* External links */ removed bogus entries
20805 <a href="/wiki/Main_Page#External_links" title="Main Page">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
20809 Edit comment with section link and text before it (non-local, eg in history list)
20811 comment title=[[Main Page]]
20813 pre-comment text /* External links */ removed bogus entries
20815 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>
20819 Edit comment with section link (local, eg in diff view)
20821 comment local title=[[Main Page]]
20823 /* External links */ removed bogus entries
20825 <a href="#External_links">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
20829 Edit comment with subpage link (bug 14080)
20833 title=[[Subpage test]]
20835 Poked at a [[/subpage]] here...
20837 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a> here...
20841 Edit comment with subpage link and link text (bug 14080)
20845 title=[[Subpage test]]
20847 Poked at a [[/subpage|neat little page]] here...
20849 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">neat little page</a> here...
20853 Edit comment with bogus subpage link in non-subpage NS (bug 14080)
20856 title=[[Subpage test]]
20858 Poked at a [[/subpage]] here...
20860 Poked at a <a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> here...
20864 Edit comment with bare anchor link (local, as on diff)
20868 title=[[Main Page]]
20872 <a href="#section">#section</a>
20876 Edit comment with bare anchor link (non-local, as on history)
20879 title=[[Main Page]]
20883 <a href="/wiki/Main_Page#section" title="Main Page">#section</a>
20887 Anchor starting with underscore
20893 <p><a href="#_ref">One</a>
20896 <p><a rel="mw:WikiLink" href="./Foo#_ref" data-parsoid='{"stx":"piped","a":{"href":"./Foo#_ref"},"sa":{"href":"#_ref"}}'>One</a></p>
20900 Id starting with underscore
20902 <div id="_ref"></div>
20904 <div id="_ref"></div>
20909 Space normalisation on autocomment (bug 22784)
20912 title=[[Main Page]]
20914 /* __hello__world__ */
20916 <a href="/wiki/Main_Page#hello_world" title="Main Page">→</a><span dir="auto"><span class="autocomment">__hello__world__</span></span>
20920 percent-encoding and + signs in comments (Bug 26410)
20924 [[ABC%33D% ++]] [[ABC%33D% ++|+%20]]
20926 <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>
20929 # Parsoid doesn't support this yet: see bug 73581
20930 # but it *should* omit the 'src' attribute if the image is bad.
20931 # PHP side of tests was disabled in
20932 # mediawiki/core:6bd31e7d95161a6e88fa86df60871051da997c3c
20933 # because of issues in the PHP parserTests infrastructure
20934 # (but the output below is indeed what the PHP side emits)
20936 Bad images - basic functionality
20939 !! DISABLED/html/php
20941 <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>
20945 Bad images - bug 16039: text after bad image disappears
20950 !! DISABLED/html/php
20956 <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>
20961 Verify that displaytitle works (bug #22501) no displaytitle
20965 wgAllowDisplayTitle=true
20966 wgRestrictDisplayTitle=false
20968 this is not the the title
20971 <p>this is not the the title
20976 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=false
20981 wgAllowDisplayTitle=true
20982 wgRestrictDisplayTitle=false
20984 this is not the the title
20985 {{DISPLAYTITLE:whatever}}
20988 <p>this is not the the title
20993 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true mismatch
20998 wgAllowDisplayTitle=true
20999 wgRestrictDisplayTitle=true
21001 this is not the the title
21002 {{DISPLAYTITLE:whatever}}
21005 <p>this is not the the title
21010 Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true matching
21015 wgAllowDisplayTitle=true
21016 wgRestrictDisplayTitle=true
21018 this is not the the title
21019 {{DISPLAYTITLE:screen}}
21022 <p>this is not the the title
21027 Verify that displaytitle works (bug #22501) AllowDisplayTitle=false
21032 wgAllowDisplayTitle=false
21034 this is not the the title
21035 {{DISPLAYTITLE:screen}}
21038 <p>this is not the the title
21039 <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>
21044 Verify that displaytitle works (bug #22501) AllowDisplayTitle=false no DISPLAYTITLE
21049 wgAllowDisplayTitle=false
21051 this is not the the title
21054 <p>this is not the the title
21059 Verify that displaytitle handles inline CSS styles (bug 26547) - rejected value
21064 wgAllowDisplayTitle=true
21065 wgRestrictDisplayTitle=true
21067 this is not the the title
21068 {{DISPLAYTITLE:<span style="display: none;">s</span>creen}}
21070 <span style="/* attempt to bypass $wgRestrictDisplayTitle */">s</span>creen
21071 <p>this is not the the title
21076 Verify that displaytitle handles inline CSS styles (bug 26547) - accepted value
21081 wgAllowDisplayTitle=true
21082 wgRestrictDisplayTitle=true
21084 this is not the the title
21085 {{DISPLAYTITLE:<span style="color: red;">s</span>creen}}
21087 <span style="color: red;">s</span>creen
21088 <p>this is not the the title
21093 Page status indicators: Empty name is invalid
21097 <indicator name=" "></indicator>
21098 <indicator></indicator>
21100 <p><span class="error"><strong>Error:</strong> Page status indicators' <code>name</code> attribute must not be empty.</span>
21101 <span class="error"><strong>Error:</strong> Page status indicators' <code>name</code> attribute must not be empty.</span>
21106 Page status indicators: Weird syntaxes that are okay
21110 <indicator name="empty" />
21111 <indicator name="name"></indicator>
21120 Page status indicators: Torture test
21124 <indicator name="01">hello world</indicator>
21125 <indicator name="02">[[Main Page]]</indicator>
21126 <indicator name="03">[[File:Foobar.jpg|25px|link=]]</indicator>
21127 <indicator name="04">[[File:Foobar.jpg|25px]]</indicator>
21128 <indicator name="05">* foo
21130 <indicator name="06"><nowiki>foo</nowiki></indicator>
21131 <indicator name="07"> Preformatted</indicator>
21132 <indicator name="08"><div>Broken tag</indicator>
21133 <indicator name="09">{| class=wikitable
21136 <indicator name="10">Two
21138 paragraphs</indicator>
21141 02=<a href="/wiki/Main_Page" title="Main Page">Main Page</a>
21142 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" />
21143 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>
21144 05=<ul><li> foo</li>
21148 07=<pre>Preformatted
21150 08=<div>Broken tag</div>
21152 09=<table class="wikitable">
21169 preload: check <noinclude> and <includeonly>
21173 Hello <noinclude>cruel</noinclude><includeonly>kind</includeonly> world.
21179 preload: check <onlyinclude>
21183 Goodbye <onlyinclude>Hello world</onlyinclude>
21189 preload: can pass tags through if we want to
21193 <includeonly><</includeonly>includeonly>Hello world<includeonly><</includeonly>/includeonly>
21195 <includeonly>Hello world</includeonly>
21199 preload: check that it doesn't try to do tricks
21203 * <!-- Hello --> ''{{world}}'' {{<includeonly>subst:</includeonly>How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
21205 * <!-- Hello --> ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
21209 Play a bit with r67090 and bug 3158
21211 <div style="width:50% !important"> </div>
21212 <div style="width:50% !important"> </div>
21213 <div style="width:50% !important"> </div>
21214 <div style="border : solid;"> </div>
21216 <div style="width:50% !important"> </div>
21217 <div style="width:50% !important"> </div>
21218 <div style="width:50% !important"> </div>
21219 <div style="border : solid;"> </div>
21222 <div style="width:50% !important" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
21223 <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>
21224 <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>
21225 <div style="border : solid;" data-parsoid='{"stx":"html"}'><span typeof="mw:Entity" data-parsoid='{"srcContent":" "}'> </span></div>
21230 HTML5 data attributes
21232 <span data-foo="bar">Baz</span>
21233 <p data-abc-def_hij="">Quuz</p>
21235 <p><span data-foo="bar">Baz</span>
21237 <p data-abc-def_hij="">Quuz</p>
21240 <p><span data-foo="bar" data-parsoid='{"stx":"html"}'>Baz</span></p>
21241 <p data-abc-def_hij="" data-parsoid='{"stx":"html"}'>Quuz</p>
21245 Strip reserved data attributes
21247 <div data-mw="foo" data-parsoid="bar" data-mw-someext="baz" data-ok="fred" data-ooui="xyzzy" data-bad:ns="ns">d</div>
21249 <div data-ok="fred">d</div>
21252 <div data-x-data-mw="foo" data-x-data-parsoid="bar" data-x-data-mw-someext="baz" data-ok="fred" data-parsoid='{"stx":"html","a":{"data-ooui":null,"data-bad:ns":null},"sa":{"data-ooui":"xyzzy","data-bad:ns":"ns"}}'>d</div>
21256 percent-encoding and + signs in internal links (Bug 26410)
21258 [[User:+%]] [[Page+title%]]
21259 [[%+]] [[%+|%20]] [[%+ ]] [[%+r]]
21260 [[%]] [[+]] [[File:%+abc%39|foo|[[bar]]]]
21261 [[%33%45]] [[%33%45+]]
21263 <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>
21264 <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>
21265 <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>
21266 <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>
21269 <p><a rel="mw:WikiLink" href="./User:+%25" title="User:+%" data-parsoid='{"stx":"simple","a":{"href":"./User:+%25"},"sa":{"href":"User:+%"}}'>User:+%</a> <a rel="mw:WikiLink" href="./Page+title%25" title="Page+title%" data-parsoid='{"stx":"simple","a":{"href":"./Page+title%25"},"sa":{"href":"Page+title%"}}'>Page+title%</a>
21270 <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"simple","a":{"href":"./%25+"},"sa":{"href":"%+"}}'>%+</a> <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"piped","a":{"href":"./%25+"},"sa":{"href":"%+"}}'>%20</a> <a rel="mw:WikiLink" href="./%25+" title="%+" data-parsoid='{"stx":"simple","a":{"href":"./%25+"},"sa":{"href":"%+ "}}'>%+ </a> <a rel="mw:WikiLink" href="./%25+r" title="%+r" data-parsoid='{"stx":"simple","a":{"href":"./%25+r"},"sa":{"href":"%+r"}}'>%+r</a>
21271 <a rel="mw:WikiLink" href="./%25" title="%" data-parsoid='{"stx":"simple","a":{"href":"./%25"},"sa":{"href":"%"}}'>%</a> <a rel="mw:WikiLink" href="./+" title="+" data-parsoid='{"stx":"simple","a":{"href":"./+"},"sa":{"href":"+"}}'>+</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='{\"stx\":\"simple\",\"a\":{\"href\":\"./Bar\"},\"sa\":{\"href\":\"bar\"},\"dsr\":[94,101,2,2]}'>bar</a>"}'><a href="./File:%25+abc9" data-parsoid='{"a":{"href":"./File:%25+abc9"},"sa":{}}'><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>
21272 <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>
21276 Special characters in embedded file links (bug 27679)
21278 [[File:Contains & ampersand.jpg]]
21279 [[File:Does not exist.jpg|Title with & ampersand]]
21281 <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>
21282 <a href="/index.php?title=Special:Upload&wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with & ampersand</a>
21285 <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>
21286 <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>
21290 Confirm that 'apos' named character reference doesn't make it to output (not legal in HTML 4)
21292 Text's been normalized?
21294 <p>Text's been normalized?
21299 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate free external links
21301 http://www.example.org/ <-- U+3000 (vim: ^Vu3000)
21303 <p><a rel="nofollow" class="external free" href="http://www.example.org/">http://www.example.org/</a> <-- U+3000 (vim: ^Vu3000)
21308 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate bracketed external links
21310 [http://www.example.org/ ideograms]
21312 <p><a rel="nofollow" class="external text" href="http://www.example.org/">ideograms</a>
21317 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate external images links
21319 http://www.example.org/pic.png <-- U+3000 (vim: ^Vu3000)
21321 <p><img src="http://www.example.org/pic.png" alt="pic.png"/> <-- U+3000 (vim: ^Vu3000)
21345 Bug 31098 Template which includes system messages which includes the template
21349 <p><span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
21350 <span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
21355 Bug31490 Turkish: ucfirst 'blah'
21366 Bug31490 Turkish: ucfirst 'ix'
21377 Bug31490 Turkish: lcfirst 'BLAH'
21388 Bug31490 Turkish: ucfırst (with a dotless i)
21394 <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>
21399 Bug31490 ucfırst (with a dotless i) with English language
21405 <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>
21410 Bug 26375: TOC with italics
21412 title=[[Main Page]]
21415 == ''Lost'' episodes ==
21417 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21419 <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>
21423 <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>
21428 Bug 26375: TOC with bold
21430 title=[[Main Page]]
21433 == '''should be bold''' then normal text ==
21435 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21437 <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>
21441 <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>
21446 Bug 33845: Headings become cursive in TOC when they contain an image
21448 title=[[Main Page]]
21451 == Image [[Image:foobar.jpg]] ==
21453 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21455 <li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
21459 <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>
21464 Bug 33845 (2): Headings become bold in TOC when they contain a blockquote
21466 title=[[Main Page]]
21469 == <blockquote>Quote</blockquote> ==
21471 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21473 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
21477 <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>
21481 <div id="toc" class="toc">
21482 <div id="toctitle">
21486 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
21490 <h2><span class="mw-headline" id="Quote"></span></h2>
21492 <p><span class="mw-headline" id="Quote">Quote</span></p>
21494 <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>
21498 Unclosed tags in TOC
21500 title=[[Main Page]]
21504 <small>Hanc marginis exiguitas non caperet.</small>
21507 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21509 <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>
21513 <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>
21514 <p><small>Hanc marginis exiguitas non caperet.</small>
21520 Multiple tags in TOC
21523 == <i>Foo</i> <b>Bar</b> ==
21525 == <i>Foo</i> <blockquote>Bar</blockquote> ==
21527 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21529 <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>
21530 <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>
21534 <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>
21535 <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>
21539 <div id="toc" class="toc">
21540 <div id="toctitle">
21544 <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>
21545 <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>
21549 <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>
21550 <h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i></span></h2>
21552 <p><span class="mw-headline" id="Foo_Bar_2">Bar</span></p>
21554 <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>
21557 # Don't expect Parsoid to roundtrip this until the php parser comes closer to
21558 # html5 tag parsing.
21560 Tags with parameters in TOC
21565 == <sup class="in-h2">Hello</sup> ==
21567 == <sup class="a > b">Evilbye</sup> ==
21569 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21571 <li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li>
21572 <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>
21576 <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>
21577 <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>
21580 <meta property="mw:PageProp/toc" />
21581 <h2> <sup class="in-h2" data-parsoid='{"stx":"html"}'>Hello</sup> </h2>
21583 <h2> <sup class="a " data-parsoid='{"stx":"html"}'> b">Evilbye</sup> </h2>
21587 span tags with directionality in TOC
21590 == <span dir="ltr">C++</span> ==
21592 == <span dir="rtl">זבנג!</span> ==
21594 == <span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span> ==
21596 == <span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span> ==
21598 == <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> ==
21600 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21602 <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>
21603 <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>
21604 <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>
21605 <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>
21606 <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>
21610 <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>
21611 <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>
21612 <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>
21613 <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>
21614 <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>
21619 Bug 72884: bdi element in ToC
21622 == <bdi>test</bdi> ==
21624 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21626 <li class="toclevel-1 tocsection-1"><a href="#test"><span class="tocnumber">1</span> <span class="toctext"><bdi>test</bdi></span></a></li>
21630 <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>
21634 # Note that the html output does not have the <p></p>, but the
21635 # html+tidy output *does*. This is because the empty <p></p> is
21636 # removed by the sanitizer, but only when tidy is *not* enabled (!).
21638 Empty <p> tag in TOC, removed by Sanitizer (T92892)
21643 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
21645 <li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
21649 <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>
21653 <div id="toc" class="toc">
21654 <div id="toctitle">
21658 <li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
21662 <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>
21668 == {{int:headline_sample}} ==
21672 Bug 32057: Title needed when expanding <h> nodes.
21674 title=[[Main Page]]
21678 <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>
21683 Strip marker in urlencode
21685 {{urlencode:x<nowiki/>y}}
21686 {{urlencode:x<nowiki/>y|wiki}}
21687 {{urlencode:x<nowiki/>y|path}}
21688 {{urlencode:x<pre id="one">two</pre>y}}
21716 Strip marker in formatNum
21718 {{formatnum:1<nowiki/>2}}
21719 {{formatnum:1<nowiki/>2|R}}
21727 Check noCommafy in formatNum
21731 {{formatnum:123456.78}}
21732 {{formatnum:123456.78|NOSEP}}
21740 Wrong option for formatNum (bug 56199)
21742 {{formatnum:1,234.56|Random}}
21743 {{formatnum:1,234.56|EVERYTHING}}
21744 {{formatnum:1234.56|any argument that has the string 'NOSEP'}}
21753 Strip marker in grammar
21757 {{grammar:elative|foo<nowiki/>bar}}
21764 Strip marker in padleft
21766 {{padleft:|2|x<nowiki/>y}}
21773 Strip marker in padright
21775 {{padright:|2|x<nowiki/>y}}
21782 Strip marker in anchorencode
21784 {{anchorencode:x<nowiki/>y}}
21791 nowiki inside link inside heading (bug 18295)
21793 ==[[foo|x<nowiki>y</nowiki>z]]==
21795 <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>
21800 new support for bdi element (bug 31817)
21802 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
21804 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
21809 Ignore pipe between table row attributes
21813 |- id=foo | style='color: red'
21821 <tr id="foo" style="color: red">
21828 Gallery override link with WikiLink (bug 34852)
21831 File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink
21834 <ul class="gallery mw-gallery-traditional">
21835 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
21836 <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>
21837 <div class="gallerytext">
21847 Gallery override link with absolute external link (bug 34852)
21850 File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
21853 <ul class="gallery mw-gallery-traditional">
21854 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
21855 <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>
21856 <div class="gallerytext">
21866 Gallery override link with malicious javascript (bug 34852)
21869 File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascript code!');
21872 <ul class="gallery mw-gallery-traditional">
21873 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
21874 <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);"><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>
21875 <div class="gallerytext">
21885 Gallery with invalid title as link (bug 43964)
21888 File:foobar.jpg|link=<
21891 <ul class="gallery mw-gallery-traditional">
21892 <li class="gallerybox" style="width: 155px"><div style="width: 155px">
21893 <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>
21894 <div class="gallerytext">
21902 Language parser function
21911 Padleft and padright as substr
21913 {{padleft:|3|abcde}}
21914 {{padright:|3|abcde}}
21922 Special parser function
21924 {{#special:RandomPage}}
21925 {{#special:BaDtItLe}}
21926 {{#special:Foobar}}
21935 Bug 34939 - Case insensitive link parsing ([HttP://])
21937 [HttP://MediaWiki.Org/]
21939 <p><a rel="nofollow" class="external autonumber" href="HttP://MediaWiki.Org/">[1]</a>
21942 <p><a rel="mw:ExtLink" href="HttP://MediaWiki.Org/"></a></p>
21946 Bug 34939 - Case insensitive link parsing ([HttP:// title])
21948 [HttP://MediaWiki.Org/ MediaWiki]
21950 <p><a rel="nofollow" class="external text" href="HttP://MediaWiki.Org/">MediaWiki</a>
21955 Bug 34939 - Case insensitive link parsing (HttP://)
21957 HttP://MediaWiki.Org/
21959 <p><a rel="nofollow" class="external free" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a>
21962 <p><a rel="mw:ExtLink" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a></p>
21980 <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>
21981 <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>
21982 <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>
21983 <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>
21984 <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>
21990 ### Parsoid-specific tests
21991 ### Parsoid-PHP parser incompatibilities
21994 1. SOL-sensitive wikitext tokens as template-args
21996 parsoid=wt2html,wt2wt
22002 <span about="#mwt1" typeof="mw:Transclusion">
22003 </span><ul about="#mwt1"><li>a</li>
22005 <span about="#mwt2" typeof="mw:Transclusion">
22006 </span><ol about="#mwt2"><li>a</li>
22008 <span about="#mwt3" typeof="mw:Transclusion">
22009 </span><dl about="#mwt3"><dd>a</dd>
22013 #### -----------------------------------------------------------------
22014 #### Parsoid-specific functionality tests
22015 #### -----------------------------------------------------------------
22017 # Bug 63642/66749: Formatting elt fixup around images is cleaned up.
22018 # We know wt2wt will fail, but we expect selser to pass.
22019 # Due to the nature of our testing, wt2wt and selser tests will enter the
22020 # blacklist and we'll catch selser regressions based on changes to the
22021 # blacklist entries for selser tests.
22023 1. Bad treebuilder fixup of formatting elt is cleaned up
22025 parsoid=wt2html,wt2wt
22030 [[Image:Foobar.jpg|right|Test]]
22037 <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>
22044 2. Bad treebuilder fixup of formatting elt is cleaned up
22046 parsoid=wt2html,wt2wt
22048 '''foo[[File:Foobar.jpg|thumb|caption]]bar'''
22050 <small>[[Image:Foobar.jpg|right|300px]]</small>
22054 <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>
22056 <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>
22060 3. Bad treebuilder fixup of formatting elt is cleaned up
22062 parsoid=wt2html,wt2wt
22064 <small>'''foo[[File:Foobar.jpg|thumb|caption]]bar'''</small>
22066 <p><small><b>foo</b></small></p>
22067 <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>
22068 <p><small><b>bar</b></small></p>
22072 4. Bad treebuilder fixup of formatting elt is cleaned up: formatting tags around captionless images are ignored
22074 parsoid=wt2html,wt2wt
22076 '''<small>[[Image:Foobar.jpg|right|300px]]</small>'''
22078 <p><b><small></small></b></p>
22079 <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>
22083 #### ----------------------------------------------------------------
22084 #### Parsoid-only testing of Parsoid's impl of <ref> and <references>
22085 #### tags. Parsoid's output for these tags differs from that of the
22087 #### ----------------------------------------------------------------
22090 Ref: 1. ref-location should be replaced with an index span
22093 B <ref name="x">foo</ref>
22097 <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>
22098 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>
22099 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>
22100 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
22101 <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>
22102 <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>
22103 <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>
22108 Ref: 2. ref-tags with identical names should all get the same index
22110 A <ref name="x">foo</ref>
22114 <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>
22115 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>
22116 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22117 <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>
22122 Ref: 3. spaces in ref-names should be ignored
22124 A <ref name="x">foo</ref>
22125 B <ref name=" x " />
22129 <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>
22130 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>
22131 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>
22132 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
22133 <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>
22137 # NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
22139 Ref: 4. 'constructor' should be accepted as a valid ref-name
22141 A <ref name="constructor">foo</ref>
22144 <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>
22145 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22146 <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>
22151 Ref: 5. body should accept generic wikitext
22154 This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
22159 <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>
22161 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
22162 <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>
22168 Ref: 6. indent-pres should not be output in ref-body
22178 <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>
22180 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22181 <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
22189 Ref: 7. No p-wrapping in ref-body
22206 <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>
22208 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22209 <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
22224 Ref: 8. transclusion wikitext has lower precedence
22226 A <ref> foo {{echo|</ref> B C}}
22230 <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>
22231 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22232 <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 {{echo|</span></li>
22237 Ref: 9. unclosed comments should not leak out of ref-body
22239 A <ref> foo <!--</ref> B C
22242 <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>
22243 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22244 <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>
22249 Ref: 10. Unclosed HTML tags should not leak out of ref-body
22251 A <ref> <b> foo </ref> B C
22255 <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>
22258 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22259 <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>
22264 Ref: 11. ref-tags acts like an inline element wrt P-wrapping
22270 <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
22271 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>
22272 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22273 <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>
22274 <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>
22279 Ref: 12. ref-tags act as trailing newline migration barrier
22281 <!--the newline at the end of this line moves out of the p tag-->a
22283 b<!--the newline at the end of this line stays inside the p tag--> <ref />
22289 <!--the newline at the end of this line moves out of the p tag--><p>a</p>
22292 <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>
22293 <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>
22296 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22297 <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>
22298 <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>
22302 Ref: 13. ref-tags are not SOL-transparent and block indent-pres
22309 <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
22310 <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>
22311 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22312 <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>
22313 <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
22319 Ref: 14. A nested ref-tag should be emitted as plain text
22321 <ref>foo <ref>bar</ref> baz</ref>
22325 <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>
22327 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
22328 <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>
22333 Ref: 15. ref-tags with identical names should get identical indexes
22335 A1 <ref name="a">foo</ref> A2 <ref name="a" />
22336 B1 <ref name="b" /> B2 <ref name="b">bar</ref>
22340 <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>
22341 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>
22343 <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>
22347 ## We don't bother wt2wt-ing non-standard whitespace
22349 Ref: 16. Tokenizer should accept non-standard whitespace in <ref> and </ref> tags
22357 <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>
22358 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22359 <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>
22363 Ref: 17. Generate valid HTML5 id/about attributes
22365 <ref name="a b">foo</ref>
22369 <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>
22372 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22373 <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>
22378 Ref: 18. T58916: Extension attributes should be parsed as plain text
22380 <ref name="{{echo|a}}">foo</ref>
22384 <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>
22387 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22388 <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>
22393 Ref: 19. ref-tags with identical name encodings should get identical indexes
22395 1 <ref name="a & b">foo</ref> 2 <ref name="a & b" />
22399 <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>
22401 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22402 <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>
22407 Ref: 20. ref-tags with identical names but different content should keep it
22409 A <ref name="foo">Foo one</ref>
22410 B <ref name="foo">Foo two</ref>
22411 C <ref name="foo" />
22415 <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>
22416 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>
22417 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>
22419 <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>
22424 References: 1. references tag without any refs should be handled properly
22428 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
22432 References: 2. references tag with group only outputs references from that group
22434 A <ref group="a">foo</ref>
22435 B <ref group="b">bar</ref>
22438 <references group="a" />
22440 <references group="b" />
22442 <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>
22443 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>
22444 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>
22446 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'>
22447 <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>
22449 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
22450 <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>
22452 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt12" data-mw-group="b" data-mw='{"name":"references","attrs":{"group":"b"}}'>
22453 <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>
22458 References: 3. ref list should be cleared after processing references
22468 <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>
22470 <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>
22473 <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>
22475 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
22476 <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>
22481 References: 4. only referenced group should be cleared after processing references
22483 A <ref group="a">afoo</ref>
22486 <references group="a" />
22492 <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>
22493 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>
22495 <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>
22498 <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>
22500 <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>
22504 ## Don't expect this to rt since we're dropping content
22506 References: 5. ref tags in references should be processed while ignoring all other content
22508 parsoid=wt2html,html2html
22511 B <ref name="b">bar</ref>
22514 <ref name="a">foo</ref>
22515 This should just get lost.
22518 <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>
22519 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>
22522 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{},"body":{"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;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></span>\n"}}'><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>
22527 References: 6. <references /> from a transclusion
22529 <ref>Foo</ref> {{echo|<references />}}
22531 <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>
22536 References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled
22538 A <ref>foo bar for a</ref>
22539 B <ref group="X" name="b" />
22543 <references group="X">
22544 <ref name="b">foo</ref>
22547 <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>
22548 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>
22551 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
22552 <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>
22555 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="X" data-mw='{"name":"references","attrs":{"group":"X"},"body":{"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\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[X 1]</span></a></span>\n"}}'>
22556 <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>
22561 References: 8. T88019: Remove <meta>s from templates inside <ref> that's itself inside a template
22563 X{{echo|<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>}}
22566 <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>
22567 <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>
22571 # This test only works in wt2html now as the <references /> are always generated
22572 # unless selser is active. Once T72722 is fixed, we should add a changes test
22573 # here to ensure that unrelated changes don't add the new <references />
22574 # when selser is active.
22576 References: 9. Generate missing references list at the end
22579 B <ref group="inexistent">bar</ref>
22581 <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>
22582 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'>
22583 <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>
22585 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="inexistent" data-mw='{"name":"references","attrs":{"group":"inexistent"},"autoGenerated":true}'>
22586 <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>
22591 References: 10. New <references/> shouldn't be added for unrelated edits.
22594 "modes": ["selser"],
22595 "changes": [["#x", "remove"]],
22599 Unrelated text<span id="x"> that's going to disappear</span>.
22607 Entities in ref name
22609 <ref name="test & me">hi</ref>
22612 <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>
22613 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
22614 <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>
22618 ## The output here may look funny, but it's what the php parser will do. The
22619 ## unclosed references tag becomes escaped text, and then a new references
22620 ## tag is auto-generated. The test is wt2html only because it roundtrips with
22621 ## nowiki tags, and the auto-generated references tag is only dropped in
22624 Generate references for unclosed references tag
22632 <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" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></p>
22634 <p><references></p>
22635 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><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>
22639 New reference serializes on its own line
22641 parsoid=wt2wt,html2wt
22646 foo<ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
22649 #### ----------------------------------------------------------------
22650 #### Parsoid-only testing of Parsoid's impl of LST
22651 #### Not implemented yet, see
22652 #### https://www.mediawiki.org/wiki/Parsoid/HTML_based_LST
22653 #### ----------------------------------------------------------------
22656 LST Sections: 1. Simple section start and end
22658 parsoid={ "suppressErrors": true }
22660 <section begin="2011-05-16" />
22661 <section end="2014-04-10 (MW 1.23wmf22)" />
22663 <p><meta typeof="mw:Extension/LabeledSectionTransclusion/begin" content="2011-05-16"/>
22664 <meta typeof="mw:Extension/LabeledSectionTransclusion/end" content="2014-04-10 (MW 1.23wmf22)"/></p>
22667 #--------- Test stripping of empty nodes in template content ----------
22669 Empty LI and TR nodes should be stripped from template content
22674 <ul about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyLITest","href":"./Template:EmptyLITest"},"params":{},"i":0}}]}'>
22678 <table about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRTest","href":"./Template:EmptyTRTest"},"params":{},"i":0}}]}'>
22691 Empty LI and TR nodes should not be stripped from top-level content
22718 Empty TR nodes should not be stripped if they have any attributes set
22720 {{EmptyTRWithHTMLAttrTest}}
22722 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRWithHTMLAttrTest","href":"./Template:EmptyTRWithHTMLAttrTest"},"params":{},"i":0}}]}'>
22723 <tr align="center"></tr>
22724 <tr><td>foo</td></tr>
22725 <tr align="center"></tr>
22726 <tr><td>bar</td></tr>
22730 #### ----------------------------------------------------------------
22731 #### The following section of tests are primarily to test
22732 #### wikitext escaping capabilities of Parsoid. Given that
22733 #### escaping can be done any number of ways, the wikitext (input)
22734 #### is always adjusted to reflect how Parsoid adds nowiki
22737 #### We are marking several tests as parsoid-only since the
22738 #### HTML in the result section is different from what the
22739 #### PHP parser generates for it.
22740 #### ----------------------------------------------------------------
22743 #### --------------- Headings ---------------
22745 #### 1. Nested inside html <h1>=foo=</h1>
22746 #### 2. Outside heading nest on a single line <h1>foo</h1>*bar
22747 #### 3. Nested inside html with wikitext split by html tags
22748 #### 4. No escape needed
22749 #### 5. Empty headings <h1></h1>
22750 #### 6. Heading chars in SOL context
22751 #### ----------------------------------------
22753 Headings: 0. Unnested
22763 <p>=foo<i>a</i>=</p>
22765 <nowiki>=foo=</nowiki>
22767 <nowiki> </nowiki>=foo=
22769 <nowiki>=foo=</nowiki>
22771 =foo''a''<nowiki>=</nowiki>
22774 # New headings and existing headings are handled differently
22776 Headings: 1. Nested inside html
22784 <h1 data-parsoid=''>=foo=</h1>
22785 <h2 data-parsoid=''>=foo=</h2>
22786 <h3 data-parsoid=''>=foo=</h3>
22787 <h4 data-parsoid=''>=foo=</h4>
22788 <h5 data-parsoid=''>=foo=</h5>
22789 <h6 data-parsoid=''>=foo=</h6>
22797 =<nowiki>=foo=</nowiki>=
22798 ==<nowiki>=foo=</nowiki>==
22799 ===<nowiki>=foo=</nowiki>===
22800 ====<nowiki>=foo=</nowiki>====
22801 =====<nowiki>=foo=</nowiki>=====
22802 ======<nowiki>=foo=</nowiki>======
22807 Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
22816 <nowiki>*</nowiki>bar
22822 <nowiki>=bar=</nowiki>
22826 Headings: 3. Nested inside html with wikitext split by html tags
22830 <h1>=<b>bold</b>foo=</h1>
22832 = ='''bold'''foo= =
22836 Headings: 4a. No escaping needed (testing just h1 and h2)
22847 <h1><i>=</i>foo=</h1>
22867 Headings: 4b. No escaping needed (inside p-tags)
22882 Headings: 5. Empty headings
22886 <h1 data-parsoid='{}'></h1>
22888 <h2 data-parsoid='{}'></h2>
22890 <h3 data-parsoid='{}'></h3>
22892 <h4 data-parsoid='{}'></h4>
22894 <h5 data-parsoid='{}'></h5>
22896 <h6 data-parsoid='{}'></h6>
22906 =====<nowiki/>=====
22908 ======<nowiki/>======
22912 Headings: 6a. Heading chars in SOL context (with trailing spaces)
22922 <nowiki>=a=</nowiki>
22924 <nowiki>=a=</nowiki>
22926 <nowiki>=a=</nowiki>
22930 Headings: 6b. Heading chars in SOL context (with trailing newlines)
22943 <nowiki>=a=</nowiki>
22946 <nowiki>=a=</nowiki>
22949 <nowiki>=a=</nowiki>
22954 Headings: 6c. Heading chars in SOL context (leading newline break)
22962 <nowiki>=b=</nowiki>
22966 Headings: 6d. Heading chars in SOL context (with interspersed comments)
22970 <!--c0--><p>=a=</p>
22972 <!--c1--><p>=a=</p> <!--c2--> <!--c3-->
22974 <!--c0--><nowiki>=a=</nowiki>
22976 <!--c1--><nowiki>=a=</nowiki> <!--c2--> <!--c3-->
22980 Headings: 6d. Heading chars in SOL context (No escaping needed)
22990 Headings: 7. Insert a newline between new content and headings
22996 <h2 data-parsoid='{}'>A</h2>
22997 <p data-parsoid='{}'>a</p>
23007 #### --------------- Lists ---------------
23008 #### 0. Outside nests (*foo, etc.)
23009 #### 1. Nested inside html <ul><li>*foo</li></ul>
23010 #### 2. Inside definition lists
23011 #### 3. Only bullets at start should be escaped
23012 #### 4. No escapes needed
23013 #### 5. No unnecessary escapes
23014 #### 6. Escape bullets in SOL position
23015 #### 7. Escape bullets in a multi-line context
23016 #### ----------------------------------------
23019 Lists: 0. Outside nests
23029 <nowiki>*</nowiki>foo
23031 <nowiki>#</nowiki>foo
23033 <nowiki>;</nowiki>Foo<nowiki>:</nowiki>bar
23036 ## Making these next 3 tests Parsoid-only since they are html2wt tests
23037 ## to test wikitext escaping, and insignificant whitespace diffs
23038 ## cause PHP parser tests to barf
23040 Lists: 1. Nested inside html (No unnecessary escapes)
23049 <li data-parsoid='{}'>*foo</li>
23050 <li data-parsoid='{}'>#foo</li>
23051 <li data-parsoid='{}'>:foo</li>
23052 <li data-parsoid='{}'>;foo</li>
23060 <li data-parsoid='{}'>*foo</li>
23061 <li data-parsoid='{}'>#foo</li>
23062 <li data-parsoid='{}'>:foo</li>
23063 <li data-parsoid='{}'>;foo</li>
23070 *<nowiki>*foo</nowiki>
23071 *<nowiki>#foo</nowiki>
23072 *<nowiki>:foo</nowiki>
23073 *<nowiki>;foo</nowiki>
23079 #<nowiki>*foo</nowiki>
23080 #<nowiki>#foo</nowiki>
23081 #<nowiki>:foo</nowiki>
23082 #<nowiki>;foo</nowiki>
23086 Lists: 2. Inside definition lists
23090 <dl><dt>;foo</dt></dl>
23091 <dl><dt>:foo</dt></dl>
23094 <dl><dd>:foo</dd></dl>
23098 ; <nowiki>:foo</nowiki>
23100 ; <nowiki>:foo</nowiki>
23107 Lists: 3. Only bullets at start of text in wikitext-generated HTML should be escaped
23113 <li data-parsoid='{}'>*foo<i>it</i>*bar</li>
23117 *<nowiki>*foo</nowiki>''it''*bar
23121 Lists: 4. No escapes needed
23134 <li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>: bar
23138 <li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>*bar
23152 Lists: 5. No unnecessary escapes
23156 <ul><li> bar <span>[[foo]]</span></li></ul>
23157 <ul><li> =bar <span>[[foo]]</span></li></ul>
23158 <ul><li> [[bar <span>[[foo]]</span></li></ul>
23159 <ul><li> ]]bar <span>[[foo]]</span></li></ul>
23160 <ul><li> =bar <span>foo]]</span>=</li></ul>
23161 <ul><li> <s></s>: a</li></ul>
23162 <ul><li> <i>* foo</i></li></ul>
23165 * bar <span><nowiki>[[foo]]</nowiki></span>
23167 * =bar <span><nowiki>[[foo]]</nowiki></span>
23169 * [[bar <span><nowiki>[[foo]]</nowiki></span>
23171 * ]]bar <span><nowiki>[[foo]]</nowiki></span>
23173 * =bar <span>foo]]</span>=
23181 Lists: 6. Escape bullets in SOL position
23185 <p><!--cmt-->*foo</p>
23187 <!--cmt--><nowiki>*</nowiki>foo
23191 Lists: 7. Escape bullets in a multi-line context
23200 <nowiki>*</nowiki>b
23204 Lists: 8. Escape colons only if not present in tags
23208 <dl><dt>a:b<i>c:d</i></dt></dl>
23210 ; <nowiki>a:b</nowiki>''c:d''
23213 #### --------------- HRs ---------------
23214 #### 1. Single line
23215 #### -----------------------------------
23218 HRs: 1. Single line
23226 ----<nowiki>----</nowiki>
23231 #### --------------- Tables ---------------
23232 #### 1a. Simple example
23233 #### 1b. No escaping needed (!foo)
23234 #### 1c. No escaping needed (|foo)
23235 #### 1d. No escaping needed (|}foo)
23237 #### 2a. Nested in td (<td>foo|bar</td>)
23238 #### 2b. Nested in td (<td>foo||bar</td>)
23239 #### 2c. Nested in td -- no escaping needed(<td>foo!!bar</td>)
23241 #### 3a. Nested in th (<th>foo!bar</th>)
23242 #### 3b. Nested in th (<th>foo!!bar</th>)
23243 #### 3c. Nested in th -- no escaping needed(<th>foo||bar</th>)
23247 #### 4c. No escaping needed
23248 #### --------------------------------------
23251 Tables: 1a. Simple example
23259 <nowiki>{|</nowiki>
23264 Tables: 1b. No escaping needed
23275 Tables: 1c. No escaping needed
23286 Tables: 1d. No escaping needed
23297 Tables: 2a. Nested in td
23302 <td>foo|bar</td></tr>
23303 <tr><td>x<div>a|b</div></td>
23307 |<nowiki>foo|bar</nowiki>
23309 |x<div><nowiki>a|b</nowiki></div>
23325 Tables: 2b. Nested in td
23331 <td>a<i>b||c</i></td>
23332 <td>a<i><div>b||c</div></i></td>
23333 </tr></tbody></table>
23336 |<nowiki>foo||bar</nowiki>
23337 |a''<nowiki>b||c</nowiki>''
23338 |a''<div><nowiki>b||c</nowiki></div>''
23347 <td>a<i><div>b||c</div></i>
23353 Tables: 2c. Nested in td -- no escaping needed
23369 Tables: 3a. Nested in th
23385 Tables: 3b. Nested in th
23390 <tr><th>foo!!bar</th>
23391 <th><i>foo|bar</i></th>
23392 <th><i>foo!!bar</i></th>
23393 <th><i><span>foo!!bar</span></i></th>
23394 </tr></tbody></table>
23397 !<nowiki>foo!!bar</nowiki>
23398 !''<nowiki>foo|bar</nowiki>''
23399 !''<nowiki>foo!!bar</nowiki>''
23400 !''<span><nowiki>foo!!bar</nowiki></span>''
23409 <th><i>foo!!bar</i>
23411 <th><i><span>foo!!bar</span></i>
23417 Tables: 3c. Nested in th
23422 <tr><th>foo||bar</th>
23423 <th><span typeof="mw:Nowiki">foo||bar</span></th>
23424 </tr></tbody></table>
23427 !<nowiki>foo||bar</nowiki>
23428 !<nowiki>foo||bar</nowiki>
23441 Tables: 4a. Escape -
23457 |<nowiki>-bar</nowiki>
23462 Tables: 4b. Escape +
23478 |<nowiki>+bar</nowiki>
23483 Tables: 4c. No escaping needed
23488 <tr><td>foo-bar</td><td>foo+bar</td></tr>
23489 <tr><td><i>foo</i>-bar</td><td><i>foo</i>+bar</td></tr>
23495 <div>a|b</div></td>
23540 Tables: 4d. No escaping needed
23545 <tbody><tr><td><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo</a>-bar</td>
23546 <td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>+1</td>
23547 <td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>-2</td></tr>
23558 <td><a href="/wiki/Foo" title="Foo">Foo</a>-bar
23568 T97430: Don't emit empty nowiki pairs around marker meta tags
23572 <p>*This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
23573 |** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.</p>
23575 <nowiki>*</nowiki>This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
23576 |** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.
23580 Unclosed xmlish element in table line shouldn't eat end delimiters
23585 <tbody><tr><td> <foo</td>
23586 <td> bar></td></tr>
23603 #### --------------- Links ----------------
23604 #### 1. Quote marks in link text
23605 #### 2. Wikilinks: Escapes needed
23606 #### 3. Wikilinks: No escapes needed
23607 #### 4. Extlinks: Escapes needed
23608 #### 5. Extlinks: No escapes needed
23609 #### --------------------------------------
23611 Links 1. WikiLinks: No escapes needed
23615 <p><a rel="mw:WikiLink" href="Foo" title="Foo">Foo<i>boo</i></a>
23616 <a rel="mw:WikiLink" href="Foo" title="Foo">[Foobar]</a>
23617 <a rel="mw:WikiLink" href="Foo" title="Foo">x [Foobar] x</a></p>
23621 [[Foo|x [Foobar] x]]
23623 <p><a href="/wiki/Foo" title="Foo">Foo<i>boo</i></a>
23624 <a href="/wiki/Foo" title="Foo">[Foobar]</a>
23625 <a href="/wiki/Foo" title="Foo">x [Foobar] x</a>
23630 Links 2. WikiLinks: Escapes needed
23634 <a href="Foo" rel="mw:WikiLink">Foobar]</a>
23635 <a href="Foo" rel="mw:WikiLink">x [http://google.com g] x</a>
23636 <a href="Foo" rel="mw:WikiLink">[[Bar]]</a>
23637 <a href="Foo" rel="mw:WikiLink">x [[Bar]] x</a>
23638 <a href="Foo" rel="mw:WikiLink">|Bar</a>
23639 <a href="Foo" rel="mw:WikiLink">]]bar</a>
23640 <a href="Foo" rel="mw:WikiLink">[[bar</a>
23641 <a href="Foo" rel="mw:WikiLink">x [[ y</a>
23642 <a href="Foo" rel="mw:WikiLink">x ]] y</a>
23643 <a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
23645 [[Foo|<nowiki>Foobar]</nowiki>]]
23646 [[Foo|x <nowiki>[http://google.com g]</nowiki> x]]
23647 [[Foo|<nowiki>[[Bar]]</nowiki>]]
23648 [[Foo|<nowiki>x [[Bar]] x</nowiki>]]
23649 [[Foo|<nowiki>|Bar</nowiki>]]
23650 [[Foo|<nowiki>]]bar</nowiki>]]
23651 [[Foo|<nowiki>[[bar</nowiki>]]
23652 [[Foo|<nowiki>x [[ y</nowiki>]]
23653 [[Foo|<nowiki>x ]] y</nowiki>]]
23654 [[Foo|<nowiki>x ]] y [[ z</nowiki>]]
23656 <p><a href="/wiki/Foo" title="Foo">Foobar]</a>
23657 <a href="/wiki/Foo" title="Foo">x [http://google.com g] x</a>
23658 <a href="/wiki/Foo" title="Foo">[[Bar]]</a>
23659 <a href="/wiki/Foo" title="Foo">x [[Bar]] x</a>
23660 <a href="/wiki/Foo" title="Foo">|Bar</a>
23661 <a href="/wiki/Foo" title="Foo">]]bar</a>
23662 <a href="/wiki/Foo" title="Foo">[[bar</a>
23663 <a href="/wiki/Foo" title="Foo">x [[ y</a>
23664 <a href="/wiki/Foo" title="Foo">x ]] y</a>
23665 <a href="/wiki/Foo" title="Foo">x ]] y [[ z</a>
23670 Links 3. WikiLinks: No escapes needed
23674 <p><a rel="mw:WikiLink" href="Foo">[Foobar</a>
23675 <a rel="mw:WikiLink" href="Foo" title="Foo">foo|bar</a></p>
23680 <p><a href="/wiki/Foo" title="Foo">[Foobar</a>
23681 <a href="/wiki/Foo" title="Foo">foo|bar</a>
23686 Links 4. ExtLinks: Escapes needed
23690 <p><a rel="mw:ExtLink" href="http://google.com">[google]</a>
23691 <a rel="mw:ExtLink" href="http://google.com">google]</a></p>
23692 <p>[http://google.com]</p>
23693 <p>[http://google.com google]</p>
23694 <p>[<a rel="mw:ExtLink" href="http://google.com">http://google.com</a>]</p>
23695 <p>[<a rel="mw:ExtLink" href="http://google.com" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://google.com"}},"i":0}}]}'>http://google.com</a>]</p>
23697 [http://google.com <nowiki>[google]</nowiki>]
23698 [http://google.com <nowiki>google]</nowiki>]
23700 <nowiki>[http://google.com]</nowiki>
23702 <nowiki>[http://google.com google]</nowiki>
23704 [http://google.com<nowiki>]</nowiki>
23706 [{{echo|http://google.com}}<nowiki>]</nowiki>
23708 <p><a rel="nofollow" class="external text" href="http://google.com">[google]</a>
23709 <a rel="nofollow" class="external text" href="http://google.com">google]</a>
23710 </p><p>[http://google.com]
23711 </p><p>[http://google.com google]
23712 </p><p>[<a rel="nofollow" class="external free" href="http://google.com">http://google.com</a>]
23713 </p><p>[<a rel="nofollow" class="external free" href="http://google.com">http://google.com</a>]
23718 Links 5. ExtLinks: No escapes needed
23722 <p><a rel="mw:ExtLink" href="http://google.com">[google</a></p>
23723 <p>[<a ref="mw:ExtLink" href="http://google.com"></a>]</p>
23725 [http://google.com [google]
23727 [[http://google.com]]
23729 <p><a rel="nofollow" class="external text" href="http://google.com">[google</a>
23730 </p><p>[<a rel="nofollow" class="external autonumber" href="http://google.com">[1]</a>]
23735 Links 6. Add <nowiki/>s between text-nodes and url-links when required (bug 64300)
23739 <p>x<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>y
23740 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>?x
23741 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>&x
23742 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>'x
23743 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,x
23744 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.x
23745 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
23746 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>:x
23747 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
23748 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>!x
23749 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>=x
23750 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>(x)
23751 <a rel="mw:ExtLink" href="http://example.com(x" data-parsoid='{"stx":"url"}'>http://example.com(x</a>)
23754 x<nowiki/>http://example.com<nowiki/>y
23755 http://example.com<nowiki/>?x
23756 http://example.com<nowiki/>&x
23757 http://example.com<nowiki/>'x
23758 http://example.com<nowiki/>,x
23759 http://example.com<nowiki/>.x
23760 http://example.com<nowiki/>;x
23761 http://example.com<nowiki/>:x
23762 http://example.com<nowiki/>;x
23763 http://example.com<nowiki/>!x
23764 http://example.com<nowiki/>=x
23765 http://example.com<nowiki/>(x)
23766 http://example.com(x<nowiki/>)
23770 Links 7a. Don't add spurious <nowiki/>s between text-nodes and url-links (bug 64300)
23775 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>
23777 "<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>"
23778 (<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>)
23779 (<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>) foo
23780 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,
23781 <a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>, foo
23787 "http://example.com"
23788 (http://example.com)
23789 (http://example.com) foo
23790 http://example.com,
23791 http://example.com, foo
23794 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
23796 "<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>"
23797 (<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
23798 (<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>) foo
23799 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
23800 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>, foo
23805 Links 7b. Don't add spurious <nowiki/>s between text-nodes and url-links (bug 64300)
23809 <p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.,;:!?\
23810 -<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:</p>
23812 http://example.com.,;:!?\
23813 -http://example.com:
23815 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.,;:!?\
23816 -<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
23821 Links 8. Add <nowiki/>s between text-nodes and RFC-links when required (bug 64300)
23825 <p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>4
23826 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
23827 X<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y</p>
23831 X<nowiki/>RFC 123<nowiki/>y
23835 Links 9. Don't add spurious <nowiki/>s between text-nodes and RFC-links (bug 64300)
23839 <p><a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>?foo
23840 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>&foo
23841 -<a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>-
23848 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>?foo
23849 <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>&foo
23850 -<a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc123">RFC 123</a>-
23855 Links 10. Add <nowiki/>s between text-nodes and PMID-links when required (bug 64300)
23859 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>4
23860 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
23861 X<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
23865 X<nowiki/>PMID 123<nowiki/>y
23869 Links 11. Don't add spurious <nowiki/>s between text-nodes and PMID-links (bug 64300)
23873 <p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>?foo
23874 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>&foo
23875 -<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>-
23882 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>?foo
23883 <a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>&foo
23884 -<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>-
23889 Links 12. Add <nowiki/>s between text-nodes and ISBN-links when required (bug 64300)
23893 <p><a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>1
23894 <a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>x
23895 a<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>b
23898 ISBN 1234567890<nowiki/>1
23899 ISBN 1234567890<nowiki/>x
23900 a<nowiki/>ISBN 1234567890<nowiki/>b
23904 Links 13. Don't add spurious <nowiki/>s between text-nodes and ISBN-links (bug 64300)
23908 <p>-<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>'s
23912 <p>-<a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>'s
23917 Links 14. Protect link-like plain text. (Parsoid bug T78425)
23921 <p>this is not a link: http://example.com
23924 this is not a link: <nowiki>http://example.com</nowiki>
23928 Links 15. Link trails can't become link prefixes.
23933 <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>
23935 [[Söfnuður]]-[[00]]
23937 <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>
23941 #### --------------- Quotes ---------------
23942 #### 1. Quotes inside <b> and <i>
23943 #### 2. Link fragments separated by <i> and <b> tags
23944 #### 3. Link fragments inside <i> and <b>
23945 #### 4. No escaping needed
23946 #### --------------------------------------
23948 1a. Quotes inside <b> and <i>
23959 <b>foo'<i>bar'</i>baz</b>
23968 <i>fools'<span> errand</span></i>
23969 <i><span>fool</span>'s errand</i>
23970 '<i>foo</i> bar '<i>baz</i>
23971 a|!*#-:;+-~[]{}b'<i>x</i>
23975 ''<nowiki>''foo''</nowiki>''
23976 ''<nowiki>'''foo'''</nowiki>''
23978 '''<nowiki/>'foo''''
23979 '''<nowiki>''foo''</nowiki>'''
23980 '''<nowiki>'''foo'''</nowiki>'''
23981 '''foo'<nowiki/>''bar'<nowiki/>''baz'''
23982 '''foo'''<nowiki/>'s
23988 '''foo'''<nowiki/>'
23989 ''''foo'''<nowiki/>'
23990 ''fools'<span> errand</span>''
23991 ''<span>fool</span>'s errand''
23992 '<nowiki/>''foo'' bar '''baz''
23993 a|!*#-:;+-~[]{}b'''x''
23997 1b. Quotes inside <b> and <i> with other tags on same line
24001 '<i>a</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
24002 <i>a'</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
24003 <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>
24004 <a rel="mw:WikiLink" href="Foo" title="Foo">foo</a> x'<i><a href="Bar" rel="mw:WikiLink" title="Bar">bar</a></i>
24005 '<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>
24006 '<i>foo</i> <div title="name">test</div>
24007 '<i>foo</i> and <br data-parsoid='{"stx":"html","noClose":true}'/> bar
24008 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
24009 <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>
24012 '''a'' foo ''[[bar]]''
24013 ''a''' foo ''[[bar]]''
24014 ''a''' foo '''{{echo|[[bar]]}}'''
24015 [[foo]] x'''[[bar]]''
24016 '''foo'' <ref>test</ref>
24017 '''foo'' <div title="name">test</div>
24018 '''foo'' and <br> bar
24023 2. Link fragments separated by <i> and <b> tags
24027 <p>[[<i>foo</i>hello]]</p>
24028 <p>[[<b>foo</b>hello]]</p>
24030 [[''foo''<nowiki>hello]]</nowiki>
24032 [['''foo'''<nowiki>hello]]</nowiki>
24035 # FIXME: Escaping one or both of [[ and ]] is also acceptable --
24036 # this is one of the shortcomings of this format
24038 3. Link fragments inside <i> and <b>
24042 <p><i>[[foo</i>]]</p>
24043 <p><b>[[foo</b>]]</p>
24045 ''[[foo''<nowiki>]]</nowiki>
24047 '''[[foo'''<nowiki>]]</nowiki>
24051 4. No escaping needed
24055 <p>'<span><i>bar</i></span>'
24056 '<span><b>bar</b></span>'
24060 '<span>''bar''</span>'
24061 '<span>'''bar'''</span>'
24065 #### ----------- Paragraphs ---------------
24066 #### 1. No unnecessary escapes
24067 #### --------------------------------------
24070 1. No unnecessary escapes
24074 <p>bar <span>[[foo]]</span>
24075 </p><p>=bar <span>[[foo]]</span>
24076 </p><p>[[bar <span>[[foo]]</span>
24077 </p><p>]]bar <span>[[foo]]</span>
24078 </p><p>=bar <span>foo]]</span>=
24081 bar <span><nowiki>[[foo]]</nowiki></span>
24083 =bar <span><nowiki>[[foo]]</nowiki></span>
24085 [[bar <span><nowiki>[[foo]]</nowiki></span>
24087 ]]bar <span><nowiki>[[foo]]</nowiki></span>
24089 =bar <span>foo]]</span><nowiki>=</nowiki>
24092 #### ----------------------- PRE --------------------------
24093 #### 1. Leading whitespace in SOL context should be escaped
24094 #### ------------------------------------------------------
24096 1. Leading whitespace in SOL context should be escaped
24119 <nowiki> </nowiki>a
24121 <nowiki> </nowiki> a
24125 <nowiki> </nowiki> a
24127 <nowiki> </nowiki>a
24130 <nowiki> </nowiki>b
24153 2. Leading whitespace in non-indent-pre contexts should not be escaped
24157 <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>
24158 <ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
24159 <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>a</i>
24169 3. Leading whitespace in indent-pre suppressing contexts should not be escaped
24188 4. Leading whitespace in indent-pre suppressing contexts should not be escaped
24192 <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>
24194 [[File:Foobar.jpg|thumb|caption]]
24198 5. Nowiki escaping should account for indent-pres
24208 T95794: nowiki escaping should account for leading space at start-of-line in an indent-pre block
24221 #### --------------- Behavior Switches --------------------
24224 1. Valid behavior switches should be escaped
24231 <nowiki>__TOC__</nowiki>
24232 ''<nowiki>__TOC__</nowiki>''
24236 2. Invalid behavior switches should not be escaped
24247 # We use indent-pre as an indirect way to test for sol-transparent behavior.
24249 Behavior switches should be SOL-transparent
24253 <meta property="mw:PageProp/toc" />
24255 <!-- this one's bogus -->
24258 <pre data-parsoid='{}'><meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/> foo</pre>
24260 <meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/><pre data-parsoid='{}'>bar</pre>
24264 <!-- this one's bogus -->
24273 #### --------------- HTML tags ---------------
24276 #### 3. multi-line html tag
24277 #### 4. extension tags
24278 #### -----------------------------------------
24284 <a href="http://google.com">google</a>
24286 <a href="http://google.com">google</a>
24294 <ul><li> <div>foo</div></li>
24295 <li> <div style="color:red">foo</div></li>
24296 <li> <td></li></ul>
24299 * <nowiki><div>foo</div></nowiki>
24300 * <nowiki><div style="color:red">foo</div></nowiki>
24301 * <nowiki><td></nowiki>
24305 3. multi-line html tag
24324 <p><ref>foo</ref>
24325 </p><p><ref>bar
24326 </p><p>baz</ref>
24329 <nowiki><ref>foo</ref></nowiki>
24331 <nowiki><ref>bar</nowiki>
24333 baz<nowiki></ref></nowiki>
24336 #### --------------- Others ---------------
24342 <p><nowiki>foo</nowiki>
24345 <nowiki>foo</nowiki>
24348 ## The quote-char in the input is necessary for triggering the bug
24350 (Bug 52035) Nowiki-escaping should not get tripped by " :" in text
24359 #----------- End of wikitext escaping tests --------------
24363 Tag-like HTML structures are passed through as text
24385 </p><p>1<d e>f
24390 HTML tag with necessary entities in attributes
24392 <span title="&amp;">foo</span>
24394 <p><span title="&amp;">foo</span>
24399 HTML tag with 'unnecessary' entity encoding in attributes
24401 <span title="&">foo</span>
24403 <p><span title="&">foo</span>
24408 HTML tag with broken attribute value quoting
24410 parsoid=wt2html,html2html
24412 <span title="Hello world>Foo</span>
24414 <p><span title="Hello world">Foo</span>
24417 <p><span title="Hello world">Foo</span></p>
24421 Self-closed tag with broken attribute value quoting
24423 parsoid=wt2html,html2html
24425 <div title="Hello world />Foo
24427 <div title="Hello world"></div>
24430 <div title="Hello world " data-parsoid='{"stx":"html","selfClose":true}'></div><p>Foo</p>
24434 Table with broken attribute value quoting
24436 parsoid=wt2html,html2html
24439 | title="Hello world|Foo
24444 <td title="Hello world">Foo
24450 <td title="Hello world">Foo
24456 Table with broken attribute value quoting on consecutive lines
24458 parsoid=wt2html,html2html
24461 | title="Hello world|Foo
24462 | style="color:red|Bar
24467 <td title="Hello world">Foo
24469 <td style="color:red">Bar
24475 <td title="Hello world">Foo
24476 </td><td style="color: red">Bar
24477 </td></tr></tbody></table>
24482 Accept empty td cell attribute
24485 | align="center" | foo || |
24490 <td align="center"> foo </td>
24497 Non-empty attributes in th-cells
24500 ! Foo !! style="color: red" | Bar
24506 <th style="color: red"> Bar
24512 Accept empty attributes in th-cells
24527 Empty table rows go away
24548 ### Parsoid-centric tests for testing RTing of inter-element separators
24549 ### Edge cases not tested by existing parser tests and specific to
24550 ### Parsoid-specific serialization strategies.
24554 RT-ed inter-element separators should be valid separators
24566 <tbody><tr data-parsoid='{"startTagSrc":"|-","a":{"[[foo]]":null},"sa":{"[[foo]]":""},"autoInsertedEnd":true}'></tr>
24570 # Parsoid-only since PHP parser relies on Tidy for correct output
24572 Trailing newlines in a deep dom-subtree that ends a wikitext line should be migrated out
24586 <tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo
24587 <p>bar</p></small></td></tr>
24591 <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>
24595 # Note that the "style" attribute is really a template parameter here.
24596 # The = would have to be {{=}} if you wanted the literal.
24598 Empty TD followed by TD with tpl-generated attribute
24603 |{{echo|style='color:red'}}|foo
24617 Indented table with an empty td
24635 ## We have some newline diffs RT-ing this edge case
24636 ## and it is not important enough -- we seem to be emitting
24637 ## at most 2 newlines after a </tr> and this is unrelated to
24638 ## the issue from T85627 that this is testing.
24640 Indented table with blank lines in between (T85627)
24659 Indented block & table
24673 <div data-parsoid='{"stx":"html"}'>foo</div>
24675 <tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'>foo</td></tr>
24680 Indent and comment before table row
24695 <!--hi--><tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
24696 <td data-parsoid='{"autoInsertedEnd":true}'> there</td></tr>
24700 # Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext
24702 Empty TR followed by a template-generated TR
24708 {{echo|<tr><td>foo</td></tr>}}
24714 <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}}]}'>
24719 ## PHP and parsoid output differ for this, and since this is primarily
24720 ## for testing Parsoid's serializer, marking this Parsoid only
24722 Empty TR followed by mixed-ws-comment line should RT correctly
24738 <!--c--> </tr><!--d-->
24744 Multi-line image caption generated by templates with/without trailing newlines
24746 [[File:Foobar.jpg|thumb|300x300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}]]
24747 [[File:Foobar.jpg|thumb|300x300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}\n\n]]
24749 <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>
24750 <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>
24754 New element inserted (without intervening newlines) after an old sol-transparent node should serialize correctly
24758 <meta typeof="mw:Includes/IncludeOnly" data-parsoid='{"src":"<includeonly>foo</includeonly>"}'/><meta typeof="mw:Includes/IncludeOnly/End" data-parsoid='{"src":""}'/><p>new para</p>
24760 <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid='{}'/><h1>new heading</h1>
24762 <includeonly>foo</includeonly>
24770 ## PHP emits broken html for this, and since this is primarily
24771 ## a Parsoid serializer test, marking this Parsoid only
24773 Improperly nested inline or quotes tags with whitespace in between
24775 <span> <s>x</span> </s>
24778 <p><span> <s>x</s></span><s> </s>
24779 <b> <i>x</i></b><i> </i>
24784 Encapsulate protected attributes from wt
24786 <div typeof="mw:placeholder stuff" data-mw="whoo" data-parsoid="weird" data-parsoid-other="no" about="time" rel="mw:true">foo</div>
24788 <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>
24792 ## Currently the p-wrapper is fragile in how it adds / removes transformations.
24793 ## Having nested or stray pre tags results in the attempt to add duplicates,
24794 ## causing an assertion fail. This test tries to prevent that situation.
24796 Ensure ParagraphWrapper can deal with stray closing pre tags
24806 1. Ensure fostered text content is wrapped in element nodes
24810 <table>hi</table><table>ho</table>
24819 2. Ensure fostered text content is wrapped in element nodes (traps regressions around fostered marker on the element getting lost)
24821 parsoid=wt2html,wt2wt
24830 <tbody><tr><td> a</td></tr>
24835 Encapsulation properly handles null DSR information from foster box
24837 parsoid=wt2html,wt2wt
24839 {{echo|<table>foo<tr><td>bar</td></tr></table>}}
24841 <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>
24845 1. Encapsulate foster-parented transclusion content
24847 parsoid=wt2wt,wt2html
24849 <table>{{echo|foo<tr><td>bar</td></tr>}}</table>
24851 <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>
24861 2. Encapsulate foster-parented transclusion content
24863 parsoid=wt2wt,wt2html
24865 <table><div>{{echo|foo}}</div><tr><td>bar</td></tr></table>
24867 <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>
24878 3. Encapsulate foster-parented transclusion content
24880 parsoid=wt2wt,wt2html
24882 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
24884 <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>"]}">
24897 4. Encapsulate foster-parented transclusion content
24899 parsoid=wt2wt,wt2html
24901 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
24903 <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>"]}">
24916 5. Encapsulate foster-parented transclusion content
24918 parsoid=wt2wt,wt2html
24920 <table><tr><td><div><p>{{echo|foo</p></div></td>foo}}</tr></table>
24922 <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>
24937 6. Encapsulate foster-parented transclusion content
24939 parsoid=wt2wt,wt2html
24941 <table><tr><td><div><p>{{echo|foo</p></div></td>foo</tr></table>}}<p>ok</p>
24943 <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>
24959 7. Encapsulate foster-parented transclusion content
24961 parsoid=wt2wt,wt2html
24963 <table>{{echo|<p>foo</p>}}<td>bar</td></table>
24965 <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>
24975 # Note that the wt is broken on purpose: the = should be {{=}} if you
24976 # don't want it to be a template parameter key.
24978 8. Encapsulate foster-parented transclusion content
24980 parsoid=wt2wt,wt2html
24983 }}{|{{echo|style='color:red'}}
24988 <p typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n"}},"i":0}}]}'>a</p>
24990 <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>
25001 9. Encapsulate foster-parented transclusion content
25003 parsoid=wt2wt,wt2html
25005 <table>{{echo|hi</table>hello}}
25007 <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"}]]}'>hi</p><table about="#mwt2" data-parsoid='{"stx":"html"}'></table><p about="#mwt2">hello</p>
25011 Table in fosterable position
25022 <div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"OpenTable","href":"./Template:OpenTable"},"params":{},"i":0}},"\n<div>\n"]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[]]}'></div><span about="#mwt1">
25024 <table about="#mwt1" data-parsoid='{"autoInsertedEnd":true}'></table>
25030 # Parsoid only for bug 64747
25032 Properly encapsulate empty-content transclusions in fosterable positions
25040 <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"}]]}'>
25046 Always encapsulate foster box when template range is expanded to table
25059 T115289: Unclosed table
25061 {{echo|<table>}}<!--c-->[[Category:Two]]
25063 <link rel="mw:PageProp/Category" href="./Category:Two" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"simple","a":{"href":"./Category:Two"},"sa":{"href":"Category:Two"},"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<table>"}},"i":0}},"<!--c-->[[Category:Two]]"]}'/><table about="#mwt1" data-parsoid='{"stx":"html","autoInsertedEnd":true}'><!--c--></table>
25067 T115289: Don't migrate newlines out of tables with fostered content
25069 <table><td></td>{{echo|<tr>[[Category:One]]}}<!--c-->[[Category:Two]]
25071 <link rel="mw:PageProp/Category" href="./Category:One" about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"stx":"simple","a":{"href":"./Category:One"},"sa":{"href":"Category:One"},"fostered":true,"pi":[[{"k":"1"}]]}' data-mw='{"parts":["<table><td></td>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<tr>[[Category:One]]"}},"i":0}},"<!--c-->[[Category:Two]]"]}'/><link rel="mw:PageProp/Category" href="./Category:Two" about="#mwt2"/><table about="#mwt2" data-parsoid='{"stx":"html","autoInsertedEnd":true}'><tbody><tr><td></td></tr><tr><!--c--></tr></tbody></table>
25075 T73074: More fostering fun
25077 <table><td></td>{{echo|<tr>}}<!--c-->[[Category:Two]]
25079 <link rel="mw:PageProp/Category" href="./Category:Two" data-parsoid='{"stx":"simple","a":{"href":"./Category:Two"},"sa":{"href":"Category:Two"},"fostered":true}'/><table data-parsoid='{"stx":"html","autoInsertedEnd":true}'><tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"stx":"html"}'></td></tr><tr about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<tr>"}},"i":0}},"<!--c-->[[Category:Two]]"]}'><!--c--></tr></tbody></table>
25083 Support <object> element with .data attribute
25087 <object data="test.swf"></object>
25089 <object data="test.swf"></object>
25093 Don't block XML namespace declaration
25095 <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">MediaWiki</span>
25097 <p><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">MediaWiki</span>
25100 <p><span xmlns:dct="http://purl.org/dc/terms/" data-x-property="dct:title" data-parsoid='{"stx":"html"}'>MediaWiki</span></p>
25103 # -----------------------------------------------------------------
25104 # The following section of tests are primarily to spec requirements
25105 # around Parsoid's serialization (old, new, edited content)
25107 # All these tests are marked Parsoid html2wt and html2html only
25108 # ----------------------------------------------------------------
25111 Ignore rel attribute in a-tags during serialization to url-links
25115 <a href='http://en.wikipedia.org/wiki/Foobar'>http://en.wikipedia.org/wiki/Foobar</a>
25116 <a href='http://en.wikipedia.org/wiki/Foobar' rel='mw:ExtLink'>http://en.wikipedia.org/wiki/Foobar</a>
25117 <a href='http://en.wikipedia.org/wiki/Foobar' rel='mw:WikiLink'>http://en.wikipedia.org/wiki/Foobar</a>
25119 http://en.wikipedia.org/wiki/Foobar
25120 http://en.wikipedia.org/wiki/Foobar
25121 http://en.wikipedia.org/wiki/Foobar
25124 # 'mi' is a localinterwiki prefix as well as a language
25126 Serialize interwiki links pointing to the current wiki as plain wiki links (bug 65869)
25130 <p><a rel="mw:ExtLink" href="http://mi.wikipedia.org/wiki/Foo">Foo</a></p>
25137 New wikilinks should be serialized properly
25141 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{}'>Foo</a>
25142 <a rel="mw:WikiLink" href="./Foo" title="Foo">Foo</a>
25143 <a href="//en.wikipedia.org/wiki/Foo">//en.wikipedia.org/wiki/Foo</a>
25144 <a href="http://en.wikipedia.org/wiki/Foo">http://en.wikipedia.org/wiki/Foo</a>
25145 <a href="//en.wikipedia.org/wiki/Foo_bar">//en.wikipedia.org/wiki/Foo bar</a>
25149 [[:en:Foo|//en.wikipedia.org/wiki/Foo]]
25150 http://en.wikipedia.org/wiki/Foo
25151 [[:en:Foo_bar|//en.wikipedia.org/wiki/Foo bar]]
25155 New wiki links (href variations)
25159 <a rel="mw:WikiLink" href="./Foo_bar">Foo_bar</a>
25160 <a rel="mw:WikiLink" href="Foo_bar">Foo_bar</a>
25161 <a rel="mw:WikiLink" href="Foo bar">Foo_bar</a>
25162 <a rel="mw:WikiLink" href="./Toxine_bact%C3%A9rienne">Toxine bactérienne</a>
25167 [[Toxine bactérienne]]
25171 New wiki links (content string variations)
25175 <a rel="mw:WikiLink" href="./Foo_bar">Foo_bar</a>
25176 <a rel="mw:WikiLink" href="./Foo_bar">Foo bar</a>
25177 <a rel="mw:WikiLink" href="./Foo_bar">./Foo_bar</a>
25181 [[Foo_bar|./Foo_bar]]
25185 New category links (href variations)
25189 <link rel="mw:PageProp/Category" href="./Category:Toxine_bactérienne" />
25190 <link rel="mw:PageProp/Category" href="./Category:Toxine_bact%C3%A9rienne" />
25191 <link rel="mw:PageProp/Category" href="Category:Toxine_bact%C3%A9rienne" />
25193 [[Category:Toxine bactérienne]]
25194 [[Category:Toxine bactérienne]]
25195 [[Category:Toxine bactérienne]]
25199 New sol transparent links don't need indent-pre nowiki protection
25204 <link rel="mw:PageProp/redirect" href="./Main_Page">
25205 <!-- this is good --> <link rel="mw:PageProp/Category" href="./Category:Good" />
25206 <!-- this is great --> <link rel="mw:PageProp/Category" href="./Kategorie:Great" />
25208 #WEITERLEITUNG [[Main Page]]
25209 <!-- this is good --> [[Category:Good]]
25210 <!-- this is great --> [[Kategorie:Great]]
25214 New interlanguage links (href variations)
25218 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine bactérienne" />
25219 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine_bactérienne" />
25220 <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Toxine_bact%C3%A9rienne" />
25222 [[es:Toxine bactérienne]]
25223 [[es:Toxine_bactérienne]]
25224 [[es:Toxine_bactérienne]]
25228 Image: Modifying size of an image (1)
25231 "modes": ["wt2wt"],
25233 ["img[height]", "attr", "height", "22"],
25234 ["img[width]", "attr", "width", "200"]
25238 [[Image:Foobar.jpg|230x230px]]
25240 [[Image:Foobar.jpg|200x200px]]
25244 Image: Modifying size of an image (2)
25247 "modes": ["wt2wt"],
25249 ["img[height]", "attr", "height", "100"],
25250 ["img[width]", "attr", "width", "500"]
25254 [[Image:Foobar.jpg|230x230px]]
25256 [[Image:Foobar.jpg|500x500px]]
25259 # Change in size is ignored so long as class='mw-default-size'
25261 Image: Modifying size of an image (3)
25264 "modes": ["wt2wt"],
25266 ["figure[class]", "removeClass", "mw-default-size"],
25267 ["figure img", "attr", "height", "19"],
25268 ["figure img", "attr", "width", "170"]
25272 [[Image:Foobar.jpg|thumb]]
25274 [[Image:Foobar.jpg|thumb|170x170px]]
25278 Image: Modifying alignment of an image (bug 48665)
25281 "modes": ["wt2wt"],
25283 ["figure[class]", "removeClass", "mw-halign-right"],
25284 ["figure[class]", "addClass", "mw-halign-left"]
25288 [[Image:Foobar.jpg|thumb|caption|right]]
25290 [[Image:Foobar.jpg|thumb|caption|left]]
25294 Image: Modifying mw-default-size of an frameless image (bug 62805)
25297 "modes": ["wt2wt"],
25299 ["figure.mw-default-size", "removeClass", "mw-default-size"]
25303 [[Image:Foobar.jpg|frameless|right]]
25305 [[Image:Foobar.jpg|frameless|right|220x220px]]
25309 Image: Modifying valign of an image (bug 49221)
25312 "modes": ["wt2wt"],
25314 ["*[typeof=\"mw:Image\"]", "removeClass", "mw-valign-middle"],
25315 ["*[typeof=\"mw:Image\"]", "addClass", "mw-valign-text-top"]
25319 [[File:Foobar.jpg|20px|middle]]
25321 [[File:Foobar.jpg|20px|text-top]]
25325 Image: Modifying alt attribute of an image (bug 56400)
25328 "modes": ["wt2wt"],
25330 ["img[alt]", "attr", "alt", "some alternate edited text"]
25334 [[File:Foobar.jpg|thumb|some caption|alt=some alternate text]]
25336 [[File:Foobar.jpg|thumb|some caption|alt=some alternate edited text]]
25340 Image: Modifying caption of an image
25343 "modes": ["wt2wt"],
25345 ["figcaption", "text", "new caption"]
25349 [[Image:Foobar.jpg|thumb|original caption]]
25351 [[Image:Foobar.jpg|thumb|new caption]]
25355 Image: empty alt attribute (bug 48924)
25359 [[File:Foobar.jpg|thumb|alt=|bar]]
25361 <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>
25365 Image: new attributes should be serialized in wiki's language for RTL languages (bug 51852)
25371 <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>
25373 [[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
25377 Image: Block level image should have \n before and after
25380 [[File:Foobar.jpg|right|thumb|150x150px]]
25384 <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>
25389 Image: New block level image should have \n before and after (existing content)
25392 [[File:Foobar.jpg|right|thumb|150x150px]]
25396 <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>
25401 Image: upright option (parsoid)
25403 [[File:Foobar.jpg|thumb|upright|caption]]
25404 [[File:Foobar.jpg|thumb|upright=0.5|caption]]
25405 [[File:Foobar.jpg|thumb|500x500px|upright=0.5|caption]]
25407 <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>
25408 <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>
25409 <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>
25413 Image: upright option is ignored on inline and frame images (parsoid)
25415 [[File:Foobar.jpg|500x500px|upright=0.5|caption]]
25417 <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>
25421 Image: from basic HTML (1)
25425 <span typeof="mw:Image">
25426 <img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
25429 [[File:Foobar.jpg|link=|alt=Alt|100x100px]]
25433 Image: from basic HTML (2)
25437 <img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
25439 [[File:Foobar.jpg|link=|alt=Alt|100x100px]]
25443 Image: from basic HTML (3)
25447 <a href="Main"><img src="./File:Foobar.jpg" width=100 height=100 alt="Alt"></a>
25449 [[File:Foobar.jpg|link=Main|alt=Alt|100x100px]]
25453 Image: from basic HTML (4)
25457 <img src="./File:Foobar.jpg">
25459 [[File:Foobar.jpg|link=]]
25463 Image: Invalid title as link
25465 [[File:Foobar.jpg|link=<]]
25467 <p><a href="/wiki/File:Foobar.jpg" class="image" title="link=<"><img alt="link=<" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
25470 <p><span class="mw-default-size" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"link","ak":"link=<"}]}' data-mw='{"caption":"link=&lt;"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><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":"File:Foobar.jpg"}}'/></a></span></p>
25474 Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does)
25479 <li><p>foo</p></li>
25486 Lists: Serialize correctly even when list tags has unneeded whitespace between tags
25490 <ul> <li>foo</li></ul>
25496 Don't strip leading whitespace when handling indent-pre suppressing tags
25501 <tr><td> indented row</td></tr>
25504 <b>This is very bold of you!</b>
25507 indented cell (no pre-wrapping!)
25517 '''This is very bold of you!'''
25521 indented cell (no pre-wrapping!)
25529 Nowiki-wrap leading whitespace when handling indent-pre inducing tags
25551 <nowiki> </nowiki></span>bar2
25554 <nowiki> </nowiki><span>bar</span>
25557 <nowiki> </nowiki><span>foo</span>
25562 Lists: Dont insert newlines in a serialized list item.
25566 <ul><li>a<br>b</li><li>c</li></ul>
25573 1. Headings: Force sol-transparent links and behavior switches to serialize before/after
25576 "modes": ["html2wt"],
25577 "scrubWikitext": false
25580 <h2>hello there<link href="./Category:A1" rel="mw:PageProp/Category" /></h2>
25581 <h2><link href="./Category:A2" rel="mw:PageProp/Category" />hi pal</h2>
25583 <h2><!--foo--> <link href="./Category:A3" rel="mw:PageProp/Category" /> how goes it</h2>
25584 <h2>it goes well <link href="./Category:A4" rel="mw:PageProp/Category" /> <!--bar--></h2>
25586 <h2 data-parsoid='{}'>howdy<link href="./Category:A5" rel="mw:PageProp/Category" /></h2>
25588 <h2><meta property="mw:PageProp/toc" /> ok</h2>
25590 == hello there [[Category:A1]] ==
25592 == [[Category:A2]] hi pal ==
25594 == <!--foo--> [[Category:A3]] how goes it ==
25596 == it goes well [[Category:A4]] <!--bar--> ==
25598 ==howdy [[Category:A5]]==
25604 2. Headings: Force sol-transparent links and behavior switches to serialize before/after
25607 "modes": ["html2wt"],
25608 "scrubWikitext": true
25611 <h2>hello there<link href="./Category:A1" rel="mw:PageProp/Category" /></h2>
25612 <h2><link href="./Category:A2" rel="mw:PageProp/Category" />hi pal</h2>
25614 <h2><!--foo--> <link href="./Category:A3" rel="mw:PageProp/Category" /> how goes it</h2>
25615 <h2>it goes well <link href="./Category:A4" rel="mw:PageProp/Category" /> <!--bar--></h2>
25617 <h2><meta property="mw:PageProp/toc" /> ok</h2>
25625 <!--foo--> [[Category:A3]]
25630 [[Category:A4]] <!--bar-->
25638 Headings: Don't hoist metas that come from templates
25641 "modes": ["html2wt"],
25642 "scrubWikitext": true
25645 <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>
25647 == {{echo|foo [[Category:Foo]]}} ==
25651 Headings: Category in ref isn't hoisted
25654 "modes": ["html2wt"],
25655 "scrubWikitext": true
25658 <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>
25660 <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>
25663 [[Category:Baz]] </ref> ==
25669 Parsoid: Serialize positional parameters with = in them as named parameter
25673 <p about="#mwt1" typeof="mw:Transclusion"
25674 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}},"i":0}}]}'>foo</p>
25676 <p about="#mwt1" typeof="mw:Transclusion"
25677 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}, "2":{"wt":"bar"}},"i":0}}]}'>foo</p>
25679 <!--Orig params with data-parsoid has heuristics for handling = chars-->
25680 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
25681 <p data-parsoid='{"pi":[[{"k":"1"},{"k":"2"}]]}' 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>
25685 {{echo|1=f=oo|2=bar}}
25687 <!--Orig params with data-parsoid has heuristics for handling = chars-->
25688 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
25689 {{echo|<nowiki>f=oo</nowiki>|bar}}
25693 Parsoid: Serialize positional parameters with = in extlink as named parameter
25697 <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>
25699 {{echo|1=http://stuff?is=ok}}
25703 Parsoid: Correctly serialize block-node children when they are a combination of text and p-nodes
25707 <div>a<p>b</p></div>
25728 Substrings resembling wikitext in hrefs should not get nowiki escapes
25732 <a rel="mw:WikiLink" href="./Foo''bar''baz">Foo''bar''baz</a>
25738 Enforce single-line context in the serializer
25745 <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">
25746 </span><span about="#mwt1">you</span> </h2>
25748 <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>
25750 <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
25751 there</span></li></ol>
25763 ho </dt><dd data-parsoid='{"stx":"row"}'> hi
25770 </tbody></table></dd></dl>
25774 == hi {{bogus|there
25785 * foo '''bar''' baz
25797 Serialize new placeholder space without spans
25801 <p>foo<span typeof="mw:Placeholder"> </span>: bar</p>
25803 <p>foo<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span>: bar</p>
25805 <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>
25811 <ref>foo : bar</ref>ok
25815 #-----------------------
25816 # Tag minimization tests
25817 #-----------------------
25820 1. I/B quote minimization: wikitext-only tags should be combined
25824 <p><i>A</i><i>B</i></p>
25825 <p><b>A</b><b>B</b></p>
25826 <p><i>A</i><b><i>B</i></b></p>
25827 <p><b>A</b><i><b>B</b></i></p>
25828 <p><b>A</b><i><b>B</b><b>C</b></i><b>D</b></p>
25829 <p><i><b>A</b></i><i><b>B</b></i></p>
25830 <p><i><b>A</b></i><b><i>B</i></b></p>
25831 <p><b><i>A</i></b><i><b>B</b></i></p>
25851 2. I/B quote minimization: wikitext and html tags should not be combined
25855 <p><i>A</i><i data-parsoid='{"stx":"html"}'>B</i></p>
25856 <p><i>A</i><b><i data-parsoid='{"stx":"html"}'>B</i></b></p>
25860 ''A''<nowiki/>'''<i>B</i>'''
25864 3. I/B quote minimization: templated content stops minimization
25868 <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>
25869 <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>
25871 ''A''{{echo|''B''}}
25873 ''A''{{echo|'''''B'''''}}
25877 4. I/B quote minimization: new content should be mimimized with adjacent old content
25881 <p><i>A</i><i>B</i></p>
25882 <p><b>A</b><b>B</b></p>
25883 <p><i>A</i><b><i>B</i></b></p>
25893 5a. Merge adjacent quote nodes if they've been edited
25896 "modes": ["wt2wt", "selser"],
25898 ["p", "contents", "remove", ":contains('b')"]
25908 5b. Merge adjacent quote nodes if they've been edited
25911 "modes": ["wt2wt", "selser"],
25917 ''a''<span id="x">b</span>''c''
25923 1. Merge adjacent link nodes as long as at least one element is new
25926 "modes": ["html2wt"],
25927 "scrubWikitext": true
25930 <a rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
25931 <a data-parsoid="{}" rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
25932 <a data-parsoid="{}" rel="mw:WikiLink" href="./Football">Foot</a><a data-parsoid="{}" rel="mw:WikiLink" href="./Football">ball</a>
25936 [[Football|Foot]][[Football|ball]]
25940 2. Merge adjacent link nodes and enable additional normalizations
25943 "modes": ["html2wt"],
25944 "scrubWikitext": true
25947 <a rel="mw:WikiLink" href="./Football"><i>Foot</i></a><a rel="mw:WikiLink" href="./Football"><i>ball</i></a>
25949 [[Football|''Football'']]
25953 3. Don't merge adjacent link nodes if scrubWikitext is false
25956 "modes": ["html2wt"],
25957 "scrubWikitext": false
25960 <a rel="mw:WikiLink" href="./Football">Foot</a><a rel="mw:WikiLink" href="./Football">ball</a>
25962 [[Football|Foot]][[Football|ball]]
25965 #------------------------------
25966 # End of tag minimization tests
25967 #------------------------------
25970 Bug 54262: New entities
25974 <span typeof="mw:Entity"> </span>
25979 ## Note that there is no wikitext output for 'unknownproperty' ##
25980 ## Unknown magic words are silently dropped ##
25987 <meta property='mw:PageProp/toc' />
25988 <meta property='mw:PageProp/notoc' />
25989 <meta property='mw:PageProp/forcetoc' />
25990 <meta property='mw:PageProp/index' />
25991 <meta property='mw:PageProp/noindex' />
25992 <meta property='mw:PageProp/nogallery' />
25993 <meta property='mw:PageProp/noeditsection' />
25994 <meta property='mw:PageProp/notitleconvert' />
25995 <meta property='mw:PageProp/nocontentconvert' />
25996 <meta property='mw:PageProp/unknownproperty' />
26006 __NOCONTENTCONVERT__
26010 Consecutive <pre>s should not get merged
26012 parsoid=html2wt,html2html
26014 <pre>a</pre><pre>b</pre>
26042 Edited ISBN links not serializable as ISBN links should serialize as wikilinks
26046 <a href="./Special:BookSources/1234567890" rel="mw:ExtLink">ISBN 1234567895</a>
26048 [[Special:BookSources/1234567890|ISBN 1234567895]]
26052 Edited RFC links not serializable as RFC links should serialize as extlinks
26056 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink">New RFC</a>
26058 [//tools.ietf.org/html/rfc123 New RFC]
26062 Edited PMID links not serializable as PMID links should serialize as extlinks
26066 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink">New PMID</a>
26068 [//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract New PMID]
26072 WTS of autolinks with trailing/surrounding context
26076 <p><a href="http://cscott.net">http://cscott.net</a><b>foo</b></p>
26077 <p><a href="http://cscott.net">http://cscott.net</a><b data-parsoid='{"stx":"html"}'>foo</b></p>
26078 <p><b><a href="http://cscott.net">http://cscott.net</a></b></p>
26079 <p><b><a href="http://cscott.net">http://cscott.net</a> </b></p>
26080 <p><b><a href="http://cscott.net">http://cscott.net</a>x</b></p>
26081 <p><a href="http://cscott.net">http://cscott.net</a>x</p>
26083 http://cscott.net'''foo'''
26085 http://cscott.net<b>foo</b>
26087 '''http://cscott.net'''
26089 '''http://cscott.net '''
26091 '''http://cscott.net<nowiki/>x'''
26093 http://cscott.net<nowiki/>x
26097 WTS of autolinks with nowikis (round-trip)
26099 x<nowiki/>http://cscott.net<nowiki/>x
26101 <p>x<a rel="mw:ExtLink" href="http://cscott.net">http://cscott.net</a>x</p>
26104 # this is the "easy" test because it leaves in place all the
26105 # data-parsoid information indicating this is an autolink
26107 WTS of autolinks with escapes (editing)
26110 "modes": ["wt2wt"],
26112 [ "meta", "remove" ]
26116 x<nowiki/>http://cscott.net<nowiki/>x
26118 x<nowiki/>http://cscott.net<nowiki/>x
26122 WTS of edited autolink-like text (T103364)
26125 "modes": ["wt2wt"],
26127 [ "span[typeof]", "removeAttr", "typeof" ]
26131 Not a link: <nowiki>http://example.com</nowiki>.
26133 Not a link: <span><nowiki>http://example.com</nowiki></span>.
26137 WTS of newly-authored autolink-like text (T103364)
26141 <p>http://example.com is not a link.</p>
26143 <nowiki>http://example.com</nowiki> is not a link.
26147 WTS of autolink-like text after an autolink (T108563)
26151 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a> http://example.com is not a link.</p>
26153 http://example.com <nowiki>http://example.com</nowiki> is not a link.
26157 Magic links inside links (not autolinked)
26159 [[Foo|http://example.com]]
26162 [[Foo|ISBN 123456789x]]
26164 [http://foo.com http://example.com]
26165 [http://foo.com RFC 1234]
26166 [http://foo.com PMID 1234]
26167 [http://foo.com ISBN 123456789x]
26169 <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>
26170 <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>
26172 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">http://example.com</a>
26173 <a rel="mw:WikiLink" href="./Foo" title="Foo">RFC 1234</a>
26174 <a rel="mw:WikiLink" href="./Foo" title="Foo">PMID 1234</a>
26175 <a rel="mw:WikiLink" href="./Foo" title="Foo">ISBN 123456789x</a></p>
26177 <p><a rel="mw:ExtLink" href="http://foo.com">http://example.com</a>
26178 <a rel="mw:ExtLink" href="http://foo.com">RFC 1234</a>
26179 <a rel="mw:ExtLink" href="http://foo.com">PMID 1234</a>
26180 <a rel="mw:ExtLink" href="http://foo.com">ISBN 123456789x</a></p>
26184 Magic links inside image captions (autolinked)
26186 [[File:Foobar.jpg|thumb|http://example.com]]
26187 [[File:Foobar.jpg|thumb|RFC 1234]]
26188 [[File:Foobar.jpg|thumb|PMID 1234]]
26189 [[File:Foobar.jpg|thumb|ISBN 123456789x]]
26191 <div class="thumb tright">
26192 <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>
26193 <div class="thumbcaption">
26194 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
26195 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div>
26198 <div class="thumb tright">
26199 <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>
26200 <div class="thumbcaption">
26201 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
26202 <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc1234">RFC 1234</a></div>
26205 <div class="thumb tright">
26206 <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>
26207 <div class="thumbcaption">
26208 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
26209 <a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a></div>
26212 <div class="thumb tright">
26213 <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>
26214 <div class="thumbcaption">
26215 <div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>
26216 <a href="/wiki/Special:BookSources/123456789X" class="internal mw-magiclink-isbn">ISBN 123456789x</a></div>
26220 <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>
26221 <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>
26222 <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>
26223 <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>
26227 WTS of magic word text (T109371)
26232 <p><a href="http://foo.com" rel="mw:ExtLink">RFC 1234</a></p>
26233 <p><a href="./Foo" rel="mw:WikiLink">RFC 1234</a></p>
26235 <nowiki>RFC 1234</nowiki>
26237 [http://foo.com RFC 1234]
26243 Edited Redirect link should emit a non-piped wikitext link
26247 <link rel="mw:PageProp/redirect" href="Bar" data-parsoid='{"a":{"href":"./Foo"},"sa":{"href":"Foo"}}'>
26253 T75121: Infer extension name from typeOf if data-mw is not present
26255 parsoid={ "modes": ["html2wt"], "suppressErrors": true }
26257 <div typeOf="mw:Extension/foo"></div>
26262 # Note that the <p> wrapping isn't present in PHP parser output
26263 # The important thing for this test is that P-wrapping doesn't
26264 # interfere with the <nowiki> protection for leading - in <td>
26265 # (which isn't necessary for <th>).
26267 T88318: p-wrapped dash in table.
26269 parsoid=html2wt,wt2wt
26272 <tr><th><p>-</p></th><th><p>- </p></th></tr>
26273 <tr><td><p>-</p></td><td><p>- </p></td></tr>
26274 <tr><td><small>-</small></td><td><br/><p>-</p></td><td><br/>-</td></tr>
26281 |<nowiki>-</nowiki>
26282 |<nowiki>- </nowiki>
26301 <td><small>-</small></td>
26313 HTML id attribute with Parsoid-like element ids should not be serialized to wikitext
26318 <td id='mwAc'>foo</td>
26319 <td id='serialize-this'>bar</td>
26324 | id="serialize-this" |bar
26329 Parsoid-like element ids should not be serialized to wikitext unless shadowed
26333 <div id="mwAQ" data-parsoid='{"stx":"html","a":{"id":"mwAQ"},"sa":{"id":"hello"}}'>ok</div>
26335 <div id="hello">ok</div>
26342 "modes": ["wt2wt"],
26344 [ "#xyz", "before", "<b>before</b> stuff " ],
26345 [ "#xyz", "after", " stuff <i>after</i>" ],
26346 [ "#xyz", "html", "x <b>y</b> z" ]
26350 <span id="xyz">hello</span>
26352 '''before''' stuff <span id="xyz">x '''y''' z</span> stuff ''after''
26356 Never serialize a-tag as html, regardless of what data-parsoid has to say
26358 parsoid={ "modes": ["html2wt"], "suppressErrors": true }
26360 <a rel="mw:WikiLink" href="./Foo" title="Foo" data-parsoid='{"stx":"html"}'>Foo</a>
26365 ## SSS FIXME: This is broken output nevertheless.
26366 ## What might be a reasonable non-broken output for this?
26367 ## This is an edge case unlikely to be seen in production
26368 ## that I am not wasting more time on this right now.
26370 Never serialize a-tag as html, no matter what attributes it has
26372 parsoid={ "modes": ["html2wt"], "suppressErrors": true }
26374 <a bad='true' href='http://boo.org'><img src='http://boohoo.org' /></a>
26376 [http://boo.org http://boohoo.org]
26379 # Misnested is an indication that selser can reuse the source but these have
26380 # shown to sneak through on occasion. See T101768.
26381 # The original wikitext here is: [http://test.com [[one]] two three]
26383 Strip span tags added to mark misnested links
26387 <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>
26389 [http://test.com][[one]] two three
26393 Use data-parsoid.firstWikitextNode to compute newline constraints for template content
26397 <span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}}]}'>a</span><table about="#mwt2" typeof="mw:Transclusion mw:ExpandedAttrs" data-parsoid='{"a":{"{{echo|c\n{{!}}d\n}}":null},"sa":{"{{echo|c\n{{!}}d\n}}":""},"firstWikitextNode":"table","pi":[[{"k":"1"}]]}' data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"c\n{{!}}d\n"}},"i":0}},"\n|}"]}'>
26409 ## This test verifies the presence and computation of this attribute indirectly
26410 ## by making an edit and ensuring that the serialization is correct (which it would be
26411 ## only if firstWikitextNode is properly set).
26413 data-parsoid.firstWikitextNode should be computed properly in the presence of fostered content
26416 "modes": ["wt2wt"],
26418 [ "div#x", "remove" ],
26419 [ "div", "before", "<div>new</div>" ]
26423 <div id="x">foo</div>
26425 {{echo|<div>boo</div>
26433 {{echo|<div>boo</div>
26439 # --------------------------------------------
26440 # Tests spec'ing wikitext serialization norms |
26441 # --------------------------------------------
26444 1. Categories should always be serialized on their own line
26448 foo<link rel="mw:PageProp/Category" href="./Category:Foo">bar
26456 2. Categories that are part of templates should not introduce a line break
26458 foo {{echo|<span>bar</span> [[Category:baz]]}} bar
26460 <p>foo <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<span>bar</span> [[Category:baz]]"}},"i":0}}]}'>bar</span><span about="#mwt1"> </span><link rel="mw:PageProp/Category" href="./Category:Baz" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Category:Baz"},"sa":{"href":"Category:baz"}}'/> bar</p>
26463 # Careful while editing these next 2 tests. There are \u200f characters
26464 # before and after the <link> tags in the HTML and following some
26465 # of the categories in wikitext
26466 # Do not remove these characters in edits.
26468 # As part of the serialization, these bidi characters will get stripped.
26470 RTL (\u200f) and LTR (\u200e) markers around category tags should be stripped
26473 "modes": ["html2wt"],
26474 "scrubWikitext": true
26477 <p><link rel="mw:PageProp/Category" href="./קטגוריה:טקסים" />
26478 <link rel="mw:PageProp/Category" href="./קטגוריה:_שיטות_משפט" /></p>
26481 [[קטגוריה: שיטות משפט]]
26485 RTL (\u200f) and LTR (\u200e) markers should not be stripped if followed by a text node
26488 "modes": ["html2wt"],
26489 "scrubWikitext": true
26492 <p><link rel="mw:PageProp/Category" href="./קטגוריה:טקסים" />y</p>
26499 Lists: Add space after bullets
26506 <li><span> baz</span></li>
26511 * <span> baz</span>
26515 1. Headings: Add space before/after == (T53744)
26522 <h2><span> baz</span></h2>
26530 == <span> baz</span> ==
26534 2. Headings: Add space before/after == even after hoisted content
26537 "modes": ["html2wt"],
26538 "scrubWikitext": true
26541 <h2> <link href="./Category:A2" rel="mw:PageProp/Category" />ok</h2>
26549 1. Headings: suppress newly created empty headings
26552 "modes": ["html2wt"],
26553 "scrubWikitext": true
26561 2. Headings: don't suppress empty headings if scrubWikitext is false
26571 3. Headings: suppress empty headings on edits
26574 "modes": ["selser"],
26575 "scrubWikitext": true,
26581 ==<span id="x">foo</span>==
26586 Headings: Replace <br/> with a single whitespace char (when scrubWikitext = true)
26589 "modes": ["html2wt"],
26590 "scrubWikitext": true
26593 <h2>foo<br/>bar</h2>
26594 <h2>foo <span><br/>bar</span> baz</h2>
26598 == foo <span> bar</span> baz ==
26602 Headings: Replace <br/> with a single whitespace char (when scrubWikitext = false)
26605 "modes": ["html2wt"],
26606 "scrubWikitext": false
26609 <h2>foo<br/>bar</h2>
26615 1. WT Quote Tags: suppress newly created empty style tags
26618 "modes": ["html2wt"],
26619 "scrubWikitext": true
26627 2. WT Quote Tags: don't suppress empty style tags if scrubWikitext is false
26633 ''<nowiki/>'''''<nowiki/>'''
26637 3. WT Quote Tags: suppress empty style tags on edits
26640 "modes": ["selser"],
26641 "scrubWikitext": true,
26647 '''<span id="x">foo</span>'''
26652 1. Anchors: suppress newly created empty anchors
26655 "modes": ["html2wt"],
26656 "scrubWikitext": true
26659 <a rel="mw:WikiLink" href="./Test" title="Test"></a>
26664 2. Anchors: don't suppress empty anchors if scrubWikitext is false
26667 "modes": ["html2wt"],
26668 "scrubWikitext": false
26671 <a rel="mw:WikiLink" href="./Test" title="Test"></a>
26677 3. Anchors: suppress empty anchors on edits
26680 "modes": ["selser"],
26681 "scrubWikitext": true,
26687 [[Test|<span id="x">foo</span>]]
26692 3a. Anchors: do not suppress numbered extlinks
26695 "modes": ["wt2wt"],
26696 "scrubWikitext": true
26701 <a rel="mw:ExtLink" href="http://foo.com"></a>
26705 3b. Anchors: do not suppress numbered extlinks
26708 "modes": ["wt2wt"],
26709 "scrubWikitext": true,
26715 [http://foo.com <span id="x">foo</span>]
26721 Normalizations should be restricted to edited content
26724 "modes": ["selser"],
26725 "scrubWikitext": true,
26727 [ "h1", "before", "<i></i>"]
26741 1. Multiple normalizations (html2wt)
26744 "modes": ["html2wt"],
26745 "scrubWikitext": true
26749 <p><a href='Foo' rel='mw:WikiLink'>foo<i></i>
26750 </a><b><i></i></b>x</p>
26759 2. Multiple normalizations (selser)
26762 "modes": ["selser"],
26763 "scrubWikitext": true,
26765 [ "#x", "after", "<h1><i></i></h1>\n<p> x<b></b></p>"]
26769 <span id="x">foo</span>
26771 <span id="x">foo</span>
26777 1. Indent Pre Nowiki: suppress whitespace at the start of new paragraph
26780 "modes": ["html2wt"],
26781 "scrubWikitext": true
26793 2. Indent Pre Nowiki: don't suppress whitespace at the start of new paragraph if scrubWikitext is false
26800 <nowiki> </nowiki>hi
26802 <nowiki> </nowiki> hello
26806 3. Indent Pre Nowiki: suppress whitespace after newlines in new paragraph or table cell
26809 "modes": ["html2wt"],
26810 "scrubWikitext": true
26819 baz bang</td></tr></table>
26825 bar<span>boo</span></p>
26841 bar<span>boo</span>
26845 4. Indent Pre Nowiki: suppress leading whitespace in edited paragraphs
26848 "modes": ["selser"],
26849 "scrubWikitext": true,
26851 [ "p", "html", " a\n b" ]
26862 1. New links that end in spaces
26865 "modes": ["html2wt"],
26866 "scrubWikitext": false
26869 <p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the capital of Germany.</p>
26870 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
26871 <p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a city.</p>
26873 [[Berlin ]]<nowiki/>is the capital of Germany.
26877 [[Boston ]] is a city.
26881 2. New links that end in spaces
26884 "modes": ["html2wt"],
26885 "scrubWikitext": true
26888 <p><a rel="mw:WikiLink" href="./Berlin" title="Berlin">Berlin </a>is the capital of Germany.</p>
26889 <p><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo </a><b>bar</b></p>
26890 <p><a rel="mw:WikiLink" href="./Boston" title="Boston">Boston </a> is a city.</p>
26892 [[Berlin]] is the capital of Germany.
26896 [[Boston]] is a city.
26900 1. Table cells with escapable prefixes
26903 "modes": ["html2wt"],
26904 "scrubWikitext": false
26908 <tr><td>a</td></tr>
26909 <tr><td>-</td></tr>
26910 <tr><td>+</td></tr>
26916 |<nowiki>-</nowiki>
26918 |<nowiki>+</nowiki>
26923 2. Table cells with escapable prefixes
26926 "modes": ["html2wt"],
26927 "scrubWikitext": true
26931 <tr><td>a</td></tr>
26932 <tr><td>-</td></tr>
26933 <tr><td>+</td></tr>
26946 3a. Table cells with escapable prefixes after edits
26949 "modes": ["selser"],
26950 "scrubWikitext": true,
26952 [ "table tbody tr:first-child td:first-child", "remove"]
26966 3b. Table cells with escapable prefixes after edits
26969 "modes": ["selser"],
26970 "scrubWikitext": true,
26972 [ "table tbody tr:first-child td:first-child", "html", "-" ],
26979 |<span id="x">foo</span>+
26988 # FIXME: This test will fail because
26989 # normalization doesn't realize that the id attribute
26990 # will eliminate the escapable scenario
26992 4a. Table cells without escapable prefixes after edits
26995 "modes": ["selser"],
26996 "scrubWikitext": true,
26998 [ "#x", "html", "-" ]
27011 ## This tests normalizer's ability to discriminate between
27012 ## cells having identical content.
27014 4b. Table cells without escapable prefixes after edits
27017 "modes": ["selser"],
27018 "scrubWikitext": true,
27020 [ "td", "html", "-" ]
27033 ## This tests normalizer's ability to not be tripped by
27034 ## comments (and whitespace)
27036 4c. Table cells without escapable prefixes after edits
27039 "modes": ["selser"],
27040 "scrubWikitext": true,
27042 [ "table tbody tr td:first-child", "remove" ]
27057 ## This tests normalizer's ability to handle HTML cells
27059 4d. Table cells without escapable prefixes after edits
27062 "modes": ["selser"],
27063 "scrubWikitext": true,
27065 [ "td", "html", "-" ]
27070 <tr><td>a</td></tr>
27074 <tr><td>-</td></tr>
27078 ## T111151 Remove font elements without attributes
27080 5a. font tags without attributes should be dropped in scrubWikitext mode
27083 "modes": ["html2wt"],
27084 "scrubWikitext": true
27088 <font><font>bar</font></font>
27089 <font class="x">boo</font>
27093 <font class="x">boo</font>
27097 5b. font tags should not be dropped without scrubWikitext being enabled
27100 "modes": ["html2wt"],
27101 "scrubWikitext": false
27110 Escape nowiki DOM elements
27114 <nowiki><i>foo</i></nowiki>
27116 <nowiki>''foo''</nowiki>
27119 # This is meant to be an interim fix while we go about figuring out
27120 # how to not introduce these trailing <nowiki/>s in the first place.
27122 T115717: Strip trailing <nowiki/>s (without affecting valid uses)
27126 <p>x<meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/><meta typeof="mw:Placeholder" data-parsoid='{"src":"<nowiki/>"}'/>
27128 <p><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","named":true,"spc":["\n"," "," ",""]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki/>"}},"i":0}}]}'></span></p>
27129 <p><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1","named":true,"spc":["\n"," "," ","\n"]}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki/>"}},"i":0}}]}'></span></p>
27142 # ---------------------------------------------------
27143 # End of tests spec'ing wikitext serialization norms |
27144 # ---------------------------------------------------
27148 Bare inline nodes not wrapped inside p-tags should be treated as p-wrapped
27156 <td><b>c</b><p>d</p></td>
27174 # -----------------------------------------------------------------
27175 # End of section for Parsoid-only html2wt tests for serialization
27177 # -----------------------------------------------------------------
27179 # -----------------------------------------------------------------
27180 # The following section of tests are primarily to spec behavior of
27181 # the selective serializer. All these tests have manual selser
27182 # changes. The automated selser changes for all tests handle the
27183 # wide variation of changes, but these tests here capture specs
27184 # deterministically.
27185 # ----------------------------------------------------------------
27189 Selser: New comments should not be lost
27192 "modes": ["selser"],
27194 [ "#a", "after", "<!--c1-->" ],
27195 [ "#b", "before", "<!--c2-->" ]
27199 <span id="a">a</span>
27201 <span id="b">b</span>
27203 <span id="a">a</span><!--c1-->
27205 <!--c2--><span id="b">b</span>
27210 Selser: Check for validity of DSR before using it
27213 "modes": ["selser"],
27215 [ "#a", "before", "<meta property='mw:PageProp/displaytitle' content='foo'>" ]
27219 <span id="a">a</span>
27221 {{DISPLAYTITLE:foo}}
27222 <span id="a">a</span>
27226 1. DOMDiff: Changes to <ref> content should be looked up using id
27229 "modes": ["selser"],
27231 ["#X", "after", "bar"],
27232 ["#Y", "after", "baz"]
27236 X <ref><span id="X">foo</span></ref>
27239 <ref name="a"><span id="Y">foo</span></ref>
27242 X <ref><span id="X">foo</span>bar</ref>
27245 <ref name="a"><span id="Y">foo</span>baz</ref>
27250 2. DOMDiff: Changes to <ref> content should be looked up using id
27253 "modes": ["selser"],
27255 ["#Z", "after", "bar"]
27259 A <ref>foo bar for a</ref>
27260 B <ref group="X" name="b" />
27264 <references group="X">
27265 <ref name="b"><span id="Z">foo</span></ref>
27268 A <ref>foo bar for a</ref>
27269 B <ref group="X" name="b" />
27273 <references group="X">
27274 <ref name="b"><span id="Z">foo</span>bar</ref>
27279 DOMDiff: Edits to content nested in elements with templated attributes should not be lost (T139388)
27282 "modes": ["selser"],
27284 [ "div:first-child", "text", "bar" ]
27288 <div style="{{1x|color:red;}}%">foo</div>
27290 <div style="{{1x|color:red;}}%">bar</div>
27303 <li class="mw-empty-elt"></li>
27304 <li class="mw-empty-elt"></li>
27312 [[File:Thumb.png|thumb]]
27314 <div class="thumb tright">
27315 <div class="thumbinner" style="width:137px;"><a href="/wiki/File:Thumb.png" class="image"><img alt="Thumb.png" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>
27316 <div class="thumbcaption">
27317 <div class="magnify"><a href="/wiki/File:Thumb.png" class="internal" title="Enlarge"></a></div>
27324 unclosed internal link XSS (T137264)
27326 [[#%3Cscript%3Ealert(1)%3C/script%3E|
27328 <p>[[#<script>alert(1)</script>|
27331 <p>[[#%3Cscript%3Ealert(1)%3C/script%3E|</p>