Per https://meta.wikimedia.org/wiki/Talk:Interwiki_map/Archives/2024#RFC Bug: T71997 Bug: T382963 Change-Id: I2b6b63f7809e5801c78de370c828bbca5fe95e64
1903 lines
42 KiB
Text
1903 lines
42 KiB
Text
# The parsoid-compatible option below is only relevant when we are running
|
||
# parser tests in integrated mode with Parsoid. This option is ignored
|
||
# when this test file is run with Parsoid in standalone mode.
|
||
!! options
|
||
parsoid-compatible=wt2html,wt2wt
|
||
version=2
|
||
!! end
|
||
|
||
# This is the standard article assumed to exist.
|
||
!! article
|
||
Main Page
|
||
!! text
|
||
blah blah
|
||
!! endarticle
|
||
|
||
!!article
|
||
Foo
|
||
!!text
|
||
FOO
|
||
!!endarticle
|
||
|
||
!! article
|
||
Söfnuður
|
||
!! text
|
||
Test.
|
||
!! endarticle
|
||
|
||
!! article
|
||
00
|
||
!! text
|
||
This is 00.
|
||
!! endarticle
|
||
|
||
!! article
|
||
Template:1x
|
||
!! text
|
||
{{{1}}}
|
||
!! endarticle
|
||
|
||
#### ----------------------------------------------------------------
|
||
#### The following section of tests are primarily to test
|
||
#### wikitext escaping capabilities of Parsoid. Given that
|
||
#### escaping can be done any number of ways, the wikitext (input)
|
||
#### is always adjusted to reflect how Parsoid adds nowiki
|
||
#### escape tags.
|
||
####
|
||
#### We are marking several tests as parsoid-only since the
|
||
#### HTML in the result section is different from what the
|
||
#### PHP parser generates for it.
|
||
#### ----------------------------------------------------------------
|
||
|
||
|
||
#### --------------- Headings ---------------
|
||
#### 0. Unnested
|
||
#### 1. Nested inside html <h1>=foo=</h1>
|
||
#### 2. Outside heading nest on a single line <h1>foo</h1>*bar
|
||
#### 3. Nested inside html with wikitext split by html tags
|
||
#### 4. No escape needed
|
||
#### 5. Empty headings <h1></h1>
|
||
#### 6. Heading chars in SOL context
|
||
#### ----------------------------------------
|
||
|
||
!! test
|
||
Headings: 0. Unnested
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>=foo=</p>
|
||
|
||
<p> =foo=
|
||
<!--cmt-->
|
||
=foo=</p>
|
||
|
||
<p>=foo<i>a</i>=</p>
|
||
!! wikitext
|
||
<nowiki>=foo=</nowiki>
|
||
|
||
<nowiki/>=foo=
|
||
<!--cmt-->
|
||
<nowiki>=foo=</nowiki>
|
||
|
||
=foo''a''<nowiki>=</nowiki>
|
||
!!end
|
||
|
||
# New headings and existing headings are handled differently
|
||
!! test
|
||
Headings: 1. Nested inside html
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h1>=foo=</h1>
|
||
<h2>=foo=</h2>
|
||
<h3>=foo=</h3>
|
||
|
||
<h1 data-parsoid='{}'>=foo=</h1>
|
||
<h2 data-parsoid='{}'>=foo=</h2>
|
||
<h3 data-parsoid='{}'>=foo=</h3>
|
||
<h4 data-parsoid='{}'>=foo=</h4>
|
||
<h5 data-parsoid='{}'>=foo=</h5>
|
||
<h6 data-parsoid='{}'>=foo=</h6>
|
||
!! wikitext
|
||
= =foo= =
|
||
|
||
== =foo= ==
|
||
|
||
=== =foo= ===
|
||
|
||
=<nowiki>=foo=</nowiki>=
|
||
==<nowiki>=foo=</nowiki>==
|
||
===<nowiki>=foo=</nowiki>===
|
||
====<nowiki>=foo=</nowiki>====
|
||
=====<nowiki>=foo=</nowiki>=====
|
||
======<nowiki>=foo=</nowiki>======
|
||
!! end
|
||
|
||
!! test
|
||
Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h1>foo</h1>*bar
|
||
<h1>foo</h1>=bar
|
||
<h1>foo</h1>=bar=
|
||
!! wikitext
|
||
= foo =
|
||
<nowiki>*</nowiki>bar
|
||
|
||
= foo =
|
||
=bar
|
||
|
||
= foo =
|
||
<nowiki>=bar=</nowiki>
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 3. Nested inside html with wikitext split by html tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h1>=<b>bold</b>foo=</h1>
|
||
!! wikitext
|
||
= ='''bold'''foo= =
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 4a. No escaping needed (testing just h1 and h2)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h1>=foo</h1>
|
||
<h1>foo=</h1>
|
||
<h1> =foo= </h1>
|
||
<h1>=foo= bar</h1>
|
||
<h2>=foo</h2>
|
||
<h2>foo=</h2>
|
||
<h1>=</h1>
|
||
<h1><i>=</i>foo=</h1>
|
||
!! wikitext
|
||
= =foo =
|
||
|
||
= foo= =
|
||
|
||
= =foo= =
|
||
|
||
= =foo= bar =
|
||
|
||
== =foo ==
|
||
|
||
== foo= ==
|
||
|
||
= = =
|
||
|
||
= ''=''foo= =
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 4b. No escaping needed (inside p-tags)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>=foo= x
|
||
=foo= <s></s>
|
||
</p>
|
||
!! wikitext
|
||
=foo= x
|
||
=foo= <s></s>
|
||
!! html/php
|
||
<p>=foo= x
|
||
=foo= <s></s>
|
||
</p>
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 4c. Short headings (1)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>===
|
||
</p>
|
||
!! wikitext
|
||
<nowiki>===</nowiki>
|
||
!! html/php
|
||
<p>===
|
||
</p>
|
||
!! end
|
||
|
||
# in the html2wt direction we emit '= = =' or '=<nowiki>=</nowiki>='
|
||
!! test
|
||
Headings: 4d. Short headings (2)
|
||
!! config
|
||
wgParserEnableLegacyHeadingDOM=false
|
||
!! options
|
||
parsoid=wt2html,html2html
|
||
!! wikitext
|
||
=
|
||
==
|
||
===
|
||
====
|
||
=====
|
||
!! html/php
|
||
<p>=
|
||
==
|
||
</p>
|
||
<div class="mw-heading mw-heading1"><h1 id=".3D">=</h1><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></div>
|
||
<div class="mw-heading mw-heading1"><h1 id=".3D.3D">==</h1><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: ==">edit</a><span class="mw-editsection-bracket">]</span></span></div>
|
||
<div class="mw-heading mw-heading2"><h2 id=".3D_2">=</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></div>
|
||
!! html/parsoid
|
||
<p>=
|
||
==</p>
|
||
<h1 id="="><span id=".3D" typeof="mw:FallbackId"></span>=</h1>
|
||
<h1 id="=="><span id=".3D.3D" typeof="mw:FallbackId"></span>==</h1>
|
||
<h2 id="=_2"><span id=".3D_2" typeof="mw:FallbackId"></span>=</h2>
|
||
!! end
|
||
|
||
!! test
|
||
Headings: 5. Empty headings
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h1 data-parsoid='{}'></h1>
|
||
|
||
<h2 data-parsoid='{}'></h2>
|
||
|
||
<h3 data-parsoid='{}'></h3>
|
||
|
||
<h4 data-parsoid='{}'></h4>
|
||
|
||
<h5 data-parsoid='{}'></h5>
|
||
|
||
<h6 data-parsoid='{}'></h6>
|
||
!! wikitext
|
||
!! end
|
||
|
||
!! test
|
||
Headings: 6a. Heading chars in SOL context (with trailing spaces)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>=a=</p>
|
||
|
||
<p>=a=</p>
|
||
|
||
<p>=a=</p>
|
||
!! wikitext
|
||
<nowiki>=a=</nowiki>
|
||
|
||
<nowiki>=a=</nowiki>
|
||
|
||
<nowiki>=a=</nowiki>
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 6b. Heading chars in SOL context (with trailing newlines)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>=a=
|
||
b</p>
|
||
|
||
<p>=a=
|
||
b</p>
|
||
|
||
<p>=a=
|
||
b</p>
|
||
!! wikitext
|
||
<nowiki>=a=</nowiki>
|
||
b
|
||
|
||
<nowiki>=a=</nowiki>
|
||
b
|
||
|
||
<nowiki>=a=</nowiki>
|
||
b
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 6c. Heading chars in SOL context (leading newline break)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>a
|
||
=b=</p>
|
||
!! wikitext
|
||
a
|
||
<nowiki>=b=</nowiki>
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 6d. Heading chars in SOL context (with interspersed comments)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<!--c0--><p>=a=</p>
|
||
|
||
<!--c1--><p>=a=</p> <!--c2--> <!--c3-->
|
||
!! wikitext
|
||
<!--c0--><nowiki>=a=</nowiki>
|
||
|
||
<!--c1--><nowiki>=a=</nowiki> <!--c2--> <!--c3-->
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 6d. Heading chars in SOL context (No escaping needed)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
=a=<div>b</div>
|
||
!! wikitext
|
||
=a=<div>b</div>
|
||
!!end
|
||
|
||
!! test
|
||
Headings: 7. Insert a newline between new content and headings
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<h2>NEW</h2>
|
||
<p>new</p>
|
||
<h2 data-parsoid='{}'>A</h2>
|
||
<p data-parsoid='{}'>a</p>
|
||
!! wikitext
|
||
== NEW ==
|
||
new
|
||
|
||
==A==
|
||
a
|
||
!! end
|
||
|
||
!! test
|
||
Headings: Used as horizontal rule
|
||
!! config
|
||
wgParserEnableLegacyHeadingDOM=false
|
||
wgFragmentMode=[ "html5", "legacy" ]
|
||
!! options
|
||
parsoid=wt2html
|
||
!! wikitext
|
||
===============
|
||
!! html/php
|
||
<div class="mw-heading mw-heading6"><h6 id="==="><span id=".3D.3D.3D"></span>===</h6><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: ===">edit</a><span class="mw-editsection-bracket">]</span></span></div>
|
||
!! html/parsoid
|
||
<h6 id="==="><span id=".3D.3D.3D" typeof="mw:FallbackId"></span>===</h6>
|
||
!! end
|
||
|
||
#### --------------- Lists ---------------
|
||
#### 0. Outside nests (*foo, etc.)
|
||
#### 1. Nested inside html <ul><li>*foo</li></ul>
|
||
#### 2. Inside definition lists
|
||
#### 3. Only bullets at start should be escaped
|
||
#### 4. No escapes needed
|
||
#### 5. No unnecessary escapes
|
||
#### 6. Escape bullets in SOL position
|
||
#### 7. Escape bullets in a multi-line context
|
||
#### ----------------------------------------
|
||
|
||
!! test
|
||
Lists: 0. Outside nests
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>*foo</p>
|
||
|
||
<p>#foo</p>
|
||
|
||
<p>;Foo:bar</p>
|
||
!! wikitext
|
||
<nowiki>*</nowiki>foo
|
||
|
||
<nowiki>#</nowiki>foo
|
||
|
||
<nowiki>;</nowiki>Foo<nowiki>:</nowiki>bar
|
||
!!end
|
||
|
||
## Making these next 3 tests Parsoid-only since they are html2wt tests
|
||
## to test wikitext escaping, and insignificant whitespace diffs
|
||
## cause PHP parser tests to barf
|
||
!! test
|
||
Lists: 1. Nested inside html (No unnecessary escapes)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<ul>
|
||
<li>*foo</li>
|
||
<li>#foo</li>
|
||
<li>:foo</li>
|
||
<li>;foo</li>
|
||
<li data-parsoid='{}'>*foo</li>
|
||
<li data-parsoid='{}'>#foo</li>
|
||
<li data-parsoid='{}'>:foo</li>
|
||
<li data-parsoid='{}'>;foo</li>
|
||
</ul>
|
||
|
||
<ol>
|
||
<li>*foo</li>
|
||
<li>#foo</li>
|
||
<li>:foo</li>
|
||
<li>;foo</li>
|
||
<li data-parsoid='{}'>*foo</li>
|
||
<li data-parsoid='{}'>#foo</li>
|
||
<li data-parsoid='{}'>:foo</li>
|
||
<li data-parsoid='{}'>;foo</li>
|
||
</ol>
|
||
!! wikitext
|
||
* *foo
|
||
* #foo
|
||
* :foo
|
||
* ;foo
|
||
*<nowiki>*foo</nowiki>
|
||
*<nowiki>#foo</nowiki>
|
||
*<nowiki>:foo</nowiki>
|
||
*<nowiki>;foo</nowiki>
|
||
|
||
# *foo
|
||
# #foo
|
||
# :foo
|
||
# ;foo
|
||
#<nowiki>*foo</nowiki>
|
||
#<nowiki>#foo</nowiki>
|
||
#<nowiki>:foo</nowiki>
|
||
#<nowiki>;foo</nowiki>
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 2. Inside definition lists
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<dl><dt>;foo</dt></dl>
|
||
<dl><dt>:foo</dt></dl>
|
||
<dl><dt>:foo</dt>
|
||
<dd>bar</dd></dl>
|
||
<dl><dd>:foo</dd></dl>
|
||
!! wikitext
|
||
; ;foo
|
||
|
||
; <nowiki>:foo</nowiki>
|
||
|
||
; <nowiki>:foo</nowiki>
|
||
: bar
|
||
|
||
: :foo
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 3. Only bullets at start of text in wikitext-generated HTML should be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<ul>
|
||
<li>*foo*bar</li>
|
||
<li data-parsoid='{}'>*foo<i>it</i>*bar</li>
|
||
</ul>
|
||
!! wikitext
|
||
* *foo*bar
|
||
*<nowiki>*foo</nowiki>''it''*bar
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 4. No escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<ul>
|
||
<li>foo*bar
|
||
</li>
|
||
</ul>
|
||
<ul>
|
||
<li><i>foo</i>*bar
|
||
</li>
|
||
</ul>
|
||
<ul>
|
||
<li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>: bar
|
||
</li>
|
||
</ul>
|
||
<ul>
|
||
<li><a rel="mw:WikiLink" href="Foo" title="Foo">Foo</a>*bar
|
||
</li>
|
||
</ul>
|
||
!! wikitext
|
||
*foo*bar
|
||
|
||
*''foo''*bar
|
||
|
||
*[[Foo]]: bar
|
||
|
||
*[[Foo]]*bar
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 5. No unnecessary escapes
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<ul><li> bar <span>[[foo]]</span></li></ul>
|
||
<ul><li> =bar <span>[[foo]]</span></li></ul>
|
||
<ul><li> [[bar <span>[[foo]]</span></li></ul>
|
||
<ul><li> ]]bar <span>[[foo]]</span></li></ul>
|
||
<ul><li> =bar <span>foo]]</span>=</li></ul>
|
||
<ul><li> <s></s>: a</li></ul>
|
||
<ul><li> <i>* foo</i></li></ul>
|
||
|
||
!! wikitext
|
||
* bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
* =bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
* [[bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
* ]]bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
* =bar <span>foo]]</span>=
|
||
|
||
* <s></s>: a
|
||
|
||
* ''* foo''
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 6. Escape bullets in SOL position
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><!--cmt-->*foo</p>
|
||
!! wikitext
|
||
<!--cmt--><nowiki>*</nowiki>foo
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 7. Escape bullets in a multi-line context
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>a
|
||
*b
|
||
</p>
|
||
!! wikitext
|
||
a
|
||
<nowiki>*</nowiki>b
|
||
!!end
|
||
|
||
!! test
|
||
Lists: 8. Escape colons only if not present in tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<dl><dt>a:b<i>c:d</i></dt></dl>
|
||
!! wikitext
|
||
; <nowiki>a:b</nowiki>''c:d''
|
||
!! end
|
||
|
||
#### --------------- HRs ---------------
|
||
#### 1. Single line
|
||
#### -----------------------------------
|
||
|
||
!! test
|
||
HRs: 1. Single line
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<hr />----
|
||
<hr />=foo=
|
||
<hr />*foo
|
||
!! wikitext
|
||
----<nowiki>----</nowiki>
|
||
----=foo=
|
||
----*foo
|
||
!! end
|
||
|
||
#### --------------- Tables ---------------
|
||
#### 1a. Simple example
|
||
#### 1b. No escaping needed (!foo)
|
||
#### 1c. No escaping needed (|foo)
|
||
#### 1d. No escaping needed (|}foo)
|
||
####
|
||
#### 2a. Nested in td (<td>foo|bar</td>)
|
||
#### 2b. Nested in td (<td>foo||bar</td>)
|
||
#### 2c. Nested in td -- no escaping needed(<td>foo!!bar</td>)
|
||
####
|
||
#### 3a. Nested in th (<th>foo!bar</th>)
|
||
#### 3b. Nested in th (<th>foo!!bar</th>)
|
||
#### 3c. Nested in th -- no escaping needed(<th>foo||bar</th>)
|
||
####
|
||
#### 4a. Escape -
|
||
#### 4b. Escape +
|
||
#### 4c. No escaping needed
|
||
#### --------------------------------------
|
||
|
||
!! test
|
||
Tables: 1a. Simple example
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>{|
|
||
|}
|
||
</p>
|
||
!! wikitext
|
||
<nowiki>{|</nowiki>
|
||
|}
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 1b. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>!foo
|
||
</p>
|
||
!! wikitext
|
||
!foo
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 1c. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>|foo
|
||
</p>
|
||
!! wikitext
|
||
|foo
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 1d. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>|}foo
|
||
</p>
|
||
!! wikitext
|
||
|}foo
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 2a. Nested in td
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tbody><tr>
|
||
<td>foo|bar</td></tr>
|
||
<tr><td>x<div>a|b</div></td>
|
||
</tbody></table>
|
||
!! wikitext
|
||
{|
|
||
|<nowiki>foo|bar</nowiki>
|
||
|-
|
||
|x<div><nowiki>a|b</nowiki></div>
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td>foo|bar
|
||
</td></tr>
|
||
<tr>
|
||
<td>x<div>a|b</div>
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 2b. Nested in td
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tbody><tr>
|
||
<td>foo||bar</td>
|
||
<td>a<i>b||c</i></td>
|
||
<td>a<i><div>b||c</div></i></td>
|
||
</tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
|<nowiki>foo||bar</nowiki>
|
||
|a''<nowiki>b||c</nowiki>''
|
||
|a''<div><nowiki>b||c</nowiki></div>''
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td>foo||bar
|
||
</td>
|
||
<td>a<i>b||c</i>
|
||
</td>
|
||
<td>a<i><div>b||c</div></i>
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 2c. Nested in td -- no escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<table>
|
||
<tbody><tr>
|
||
<td>foo!!bar
|
||
</td></tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
|foo!!bar
|
||
|}
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 3a. Nested in th
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<table>
|
||
<tbody><tr>
|
||
<th>foo!bar
|
||
</th></tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
!foo!bar
|
||
|}
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 3b. Nested in th
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tbody>
|
||
<tr><th>foo!!bar</th>
|
||
<th><i>foo|bar</i></th>
|
||
<th><i>foo!!bar</i></th>
|
||
<th><i><span>foo!!bar</span></i></th>
|
||
</tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
!<nowiki>foo!!bar</nowiki>
|
||
!''<nowiki>foo|bar</nowiki>''
|
||
!''<nowiki>foo!!bar</nowiki>''
|
||
!''<span><nowiki>foo!!bar</nowiki></span>''
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<th>foo!!bar
|
||
</th>
|
||
<th><i>foo|bar</i>
|
||
</th>
|
||
<th><i>foo!!bar</i>
|
||
</th>
|
||
<th><i><span>foo!!bar</span></i>
|
||
</th></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 3c. Nested in th
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tbody>
|
||
<tr><th>foo||bar</th>
|
||
<th><span typeof="mw:Nowiki">foo||bar</span></th>
|
||
</tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
!<nowiki>foo||bar</nowiki>
|
||
!<nowiki>foo||bar</nowiki>
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<th>foo||bar
|
||
</th>
|
||
<th>foo||bar
|
||
</th></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 4a. Escape -
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<table>
|
||
<tbody><tr>
|
||
<th>-bar
|
||
</th></tr>
|
||
<tr>
|
||
<td>-bar
|
||
</td></tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
!-bar
|
||
|-
|
||
| -bar
|
||
|}
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 4b. Escape +
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<table>
|
||
<tbody><tr>
|
||
<th>+bar
|
||
</th></tr>
|
||
<tr>
|
||
<td>+bar
|
||
</td></tr></tbody></table>
|
||
!! wikitext
|
||
{|
|
||
!+bar
|
||
|-
|
||
| +bar
|
||
|}
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 4c. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tbody>
|
||
<tr><td>foo-bar</td><td>foo+bar</td></tr>
|
||
<tr><td><i>foo</i>-bar</td><td><i>foo</i>+bar</td></tr>
|
||
<tr><td>foo
|
||
<p>bar|baz
|
||
+bar
|
||
-bar</p></td></tr>
|
||
<tr><td>x
|
||
<div>a|b</div></td>
|
||
</tbody></table>
|
||
!! wikitext
|
||
{|
|
||
|foo-bar
|
||
|foo+bar
|
||
|-
|
||
|''foo''-bar
|
||
|''foo''+bar
|
||
|-
|
||
|foo
|
||
bar|baz
|
||
+bar
|
||
-bar
|
||
|-
|
||
|x
|
||
<div>a|b</div>
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td>foo-bar
|
||
</td>
|
||
<td>foo+bar
|
||
</td></tr>
|
||
<tr>
|
||
<td><i>foo</i>-bar
|
||
</td>
|
||
<td><i>foo</i>+bar
|
||
</td></tr>
|
||
<tr>
|
||
<td>foo
|
||
<p>bar|baz
|
||
+bar
|
||
-bar
|
||
</p>
|
||
</td></tr>
|
||
<tr>
|
||
<td>x
|
||
<div>a|b</div>
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
## FIXME: Looks like normalizing needs to learn about attrSepSrc
|
||
!! test
|
||
Tables: 4d. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table>
|
||
<tbody><tr><td><a rel="mw:WikiLink" href="./Foo" title="Foo">Foo</a>-bar</td>
|
||
<td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>+1</td>
|
||
<td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>-2</td></tr>
|
||
</tbody></table>
|
||
!! wikitext
|
||
{|
|
||
|[[Foo]]-bar
|
||
||+1
|
||
||-2
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td><a href="/wiki/Foo" title="Foo">Foo</a>-bar
|
||
</td>
|
||
<td>+1
|
||
</td>
|
||
<td>-2
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 4e. Escape }
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table>
|
||
<tr><td>}</td></tr>
|
||
<tr><td>x</td><td data-parsoid='{"stx":"row"}'>}</td></tr></table>
|
||
</table>
|
||
!! wikitext
|
||
{|
|
||
| }
|
||
|-
|
||
|x||}
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td>}
|
||
</td></tr>
|
||
<tr>
|
||
<td>x</td>
|
||
<td>}
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
Tables: 5. Empty table cells should get whitespace to avoid need for nowikis
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table><tr><td></td><td align="center" data-parsoid='{"stx":"row"}'></td><td data-parsoid='{"stx":"row"}'></td></tr></table>
|
||
|
||
<table><tr><td></td><td align="center"></td><td></td></tr></table>
|
||
|
||
<table><tr><td></td><td align="center" data-parsoid='{"stx":"row", "startTagSrc":"{{!}}{{!}}"}'></td><td data-parsoid='{"stx":"row"}'></td></tr></table>
|
||
|
||
<table><tr><th></th><th align="center" data-parsoid='{"stx":"row"}'></th><th data-parsoid='{"stx":"row"}'></th></tr></table>
|
||
!! wikitext
|
||
{|
|
||
| || align="center" | ||
|
||
|}
|
||
|
||
{|
|
||
|
|
||
| align="center" |
|
||
|
|
||
|}
|
||
|
||
{|
|
||
| {{!}}{{!}} align="center" | ||
|
||
|}
|
||
|
||
{|
|
||
! !! align="center" | !!
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td></td>
|
||
<td align="center"></td>
|
||
<td>
|
||
</td></tr></tbody></table>
|
||
<table>
|
||
<tbody><tr>
|
||
<td>
|
||
</td>
|
||
<td align="center">
|
||
</td>
|
||
<td>
|
||
</td></tr></tbody></table>
|
||
<table>
|
||
<tbody><tr>
|
||
<td></td>
|
||
<td align="center"></td>
|
||
<td>
|
||
</td></tr></tbody></table>
|
||
<table>
|
||
<tbody><tr>
|
||
<th></th>
|
||
<th align="center"></th>
|
||
<th>
|
||
</th></tr></tbody></table>
|
||
!! end
|
||
|
||
!! test
|
||
T97430: Don't emit empty nowiki pairs around marker meta tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>*This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
|
||
|** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.</p>
|
||
!! wikitext
|
||
<nowiki>*</nowiki>This is a long sentence here that will make the nowiki algo split up the nowikis into multiple pairs
|
||
|** Make this another long long long sentence forcing the nowiki algo to split up the nowikis.
|
||
!! end
|
||
|
||
!! test
|
||
Unclosed xmlish element in table line shouldn't eat end delimiters
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<table>
|
||
<tbody><tr><td> <foo</td>
|
||
<td> bar></td></tr>
|
||
</tbody></table>
|
||
!! wikitext
|
||
{|
|
||
| <foo
|
||
| bar>
|
||
|}
|
||
!! html/php
|
||
<table>
|
||
<tbody><tr>
|
||
<td><foo
|
||
</td>
|
||
<td>bar>
|
||
</td></tr></tbody></table>
|
||
!! end
|
||
|
||
#### --------------- Links ----------------
|
||
#### 1. Quote marks in link text
|
||
#### 2. Wikilinks: Escapes needed
|
||
#### 3. Wikilinks: No escapes needed
|
||
#### 4. Extlinks: Escapes needed
|
||
#### 5. Extlinks: No escapes needed
|
||
#### --------------------------------------
|
||
!! test
|
||
Links 1. WikiLinks: No escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:WikiLink" href="Foo" title="Foo">Foo<i>boo</i></a>
|
||
<a rel="mw:WikiLink" href="Foo" title="Foo">[Foobar]</a>
|
||
<a rel="mw:WikiLink" href="Foo" title="Foo">x [Foobar] x</a></p>
|
||
!! wikitext
|
||
[[Foo|Foo''boo'']]
|
||
[[Foo|[Foobar]]]
|
||
[[Foo|x [Foobar] x]]
|
||
!! html/php
|
||
<p><a href="/wiki/Foo" title="Foo">Foo<i>boo</i></a>
|
||
<a href="/wiki/Foo" title="Foo">[Foobar]</a>
|
||
<a href="/wiki/Foo" title="Foo">x [Foobar] x</a>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 2. WikiLinks: Escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<a href="Foo" rel="mw:WikiLink">Foobar]</a>
|
||
<a href="Foo" rel="mw:WikiLink">x [http://google.com g] x</a>
|
||
<a href="Foo" rel="mw:WikiLink">[[Bar]]</a>
|
||
<a href="Foo" rel="mw:WikiLink">x [[Bar]] x</a>
|
||
<a href="Foo" rel="mw:WikiLink">|Bar</a>
|
||
<a href="Foo" rel="mw:WikiLink">]]bar</a>
|
||
<a href="Foo" rel="mw:WikiLink">[[bar</a>
|
||
<a href="Foo" rel="mw:WikiLink">x [[ y</a>
|
||
<a href="Foo" rel="mw:WikiLink">x ]] y</a>
|
||
<a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
|
||
!! wikitext
|
||
[[Foo|<nowiki>Foobar]</nowiki>]]
|
||
[[Foo|x <nowiki>[http://google.com g]</nowiki> x]]
|
||
[[Foo|<nowiki>[[Bar]]</nowiki>]]
|
||
[[Foo|<nowiki>x [[Bar]] x</nowiki>]]
|
||
[[Foo||Bar]]
|
||
[[Foo|<nowiki>]]bar</nowiki>]]
|
||
[[Foo|<nowiki>[[bar</nowiki>]]
|
||
[[Foo|<nowiki>x [[ y</nowiki>]]
|
||
[[Foo|<nowiki>x ]] y</nowiki>]]
|
||
[[Foo|<nowiki>x ]] y [[ z</nowiki>]]
|
||
!! html/php
|
||
<p><a href="/wiki/Foo" title="Foo">Foobar]</a>
|
||
<a href="/wiki/Foo" title="Foo">x [http://google.com g] x</a>
|
||
<a href="/wiki/Foo" title="Foo">[[Bar]]</a>
|
||
<a href="/wiki/Foo" title="Foo">x [[Bar]] x</a>
|
||
<a href="/wiki/Foo" title="Foo">|Bar</a>
|
||
<a href="/wiki/Foo" title="Foo">]]bar</a>
|
||
<a href="/wiki/Foo" title="Foo">[[bar</a>
|
||
<a href="/wiki/Foo" title="Foo">x [[ y</a>
|
||
<a href="/wiki/Foo" title="Foo">x ]] y</a>
|
||
<a href="/wiki/Foo" title="Foo">x ]] y [[ z</a>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 3. WikiLinks: No escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:WikiLink" href="Foo">[Foobar</a>
|
||
<a rel="mw:WikiLink" href="Foo" title="Foo">foo|bar</a></p>
|
||
!! wikitext
|
||
[[Foo|[Foobar]]
|
||
[[Foo|foo|bar]]
|
||
!! html/php
|
||
<p><a href="/wiki/Foo" title="Foo">[Foobar</a>
|
||
<a href="/wiki/Foo" title="Foo">foo|bar</a>
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 4. ExtLinks: Escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:ExtLink" href="http://google.com">[google]</a>
|
||
<a rel="mw:ExtLink" href="http://google.com">google]</a>
|
||
<a rel="mw:ExtLink" href="http://google.com">goog] le</a></p>
|
||
<p>[http://google.com]</p>
|
||
<p>[http://google.com google]</p>
|
||
<p>[<a rel="mw:ExtLink" href="http://google.com">http://google.com</a>]</p>
|
||
<p>[<a rel="mw:ExtLink" href="http://google.com" about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"http://google.com"}},"i":0}}]}'>http://google.com</a>]</p>
|
||
!! wikitext
|
||
[http://google.com <nowiki>[google]</nowiki>]
|
||
[http://google.com <nowiki>google]</nowiki>]
|
||
[http://google.com <nowiki>goog] le</nowiki>]
|
||
|
||
<nowiki>[http://google.com]</nowiki>
|
||
|
||
<nowiki>[http://google.com google]</nowiki>
|
||
|
||
[http://google.com<nowiki>]</nowiki>
|
||
|
||
[{{1x|http://google.com}}<nowiki>]</nowiki>
|
||
!! html/php
|
||
<p><a rel="nofollow" class="external text" href="http://google.com">[google]</a>
|
||
<a rel="nofollow" class="external text" href="http://google.com">google]</a>
|
||
<a rel="nofollow" class="external text" href="http://google.com">goog] le</a>
|
||
</p><p>[http://google.com]
|
||
</p><p>[http://google.com google]
|
||
</p><p>[<a rel="nofollow" class="external free" href="http://google.com">http://google.com</a>]
|
||
</p><p>[<a rel="nofollow" class="external free" href="http://google.com">http://google.com</a>]
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 5. ExtLinks: No escapes needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:ExtLink" href="http://google.com">[google</a></p>
|
||
<p>[<a ref="mw:ExtLink" href="http://google.com"></a>]</p>
|
||
!! wikitext
|
||
[http://google.com [google]
|
||
|
||
[[http://google.com]]
|
||
!! html/php
|
||
<p><a rel="nofollow" class="external text" href="http://google.com">[google</a>
|
||
</p><p>[<a rel="nofollow" class="external autonumber" href="http://google.com">[1]</a>]
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 6. Add <nowiki/>s between text-nodes and url-links when required (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>x<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>y
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>?x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>&x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>'x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>:x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>;x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>!x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>=x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>(x)
|
||
<a rel="mw:ExtLink" href="http://example.com(x" data-parsoid='{"stx":"url"}'>http://example.com(x</a>)
|
||
</p>
|
||
!! wikitext
|
||
x<nowiki/>http://example.com<nowiki/>y
|
||
http://example.com<nowiki/>?x
|
||
http://example.com<nowiki/>&x
|
||
http://example.com<nowiki/>'x
|
||
http://example.com<nowiki/>,x
|
||
http://example.com<nowiki/>.x
|
||
http://example.com<nowiki/>;x
|
||
http://example.com<nowiki/>:x
|
||
http://example.com<nowiki/>;x
|
||
http://example.com<nowiki/>!x
|
||
http://example.com<nowiki/>=x
|
||
http://example.com<nowiki/>(x)
|
||
http://example.com(x<nowiki/>)
|
||
!! end
|
||
|
||
!! test
|
||
Links 7a. Don't add spurious <nowiki/>s between text-nodes and url-links (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>x
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>
|
||
y
|
||
"<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>"
|
||
(<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>)
|
||
(<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>) foo
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>,
|
||
<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>, foo
|
||
</p>
|
||
!! wikitext
|
||
x
|
||
http://example.com
|
||
y
|
||
"http://example.com"
|
||
(http://example.com)
|
||
(http://example.com) foo
|
||
http://example.com,
|
||
http://example.com, foo
|
||
!! html/php
|
||
<p>x
|
||
<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
|
||
y
|
||
"<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>"
|
||
(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
|
||
(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>) foo
|
||
<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>,
|
||
<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>, foo
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 7b. Don't add spurious <nowiki/>s between text-nodes and url-links (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url"}'>http://example.com</a>.,;:!?\
|
||
-<a rel="mw:ExtLink" href="http://example.com">http://example.com</a>:</p>
|
||
!! wikitext
|
||
http://example.com.,;:!?\
|
||
-http://example.com:
|
||
!! html/php
|
||
<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>.,;:!?\
|
||
-<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>:
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 8. Add <nowiki/>s between text-nodes and RFC-links when required (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>4
|
||
<a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y
|
||
X<a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>y</p>
|
||
!! wikitext
|
||
RFC 123<nowiki/>4
|
||
RFC 123<nowiki/>y
|
||
X<nowiki/>RFC 123<nowiki/>y
|
||
!! end
|
||
|
||
!! test
|
||
Links 9. Don't add spurious <nowiki/>s between text-nodes and RFC-links (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>?foo
|
||
<a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>&foo
|
||
-<a href="https://datatracker.ietf.org/doc/html/rfc123" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>RFC 123</a>-
|
||
</p>
|
||
!! wikitext
|
||
RFC 123?foo
|
||
RFC 123&foo
|
||
-RFC 123-
|
||
!! html/php
|
||
<p><a class="external mw-magiclink-rfc" rel="nofollow" href="https://datatracker.ietf.org/doc/html/rfc123">RFC 123</a>?foo
|
||
<a class="external mw-magiclink-rfc" rel="nofollow" href="https://datatracker.ietf.org/doc/html/rfc123">RFC 123</a>&foo
|
||
-<a class="external mw-magiclink-rfc" rel="nofollow" href="https://datatracker.ietf.org/doc/html/rfc123">RFC 123</a>-
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 10. Add <nowiki/>s between text-nodes and PMID-links when required (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>4
|
||
<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
|
||
X<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>y
|
||
!! wikitext
|
||
PMID 123<nowiki/>4
|
||
PMID 123<nowiki/>y
|
||
X<nowiki/>PMID 123<nowiki/>y
|
||
!! end
|
||
|
||
!! test
|
||
Links 11. Don't add spurious <nowiki/>s between text-nodes and PMID-links (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>?foo
|
||
<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>&foo
|
||
-<a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink" data-parsoid='{"stx":"magiclink"}'>PMID 123</a>-
|
||
</p>
|
||
!! wikitext
|
||
PMID 123?foo
|
||
PMID 123&foo
|
||
-PMID 123-
|
||
!! html/php
|
||
<p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>?foo
|
||
<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>&foo
|
||
-<a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract">PMID 123</a>-
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 12. Add <nowiki/>s between text-nodes and ISBN-links when required (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>1
|
||
<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>x
|
||
a<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>b
|
||
</p>
|
||
!! wikitext
|
||
ISBN 1234567890<nowiki/>1
|
||
ISBN 1234567890<nowiki/>x
|
||
a<nowiki/>ISBN 1234567890<nowiki/>b
|
||
!! end
|
||
|
||
!! test
|
||
Links 13. Don't add spurious <nowiki/>s between text-nodes and ISBN-links (T66300)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>-<a href="./Special:BookSources/1234567890" rel="mw:WikiLink" data-parsoid='{"stx":"magiclink"}'>ISBN 1234567890</a>'s
|
||
!! wikitext
|
||
-ISBN 1234567890's
|
||
!! html/php
|
||
<p>-<a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>'s
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
Links 14. Protect link-like plain text. (Parsoid bug T78425)
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<p>this is not a link: http://example.com
|
||
</p>
|
||
!! wikitext
|
||
this is not a link: <nowiki>http://example.com</nowiki>
|
||
!! end
|
||
|
||
!! test
|
||
Links 15. Link trails can't become link prefixes.
|
||
!! options
|
||
language=is
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><a rel="mw:WikiLink" href="Söfnuður" title="Söfnuður" data-parsoid='{"stx":"simple","tail":"-"}'>Söfnuður-</a><a rel="mw:WikiLink" href="00" title="00">00</a></p>
|
||
!! wikitext
|
||
[[Söfnuður]]-[[00]]
|
||
!! html/php
|
||
<p><a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">Söfnuður-</a><a href="/wiki/00" title="00">00</a>
|
||
</p>
|
||
!! end
|
||
|
||
# This example actually from lnwiki, but arwiki has the same link
|
||
# prefix and equivalent link trail for this purpose.
|
||
!! test
|
||
Links 17. Link trails (T236183)
|
||
!! options
|
||
language=ar
|
||
!! wikitext
|
||
[[Likalo]] ·
|
||
[[Pusupúsu]] ·
|
||
!! html/php
|
||
<p><a href="/index.php?title=Likalo&action=edit&redlink=1" class="new" title="Likalo (الصفحة غير موجودة)">Likalo</a> ·
|
||
<a href="/index.php?title=Pusup%C3%BAsu&action=edit&redlink=1" class="new" title="Pusupúsu (الصفحة غير موجودة)">Pusupúsu</a> ·
|
||
</p>
|
||
!! html/parsoid
|
||
<p><a rel="mw:WikiLink" href="./Likalo?action=edit&redlink=1" title="Likalo" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"simple","a":{"href":"./Likalo"},"sa":{"href":"Likalo"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["Likalo"]}}'>Likalo</a><span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span>·
|
||
<a rel="mw:WikiLink" href="./Pusupúsu?action=edit&redlink=1" title="Pusupúsu" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"simple","a":{"href":"./Pusupúsu"},"sa":{"href":"Pusupúsu"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["Pusupúsu"]}}'>Pusupúsu</a><span typeof="mw:Entity" data-parsoid='{"src":"&nbsp;","srcContent":" "}'> </span>·</p>
|
||
!! end
|
||
|
||
#### --------------- Quotes ---------------
|
||
#### 1. Quotes inside <b> and <i>
|
||
#### 2. Link fragments separated by <i> and <b> tags
|
||
#### 3. Link fragments inside <i> and <b>
|
||
#### 4. No escaping needed
|
||
#### --------------------------------------
|
||
!! test
|
||
1a. Quotes inside <b> and <i>
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/*
|
||
<p><i>'foo'</i>
|
||
<i>''foo''</i>
|
||
<i>'''foo'''</i>
|
||
<i>foo</i>'s
|
||
<b>'foo'</b>
|
||
<b>''foo''</b>
|
||
<b>'''foo'''</b>
|
||
<b>foo'<i>bar'</i>baz</b>
|
||
<b>foo</b>'s
|
||
'<i>foo</i>
|
||
<i>foo</i>'
|
||
<i>foo'</i>'
|
||
'<i>foo</i>'
|
||
'<b>foo</b>
|
||
<b>foo</b>'
|
||
'<b>foo</b>'
|
||
<i>fools'<span> errand</span></i>
|
||
<i><span>fool</span>'s errand</i>
|
||
'<i>foo</i> bar '<i>baz</i>
|
||
a|!*#-:;+-~[]{}b'<i>x</i>
|
||
</p>
|
||
!! wikitext
|
||
''<nowiki/>'foo'''
|
||
''<nowiki>''foo''</nowiki>''
|
||
''<nowiki>'''foo'''</nowiki>''
|
||
''foo''<nowiki/>'s
|
||
'''<nowiki/>'foo''''
|
||
'''<nowiki>''foo''</nowiki>'''
|
||
'''<nowiki>'''foo'''</nowiki>'''
|
||
'''foo'<nowiki/>''bar'<nowiki/>''baz'''
|
||
'''foo'''<nowiki/>'s
|
||
'''foo''
|
||
''foo''<nowiki/>'
|
||
''foo'''<nowiki/>'
|
||
'''foo''<nowiki/>'
|
||
''''foo'''
|
||
'''foo'''<nowiki/>'
|
||
''''foo'''<nowiki/>'
|
||
''fools'<span> errand</span>''
|
||
''<span>fool</span>'s errand''
|
||
'<nowiki/>''foo'' bar '''baz''
|
||
a|!*#-:;+-~[]{}b'''x''
|
||
!! end
|
||
|
||
!! test
|
||
1b. Quotes inside <b> and <i> with other tags on same line
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
'<i>a</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
|
||
<i>a'</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
|
||
<i>a'</i> foo <b><a rel="mw:WikiLink" href="Bar" title="Bar" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"[[bar]]"}},"i":0}}]}'>bar</a></b>
|
||
<a rel="mw:WikiLink" href="Foo" title="Foo">foo</a> x'<i><a href="Bar" rel="mw:WikiLink" title="Bar">bar</a></i>
|
||
'<i>foo</i> <span typeof="mw:Extension/spantag" about="#mwt3" data-mw='{"name":"spantag","attrs":{},"body":{"extsrc":"test"}}'>test</span>
|
||
'<i>foo</i> <div title="name">test</div>
|
||
'<i>foo</i> and <br data-parsoid='{"stx":"html","noClose":true}'/> bar
|
||
!! wikitext
|
||
'''a'' foo ''[[bar]]''
|
||
''a''' foo ''[[bar]]''
|
||
''a''' foo '''{{1x|[[bar]]}}'''
|
||
[[foo]] x'''[[bar]]''
|
||
'''foo'' <spantag>test</spantag>
|
||
'''foo'' <div title="name">test</div>
|
||
'''foo'' and <br> bar
|
||
!! end
|
||
|
||
!! test
|
||
2. Link fragments separated by <i> and <b> tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>[[<i>foo</i>hello]]</p>
|
||
<p>[[<b>foo</b>hello]]</p>
|
||
!! wikitext
|
||
[[''foo''<nowiki>hello]]</nowiki>
|
||
|
||
[['''foo'''<nowiki>hello]]</nowiki>
|
||
!! end
|
||
|
||
# FIXME: Escaping one or both of [[ and ]] is also acceptable --
|
||
# this is one of the shortcomings of this format
|
||
!! test
|
||
3. Link fragments inside <i> and <b>
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><i>[[foo</i>]]</p>
|
||
<p><b>[[foo</b>]]</p>
|
||
!! wikitext
|
||
''[[foo''<nowiki>]]</nowiki>
|
||
|
||
'''[[foo'''<nowiki>]]</nowiki>
|
||
!! end
|
||
|
||
!! test
|
||
4. No escaping needed
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>'<span><i>bar</i></span>'
|
||
'<span><b>bar</b></span>'
|
||
'a:b'foo
|
||
</p>
|
||
!! wikitext
|
||
'<span>''bar''</span>'
|
||
'<span>'''bar'''</span>'
|
||
'a:b'foo
|
||
!! end
|
||
|
||
#### ----------- Paragraphs ---------------
|
||
#### 1. No unnecessary escapes
|
||
#### --------------------------------------
|
||
|
||
!! test
|
||
1. No unnecessary escapes
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>bar <span>[[foo]]</span>
|
||
</p><p>=bar <span>[[foo]]</span>
|
||
</p><p>[[bar <span>[[foo]]</span>
|
||
</p><p>]]bar <span>[[foo]]</span>
|
||
</p><p>=bar <span>foo]]</span>=
|
||
</p>
|
||
!! wikitext
|
||
bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
=bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
[[bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
]]bar <span><nowiki>[[foo]]</nowiki></span>
|
||
|
||
=bar <span>foo]]</span><nowiki>=</nowiki>
|
||
!!end
|
||
|
||
#### ----------------------- PRE --------------------------
|
||
|
||
!! test
|
||
1. Leading whitespace in SOL context should be stripped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p> a</p>
|
||
|
||
<p> a</p>
|
||
|
||
<p> a(tab)</p>
|
||
|
||
<p> a
|
||
<!--cmt-->
|
||
a</p>
|
||
|
||
<p>a
|
||
b</p>
|
||
|
||
<p>a
|
||
b</p>
|
||
|
||
<p>a
|
||
b</p>
|
||
!! wikitext
|
||
a
|
||
|
||
a
|
||
|
||
a(tab)
|
||
|
||
a
|
||
<!--cmt-->
|
||
a
|
||
|
||
a
|
||
b
|
||
|
||
a
|
||
b
|
||
|
||
a
|
||
b
|
||
!! html/php
|
||
<p>a
|
||
</p><p>a
|
||
</p><p> a(tab)
|
||
</p><p>a
|
||
a
|
||
</p><p>a
|
||
b
|
||
</p><p>a
|
||
b
|
||
</p><p>a
|
||
b
|
||
</p>
|
||
!! end
|
||
|
||
!! test
|
||
2. Leading whitespace in non-indent-pre contexts should not be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>foo <span typeof="mw:Extension/spantag" about="#mwt2" data-mw='{"name":"spantag","attrs":{},"body":{"extsrc":"''a''\n b"}}'><i>a</i>
|
||
b</span></p>
|
||
!! wikitext
|
||
foo <spantag>''a''
|
||
b</spantag>
|
||
!! end
|
||
|
||
!! test
|
||
3. Leading whitespace in indent-pre suppressing contexts should not be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<blockquote>
|
||
<p>
|
||
a
|
||
<span>b</span>
|
||
c</p>
|
||
</blockquote>
|
||
!! wikitext
|
||
<blockquote>
|
||
a
|
||
<span>b</span>
|
||
c
|
||
</blockquote>
|
||
!! end
|
||
|
||
!! test
|
||
4. Leading whitespace in indent-pre suppressing contexts should not be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
|
||
!! wikitext
|
||
[[File:Foobar.jpg|thumb|caption]]
|
||
!! end
|
||
|
||
!! test
|
||
5. Nowiki escaping should account for indent-pres
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<pre>==foo==</pre>
|
||
!! wikitext
|
||
==foo==
|
||
!! end
|
||
|
||
!! test
|
||
T95794: nowiki escaping should account for leading space at start-of-line in an indent-pre block
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<pre>
|
||
* foo
|
||
* bar
|
||
</pre>
|
||
!! wikitext
|
||
* foo
|
||
* bar
|
||
!! end
|
||
|
||
!! test
|
||
Whitespace scrubbing in SOL position should account for SOL-sensitive wikitext markup
|
||
!! options
|
||
parsoid = {
|
||
"modes": ["html2wt"]
|
||
}
|
||
!! html/parsoid
|
||
<p> foo</p>
|
||
<p> %foo</p>
|
||
<p> *foo</p>
|
||
<p> #foo</p>
|
||
<p> =foo=</p>
|
||
<p><link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid="{}"> *foo</p>
|
||
<p> <link rel="mw:PageProp/Category" href="./Category:Foo" data-parsoid="{}">*foo</p>
|
||
<p> <!--boo-->*foo</p>
|
||
<p><!--boo--> *foo</p>
|
||
<p><!--a--> <!--b--> <!--c--> <!--d--> <!--e--> foo</p>
|
||
<p><!--a--> <!--b--> <!--c--> <!--d--> <!--e--> *foo</p>
|
||
!! wikitext
|
||
foo
|
||
|
||
%foo
|
||
|
||
<nowiki/>*foo
|
||
|
||
<nowiki/>#foo
|
||
|
||
<nowiki/>=foo=
|
||
|
||
[[Category:Foo]]
|
||
<nowiki/>*foo
|
||
|
||
[[Category:Foo]]
|
||
<nowiki>*</nowiki>foo
|
||
|
||
<nowiki/><!--boo-->*foo
|
||
|
||
<!--boo--><nowiki/>*foo
|
||
|
||
<!--a--><!--b--><!--c--><!--d--><!--e-->foo
|
||
|
||
<!--a--><nowiki/><!--b--><!--c--><!--d--><!--e-->*foo
|
||
!! end
|
||
|
||
#### --------------- Behavior Switches --------------------
|
||
|
||
!! test
|
||
1. Valid behavior switches should be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
__TOC__
|
||
<i>__TOC__</i>
|
||
!! wikitext
|
||
<nowiki>__TOC__</nowiki>
|
||
''<nowiki>__TOC__</nowiki>''
|
||
!! end
|
||
|
||
!! test
|
||
2. Invalid behavior switches should not be escaped
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
__TOO__
|
||
__|__
|
||
!! wikitext
|
||
__TOO__
|
||
__|__
|
||
!! end
|
||
|
||
# We use indent-pre as an indirect way to test for sol-transparent behavior.
|
||
!! test
|
||
Behavior switches should be SOL-transparent
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<meta property="mw:PageProp/toc" />
|
||
|
||
<!-- this one's bogus -->
|
||
<pre>__TOO__</pre>
|
||
|
||
<pre data-parsoid='{}'><meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/> foo</pre>
|
||
|
||
<meta property="mw:PageProp/toc" data-parsoid='{"src":"__TOC__","magicSrc":"__TOC__"}'/><pre data-parsoid='{}'>bar</pre>
|
||
!! wikitext
|
||
__TOC__
|
||
|
||
<!-- this one's bogus -->
|
||
__TOO__
|
||
|
||
__TOC__ foo
|
||
|
||
__TOC__
|
||
bar
|
||
!! end
|
||
|
||
# last two <meta> tags test case-insensitivity
|
||
!! test
|
||
During serialization, normalize output when given a SOL-transparent prefix
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p> x</p>
|
||
<p><meta property="mw:PageProp/notoc" data-parsoid='{"src":"__NOTOC__","magicSrc":"__NOTOC__"}'/> y</p>
|
||
<p><meta property="mw:PageProp/notoc" data-parsoid='{"src":"__NotoC__","magicSrc":"__NotoC__"}'/> z</p>
|
||
<p><meta property="mw:PageProp/notoc" data-parsoid='{"src":"__notoc__","magicSrc":"__notoc__"}'/> p</p>
|
||
!! wikitext
|
||
x
|
||
|
||
__NOTOC__y
|
||
|
||
__NOTOC__z
|
||
|
||
__notoc__p
|
||
!! end
|
||
|
||
#### --------------- HTML tags ---------------
|
||
#### 1. a tags
|
||
#### 2. other tags
|
||
#### 3. multi-line html tag
|
||
#### 4. extension tags
|
||
#### -----------------------------------------
|
||
!! test
|
||
1. a tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<a href="http://google.com">google</a>
|
||
!! wikitext
|
||
<a href="http://google.com">google</a>
|
||
!! end
|
||
|
||
!! test
|
||
2. other tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<ul><li> <div>foo</div></li>
|
||
<li> <div style="color:red">foo</div></li>
|
||
<li> <td></li></ul>
|
||
|
||
!! wikitext
|
||
* <nowiki><div>foo</div></nowiki>
|
||
* <nowiki><div style="color:red">foo</div></nowiki>
|
||
* <nowiki><td></nowiki>
|
||
!! end
|
||
|
||
!! test
|
||
3. multi-line html tag
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><div
|
||
>foo</div
|
||
>
|
||
</p>
|
||
!! wikitext
|
||
<nowiki><div
|
||
>foo</div
|
||
></nowiki>
|
||
!! end
|
||
|
||
!! test
|
||
4. extension tags
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><ref>foo</ref>
|
||
</p><p><ref>bar
|
||
</p><p>baz</ref>
|
||
</p>
|
||
!! wikitext
|
||
<nowiki><ref>foo</ref></nowiki>
|
||
|
||
<nowiki><ref>bar</nowiki>
|
||
|
||
baz<nowiki></ref></nowiki>
|
||
!! end
|
||
|
||
## FIXME: This test is less useful now that the leading space is normalized away
|
||
!! test
|
||
Parsoid: newline inducing block nodes don't suppress <nowiki>
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
a<h1>foo</h1>
|
||
!! wikitext
|
||
a
|
||
|
||
= foo =
|
||
!! end
|
||
|
||
#### --------------- Others ---------------
|
||
|
||
!! test
|
||
Escaping nowikis
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p><nowiki>foo</nowiki>
|
||
</p>
|
||
!! wikitext
|
||
<nowiki>foo</nowiki>
|
||
!! end
|
||
|
||
## The quote-char in the input is necessary for triggering the bug
|
||
!! test
|
||
(T54035) Nowiki-escaping should not get tripped by " :" in text
|
||
!! options
|
||
parsoid=html2wt
|
||
!! html/parsoid
|
||
<p>foo's bar :</p>
|
||
!! wikitext
|
||
foo's bar :
|
||
!! end
|
||
|
||
!! test
|
||
Ensure that when a leading-whitespace-containing string is emitted on a newline, it is correctly escaped
|
||
!! options
|
||
parsoid={
|
||
"modes": ["selser"],
|
||
"selser": "noauto",
|
||
"changes": [
|
||
[ "div > p", "html", "DEF" ]
|
||
]
|
||
}
|
||
!! wikitext
|
||
<div>
|
||
ABC
|
||
{{1x|
|
||
{{{!}}
|
||
{{!}} a
|
||
{{!}}}}} b
|
||
!! wikitext/edited
|
||
<div>
|
||
DEF
|
||
{{1x|
|
||
{{{!}}
|
||
{{!}} a
|
||
{{!}}}}} b
|
||
!! end
|