mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
synced 2024-11-15 02:55:04 +00:00
04c3ad0107
This is based on the popular 'count' parameter from Template:Reflist on English Wikipedia, which has also been adopted by many other wikis. That template's 'count' parameter allows maximum flexibility on a per- page basis. This was important because the template can't know how many references the list will contain. Users typically manually add (and later, increment) the 'count' parameter when the list exceeds a certain threshold. The template currently sets an exact column count (via the CSS3 property `column-count`). This patch improves on that by instead using the closely related CSS3 `column-width` property. This automatically derives the column count based on the available space in the browser window. It will thus create two or three columns on a typical desktop screen, and two or no columns on a mobile device. The specified width is the minimum width of a column. This ensures that the list is not split when rendered on a narrow screen or mobile device. It also hooks into the raw list before parsing and adds the class only when the list will contain more than a certain number of items. This prevents very short lists from being split into multiple columns. Templates like Template:Reflist on English Wikipedia currently are not able to set inline styles on the list element directly, which is why they set it on a `<div>` wrapping the `<references />` output. Because of this, the feature of the Cite extension must not be enabled at the same time, as that would result in both the template's wrapper and the references list being split. The end result would involve sitations with three columns split in four sub-columns, creating a complicated mess of nine intermixed columns. To provide a smooth migration for wikis, this feature can be disabled by default using `$wgCiteResponsiveReferences = false`. Each individual template createing reference list can then be migrated, by removing the wrapper column styles and instead settting the new "responsive" attribute, like so: `<references responsive />`. Once any conflicting templates have been migrated, the default for the wiki can be swapped by setting `$wgCiteResponsiveReferences = true`. If wikis wish for some templates to keep their custom column splitting behaviour, templates can also opt-out by setting `responsive="0"`, which will make sure that it will keep behaving the current way even after the feature becomes enabled by default for the wiki. In summary, when disabled by default, pages can opt into this system with `<references responsive />`. When enabled by default, pages can opt out of the system with `<references responsive=0 />`. * Deprecate cite_references_prefix/cite_references_suffix. This message is rarely used and opens up compatibility hazards. It was already removed by Parsoid, but the PHP implementation still had it. It's typically used to add inline styles to the wrapper which is more appropiately done in Common.css (or obsoleted as part of the skin or Cite extenion itself nowadays depending on what style in question). It was also a HTML-style message with separated open and close segments, which is an anti-pattern in itself. * Declare module target explicitly and include mobile. The absence of this stylesheet caused subtle BiDi/RTL bugs on mobile. Bug: T33597 Change-Id: Ia535f9b722e825e71e792b36356febc3bd444387
1179 lines
60 KiB
Plaintext
1179 lines
60 KiB
Plaintext
# Force the test runner to ensure the extension is loaded
|
|
!! hooks
|
|
ref
|
|
references
|
|
!! endhooks
|
|
|
|
!! article
|
|
Template:echo
|
|
!! text
|
|
{{{1}}}
|
|
!! 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> (bug 5384)
|
|
!! wikitext
|
|
Templating<ref>Text<!--comment--></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">Text</span>
|
|
</li>
|
|
</ol></div>
|
|
|
|
!! end
|
|
|
|
!! test
|
|
<references> after <gallery> (bug 6164)
|
|
!! wikitext
|
|
<ref>one</ref>
|
|
|
|
<gallery>Image:Foobar.jpg</gallery>
|
|
|
|
<references/>
|
|
!! html
|
|
<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" 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>
|
|
|
|
!! 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
|
|
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 <code><references></code> tag;
|
|
parameter "group" is allowed only.
|
|
Use <code><references /></code>, or <code><references group="..." /></code></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
|
|
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
|
|
<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
|
|
<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 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
|
|
|
|
!! 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
|
|
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
|
|
<ref>s with the follow parameter
|
|
!! wikitext
|
|
Page one.<ref name="beginning">First page footnote text.</ref>
|
|
|
|
Page two.<ref follow="beginning">Second page footnote text.</ref>
|
|
|
|
== References ==
|
|
<references />
|
|
!! html
|
|
<p>Page one.<sup id="cite_ref-beginning_1-0" class="reference"><a href="#cite_note-beginning-1">[1]</a></sup>
|
|
</p><p>Page two.
|
|
</p>
|
|
<h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
|
|
<div class="mw-references-wrap"><ol class="references">
|
|
<li id="cite_note-beginning-1"><span class="mw-cite-backlink"><a href="#cite_ref-beginning_1-0">↑</a></span> <span class="reference-text">First page footnote text. Second page footnote text.</span>
|
|
</li>
|
|
</ol></div>
|
|
|
|
!! end
|
|
|
|
!! test
|
|
<ref> with both name and follow parameters - invalid
|
|
!! wikitext
|
|
Page one.<ref name="the-name" follow="the-name">This ref is invalid.</ref>
|
|
<references />
|
|
!! html
|
|
<p>Page one.<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
|
|
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-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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-2"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-2"><span class="mw-reflink-text">[2]</span></a></span>
|
|
C <span about="#mwt6" class="mw-ref" id="cite_ref-y_3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="./Main_Page#cite_note-y-3"><span class="mw-reflink-text">[3]</span></a></span></p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
|
|
<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">foo</span></li>
|
|
<li about="#cite_note-x-2" id="cite_note-x-2"><a href="./Main_Page#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="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-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="./Main_Page#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
C <span about="#mwt6" class="mw-ref" id="cite_ref-x_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="./Main_Page#cite_note-x-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-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="./Main_Page#cite_ref-x_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-x_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-constructor-1"},"attrs":{"name":"constructor"}}'><a href="./Main_Page#cite_note-constructor-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-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="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C}}</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B C</p>
|
|
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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"><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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B
|
|
C <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span> D</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">foo</span></li>
|
|
<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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--> <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
<span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span></p>
|
|
|
|
<p>c</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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"></span></li>
|
|
<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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><span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> A
|
|
<span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[2]</span></a></span> B</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">foo</span></li>
|
|
<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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><span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span> baz</ref></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./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" 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 <span about="#mwt3" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a-1"},"attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span> A2 <span about="#mwt4" class="mw-ref" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B1 <span about="#mwt7" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span> B2 <span about="#mwt8" class="mw-ref" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-a_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#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="./Main_Page#cite_ref-b_2-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">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><span about="#mwt2" class="mw-ref" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_b-1"},"attrs":{"name":"a b"}}'><a href="./Main_Page#cite_note-a_b-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span>
|
|
<span about="#mwt4" class="mw-ref" id="cite_ref-:0_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-:0-2"},"attrs":{"name":":0"}}'><a href="./Main_Page#cite_note-:0-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></span>
|
|
|
|
<ol class="mw-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="./Main_Page#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="./Main_Page#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
|
|
!! wikitext
|
|
<ref name="{{echo|a}}">foo</ref>
|
|
|
|
<references />
|
|
!! html/parsoid
|
|
<p><span class="mw-ref" id="cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1"},"attrs":{"name":"{{echo|a}}"}}'><a href="./Main_Page#cite_note-.7B.7Becho.7Ca.7D.7D-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
</p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-.7B.7Becho.7Ca.7D.7D-1" id="cite_note-.7B.7Becho.7Ca.7D.7D-1"><a href="./Main_Page#cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1" class="mw-reference-text">foo</span></li>
|
|
</ol>
|
|
!! end
|
|
|
|
!! test
|
|
Ref: 19. ref-tags with identical name encodings should get identical indexes
|
|
!! wikitext
|
|
1 <ref name="a & b">foo</ref> 2 <ref name="a & b" />
|
|
|
|
<references />
|
|
!! html/parsoid
|
|
<p>1 <span about="#mwt3" class="mw-ref" id="cite_ref-a_.26_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_.26_b-1"},"attrs":{"name":"a & b"}}'><a href="./Main_Page#cite_note-a_.26_b-1"><span class="mw-reflink-text">[1]</span></a></span> 2 <span about="#mwt4" class="mw-ref" id="cite_ref-a_.26_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp; b"}}'><a href="./Main_Page#cite_note-a_.26_b-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
</p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-a_.26_b-1" id="cite_note-a_.26_b-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-a_.26_b_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-a_.26_b_1-1"><span class="mw-linkback-text">2 </span></a></span> <span id="mw-reference-text-cite_note-a_.26_b-1" class="mw-reference-text">foo</span></li>
|
|
</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 <span about="#mwt2" class="mw-ref" id="cite_ref-foo_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-foo-1"},"attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-foo_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo two"},"attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
C <span about="#mwt6" class="mw-ref" id="cite_ref-foo_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"}}'><a href="./Main_Page#cite_note-foo-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-foo-1" id="cite_note-foo-1"><span rel="mw:referencedBy"><a href="./Main_Page#cite_ref-foo_1-0"><span class="mw-linkback-text">1 </span></a><a href="./Main_Page#cite_ref-foo_1-1"><span class="mw-linkback-text">2 </span></a><a href="./Main_Page#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: 1. references tag without any refs should be handled properly
|
|
!! wikitext
|
|
<references />
|
|
!! html/parsoid
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="./Main_Page#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"b"}}'><a href="./Main_Page#cite_note-2" data-mw-group="b"><span class="mw-reflink-text">[b 1]</span></a></span>
|
|
C <span class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="./Main_Page#cite_note-3"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#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" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-3" id="cite_note-3"><a href="./Main_Page#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" typeof="mw:Extension/references" about="#mwt12" data-mw-group="b" data-mw='{"name":"references","attrs":{"group":"b"}}'>
|
|
<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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/parsoid
|
|
<p>A <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./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">foo</span></li>
|
|
</ol>
|
|
|
|
<p>B <span about="#mwt6" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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
|
|
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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="./Main_Page#cite_note-1" data-mw-group="a"><span class="mw-reflink-text">[a 1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="./Main_Page#cite_note-2"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw-group="a" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#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 <span about="#mwt8" class="mw-ref" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="./Main_Page#cite_note-3"><span class="mw-reflink-text">[2]</span></a></span></p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><a href="./Main_Page#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="./Main_Page#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 <span about="#mwt2" class="mw-ref" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="./Main_Page#cite_note-a-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="./Main_Page#cite_note-b-2"><span class="mw-reflink-text">[2]</span></a></span></p>
|
|
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{},"body":{"html":"\n<span about=\"#mwt8\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[59,82,14,6]}' data-mw='{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-a-1\"},\"attrs\":{\"name\":\"a\"}}'><a href=\"./Main_Page#cite_note-a-1\" style=\"counter-reset: mw-Ref 1;\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[1]</span></a></span>\n"}}'><li about="#cite_note-a-1" id="cite_note-a-1"><a href="./Main_Page#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="./Main_Page#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/parsoid
|
|
<p><span about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p> <ol class="mw-references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><a href="./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">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 <span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span>
|
|
B <span about="#mwt4" class="mw-ref" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="./Main_Page#cite_note-b-2" data-mw-group="X"><span class="mw-reflink-text">[X 1]</span></a></span>
|
|
</p>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-1" id="cite_note-1"><a href="./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">foo bar for a</span></li>
|
|
</ol>
|
|
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt8" data-mw-group="X" data-mw='{"name":"references","attrs":{"group":"X"},"body":{"html":"\n<span about=\"#mwt10\" class=\"mw-ref\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid='{\"dsr\":[96,119,14,6]}' data-mw='{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-b-2\"},\"attrs\":{\"name\":\"b\"}}'><a href=\"./Main_Page#cite_note-b-2\" style=\"counter-reset: mw-Ref 1;\" data-mw-group=\"X\" data-parsoid=\"{}\"><span class=\"mw-reflink-text\" data-parsoid=\"{}\">[X 1]</span></a></span>\n"}}'>
|
|
<li about="#cite_note-b-2" id="cite_note-b-2"><a href="./Main_Page#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<span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>"}},"i":0}}]}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./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">foo <b data-parsoid='{"stx":"html"}'>bar</b> and baz boo</span></li>
|
|
</ol>
|
|
!! end
|
|
|
|
# This test only works in wt2html now as the <references /> are always generated
|
|
# unless selser is active. Once T72722 is fixed, we should add a changes test
|
|
# here to ensure that unrelated changes don't add the new <references />
|
|
# when selser is active.
|
|
!! 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 <span class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></span> B <span class="mw-ref" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"inexistent"}}'><a href="./Main_Page#cite_note-2" data-mw-group="inexistent"><span class="mw-reflink-text">[inexistent 1]</span></a></span></p>
|
|
<ol class="mw-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="./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">foo</span></li>
|
|
</ol>
|
|
<ol class="mw-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="./Main_Page#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. 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
|
|
Entities in ref name
|
|
!! wikitext
|
|
<ref name="test & me">hi</ref>
|
|
<references />
|
|
!! html/parsoid
|
|
<p><span about="#mwt2" class="mw-ref" id="cite_ref-test_.26_me_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-test_.26_me-1"},"attrs":{"name":"test &amp; me"}}'><a href="./Main_Page#cite_note-test_.26_me-1"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
|
|
<li about="#cite_note-test_.26_me-1" id="cite_note-test_.26_me-1"><a href="./Main_Page#cite_ref-test_.26_me_1-0" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-test_.26_me-1" class="mw-reference-text">hi</span></li>
|
|
</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<span about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span></p>
|
|
|
|
<p><references></p>
|
|
<ol class="mw-references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{},"autoGenerated":true}'><li about="#cite_note-1" id="cite_note-1"><a href="./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">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" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
|
|
!! end
|