mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
synced 2024-12-26 21:42:50 +00:00
48e2f02e20
This reverts parts of the revert I3bee35f, which reverted a3d312c8
.
I believe it's helpful to keep these test cases just to document how
the code currently behaves. I removed all TODO because we don't know
if and how we want to touch this again.
Bug: T240858
Change-Id: Ib91acfcb7292e5c03ce9cc4d7be782085e10aa27
2119 lines
120 KiB
Plaintext
2119 lines
120 KiB
Plaintext
# Force the test runner to ensure the extension is loaded
|
||
!! hooks
|
||
ref
|
||
references
|
||
!! endhooks
|
||
|
||
!! article
|
||
Template:echo
|
||
!! text
|
||
{{{1}}}
|
||
!! endarticle
|
||
|
||
!! article
|
||
Template:refinref
|
||
!! text
|
||
<ref>ho</ref>
|
||
!! endarticle
|
||
|
||
!! test
|
||
Simple <ref>, no <references/>
|
||
!! wikitext
|
||
Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
|
||
!! html
|
||
Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Simple <ref>, with <references/>
|
||
!! wikitext
|
||
Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! article
|
||
Template:Simple template
|
||
!! text
|
||
A ''simple'' template.
|
||
!! endarticle
|
||
|
||
|
||
!! test
|
||
<ref> with a simple template
|
||
!! wikitext
|
||
Templating<ref>{{simple template}}</ref>
|
||
|
||
<references/>
|
||
!! html
|
||
<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">A <i>simple</i> template.</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> with a <nowiki>
|
||
!! wikitext
|
||
Templating<ref><nowiki>{{simple template}}</nowiki></ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">{{simple template}}</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
|
||
!! test
|
||
<ref> in a <nowiki>
|
||
!! wikitext
|
||
Templating<nowiki><ref>{{simple template}}</ref></nowiki>
|
||
|
||
<references />
|
||
!! html
|
||
<p>Templating<ref>{{simple template}}</ref>
|
||
</p><p><br />
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> in a <!--comment-->
|
||
!! wikitext
|
||
Templating<!--<ref>{{simple template}}</ref>-->
|
||
|
||
<references />
|
||
!! html
|
||
<p>Templating
|
||
</p><p><br />
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
<!--comment--> in a <ref> (T7384)
|
||
!! wikitext
|
||
Templating<ref>Text<!--comment--></ref>
|
||
|
||
<references />
|
||
!! html/php+tidy
|
||
<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Text</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p>Templating<sup about="#mwt6" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">Text<!--comment--></span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> in an ignored caption (T235656)
|
||
!! wikitext
|
||
[[File:Foobar.jpg|frameless|ignored caption with a ref<ref>boo</ref>]]
|
||
|
||
<references />
|
||
!! html/php+tidy
|
||
<p><a href="/wiki/File:Foobar.jpg" class="image" title="ignored caption with a ref[1]"><img alt="ignored caption with a ref[1]" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" 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>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">boo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"caption","ak":"ignored caption with a ref<ref>boo</ref>"}]}' data-mw='{"caption":"ignored caption with a ref<sup about=\"#mwt6\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[54,68,5,6]}' data-mw='{\"name\":\"ref\",\"attrs\":{},\"body\":{\"id\":\"mw-reference-text-cite_note-1\"}}'><a href=\"./Parser_test#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></sup>"}'><a href="./File:Foobar.jpg" data-parsoid="{}"><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></figure-inline></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">boo</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> in expanded attributes of tags (legitimate or otherwise)
|
||
!! options
|
||
parsoid=wt2html,wt2wt
|
||
!! wikitext
|
||
{|
|
||
|- <ref>boo</ref>
|
||
|x
|
||
|}
|
||
<references />
|
||
!! html/php+tidy
|
||
<table>
|
||
|
||
<tbody><tr id="cite_ref-1" class="reference">
|
||
<td>x
|
||
</td></tr></tbody></table>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">boo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<table>
|
||
<tbody><tr about="#mwt4" typeof="mw:ExpandedAttrs" data-parsoid='{"startTagSrc":"|-","a":{"<ref>boo</ref>":null},"sa":{"<ref>boo</ref>":""}' data-mw='{"attribs":[[{"txt":"","html":"<sup about=\"#mwt3\" class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[5,19,5,6]}' data-mw='{\"name\":\"ref\",\"attrs\":{},\"body\":{\"id\":\"mw-reference-text-cite_note-1\"}}'><a href=\"./Parser_test#cite_note-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></sup>"},{"html":""}]]}'>
|
||
<td>x</td></tr>
|
||
</tbody></table>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><a href="./Parser_test#cite_ref-1" rel="mw:referencedBy" data-parsoid="{}"><span class="mw-linkback-text" data-parsoid="{}">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">boo</span></li></ol>
|
||
|
||
!! end
|
||
|
||
!! test
|
||
<ref>s in language variant markup
|
||
!! options
|
||
language=sr variant=sr-ec
|
||
!! wikitext
|
||
-{lj <ref>a</ref>}-аб-{nj <ref name="y">b</ref>}-вг-{dž}- c <ref name="y" />
|
||
<references />
|
||
!! html/php+tidy
|
||
<p>lj <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>абnj <sup id="cite_ref-y_2-0" class="reference"><a href="#cite_note-y-2">[2]</a></sup>вгdž ц <sup id="cite_ref-y_2-1" class="reference"><a href="#cite_note-y-2">[2]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">а</span>
|
||
</li>
|
||
<li id="cite_note-y-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-y_2-0">2,0</a></sup> <sup><a href="#cite_ref-y_2-1">2,1</a></sup></span> <span class="reference-text">б</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"lj <sup class=\"mw-ref\" id=\"cite_ref-1\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-mw='{\"name\":\"ref\",\"attrs\":{},\"body\":{\"id\":\"mw-reference-text-cite_note-1\"}}'><a href=\"./Parser_test#cite_note-1\"><span class=\"mw-reflink-text\">[1]</span></a></sup>"}}'></span>аб<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"nj <sup class=\"mw-ref\" id=\"cite_ref-y_2-0\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-mw='{\"name\":\"ref\",\"attrs\":{\"name\":\"y\"},\"body\":{\"id\":\"mw-reference-text-cite_note-y-2\"}}'><a href=\"./Parser_test#cite_note-y-2\"><span class=\"mw-reflink-text\">[2]</span></a></sup>"}}'></span>вг<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"dž"}}'></span> c <sup class="mw-ref" id="cite_ref-y_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="./Parser_test#cite_note-y-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
|
||
<li id="cite_note-1"><a href="./Parser_test#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">a</span></li>
|
||
<li id="cite_note-y-2"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-y_2-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-y_2-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-y-2" class="mw-reference-text">b</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
<references> after <gallery> (bug 6164)
|
||
!! options
|
||
parsoid=wt2html,html2html
|
||
!! wikitext
|
||
<ref>one</ref>
|
||
|
||
<gallery>Image:Foobar.jpg</gallery>
|
||
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<ul class="gallery mw-gallery-traditional">
|
||
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
||
<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" decoding="async" 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>
|
||
<div class="gallerytext">
|
||
</div>
|
||
</div></li>
|
||
</ul>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">one</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt9" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
||
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><figure-inline typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></figure-inline></div><div class="gallerytext"></div></li>
|
||
</ul>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">one</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
{{REVISIONID}} on page with <ref> (bug 6299)
|
||
!! wikitext
|
||
{{REVISIONID}}<ref>elite</ref>
|
||
!! html
|
||
1337<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">elite</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
{{REVISIONID}} on page without <ref> (bug 6299 sanity check)
|
||
!! wikitext
|
||
{{REVISIONID}}
|
||
!! html
|
||
<p>1337
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Ref with content followed by blank ref
|
||
!! wikitext
|
||
<ref name="blank">content</ref>
|
||
|
||
<ref name="blank" />
|
||
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Blank ref followed by ref with content
|
||
!! wikitext
|
||
<ref name="blank" />
|
||
|
||
<ref name="blank">content</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Regression: non-blank ref "0" followed by ref with content
|
||
!! wikitext
|
||
<ref name="blank">0</ref>
|
||
|
||
<ref name="blank">content</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">0 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "blank" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Regression sanity check: non-blank ref "1" followed by ref with content
|
||
!! wikitext
|
||
<ref name="blank">1</ref>
|
||
|
||
<ref name="blank">content</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">1 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "blank" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Ref names containing a number
|
||
!! wikitext
|
||
<ref name="test123test">One</ref>
|
||
<ref name="123test">Two</ref>
|
||
<ref name="test123">Three</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-test123test_1-0" class="reference"><a href="#cite_note-test123test-1">[1]</a></sup>
|
||
<sup id="cite_ref-123test_2-0" class="reference"><a href="#cite_note-123test-2">[2]</a></sup>
|
||
<sup id="cite_ref-test123_3-0" class="reference"><a href="#cite_note-test123-3">[3]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-test123test-1"><span class="mw-cite-backlink"><a href="#cite_ref-test123test_1-0">↑</a></span> <span class="reference-text">One</span>
|
||
</li>
|
||
<li id="cite_note-123test-2"><span class="mw-cite-backlink"><a href="#cite_ref-123test_2-0">↑</a></span> <span class="reference-text">Two</span>
|
||
</li>
|
||
<li id="cite_note-test123-3"><span class="mw-cite-backlink"><a href="#cite_ref-test123_3-0">↑</a></span> <span class="reference-text">Three</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
T184912: Consistent normalization of consecutive underscores
|
||
!! wikitext
|
||
<ref name="x__x">example</ref>
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-x_x_1-0" class="reference"><a href="#cite_note-x_x-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-x_x-1"><span class="mw-cite-backlink"><a href="#cite_ref-x_x_1-0">↑</a></span> <span class="reference-text">example</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Erroneous refs
|
||
!! wikitext
|
||
<ref name="0">Zero</ref>
|
||
|
||
<ref>Also zero, but differently! (Normal ref)</ref>
|
||
|
||
<ref />
|
||
|
||
<ref name="foo" name="bar" />
|
||
|
||
<ref name="blankwithnoreference" />
|
||
|
||
<references name="quasit" />
|
||
|
||
<references />
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name cannot be a simple integer. Use a descriptive title</span>
|
||
</p><p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The opening <code><ref></code> tag is malformed or has a bad name</span>
|
||
</p><p><sup id="cite_ref-bar_2-0" class="reference"><a href="#cite_note-bar-2">[2]</a></sup>
|
||
</p><p><sup id="cite_ref-blankwithnoreference_3-0" class="reference"><a href="#cite_note-blankwithnoreference-3">[3]</a></sup>
|
||
</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid parameter in <code><references></code> tag</span>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Also zero, but differently! (Normal ref)</span>
|
||
</li>
|
||
<li id="cite_note-bar-2"><span class="mw-cite-backlink"><a href="#cite_ref-bar_2-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>bar</code></span></li>
|
||
<li id="cite_note-blankwithnoreference-3"><span class="mw-cite-backlink"><a href="#cite_ref-blankwithnoreference_3-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>blankwithnoreference</code></span></li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Can't have name="…" and follow="…" the same time
|
||
!! wikitext
|
||
<ref name="theName" follow="theFollows">theValue</ref>
|
||
<references />
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; invalid names, e.g. too many</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Conflicting name="…" and follow="…" still invalid when a third parameter is present
|
||
!! wikitext
|
||
<ref name="theName" follow="theFollows" dummy="dummy">theValue</ref>
|
||
<references />
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; invalid names, e.g. too many</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
It's not possible to follow="…" a <ref> defined in the <references> section
|
||
!! wikitext
|
||
<ref follow="theName">theFollows</ref>
|
||
<references>
|
||
<ref name="theName">theValue</ref>
|
||
</references>
|
||
!! html
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<p id="cite_note-theName"><span class="reference-text">theFollows</span>
|
||
</p>
|
||
</ol></div>
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag with name "theName" defined in <code><references></code> is not used in prior text.</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
A follow="…" before its parent is not merged
|
||
!! wikitext
|
||
<ref follow="theName">theFollows</ref>
|
||
<ref name="theName">theValue</ref>
|
||
!! html
|
||
<sup id="cite_ref-theName_2-0" class="reference"><a href="#cite_note-theName-2">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<p id="cite_note-theName"><span class="reference-text">theFollows</span>
|
||
</p>
|
||
<li id="cite_note-theName-2"><span class="mw-cite-backlink"><a href="#cite_ref-theName_2-0">↑</a></span> <span class="reference-text">theValue</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
# This is a nasty edge case which was dropping the ref entirely.
|
||
!! test
|
||
"follow" after a named ref but before its parent
|
||
!! wikitext
|
||
<ref name="first">First</ref>
|
||
<ref follow="third">Second</ref>
|
||
<ref name="third">Third</ref>
|
||
<hr />
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-first_1-0" class="reference"><a href="#cite_note-first-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-third_3-0" class="reference"><a href="#cite_note-third-3">[2]</a></sup>
|
||
</p>
|
||
<hr />
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<p id="cite_note-third"><span class="reference-text">Second</span>
|
||
</p>
|
||
<li id="cite_note-first-1"><span class="mw-cite-backlink"><a href="#cite_ref-first_1-0">↑</a></span> <span class="reference-text">First</span>
|
||
</li>
|
||
<li id="cite_note-third-3"><span class="mw-cite-backlink"><a href="#cite_ref-third_3-0">↑</a></span> <span class="reference-text">Third</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
"follow" after an anonymous ref but before its parent
|
||
!! wikitext
|
||
<ref>First</ref>
|
||
<ref follow="third">Second</ref>
|
||
<ref name="third">Third</ref>
|
||
<hr />
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p><p><sup id="cite_ref-third_3-0" class="reference"><a href="#cite_note-third-3">[2]</a></sup>
|
||
</p>
|
||
<hr />
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<p id="cite_note-third"><span class="reference-text">Second</span>
|
||
</p>
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">First</span>
|
||
</li>
|
||
<li id="cite_note-third-3"><span class="mw-cite-backlink"><a href="#cite_ref-third_3-0">↑</a></span> <span class="reference-text">Third</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Valid follow="…" after it's parent
|
||
!! wikitext
|
||
<ref name="theName">theValue</ref>
|
||
<ref follow="theName">theFollows</ref>
|
||
!! html
|
||
<p><sup id="cite_ref-theName_1-0" class="reference"><a href="#cite_note-theName-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-theName-1"><span class="mw-cite-backlink"><a href="#cite_ref-theName_1-0">↑</a></span> <span class="reference-text">theValue theFollows</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Forward-referenced ref with follow
|
||
!! wikitext
|
||
<ref name="theName" />
|
||
<ref follow="theName">theFollows</ref>
|
||
<references>
|
||
<ref name="theName">theValue</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-theName_1-0" class="reference"><a href="#cite_note-theName-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-theName-1"><span class="mw-cite-backlink"><a href="#cite_ref-theName_1-0">↑</a></span> <span class="reference-text"> theFollows <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "theName" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Forward-referenced ref with magical follow edge case
|
||
!! wikitext
|
||
<ref name="theName" />
|
||
<ref follow="theName">theValue</ref>
|
||
<references>
|
||
<ref name="theName"> theValue</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-theName_1-0" class="reference"><a href="#cite_note-theName-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-theName-1"><span class="mw-cite-backlink"><a href="#cite_ref-theName_1-0">↑</a></span> <span class="reference-text"> theValue</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Valid parameters become invalid when a third is present
|
||
!! wikitext
|
||
<ref name="theName" group="theGroup" dummy="dummy">theValue</ref>
|
||
<references group="theGroup" />
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; invalid names, e.g. too many</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Simple <ref>, with <references/> in group
|
||
!! wikitext
|
||
Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
|
||
Wikipedia rocks!<ref group="note">Proceeds of Rockology, vol. XXI</ref>
|
||
|
||
<references />
|
||
<references group="note" />
|
||
!! html
|
||
<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
Wikipedia rocks!<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[note 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
|
||
</li>
|
||
</ol></div>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Simple <ref>, with <references/> in group, with groupname in Chinese
|
||
!! wikitext
|
||
AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref>
|
||
|
||
;refs
|
||
<references group="参" />
|
||
|
||
;notes
|
||
<references group="注" />
|
||
!! html
|
||
<p>AAA<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[参 1]</a></sup>BBB<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[注 1]</a></sup>CCC<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[参 2]</a></sup>
|
||
</p>
|
||
<dl><dt>refs</dt></dl>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">ref a</span>
|
||
</li>
|
||
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">ref c</span>
|
||
</li>
|
||
</ol></div>
|
||
<dl><dt>notes</dt></dl>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note b</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Attributes are trimmed by the parser, see Sanitizer::decodeTagAttributes()
|
||
!! wikitext
|
||
<ref group="g" name="n1">in group g</ref>
|
||
<ref group=" g " name=" n2 ">in group " g "</ref>
|
||
<references group="g" />
|
||
<references group=" g " />
|
||
!! html
|
||
<p><sup id="cite_ref-n1_1-0" class="reference"><a href="#cite_note-n1-1">[g 1]</a></sup>
|
||
<sup id="cite_ref-n2_2-0" class="reference"><a href="#cite_note-n2-2">[g 2]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-n1-1"><span class="mw-cite-backlink"><a href="#cite_ref-n1_1-0">↑</a></span> <span class="reference-text">in group g</span>
|
||
</li>
|
||
<li id="cite_note-n2-2"><span class="mw-cite-backlink"><a href="#cite_ref-n2_2-0">↑</a></span> <span class="reference-text">in group " g "</span>
|
||
</li>
|
||
</ol></div>
|
||
|
||
!! end
|
||
|
||
!! test
|
||
<ref> defined in <references>
|
||
!! wikitext
|
||
<ref name="foo" />
|
||
|
||
<references>
|
||
<ref name="foo">BAR</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> defined in <references> called with #tag
|
||
!! wikitext
|
||
<ref name="foo" />
|
||
|
||
{{#tag:references|
|
||
<ref name="foo">BAR</ref>
|
||
}}
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
T242437 - Nested references edge case, outer tag function with LDR
|
||
!! wikitext
|
||
<ref name="foo" />
|
||
{{#tag:references|
|
||
<ref name="foo">bar</ref>
|
||
|
||
<references />
|
||
}}
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup>
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Closing tag missing for <code><references></code></span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
T242437 - Nested references edge case, outer tag function, inner LDR
|
||
!! wikitext
|
||
<ref name="foo" />
|
||
{{#tag:references|
|
||
<references>
|
||
<ref name="foo">bar</ref>
|
||
</references>
|
||
}}
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup>
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Closing tag missing for <code><references></code></span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
T242437 - Nested references edge case, inner tag function with LDR
|
||
!! wikitext
|
||
<ref name="foo" />
|
||
|
||
<references>
|
||
{{#tag:references|
|
||
<ref name="foo">bar</ref>
|
||
}}
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">bar</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> defined in <references> error conditions
|
||
!! wikitext
|
||
<ref name="foo" group="2" />
|
||
|
||
<references group="2">
|
||
<ref name="foo" />
|
||
<ref name="unused">BAR</ref>
|
||
<ref name="foo" group="1">bad group</ref>
|
||
<ref>BAR BAR</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[2 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>foo</code></span></li>
|
||
</ol></div>
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> with name "foo" has no content.</span><br />
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag with name "unused" defined in <code><references></code> is not used in prior text.</span><br />
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag in <code><references></code> has conflicting group attribute "1".</span><br />
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Error conditions on non-visible content
|
||
!! wikitext
|
||
<ref name="a">x</ref>
|
||
<ref name="b"> </ref>
|
||
<ref name="c" />
|
||
<references>
|
||
<ref name="a" />
|
||
<ref name="b" />
|
||
<ref name="c"> </ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
<sup id="cite_ref-b_2-0" class="reference"><a href="#cite_note-b-2">[2]</a></sup>
|
||
<sup id="cite_ref-c_3-0" class="reference"><a href="#cite_note-c-3">[3]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">x</span>
|
||
</li>
|
||
<li id="cite_note-b-2"><span class="mw-cite-backlink"><a href="#cite_ref-b_2-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>b</code></span></li>
|
||
<li id="cite_note-c-3"><span class="mw-cite-backlink"><a href="#cite_ref-c_3-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>c</code></span></li>
|
||
</ol></div>
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> with name "a" has no content.</span><br />
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> with name "b" has no content.</span><br />
|
||
<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> with name "c" has no content.</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! article
|
||
MediaWiki:cite_link_label_group-klingon
|
||
!! text
|
||
wa' cha' wej loS vagh jav Soch chorgh Hut wa'maH
|
||
!! endarticle
|
||
|
||
!! test
|
||
<ref> with custom group link with number names in Klingon
|
||
!! wikitext
|
||
Wikipedia rocks!<ref group="klingon">Proceeds of Rockology, vol. XXI</ref>
|
||
|
||
<references group="klingon" />
|
||
!! html
|
||
<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[wa']</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Consecutive whitespace in custom link label message should not create empty []
|
||
!! wikitext
|
||
<ref group="klingon">1st</ref>
|
||
<ref group="klingon">2nd</ref>
|
||
<references group="klingon" />
|
||
!! html
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[wa']</a></sup>
|
||
<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[cha']</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">1st</span>
|
||
</li>
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">2nd</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Bug 31374 regression check: nested strip items
|
||
!! wikitext
|
||
{{#tag:ref|note<ref>reference</ref>|group=Note}}
|
||
<references group="Note" />
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[Note 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup></span>
|
||
</li>
|
||
</ol></div>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">reference</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Bug 13073 regression check: wrapped <references>
|
||
!! options
|
||
parsoid={"suppressErrors": true}
|
||
!! wikitext
|
||
<ref>
|
||
foo
|
||
</ref>
|
||
<div><references /></div>
|
||
!! html/*
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">
|
||
foo</span>
|
||
</li>
|
||
</ol></div></div>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> with no name and no content.
|
||
!! wikitext
|
||
Bla.<ref></ref>
|
||
!! html
|
||
<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; refs with no name must have content</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> with an empty-string name parameter and no content.
|
||
!! wikitext
|
||
Bla.<ref name=""> </ref>
|
||
!! html
|
||
<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; refs with no name must have content</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
<ref> with a non-empty name parameter and no content.
|
||
!! wikitext
|
||
Bla.<ref name="void"> </ref>
|
||
!! html
|
||
Bla.<sup id="cite_ref-void_1-0" class="reference"><a href="#cite_note-void-1">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-void-1"><span class="mw-cite-backlink"><a href="#cite_ref-void_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; no text was provided for refs named <code>void</code></span></li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Multiple definition (outside <references/>)
|
||
!! wikitext
|
||
<ref name="a">abc</ref>
|
||
<ref name="a">def</ref>
|
||
<references />
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
<sup id="cite_ref-a_1-1" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_1-1">1.1</a></sup></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Multiple definition (inside <references/>)
|
||
!! wikitext
|
||
<ref name="a" />
|
||
<references>
|
||
<ref name="a">abc</ref>
|
||
<ref name="a">def</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Multiple definition (mixed outside/inside)
|
||
!! wikitext
|
||
<ref name="a">abc</ref>
|
||
<references>
|
||
<ref name="a">def</ref>
|
||
</references>
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Multiple definition (inside {{#tag:references}})
|
||
!! wikitext
|
||
<ref name="a" />
|
||
{{#tag:references|
|
||
<ref name="a">abc</ref>
|
||
<ref name="a">def</ref>
|
||
}}
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
# Parsoid doesn't rt cleanly because name attribute is actually broken
|
||
# here (<ref> tag closes at first >); see next test for a tidied version.
|
||
!! test
|
||
T29694 - [] in reference names in HTML5 fragment mode
|
||
!! config
|
||
wgFragmentMode=[ 'html5' ]
|
||
!! options
|
||
parsoid=wt2html
|
||
!! wikitext
|
||
<ref name="[#foo] {bar} <baz>">[bar]</ref>
|
||
!! html/php
|
||
<sup id="cite_ref-[#foo]_{bar}_<baz_1-0" class="reference"><a href="#cite_note-[#foo]_{bar}_<baz-1">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-[#foo]_{bar}_<baz-1"><span class="mw-cite-backlink"><a href="#cite_ref-[#foo]_{bar}_<baz_1-0">↑</a></span> <span class="reference-text">">[bar]</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-[#foo]_{bar}_<baz_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"[#foo] {bar} <baz"},"body":{"id":"mw-reference-text-cite_note-[#foo]_{bar}_<baz-1"}}'><a href="./Parser_test#cite_note-[#foo]_{bar}_<baz-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-[#foo]_{bar}_<baz-1" id="cite_note-[#foo]_{bar}_<baz-1"><a href="./Parser_test#cite_ref-[#foo]_{bar}_<baz_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-[#foo]_{bar}_<baz-1" class="mw-reference-text">">[bar]</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T29694 - [] in reference names in HTML5 fragment mode (tidied)
|
||
!! config
|
||
wgFragmentMode=[ 'html5' ]
|
||
!! wikitext
|
||
<ref name="[#foo] {bar} <baz>">[bar]</ref>
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-[#foo]_{bar}_<baz>_1-0" class="reference"><a href="#cite_note-[#foo]_{bar}_<baz>-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-[#foo]_{bar}_<baz>-1"><span class="mw-cite-backlink"><a href="#cite_ref-[#foo]_{bar}_<baz>_1-0">↑</a></span> <span class="reference-text">[bar]</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-[#foo]_{bar}_<baz>_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"[#foo] {bar} <baz>"},"body":{"id":"mw-reference-text-cite_note-[#foo]_{bar}_<baz>-1"}}'><a href="./Parser_test#cite_note-[#foo]_{bar}_<baz>-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-[#foo]_{bar}_<baz>-1" id="cite_note-[#foo]_{bar}_<baz>-1"><a href="./Parser_test#cite_ref-[#foo]_{bar}_<baz>_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-[#foo]_{bar}_<baz>-1" class="mw-reference-text" data-parsoid="{}">[bar]</span></li></ol>
|
||
!! end
|
||
|
||
|
||
#### ----------------------------------------------------------------
|
||
#### Parsoid-only testing of Parsoid's impl of <ref> and <references>
|
||
#### tags. Parsoid's output for these tags differs from that of the
|
||
#### PHP parser.
|
||
#### ----------------------------------------------------------------
|
||
|
||
!! test
|
||
Ref: 1. ref-location should be replaced with an index span
|
||
!! wikitext
|
||
A <ref>foo</ref>
|
||
B <ref name="x">foo</ref>
|
||
C <ref name="y" />
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup about="#mwt4" class="mw-ref" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"},"body":{"id":"mw-reference-text-cite_note-x-2"}}'><a href="./Parser_test#cite_note-x-2"><span class="mw-reflink-text">[2]</span></a></sup>
|
||
C <sup 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="./Parser_test#cite_note-y-3"><span class="mw-reflink-text">[3]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
<li about="#cite_note-x-2" id="cite_note-x-2"><a href="./Parser_test#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>
|
||
<li about="#cite_note-y-3" id="cite_note-y-3"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 2. ref-tags with identical names should all get the same index
|
||
!! wikitext
|
||
A <ref name="x">foo</ref>
|
||
B <ref name="x" />
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"},"body":{"id":"mw-reference-text-cite_note-x-1"}}'><a href="./Parser_test#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup 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="./Parser_test#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 3. spaces in ref-names should be ignored
|
||
!! wikitext
|
||
A <ref name="x">foo</ref>
|
||
B <ref name=" x " />
|
||
C <ref name= x />
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"},"body":{"id":"mw-reference-text-cite_note-x-1"}}'><a href="./Parser_test#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup 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="./Parser_test#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
C <sup 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="./Parser_test#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></supn></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
# NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
|
||
!! test
|
||
Ref: 4. 'constructor' should be accepted as a valid ref-name
|
||
!! wikitext
|
||
A <ref name="constructor">foo</ref>
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"constructor"},"body":{"id":"mw-reference-text-cite_note-constructor-1"}}'><a href="./Parser_test#cite_note-constructor-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-constructor-1" id="cite_note-constructor-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 5. body should accept generic wikitext
|
||
!! wikitext
|
||
A <ref>
|
||
This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
|
||
</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 6. indent-pres should not be output in ref-body
|
||
!! wikitext
|
||
A <ref>
|
||
foo
|
||
bar
|
||
baz
|
||
</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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
|
||
baz
|
||
</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 7. No p-wrapping in ref-body
|
||
!! wikitext
|
||
A <ref>
|
||
foo
|
||
|
||
bar
|
||
|
||
|
||
baz
|
||
|
||
|
||
|
||
booz
|
||
</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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
|
||
|
||
|
||
baz
|
||
|
||
|
||
|
||
booz
|
||
</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 8. transclusion wikitext has lower precedence
|
||
!! wikitext
|
||
A <ref> foo {{echo|</ref> B C}}
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C}}</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 9. unclosed comments should not leak out of ref-body
|
||
!! wikitext
|
||
A <ref> foo <!--</ref> B C
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 10. Unclosed HTML tags should not leak out of ref-body
|
||
!! wikitext
|
||
A <ref> <b> foo </ref> B C
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B C</p>
|
||
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 11. ref-tags acts like an inline element wrt P-wrapping
|
||
!! wikitext
|
||
A <ref>foo</ref> B
|
||
C <ref>bar</ref> D
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B
|
||
C <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup> D</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 12. ref-tags act as trailing newline migration barrier
|
||
!! wikitext
|
||
<!--the newline at the end of this line moves out of the p tag-->a
|
||
|
||
b<!--the newline at the end of this line stays inside the p tag--> <ref />
|
||
<ref />
|
||
|
||
c
|
||
<references />
|
||
!! html/parsoid
|
||
<!--the newline at the end of this line moves out of the p tag--><p>a</p>
|
||
|
||
|
||
<p>b<!--the newline at the end of this line stays inside the p tag--> <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
<sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Parser_test#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
|
||
<p>c</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 13. ref-tags are not SOL-transparent and block indent-pres
|
||
!! wikitext
|
||
<ref>foo</ref> A
|
||
<ref>bar
|
||
</ref> B
|
||
<references />
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> A
|
||
<sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2"><span class="mw-reflink-text">[2]</span></a></sup> B</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
## Roundtripping fails because of nowiki'ing
|
||
!! test
|
||
Ref: 14. A nested ref-tag should be emitted as plain text
|
||
!! options
|
||
parsoid=wt2html
|
||
!! wikitext
|
||
<ref>foo <ref>bar</ref> baz</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup> baz</ref></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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 <ref>bar</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 15. ref-tags with identical names should get identical indexes
|
||
!! wikitext
|
||
A1 <ref name="a">foo</ref> A2 <ref name="a" />
|
||
B1 <ref name="b" /> B2 <ref name="b">bar</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A1 <sup about="#mwt3" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"},"body":{"id":"mw-reference-text-cite_note-a-1"}}'><a href="./Parser_test#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup> A2 <sup 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="./Parser_test#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B1 <sup 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="./Parser_test#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup> B2 <sup about="#mwt8" class="mw-ref" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"},"body":{"id":"mw-reference-text-cite_note-b-2"}}'><a href="./Parser_test#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
|
||
<ol class="mw-references 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="./Parser_test#cite_ref-a_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#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="./Parser_test#cite_ref-b_2-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
## We don't bother wt2wt-ing non-standard whitespace
|
||
!! test
|
||
Ref: 16. Tokenizer should accept non-standard whitespace in <ref> and </ref> tags
|
||
!!options
|
||
parsoid=wt2html
|
||
!! wikitext
|
||
A <ref >foo</ref >
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 17. Generate valid HTML5 id/about attributes
|
||
!! wikitext
|
||
<ref name="a b">foo</ref>
|
||
<ref name=":0">ve-created name</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a b"},"body":{"id":"mw-reference-text-cite_note-a_b-1"}}'><a href="./Parser_test#cite_note-a_b-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
<sup about="#mwt4" class="mw-ref" id="cite_ref-:0_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":":0"},"body":{"id":"mw-reference-text-cite_note-:0-2"}}'><a href="./Parser_test#cite_note-:0-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a_b-1" id="cite_note-a_b-1"><a href="./Parser_test#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><li about="#cite_note-:0-2" id="cite_note-:0-2"><a href="./Parser_test#cite_ref-:0_2-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-:0-2" class="mw-reference-text">ve-created name</span></li></ol>
|
||
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 18. T58916: Extension attributes should be parsed as plain text
|
||
!! config
|
||
wgFragmentMode=[ 'html5', 'legacy' ]
|
||
!! wikitext
|
||
<ref name="{{echo|a}}">foo</ref>
|
||
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-{{echo|a}}_1-0" class="reference"><a href="#cite_note-{{echo|a}}-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-{{echo|a}}-1"><span class="mw-cite-backlink"><a href="#cite_ref-{{echo|a}}_1-0">↑</a></span> <span class="reference-text">foo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup class="mw-ref" id="cite_ref-{{echo|a}}_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"{{echo|a}}"},"body":{"id":"mw-reference-text-cite_note-{{echo|a}}-1"}}'><a href="./Parser_test#cite_note-{{echo|a}}-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
</p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_ref-{{echo|a}}_1-1" id="cite_note-{{echo|a}}-1"><a href="./Parser_test#cite_ref-{{echo|a}}_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-{{echo|a}}-1" class="mw-reference-text">foo</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
# Parsoid doesn't wt2wt this cleanly because we serialize both
|
||
# versions of the name the same way ("a & b")
|
||
!! test
|
||
Ref: 19. ref-tags with identical name encodings should get identical indexes
|
||
!! config
|
||
wgFragmentMode=[ 'html5', 'legacy' ]
|
||
!! options
|
||
parsoid=wt2html,html2html
|
||
!! wikitext
|
||
1 <ref name="a & b">foo</ref> 2 <ref name="a & b" />
|
||
|
||
<references />
|
||
!! html/php
|
||
<p>1 <sup id="cite_ref-a_&_b_1-0" class="reference"><a href="#cite_note-a_&_b-1">[1]</a></sup> 2 <sup id="cite_ref-a_&_b_1-1" class="reference"><a href="#cite_note-a_&_b-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a_&_b-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_&_b_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_&_b_1-1">1.1</a></sup></span> <span class="reference-text">foo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p>1 <sup about="#mwt3" class="mw-ref" id="cite_ref-a_&_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a & b"},"body":{"id":"mw-reference-text-cite_note-a_&_b-1"}}'><a href="./Parser_test#cite_note-a_&_b-1"><span class="mw-reflink-text">[1]</span></a></sup> 2 <sup about="#mwt4" class="mw-ref" id="cite_ref-a_&_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a & b"}}'><a href="./Parser_test#cite_note-a_&_b-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
</p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="cite_note-a_&_b-1" id="cite_note-a_&_b-1"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-a_&_b_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-a_&_b_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a_&_b-1" class="mw-reference-text">foo</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref: 20. ref-tags with identical names but different content should keep it
|
||
!! wikitext
|
||
A <ref name="foo">Foo one</ref>
|
||
B <ref name="foo">Foo two</ref>
|
||
C <ref name="foo" />
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-foo_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"},"body":{"id":"mw-reference-text-cite_note-foo-1"}}'><a href="./Parser_test#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup about="#mwt4" class="mw-ref" id="cite_ref-foo_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"},"body":{"html":"Foo two"}}'><a href="./Parser_test#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
C <sup 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="./Parser_test#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references 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="./Parser_test#cite_ref-foo_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-foo_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 1a. references tag without any refs should be handled properly
|
||
!! wikitext
|
||
<references />
|
||
!! html/parsoid
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 1b. references tag without any refs should be handled properly
|
||
!! wikitext
|
||
<references></references>
|
||
!! html/parsoid
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{},"body":{"html":""}}'></ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 2. references tag with group only outputs references from that group
|
||
!! wikitext
|
||
A <ref group="a">foo</ref>
|
||
B <ref group="b">bar</ref>
|
||
C <ref>baz</ref>
|
||
|
||
<references group="a" />
|
||
<references />
|
||
<references group="b" />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"a"},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></sup>
|
||
B <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"b"},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" data-mw-group="b"><span class="mw-reflink-text">[b 1]</span></a></sup>
|
||
C <sup class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-3"}}'><a href="./Parser_test#cite_note-3"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" data-mw-group="a" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{"group":"a"}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-3" id="cite_note-3"><a href="./Parser_test#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>
|
||
</ol>
|
||
<ol class="mw-references references" data-mw-group="b" typeof="mw:Extension/references" about="#mwt12" data-mw='{"name":"references","attrs":{"group":"b"}}'>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 3. ref list should be cleared after processing references
|
||
!! wikitext
|
||
A <ref>foo</ref>
|
||
|
||
<references />
|
||
|
||
B <ref>bar</ref>
|
||
|
||
<references />
|
||
!! html
|
||
<p>A <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">foo</span>
|
||
</li>
|
||
</ol></div>
|
||
<p>B <sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">bar</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
|
||
<p>B <sup about="#mwt6" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
Counters should be cleared after processing named <references group="…">
|
||
!! wikitext
|
||
A <ref group="g">foo</ref>
|
||
|
||
<references group="g" />
|
||
|
||
B <ref group="g">bar</ref>
|
||
|
||
<references group="g" />
|
||
!! html
|
||
<p>A <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[g 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">foo</span>
|
||
</li>
|
||
</ol></div>
|
||
<p>B <sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[g 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">bar</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
References: 4. only referenced group should be cleared after processing references
|
||
!! wikitext
|
||
A <ref group="a">afoo</ref>
|
||
B <ref>bfoo</ref>
|
||
|
||
<references group="a" />
|
||
|
||
C <ref>cfoo</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"a"},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></sup>
|
||
B <sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" data-mw-group="a" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
|
||
<p>C <sup about="#mwt8" class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-3"}}'><a href="./Parser_test#cite_note-3"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
## Don't expect this to rt since we're dropping content
|
||
!! test
|
||
References: 5. ref tags in references should be processed while ignoring all other content
|
||
!! options
|
||
parsoid=wt2html,html2html
|
||
!! wikitext
|
||
A <ref name="a" />
|
||
B <ref name="b">bar</ref>
|
||
|
||
<references>
|
||
<ref name="a">foo</ref>
|
||
This should just get lost.
|
||
</references>
|
||
!! html/parsoid
|
||
<p>A <sup 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="./Parser_test#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"},"body":{"id":"mw-reference-text-cite_note-b-2"}}'><a href="./Parser_test#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{},"body":{"html":"\n<sup about=\"#mwt8\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[59,82,14,6]}' data-mw='{\"name\":\"ref\",\"attrs\":{\"name\":\"a\"},\"body\":{\"id\":\"mw-reference-text-cite_note-a-1\"}}'><a href=\"./Parser_test#cite_note-a-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></sup>\n"}}'><li about="#cite_note-a-1" id="cite_note-a-1"><a href="./Parser_test#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="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 6. <references /> from a transclusion
|
||
!! wikitext
|
||
<ref>Foo</ref> {{echo|<references />}}
|
||
!! html/php
|
||
<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> <div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Foo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/php+tidy
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> </p><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Foo</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt6" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup> </p><ol class="mw-references references" typeof="mw:Extension/references mw:Transclusion" about="#mwt3" data-parsoid='{"pi":[[{"k":"1"}]]}' 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="./Parser_test#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>
|
||
|
||
!! end
|
||
|
||
!! test
|
||
References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled
|
||
!! wikitext
|
||
A <ref>foo bar for a</ref>
|
||
B <ref group="X" name="b" />
|
||
|
||
<references />
|
||
|
||
<references group="X">
|
||
<ref name="b">foo</ref>
|
||
</references>
|
||
!! html/parsoid
|
||
<p>A <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup>
|
||
B <sup 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="./Parser_test#cite_note-b-2" data-mw-group="X"><span class="mw-reflink-text">[X 1]</span></a></sup>
|
||
</p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
|
||
<ol class="mw-references references" data-mw-group="X" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{"group":"X"},"body":{"html":"\n<sup about=\"#mwt10\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[96,119,14,6]}' data-mw='{\"name\":\"ref\",\"attrs\":{\"name\":\"b\"},\"body\":{\"id\":\"mw-reference-text-cite_note-b-2\"}}'><a href=\"./Parser_test#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></sup>\n"}}'>
|
||
<li about="#cite_note-b-2" id="cite_note-b-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 8. T88019: Remove <meta>s from templates inside <ref> that's itself inside a template
|
||
!! wikitext
|
||
X{{echo|<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>}}
|
||
<references />
|
||
!! html/parsoid
|
||
<p>X<sup 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="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 9. Generate missing references list at the end
|
||
!! wikitext
|
||
A <ref>foo</ref>
|
||
B <ref group="inexistent">bar</ref>
|
||
!! html/parsoid
|
||
<p>A <sup class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup> B <sup class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"inexistent"},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" data-mw-group="inexistent"><span class="mw-reflink-text">[inexistent 1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'>
|
||
<li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="inexistent" data-mw='{"name":"references","attrs":{"group":"inexistent"},"autoGenerated":true}'>
|
||
<li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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>
|
||
</ol>
|
||
!! end
|
||
|
||
!! test
|
||
References: 10.1. New <references/> shouldn't be added for unrelated edits.
|
||
!! options
|
||
parsoid={
|
||
"modes": ["selser"],
|
||
"changes": [["#x", "remove"]],
|
||
"selser": "noauto"
|
||
}
|
||
!! wikitext
|
||
Unrelated text<span id="x"> that's going to disappear</span>.
|
||
A <ref>foo</ref>
|
||
!! wikitext/edited
|
||
Unrelated text.
|
||
A <ref>foo</ref>
|
||
!! end
|
||
|
||
!! test
|
||
References: 10.2. New <references/> shouldn't be added for unrelated edits.
|
||
!! options
|
||
parsoid={
|
||
"modes": ["selser"],
|
||
"changes": [["#x", "remove"]],
|
||
"selser": "noauto",
|
||
"responsiveReferences": { "enabled": true, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Unrelated text<span id="x"> that's going to disappear</span>.
|
||
A <ref>foo</ref>
|
||
!! wikitext/edited
|
||
Unrelated text.
|
||
A <ref>foo</ref>
|
||
!! end
|
||
|
||
# Doesn't wt2wt cleanly because we don't encode the & in html2wt direction
|
||
!! test
|
||
Entities in ref name
|
||
!! config
|
||
wgFragmentMode=[ 'html5', 'legacy' ]
|
||
!! options
|
||
parsoid=wt2html,html2html
|
||
!! wikitext
|
||
<ref name="test & me {{echo|foo}}">hi</ref>
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-test_&_me_{{echo|foo}}_1-0" class="reference"><a href="#cite_note-test_&_me_{{echo|foo}}-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-test_&_me_{{echo|foo}}-1"><span class="mw-cite-backlink"><a href="#cite_ref-test_&_me_{{echo|foo}}_1-0">↑</a></span> <span class="reference-text">hi</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-test_&_me_{{echo|foo}}_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"test & me {{echo|foo}}"},"body":{"id":"mw-reference-text-cite_note-test_&_me_{{echo|foo}}-1"}}'><a href="./Parser_test#cite_note-test_&_me_{{echo|foo}}-1"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
||
<li about="#cite_note-test_&_me_{{echo|foo}}-1" id="cite_note-test_&_me_{{echo|foo}}-1"><a href="./Parser_test#cite_ref-test_&_me_{{echo|foo}}_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-test_&_me_{{echo|foo}}-1" class="mw-reference-text">hi</span></li>
|
||
</ol>
|
||
!! end
|
||
|
||
## The output here may look funny, but it's what the php parser will do. The
|
||
## unclosed references tag becomes escaped text, and then a new references
|
||
## tag is auto-generated. The test is wt2html only because it roundtrips with
|
||
## nowiki tags, and the auto-generated references tag is only dropped in
|
||
## rtTestMode.
|
||
!! test
|
||
Generate references for unclosed references tag
|
||
!! options
|
||
parsoid=wt2html
|
||
!! wikitext
|
||
a<ref>foo</ref>
|
||
|
||
<references>
|
||
!! html/parsoid
|
||
<p>a<sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<p><references></p>
|
||
<ol class="mw-references 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="./Parser_test#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>
|
||
!! end
|
||
|
||
!! test
|
||
New reference serializes on its own line
|
||
!! options
|
||
parsoid=wt2wt,html2wt
|
||
!! wikitext
|
||
foo
|
||
<references />
|
||
!! html/parsoid
|
||
foo<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Ref in ref
|
||
!! wikitext
|
||
test <ref>hi {{refinref}}</ref>
|
||
<references />
|
||
!! html/php
|
||
<p>test <sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">hi </span>
|
||
</li>
|
||
</ol></div>
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</span>
|
||
</p>
|
||
!! html/parsoid
|
||
<p>test <sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">hi <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"refinref","href":"./Template:Refinref"},"params":{},"i":0}}]}'></span></span></li></ol>
|
||
!! end
|
||
|
||
## Parsoid responsive references tests
|
||
|
||
!! test
|
||
Responsive references: disabled, autogenerated
|
||
!! options
|
||
parsoid={
|
||
"modes": ["wt2html"],
|
||
"responsiveReferences": { "enabled": false, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: enabled, autogenerated
|
||
!! options
|
||
parsoid={
|
||
"modes": ["wt2html"],
|
||
"responsiveReferences": { "enabled": true, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: enabled, autogenerated, exceed
|
||
!! options
|
||
parsoid={
|
||
"modes": ["wt2html"],
|
||
"responsiveReferences": { "enabled": true, "threshold": 1 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: disabled
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": false, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: enabled
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": true, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: enabled, exceed
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": true, "threshold": 1 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: disabled, explicit
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": false, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references responsive="" />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":""}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: disabled, explicit, exceed
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": false, "threshold": 1 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references responsive="" />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<div class="mw-references-wrap mw-references-columns" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":""}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: enabled, explicit off
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": true, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
Test <ref>1</ref><ref>2</ref>
|
||
<references responsive="0" />
|
||
!! html/parsoid
|
||
<p>Test <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup><sup about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-2"}}'><a href="./Parser_test#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"responsive":"0"}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">1</span></li><li about="#cite_note-2" id="cite_note-2"><a href="./Parser_test#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">2</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Responsive references: roundtrip templates
|
||
!! options
|
||
parsoid={
|
||
"responsiveReferences": { "enabled": true, "threshold": 2 }
|
||
}
|
||
!! wikitext
|
||
test <ref>123</ref>
|
||
|
||
{{echo|haha<references/>}}
|
||
!! html/parsoid
|
||
<p>test <sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<p about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"haha<references/>"}},"i":0}}]}'>haha</p><div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">123</span></li></ol></div>
|
||
!! end
|
||
|
||
## End Parsoid responsive references tests
|
||
|
||
!! article
|
||
Template:CircularRef
|
||
!! text
|
||
<ref>Hi {{CircularRef}}</ref>
|
||
!! endarticle
|
||
|
||
!! test
|
||
CircularRef
|
||
!! wikitext
|
||
<ref>Hi {{CircularRef}}</ref>
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Hi </span>
|
||
</li>
|
||
</ol></div>
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</span>
|
||
</p>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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">Hi <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"CircularRef","href":"./Template:CircularRef"},"params":{},"i":0}}]}'></span></span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T15673: <ref> with direction "rtl"
|
||
!! wikitext
|
||
<ref dir="rtl">TEST</ref>
|
||
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1" class="mw-cite-dir-rtl"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">TEST</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"dir":"rtl"},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1" class="mw-cite-dir-rtl"><a href="./Parser_test#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">TEST</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T15673: <ref> with direction "ltr"
|
||
!! wikitext
|
||
<ref dir="ltr">TEST</ref>
|
||
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1" class="mw-cite-dir-ltr"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">TEST</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"dir":"ltr"},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1" class="mw-cite-dir-ltr"><a href="./Parser_test#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">TEST</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T15673: <ref> with direction "LTR", keeps upper case
|
||
!! wikitext
|
||
<ref dir="LTR">TEST</ref>
|
||
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1" class="mw-cite-dir-ltr"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">TEST</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"dir":"LTR"},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1" class="mw-cite-dir-ltr"><a href="./Parser_test#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">TEST</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T15673: <ref> with direction "nonsense", strip invalid dir attribute and shows error
|
||
!! wikitext
|
||
<ref dir="nonsense">TEST</ref>
|
||
|
||
<references />
|
||
!! html+tidy
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code>dir="nonsense"</code>, must be <code>ltr</code> or <code>rtl</code></span>
|
||
</p><p><br />
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
T15673: Direction is supported when specifying name and group
|
||
!! wikitext
|
||
<ref dir="ltr" name="a" group="note">TEST</ref>
|
||
|
||
<references group="note" />
|
||
!! html/php
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[note 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1" class="mw-cite-dir-ltr"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">TEST</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt4" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"dir":"ltr","name":"a","group":"note"},"body":{"id":"mw-reference-text-cite_note-a-1"}}'><a href="./Parser_test#cite_note-a-1" style="counter-reset: mw-Ref 1;" data-mw-group="note"><span class="mw-reflink-text">[note 1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" data-mw-group="note" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"note"}}'><li about="#cite_note-a-1" id="cite_note-a-1" class="mw-cite-dir-ltr"><a href="./Parser_test#cite_ref-a_1-0" data-mw-group="note" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">TEST</span></li></ol>
|
||
!! end
|
||
|
||
## Just to catch regressions in Parsoid's tree-building / p-wrapping
|
||
!! test
|
||
Ref with block content in formatting tag
|
||
!! wikitext
|
||
''hi<ref><div>ho</div></ref>''
|
||
<references />
|
||
!! html/parsoid
|
||
<p><i>hi<sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Parser_test#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></i></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Parser_test#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"><div data-parsoid='{"stx":"html"}'>ho</div></span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T196827: Use the dir parameter only from the full definition of a named ref tag
|
||
!! wikitext
|
||
abc<ref name="r1" />def
|
||
|
||
ghi<ref name="r1" dir="rtl">jkl</ref>mno
|
||
|
||
<references />
|
||
!! html/php
|
||
<p>abc<sup id="cite_ref-r1_1-0" class="reference"><a href="#cite_note-r1-1">[1]</a></sup>def
|
||
</p><p>ghi<sup id="cite_ref-r1_1-1" class="reference"><a href="#cite_note-r1-1">[1]</a></sup>mno
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-r1-1" class="mw-cite-dir-rtl"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-r1_1-0">1.0</a></sup> <sup><a href="#cite_ref-r1_1-1">1.1</a></sup></span> <span class="reference-text">jkl</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p>abc<sup about="#mwt3" class="mw-ref" id="cite_ref-r1_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"r1"}}'><a href="./Parser_test#cite_note-r1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>def</p>
|
||
|
||
<p>ghi<sup about="#mwt6" class="mw-ref" id="cite_ref-r1_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"r1","dir":"rtl"},"body":{"id":"mw-reference-text-cite_note-r1-1"}}'><a href="./Parser_test#cite_note-r1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>mno</p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-r1-1" id="cite_note-r1-1" class="mw-cite-dir-rtl"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-r1_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-r1_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-r1-1" class="mw-reference-text">jkl</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T196827: Ignore the dir parameter from the first use, which is not a full definition, and use the dir value from the full definition of a named ref tag
|
||
!! wikitext
|
||
abc<ref name="r1" dir="rtl" />def
|
||
|
||
ghi<ref name="r1">jkl</ref>mno
|
||
|
||
<references />
|
||
!! html/php
|
||
<p>abc<sup id="cite_ref-r1_1-0" class="reference"><a href="#cite_note-r1-1">[1]</a></sup>def
|
||
</p><p>ghi<sup id="cite_ref-r1_1-1" class="reference"><a href="#cite_note-r1-1">[1]</a></sup>mno
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-r1-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-r1_1-0">1.0</a></sup> <sup><a href="#cite_ref-r1_1-1">1.1</a></sup></span> <span class="reference-text">jkl</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p>abc<sup about="#mwt3" class="mw-ref" id="cite_ref-r1_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"r1","dir":"rtl"}}'><a href="./Parser_test#cite_note-r1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>def</p>
|
||
|
||
<p>ghi<sup about="#mwt7" class="mw-ref" id="cite_ref-r1_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"r1"},"body":{"id":"mw-reference-text-cite_note-r1-1"}}'><a href="./Parser_test#cite_note-r1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup>mno</p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt9" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-r1-1" id="cite_note-r1-1"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-r1_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-r1_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-r1-1" class="mw-reference-text">jkl</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
Similarly named refs with identical bodies
|
||
!! wikitext
|
||
1 <ref name="1">1</ref> 2 <ref name="1">1</ref>
|
||
|
||
<references />
|
||
!! html/parsoid
|
||
<p>1 <sup about="#mwt7" class="mw-ref" id="cite_ref-1_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"1"},"body":{"id":"mw-reference-text-cite_note-1-1"}}'><a href="./Parser_test#cite_note-1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup> 2 <sup about="#mwt9" class="mw-ref" id="cite_ref-1_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"1"},"body":{"id":"mw-reference-text-cite_note-1-1"}}'><a href="./Parser_test#cite_note-1-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1-1" id="cite_note-1-1"><span rel="mw:referencedBy"><a href="./Parser_test#cite_ref-1_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Parser_test#cite_ref-1_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-1-1" class="mw-reference-text" data-parsoid="{}">1</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T220196 - Reference names with high-bit characters, html5 mode
|
||
!! config
|
||
wgFragmentMode=['html5']
|
||
!! wikitext
|
||
<ref name="füllen">[bar]</ref>
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-füllen_1-0" class="reference"><a href="#cite_note-füllen-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-füllen-1"><span class="mw-cite-backlink"><a href="#cite_ref-füllen_1-0">↑</a></span> <span class="reference-text">[bar]</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-füllen_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"füllen"},"body":{"id":"mw-reference-text-cite_note-füllen-1"}}'><a href="./Parser_test#cite_note-füllen-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-füllen-1" id="cite_note-füllen-1"><a href="./Parser_test#cite_ref-füllen_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-füllen-1" class="mw-reference-text" data-parsoid="{}">[bar]</span></li></ol>
|
||
!! end
|
||
|
||
!! test
|
||
T220196 - Reference names with high-bit characters, legacy mode
|
||
!! config
|
||
wgFragmentMode=['legacy']
|
||
!! wikitext
|
||
<ref name="füllen">[bar]</ref>
|
||
<references />
|
||
!! html/php
|
||
<p><sup id="cite_ref-f.C3.BCllen_1-0" class="reference"><a href="#cite_note-f.C3.BCllen-1">[1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-f.C3.BCllen-1"><span class="mw-cite-backlink"><a href="#cite_ref-f.C3.BCllen_1-0">↑</a></span> <span class="reference-text">[bar]</span>
|
||
</li>
|
||
</ol></div>
|
||
!! html/parsoid
|
||
<p><sup about="#mwt2" class="mw-ref" id="cite_ref-füllen_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"füllen"},"body":{"id":"mw-reference-text-cite_note-füllen-1"}}'><a href="./Parser_test#cite_note-füllen-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>
|
||
<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-füllen-1" id="cite_note-füllen-1"><a href="./Parser_test#cite_ref-füllen_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-füllen-1" class="mw-reference-text" data-parsoid="{}">[bar]</span></li></ol>
|
||
!! end
|
||
|
||
## Just a regression test
|
||
!! test
|
||
Transclusion parameter spacing is lost without data-parsoid
|
||
!! options
|
||
parsoid=wt2wt
|
||
!! wikitext
|
||
<ref>{{echo|
|
||
Hi ho
|
||
}}</ref>
|
||
|
||
<!-- Traverse with an encapsulation where the root isn't a native extension -->
|
||
{{echo|<div><references /></div>}}
|
||
!! html/parsoid
|
||
|
||
!! end
|
||
|
||
# TODO: Return a more helpful error, this is because the reference is never used, not about the group attribute.
|
||
!! test
|
||
Confusing error
|
||
!! wikitext
|
||
<references>
|
||
<ref name="foo">foo</ref>
|
||
</references>
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has group attribute "" which does not appear in prior text.</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
T242437 - Blank ref name in #tag regression
|
||
!! wikitext
|
||
{{#tag:references|
|
||
<ref name="">foo</ref>
|
||
}}
|
||
!! html
|
||
<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</span>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
T48140 - Make sure rollback/redo does not consume numbers
|
||
!! wikitext
|
||
<ref>should be [1]</ref>
|
||
<ref name="a" group="g" />
|
||
{{#tag:references|
|
||
<ref name="a">a</ref>
|
||
|group=g}}
|
||
<ref>should be [2]</ref>
|
||
!! html
|
||
<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup>
|
||
<sup id="cite_ref-a_2-0" class="reference"><a href="#cite_note-a-2">[g 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-2"><span class="mw-cite-backlink"><a href="#cite_ref-a_2-0">↑</a></span> <span class="reference-text">a</span>
|
||
</li>
|
||
</ol></div>
|
||
<sup id="cite_ref-4" class="reference"><a href="#cite_note-4">[2]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">should be [1]</span>
|
||
</li>
|
||
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">should be [2]</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Numbers in the default group need to start with 1, independent from other groups
|
||
!! wikitext
|
||
<ref name="a" group="g" />
|
||
{{#tag:references|
|
||
<ref name="a">a</ref>
|
||
|group=g}}
|
||
<ref name="c">c</ref>
|
||
!! html
|
||
<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[g 1]</a></sup>
|
||
</p>
|
||
<div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">a</span>
|
||
</li>
|
||
</ol></div>
|
||
<sup id="cite_ref-c_3-0" class="reference"><a href="#cite_note-c-3">[1]</a></sup><div class="mw-references-wrap"><ol class="references">
|
||
<li id="cite_note-c-3"><span class="mw-cite-backlink"><a href="#cite_ref-c_3-0">↑</a></span> <span class="reference-text">c</span>
|
||
</li>
|
||
</ol></div>
|
||
!! end
|
||
|
||
!! test
|
||
Serialize reference tags by themselves on a line
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>hi <sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text" data-parsoid="{}">[1]</span></a></sup></p><div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><ol class="mw-references references"><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#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">ho</span></li></ol></div><p>hi ho</p>
|
||
!! wikitext
|
||
hi <ref>ho</ref>
|
||
<references />
|
||
hi ho
|
||
!! end
|