Updating name & email addresses for Brooke Vibber. Re-ran updateCredits.php as well so there are some new entries in there as well. There are a couple of files in resources/libs that will have to be changed upstream to keep tests happy, I will do patches later. :D Change-Id: I2f2e75d3fa42e8cf6de19a8fbb615bac28efcd54
925 lines
18 KiB
Text
925 lines
18 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
|
|
|
|
!! article
|
|
Template:1x
|
|
!! text
|
|
{{{1}}}
|
|
!! endarticle
|
|
|
|
!! article
|
|
Template:definition_list
|
|
!! text
|
|
one
|
|
::two
|
|
!! endarticle
|
|
|
|
!! article
|
|
Help:FAQ
|
|
!! text
|
|
help!
|
|
!! end
|
|
|
|
!! test
|
|
Simple definition
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;name :Definition
|
|
!! html
|
|
<dl><dt>name</dt>
|
|
<dd>Definition</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition list for indentation only
|
|
!! wikitext
|
|
:Indented text
|
|
!! html
|
|
<dl><dd>Indented text</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition list with no space
|
|
!! wikitext
|
|
;name:Definition
|
|
!! html
|
|
<dl><dt>name</dt>
|
|
<dd>Definition</dd></dl>
|
|
!!end
|
|
|
|
!! test
|
|
Definition list with URL link
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;http://example.com/ :definition
|
|
!! html/php
|
|
<dl><dt><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a></dt>
|
|
<dd>definition</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt><a rel="mw:ExtLink" href="http://example.com/" class="external free">http://example.com/</a></dt><dd data-parsoid='{"stx":"row"}'>definition</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition list with bracketed URL link
|
|
!! wikitext
|
|
;[http://www.example.com/ Example]:Something about it
|
|
!! html
|
|
<dl><dt><a rel="nofollow" class="external text" href="http://www.example.com/">Example</a></dt>
|
|
<dd>Something about it</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition list with wikilink containing colon
|
|
!! wikitext
|
|
;[[Help:FAQ]]:The least-read page on Wikipedia
|
|
!! html/php
|
|
<dl><dt><a href="/wiki/Help:FAQ" title="Help:FAQ">Help:FAQ</a></dt>
|
|
<dd>The least-read page on Wikipedia</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt><a rel="mw:WikiLink" href="./Help:FAQ" title="Help:FAQ" data-parsoid='{"stx":"simple","a":{"href":"./Help:FAQ"},"sa":{"href":"Help:FAQ"}}'>Help:FAQ</a></dt><dd data-parsoid='{"stx":"row"}'>The least-read page on Wikipedia</dd></dl>
|
|
!! end
|
|
|
|
# At Brooke's and JeLuF's insistence... :)
|
|
!! test
|
|
Definition list with news link containing colon
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;news:alt.wikipedia.rox :This isn't even a real newsgroup!
|
|
!! html/php
|
|
<dl><dt><a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
|
|
<dd>This isn't even a real newsgroup!</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt><a rel="mw:ExtLink" href="news:alt.wikipedia.rox" class="external free" data-parsoid='{"stx":"url"}'>news:alt.wikipedia.rox</a></dt><dd data-parsoid='{"stx":"row"}'>This isn't even a real newsgroup!</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Malformed definition list with colon
|
|
!! wikitext
|
|
;news:alt.wikipedia.rox -- don't crash or enter an infinite loop
|
|
!! html
|
|
<dl><dt><a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a> -- don't crash or enter an infinite loop</dt></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition lists: colon in external link text
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;[http://www.wikipedia2.org/ Wikipedia :The Next Generation] :OK, I made that up
|
|
!! html/php
|
|
<dl><dt><a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia :The Next Generation</a></dt>
|
|
<dd>OK, I made that up</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt><a rel="mw:ExtLink" href="http://www.wikipedia2.org/" class="external text">Wikipedia :The Next Generation</a></dt><dd data-parsoid='{"stx":"row"}'>OK, I made that up</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition lists: colon in HTML attribute
|
|
!! wikitext
|
|
;<b style="display: inline">bold</b>
|
|
!! html
|
|
<dl><dt><b style="display: inline">bold</b></dt></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition lists: self-closed tag
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;one<br/>two :two-line fun
|
|
!! html
|
|
<dl><dt>one<br />two</dt>
|
|
<dd>two-line fun</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition lists: ignore colons inside tags
|
|
!! wikitext
|
|
;one <b>two : tag <i>fun:</i>:</b>:def
|
|
!! html
|
|
<dl><dt>one <b>two : tag <i>fun:</i>:</b></dt>
|
|
<dd>def</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition lists: excess closed tags
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
;one</b>two :bad tag fun
|
|
!! html/php
|
|
<dl><dt>onetwo</dt>
|
|
<dd>bad tag fun</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt>one<meta typeof="mw:Placeholder/StrippedTag" data-parsoid='{"src":"</b>","name":"b"}'/>two</dt><dd data-parsoid='{"stx":"row"}'>bad tag fun</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
T13748: Literal closing tags
|
|
!! wikitext
|
|
<dl>
|
|
<dt>test 1</dt>
|
|
<dd>test test test test test</dd>
|
|
<dt>test 2</dt>
|
|
<dd>test test test test test</dd>
|
|
</dl>
|
|
!! html
|
|
<dl>
|
|
<dt>test 1</dt>
|
|
<dd>test test test test test</dd>
|
|
<dt>test 2</dt>
|
|
<dd>test test test test test</dd>
|
|
</dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition and unordered list using wiki syntax nested in unordered list using html tags.
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
<ul><li>
|
|
;term :description
|
|
*unordered
|
|
</li></ul>
|
|
!! html
|
|
<ul><li>
|
|
<dl><dt>term</dt>
|
|
<dd>description</dd></dl>
|
|
<ul><li>unordered</li></ul>
|
|
</li></ul>
|
|
!! end
|
|
|
|
!! test
|
|
Definition list with empty definition and following paragraph
|
|
!! wikitext
|
|
;term:
|
|
|
|
Paragraph text
|
|
!! html
|
|
<dl><dt>term</dt>
|
|
<dd></dd></dl>
|
|
<p>Paragraph text
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Nested definition lists using html syntax
|
|
!! wikitext
|
|
<dl><dt>x</dt>
|
|
<dd>a</dd>
|
|
<dd>b</dd></dl>
|
|
!! html
|
|
<dl><dt>x</dt>
|
|
<dd>a</dd>
|
|
<dd>b</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: No nesting: Multiple dd's
|
|
!! wikitext
|
|
;x
|
|
:a
|
|
:b
|
|
!! html
|
|
<dl><dt>x</dt>
|
|
<dd>a</dd>
|
|
<dd>b</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Indentation: Regular
|
|
!! wikitext
|
|
:i1
|
|
::i2
|
|
:::i3
|
|
!! html
|
|
<dl><dd>i1
|
|
<dl><dd>i2
|
|
<dl><dd>i3</dd></dl></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Indentation: Missing 1st level
|
|
!! wikitext
|
|
::i2
|
|
:::i3
|
|
!! html
|
|
<dl><dd><dl><dd>i2
|
|
<dl><dd>i3</dd></dl></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Indentation: Multi-level indent
|
|
!! wikitext
|
|
:::i3
|
|
!! html
|
|
<dl><dd><dl><dd><dl><dd>i3</dd></dl></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables
|
|
!! wikitext
|
|
::{|
|
|
|foo
|
|
|bar
|
|
|}
|
|
this text
|
|
should be left alone
|
|
!! html
|
|
<dl><dd><dl><dd><table>
|
|
<tbody><tr>
|
|
<td>foo
|
|
</td>
|
|
<td>bar
|
|
</td></tr></tbody></table></dd></dl></dd></dl>
|
|
<p>this text
|
|
should be left alone
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables (with content following table)
|
|
!! wikitext
|
|
:{|
|
|
|foo
|
|
|bar
|
|
|} <!--c1--> this text should be part of the dl
|
|
!! html/php
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>foo
|
|
</td>
|
|
<td>bar
|
|
</td></tr></tbody></table> this text should be part of the dl</dd></dl>
|
|
!! html/parsoid
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>foo
|
|
</td>
|
|
<td>bar
|
|
</td></tr></tbody></table> <!--c1--> this text should be part of the dl</dd></dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables, with comments (T65979)
|
|
!! wikitext
|
|
<!-- foo -->
|
|
::{|
|
|
|foo
|
|
|bar
|
|
|}<!-- bar -->
|
|
this text
|
|
should be left alone
|
|
!! html/parsoid
|
|
<!-- foo -->
|
|
<dl><dd><dl><dd><table><tr>
|
|
<td>foo</td>
|
|
<td>bar</td>
|
|
</tr></table><!-- bar --></dd></dl></dd></dl>
|
|
<p>this text
|
|
should be left alone</p>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables, with comment before table
|
|
!!options
|
|
parsoid=wt2html
|
|
!! wikitext
|
|
::<!-- foo -->{|
|
|
|foo
|
|
|}
|
|
!! html/parsoid
|
|
<dl><dd><dl><dd><!-- foo --><table><tr>
|
|
<td>foo</td>
|
|
</tr></table></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
# Note that the legacy parser closes the list completely for the
|
|
# hacky-indent table and then reopens it; Parsoid emits the "expected"
|
|
# output. Parsoid team regards this as a bug in the legacy parser.
|
|
!! test
|
|
Definition Lists: Hack use to indent tables, in a nested list context (T262943)
|
|
!! wikitext
|
|
This is a discussion thread.
|
|
|
|
:Parent comment.
|
|
::Child comment
|
|
::{|
|
|
|With a
|
|
|Table!
|
|
|}
|
|
!! html/php
|
|
<p>This is a discussion thread.
|
|
</p>
|
|
<dl><dd>Parent comment.
|
|
<dl><dd>Child comment</dd></dl></dd></dl>
|
|
<dl><dd><dl><dd><table>
|
|
<tbody><tr>
|
|
<td>With a
|
|
</td>
|
|
<td>Table!
|
|
</td></tr></tbody></table></dd></dl></dd></dl>
|
|
!! html/parsoid
|
|
<p>This is a discussion thread.</p>
|
|
|
|
<dl><dd data-parsoid='{}'>Parent comment.
|
|
<dl><dd data-parsoid='{}'>Child comment</dd>
|
|
<dd data-parsoid='{}'><table>
|
|
<tbody><tr data-parsoid='{"autoInsertedStart":true}'><td>With a</td>
|
|
<td>Table!</td></tr>
|
|
</tbody></table></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
# The trailing whitespace in this test is to catch a regression in
|
|
# Parsoid after T54473.
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables (WS-insensitive)
|
|
!! wikitext
|
|
:{|
|
|
|a
|
|
|}
|
|
!! html/php
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>a
|
|
</td></tr></tbody></table></dd></dl>
|
|
!! html/parsoid
|
|
<dl><dd><table>
|
|
<tbody><tr><td>a</td></tr>
|
|
</tbody></table></dd></dl>
|
|
!! end
|
|
|
|
# wt2wt / html2wt will normalize newlines - so disabled those test modes
|
|
!! test
|
|
Definition Lists: Hacky use to indent tables (nl-insensitive)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
:{|
|
|
|
|
|
|
|a
|
|
|}
|
|
!! html/php
|
|
<dl><dd><table>
|
|
|
|
|
|
<tbody><tr>
|
|
<td>a
|
|
</td></tr></tbody></table></dd></dl>
|
|
!! html/parsoid
|
|
<dl><dd><table>
|
|
<tbody><tr><td>a</td></tr>
|
|
</tbody></table></dd></dl>
|
|
!! end
|
|
|
|
## The PHP parser treats : items (dd) without a corresponding ; item (dt)
|
|
## as an empty dt item. It also ignores all but the last ";" when followed
|
|
## by ":" later on. So, ";" are not ignored in ";;;t3" but are ignored in
|
|
## ";;;t3 :d1". So, PHP parser behavior is a little inconsistent wrt multiple
|
|
## ";"s.
|
|
##
|
|
## Ex: ";;t2 ::d2" is transformed into:
|
|
##
|
|
## <dl>
|
|
## <dt>t2 </dt>
|
|
## <dd>
|
|
## <dl>
|
|
## <dt></dt>
|
|
## <dd>d2</dd>
|
|
## </dl>
|
|
## </dd>
|
|
## </dl>
|
|
##
|
|
## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text
|
|
## So, the same wikitext above (;;t2 ::d2) is transformed into:
|
|
##
|
|
## <dl>
|
|
## <dt>
|
|
## <dl>
|
|
## <dt>t2 </dt>
|
|
## <dd>:d2</dd>
|
|
## </dl>
|
|
## </dt>
|
|
## </dl>
|
|
##
|
|
## All Parsoid only definition list tests have this difference.
|
|
##
|
|
## See also: https://phabricator.wikimedia.org/T8569
|
|
## and https://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html
|
|
|
|
!! test
|
|
Table / list interaction: indented table with lists in table contents
|
|
!! wikitext
|
|
:{|
|
|
|-
|
|
|a
|
|
|
|
*b
|
|
|-
|
|
|c
|
|
|
|
*d
|
|
|}
|
|
!! html
|
|
<dl><dd><table>
|
|
|
|
<tbody><tr>
|
|
<td>a
|
|
<ul><li>b</li></ul>
|
|
</td></tr>
|
|
<tr>
|
|
<td>c
|
|
<ul><li>d</li></ul>
|
|
</td></tr></tbody></table></dd></dl>
|
|
!! end
|
|
|
|
!!test
|
|
Table / list interaction: lists nested in tables nested in indented lists
|
|
!! wikitext
|
|
:{|
|
|
|
|
|
:a
|
|
:b
|
|
|
|
|
*c
|
|
*d
|
|
|}
|
|
|
|
*e
|
|
*f
|
|
!! html
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>
|
|
<dl><dd>a</dd>
|
|
<dd>b</dd></dl>
|
|
</td>
|
|
<td>
|
|
<ul><li>c</li>
|
|
<li>d</li></ul>
|
|
</td></tr></tbody></table></dd></dl>
|
|
<ul><li>e</li>
|
|
<li>f</li></ul>
|
|
!!end
|
|
|
|
!! test
|
|
Definition Lists: Nesting: Multi-level (Parsoid only)
|
|
!! wikitext
|
|
;t1:d1
|
|
;;t2::d2
|
|
;;;t3:::d3
|
|
!! html/parsoid
|
|
<dl>
|
|
<dt>t1 </dt>
|
|
<dd>d1</dd>
|
|
<dt>
|
|
<dl>
|
|
<dt>t2 </dt>
|
|
<dd>:d2</dd>
|
|
<dt>
|
|
<dl>
|
|
<dt>t3 </dt>
|
|
<dd>::d3</dd>
|
|
</dl>
|
|
</dt>
|
|
</dl>
|
|
</dt>
|
|
</dl>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Nesting: Test 2
|
|
!! wikitext
|
|
;t1
|
|
::d2
|
|
!! html
|
|
<dl><dt>t1</dt>
|
|
<dd>
|
|
<dl><dd>d2</dd></dl></dd></dl>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Nesting: Test 3
|
|
!! wikitext
|
|
:;t1
|
|
::::d2
|
|
!! html
|
|
<dl><dd><dl><dt>t1</dt>
|
|
<dd>
|
|
<dl><dd><dl><dd>d2</dd></dl></dd></dl></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Nesting: Test 4
|
|
!! wikitext
|
|
::;t3
|
|
:::d3
|
|
!! html
|
|
<dl><dd><dl><dd><dl><dt>t3</dt>
|
|
<dd>d3</dd></dl></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
|
|
## The Parsoid team believes the following three test exposes a
|
|
## bug in the PHP parser. (Parsoid team thinks the PHP parser is
|
|
## wrong to close the <dl> after the <dt> containing the <ul>.)
|
|
## It also exposes a "misfeature" in tidy, which doesn't like
|
|
## <dl> tags with a single <dt> child; it converts the <dt> into
|
|
## a <dd> in that case. (Parsoid leaves the <dt> alone!)
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 1
|
|
!! wikitext
|
|
:;*foo
|
|
::*bar
|
|
:;baz
|
|
!! html/php
|
|
<dl><dd><dl><dt><ul><li>foo</li>
|
|
<li>bar</li></ul></dt></dl>
|
|
<dl><dt>baz</dt></dl></dd></dl>
|
|
!! html/php
|
|
<dl><dd><dl><dt><ul><li>foo</li>
|
|
<li>bar</li></ul></dt></dl>
|
|
<dl><dt>baz</dt></dl></dd></dl>
|
|
!! html/parsoid
|
|
<dl>
|
|
<dd><dl>
|
|
<dt><ul>
|
|
<li>foo
|
|
</li>
|
|
</ul></dt>
|
|
<dd><ul>
|
|
<li>bar
|
|
</li>
|
|
</ul></dd>
|
|
<dt>baz</dt>
|
|
</dl></dd>
|
|
</dl>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 2
|
|
!! wikitext
|
|
*:d1
|
|
*:d2
|
|
!! html
|
|
<ul><li><dl><dd>d1</dd>
|
|
<dd>d2</dd></dl></li></ul>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 3
|
|
!! wikitext
|
|
*:::d1
|
|
*:::d2
|
|
!! html
|
|
<ul><li><dl><dd><dl><dd><dl><dd>d1</dd>
|
|
<dd>d2</dd></dl></dd></dl></dd></dl></li></ul>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 4
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*;d1 :d2
|
|
*;d3 :d4
|
|
!! html
|
|
<ul><li><dl><dt>d1</dt>
|
|
<dd>d2</dd>
|
|
<dt>d3</dt>
|
|
<dd>d4</dd></dl></li></ul>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 5
|
|
!! wikitext
|
|
*:d1
|
|
*::d2
|
|
!! html
|
|
<ul><li><dl><dd>d1
|
|
<dl><dd>d2</dd></dl></dd></dl></li></ul>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 6
|
|
!! wikitext
|
|
#*:d1
|
|
#*:::d3
|
|
!! html
|
|
<ol><li><ul><li><dl><dd>d1
|
|
<dl><dd><dl><dd>d3</dd></dl></dd></dl></dd></dl></li></ul></li></ol>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 7
|
|
!! wikitext
|
|
:*d1
|
|
:*d2
|
|
!! html
|
|
<dl><dd><ul><li>d1</li>
|
|
<li>d2</li></ul></dd></dl>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 8
|
|
!! wikitext
|
|
:*d1
|
|
::*d2
|
|
!! html
|
|
<dl><dd><ul><li>d1</li></ul>
|
|
<dl><dd><ul><li>d2</li></ul></dd></dl></dd></dl>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 9
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*;foo :bar
|
|
!! html
|
|
<ul><li><dl><dt>foo</dt>
|
|
<dd>bar</dd></dl></li></ul>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 10
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*#;foo :bar
|
|
!! html
|
|
<ul><li><ol><li><dl><dt>foo</dt>
|
|
<dd>bar</dd></dl></li></ol></li></ul>
|
|
!! end
|
|
|
|
# The Parsoid team disagrees with the PHP parser's seemingly-random
|
|
# rules regarding dd/dt on the next few tests. Parsoid is more
|
|
# consistent, and recognizes the shared nesting and keeps the
|
|
# still-open tags around until the nesting is complete.
|
|
|
|
# This is a regression test for T175099
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 11
|
|
!! wikitext
|
|
;a
|
|
:*b
|
|
!! html/php
|
|
<dl><dt>a</dt>
|
|
<dd>
|
|
<ul><li>b</li></ul></dd></dl>
|
|
!! html/parsoid
|
|
<dl><dt>a
|
|
<dd><ul><li>b</li></ul></dd></dl>
|
|
!! end
|
|
|
|
# FIXME: Maybe get rid of this test?
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 12
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*#*#;*;;foo :bar
|
|
*#*#;boo :baz
|
|
!! html/php
|
|
<ul><li><ol><li><ul><li><ol><li><dl><dt>foo</dt>
|
|
<dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dt></dl></li></ul></dd></dl></li></ol></li></ul>
|
|
<dl><dt>boo</dt>
|
|
<dd>baz</dd></dl></li></ol></li></ul>
|
|
!! html/parsoid
|
|
<ul>
|
|
<li>
|
|
<ol>
|
|
<li>
|
|
<ul>
|
|
<li>
|
|
<ol>
|
|
<li>
|
|
<dl>
|
|
<dt>
|
|
<ul>
|
|
<li>
|
|
<dl>
|
|
<dt>
|
|
<dl>
|
|
<dt>foo</dt>
|
|
<dd data-parsoid='{"stx":"row"}'>bar</dd>
|
|
</dl></dt>
|
|
</dl></li>
|
|
</ul></dt>
|
|
<dt>boo</dt>
|
|
<dd data-parsoid='{"stx":"row"}'>baz</dd>
|
|
</dl></li>
|
|
</ol></li>
|
|
</ul></li>
|
|
</ol></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: Mixed Lists: Test 13
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*#*#;*;;foo : bar
|
|
*#*#;boo : baz
|
|
!! html
|
|
<ul><li><ol><li><ul><li><ol><li><dl><dt>foo</dt>
|
|
<dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dt></dl></li></ul></dd></dl></li></ol></li></ul>
|
|
<dl><dt>boo</dt>
|
|
<dd>baz</dd></dl></li></ol></li></ul>
|
|
!! end
|
|
|
|
# FIXME: Maybe get rid of this test?
|
|
# From an old description in the Parsoid codebase:
|
|
# * The test is wrong, there are two colons where there should be :;
|
|
# * The PHP parser is wrong to close the <dl> after the <dt> containing the <ul>.
|
|
!! test
|
|
Definition Lists: Weird Ones: Test 1
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
*#;*::;;foo :bar (who uses this?)
|
|
!! html/php
|
|
<ul><li><ol><li><dl><dt>foo</dt>
|
|
<dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt>bar (who uses this?)</dt></dl></dt></dl></dd></dl></dd></dl></li></ul></dd></dl></li></ol></li></ul>
|
|
!! html/parsoid
|
|
<ul>
|
|
<li>
|
|
<ol>
|
|
<li>
|
|
<dl>
|
|
<dt>
|
|
<ul>
|
|
<li>
|
|
<dl>
|
|
<dd>
|
|
<dl>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<dl>
|
|
<dt>foo</dt>
|
|
<dd data-parsoid='{"stx":"row"}'>bar (who uses this?)</dd>
|
|
</dl></dt>
|
|
</dl></dd>
|
|
</dl></dd>
|
|
</dl></li>
|
|
</ul></dt>
|
|
</dl></li>
|
|
</ol></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Definition Lists: colons occurring in tags
|
|
!! wikitext
|
|
;a:b
|
|
;'''a:b'''
|
|
;<i>a:b</i>
|
|
;<span>a:b</span>
|
|
;<div>a:b</div>
|
|
;<div>a
|
|
:b</div>
|
|
;{{1x|a:b}}
|
|
;{{1x|''a:b''}}
|
|
;;;''a:b''
|
|
!! html/php
|
|
<dl><dt>a</dt>
|
|
<dd>b</dd>
|
|
<dt><b>a:b</b></dt>
|
|
<dt><i>a:b</i></dt>
|
|
<dt><span>a:b</span></dt>
|
|
<dt><div>a:b</div></dt>
|
|
<dt><div>a</div></dt>
|
|
<dd>b</dd>
|
|
<dt>a</dt>
|
|
<dd>b</dd>
|
|
<dt><i>a:b</i></dt></dl>
|
|
<dl><dt><dl><dt><dl><dt><i>a:b</i></dt></dl></dt></dl></dt></dl>
|
|
!! html/parsoid
|
|
<dl><dt>a</dt><dd data-parsoid='{"stx":"row"}'>b</dd>
|
|
<dt><b>a:b</b></dt>
|
|
<dt><i data-parsoid='{"stx":"html"}'>a:b</i></dt>
|
|
<dt><span data-parsoid='{"stx":"html"}'>a:b</span></dt>
|
|
<dt><div data-parsoid='{"stx":"html"}'>a:b</div></dt>
|
|
<dt><div data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a</div></dt>
|
|
<dd>b<meta typeof="mw:Placeholder/StrippedTag" data-parsoid='{"src":"</div>","name":"div"}'/></dd>
|
|
<dt><span about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"a:b"}},"i":0}}]}'>a:b</span></dt>
|
|
<dt><i about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"''a:b''"}},"i":0}}]}'>a:b</i>
|
|
<dl><dt><dl><dt><i>a:b</i></dt></dl></dt></dl></dt></dl>
|
|
!! end
|
|
|
|
# Parsoid's output differs here again because it shares
|
|
# nesting between the two lists unlike the PHP parser.
|
|
# Unsure which is more desirable.
|
|
!! test
|
|
Definition Lists: colons and tables 1
|
|
!! wikitext
|
|
:{|
|
|
|x
|
|
|}
|
|
:{|
|
|
|y
|
|
|}
|
|
!! html/php
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>x
|
|
</td></tr></tbody></table></dd></dl>
|
|
<dl><dd><table>
|
|
<tbody><tr>
|
|
<td>y
|
|
</td></tr></tbody></table></dd></dl>
|
|
!! html/parsoid
|
|
<dl><dd><table>
|
|
<tr>
|
|
<td>x
|
|
</td></tr></table></dd>
|
|
<dd><table>
|
|
<tr>
|
|
<td>y
|
|
</td></tr></table></dd></dl>
|
|
!! end
|
|
|
|
# FIXME: Does this need a html/php section?
|
|
!! test
|
|
Definition Lists: template interaction
|
|
!! wikitext
|
|
::{{definition_list}}
|
|
|
|
:one
|
|
::{{definition_list}}
|
|
:::two
|
|
:::three
|
|
::four
|
|
!! html/parsoid
|
|
<dl><dd><dl data-parsoid='{}'><dd about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[":",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}}]}'>one</dd><span about="#mwt1">
|
|
</span><dd about="#mwt1">two</dd></dl></dd></dl>
|
|
|
|
<dl><dd data-parsoid='{}'>one
|
|
<dl><dd about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["::",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}},"\n:::two\n:::three"]}'>one</dd><span about="#mwt2">
|
|
</span><dd about="#mwt2">two
|
|
<dl><dd>two</dd>
|
|
<dd>three</dd></dl></dd>
|
|
<dd data-parsoid='{}'>four</dd></dl></dd></dl>
|
|
!! end
|