Fix adding comments in lists containing <dt> tags

The issue occurred when replying to a comment consisting of multiple
list items, starting with a <dt> (instead of the expected <dd>), so
that the comment is considered to be unindented.

Modifier tried to add the reply directly inside the list (<dl>) rather
than inside the last list item (<dt>), which caused it to be confused
about indentation levels and try to un-indent more times than there
were indentations.

The simplest solution, given the existing code, is to add the reply
outside the list instead, in a new list. This results in a "list gap"
(<dl><dt>...</dt><dd>...</dd></dl><dl><dd>...</dd></dl>), but I think
it's acceptable for this rare case.

There are separate tests cases for old Parser and for Parsoid HTML,
because they parse the original wikitext differently (with the old
Parser producing HTML with a list gap too).

Bug: T279445
Change-Id: Ie0ee960e7090cf051ee547b480c980e9530eda51
This commit is contained in:
Bartosz Dziewoński 2021-04-21 11:31:10 +02:00
parent f6b7c69736
commit ffd680ee7f
12 changed files with 544 additions and 2 deletions

View file

@ -279,6 +279,8 @@
"cases/it-unsigned-parsoid/it-unsigned-parsoid-transcludedFrom.json",
"cases/sr-ec/sr-ec.json",
"cases/sr-el/sr-el.json",
"cases/dt-tags-oldparser/dt-tags-oldparser.json",
"cases/dt-tags-parsoid/dt-tags-parsoid.json",
"cases/no-heading/no-heading.json",
"cases/lrm-signature/lrm-signature.json",
"cases/fallback-encoding-link/fallback-encoding-link.json",
@ -319,6 +321,10 @@
"cases/it-unsigned-parsoid/it-unsigned-parsoid.html",
"cases/sr-ec/sr-ec.html",
"cases/sr-el/sr-el.html",
"cases/dt-tags-oldparser/dt-tags-oldparser.html",
"cases/dt-tags-oldparser/dt-tags-oldparser-modified.html",
"cases/dt-tags-parsoid/dt-tags-parsoid.html",
"cases/dt-tags-parsoid/dt-tags-parsoid-modified.html",
"cases/no-heading/no-heading.html",
"cases/lrm-signature/lrm-signature.html",
"cases/fallback-encoding-link/fallback-encoding-link.html",

View file

@ -126,7 +126,18 @@ class CommentModifier {
}
// If we can't insert a list directly inside this element, insert after it.
if ( strtolower( $parent->tagName ) === 'p' || strtolower( $parent->tagName ) === 'pre' ) {
// The covered wrapper check above handles most cases, but we still need this sometimes, such as:
// * If the comment starts in the middle of a list, then ends with an unindented p/pre, the
// wrapper check doesn't adjust the parent
// * If the comment consists of multiple list items (starting with a <dt>, so that the comment is
// considered to be unindented, that is level === 1), but not all of them, the wrapper check
// adjusts the parent to be the list, and the rest of the algorithm doesn't handle that well
if (
strtolower( $parent->tagName ) === 'p' ||
strtolower( $parent->tagName ) === 'pre' ||
strtolower( $parent->tagName ) === 'ul' ||
strtolower( $parent->tagName ) === 'dl'
) {
$parent = $parent->parentNode;
$target = $target->parentNode;
}

View file

@ -112,7 +112,18 @@ function addListItem( comment ) {
}
// If we can't insert a list directly inside this element, insert after it.
if ( parent.tagName.toLowerCase() === 'p' || parent.tagName.toLowerCase() === 'pre' ) {
// The covered wrapper check above handles most cases, but we still need this sometimes, such as:
// * If the comment starts in the middle of a list, then ends with an unindented p/pre, the
// wrapper check doesn't adjust the parent
// * If the comment consists of multiple list items (starting with a <dt>, so that the comment is
// considered to be unindented, that is level === 1), but not all of them, the wrapper check
// adjusts the parent to be the list, and the rest of the algorithm doesn't handle that well
if (
parent.tagName.toLowerCase() === 'p' ||
parent.tagName.toLowerCase() === 'pre' ||
parent.tagName.toLowerCase() === 'ul' ||
parent.tagName.toLowerCase() === 'dl'
) {
parent = parent.parentNode;
target = target.parentNode;
}

View file

@ -111,6 +111,20 @@
"config": "../data/srwiki-config.json",
"data": "../data/srwiki-data.json"
},
{
"name": "Accidental dt tags (old parser)",
"dom": "cases/dt-tags-oldparser/dt-tags-oldparser.html",
"expected": "../cases/dt-tags-oldparser/dt-tags-oldparser.json",
"config": "../data/enwiki-config.json",
"data": "../data/enwiki-data.json"
},
{
"name": "Accidental dt tags (Parsoid)",
"dom": "cases/dt-tags-parsoid/dt-tags-parsoid.html",
"expected": "../cases/dt-tags-parsoid/dt-tags-parsoid.json",
"config": "../data/enwiki-config.json",
"data": "../data/enwiki-data.json"
},
{
"name": "No heading",
"dom": "cases/no-heading/no-heading.html",

View file

@ -0,0 +1,39 @@
<div class="mw-parser-output"><h2><span class="mw-headline" id="test1">test1</span></h2>
<p>a <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
</p>
<dl><dd>b <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)<dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test1</dd>
<dt>d <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10</dt>
<dd>25, 21 April 2021 (UTC)</dd>
<dd>e <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl><dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test1-1</dd></dl>
<h2><span class="mw-headline" id="test2">test2</span></h2>
<p>a <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
</p>
<dl><dd>b <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
<dl><dd>c <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)<dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-2</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-1</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test2</dd></dl>
<dl><dt>d <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10</dt>
<dd>25, 21 April 2021 (UTC)</dd>
<dd>e <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl>
<!--
NewPP limit report
Cached time: 20210421133858
Cache expiry: 86400
Dynamic content: false
Complications: []
CPU time usage: 0.008 seconds
Real time usage: 0.009 seconds
Preprocessor visited node count: 13/1000000
Postexpand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
Unstrip recursion depth: 0/20
Unstrip postexpand size: 0/5000000 bytes
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 0.000 1 -total
--><dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test2-1</dd></dl>
<!-- Saved in RevisionOutputCache with key mediawiki:rcache:4638:dateformat=default and timestamp 20210421133858 and revision id 4638.
-->
</div>

View file

@ -0,0 +1,39 @@
<div class="mw-parser-output"><h2><span class="mw-headline" id="test1">test1</span></h2>
<p>a <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
</p>
<dl><dd>b <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd>
<dt>d <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10</dt>
<dd>25, 21 April 2021 (UTC)</dd>
<dd>e <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl>
<h2><span class="mw-headline" id="test2">test2</span></h2>
<p>a <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
</p>
<dl><dd>b <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)
<dl><dd>c <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl></dd></dl>
<dl><dt>d <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10</dt>
<dd>25, 21 April 2021 (UTC)</dd>
<dd>e <a href="http://localhost:3080/wiki/User:Matma_Rex" title="User:Matma Rex">Matma Rex</a> (<a href="http://localhost:3080/wiki/User_talk:Matma_Rex" title="User talk:Matma Rex">talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl>
<!--
NewPP limit report
Cached time: 20210421133858
Cache expiry: 86400
Dynamic content: false
Complications: []
CPU time usage: 0.008 seconds
Real time usage: 0.009 seconds
Preprocessor visited node count: 13/1000000
Postexpand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
Unstrip recursion depth: 0/20
Unstrip postexpand size: 0/5000000 bytes
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 0.000 1 -total
-->
<!-- Saved in RevisionOutputCache with key mediawiki:rcache:4638:dateformat=default and timestamp 20210421133858 and revision id 4638.
-->
</div>

View file

@ -0,0 +1,185 @@
[
{
"placeholderHeading": false,
"type": "heading",
"range": [
"0/0/0/0",
"0/0/0/1"
],
"headingLevel": 2,
"level": 0,
"name": "h-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "h-test1-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/2/0",
"0/2/4/28"
],
"signatureRanges": [
[
"0/2/1",
"0/2/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test1",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/4/0/0",
"0/4/0/4/28"
],
"signatureRanges": [
[
"0/4/0/1",
"0/4/0/4/28"
]
],
"level": 2,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": []
}
]
},
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/4/2/0",
"0/4/6/4/28"
],
"signatureRanges": [
[
"0/4/6/1",
"0/4/6/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test1-1",
"warnings": [
"Comment starts and ends with different indentation",
"Duplicate comment ID"
],
"replies": []
}
]
},
{
"placeholderHeading": false,
"type": "heading",
"range": [
"0/6/0/0",
"0/6/0/1"
],
"headingLevel": 2,
"level": 0,
"name": "h-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "h-test2-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/8/0",
"0/8/4/28"
],
"signatureRanges": [
[
"0/8/1",
"0/8/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test2",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/10/0/0",
"0/10/0/4/28"
],
"signatureRanges": [
[
"0/10/0/1",
"0/10/0/4/28"
]
],
"level": 2,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-1",
"warnings": [
"Duplicate comment ID"
],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/10/0/5/0/0",
"0/10/0/5/0/4/28"
],
"signatureRanges": [
[
"0/10/0/5/0/1",
"0/10/0/5/0/4/28"
]
],
"level": 3,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-2",
"warnings": [
"Duplicate comment ID"
],
"replies": []
}
]
}
]
},
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/12/0/0",
"0/12/4/4/28"
],
"signatureRanges": [
[
"0/12/4/1",
"0/12/4/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test2-1",
"warnings": [
"Comment starts and ends with different indentation",
"Duplicate comment ID"
],
"replies": []
}
]
}
]

View file

@ -0,0 +1,12 @@
== test1 ==
a [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
:b [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
;d [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
:e [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
== test2 ==
a [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
:b [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
::c [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
;d [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)
:e [[User:Matma Rex|Matma Rex]] ([[User talk:Matma Rex|talk]]) 10:25, 21 April 2021 (UTC)

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html prefix="dc: http://purl.org/dc/terms/ mw: http://mediawiki.org/rdf/" about="http://localhost:3080/wiki/Special:Redirect/revision/4638"><head prefix="mwr: http://localhost:3080/wiki/Special:Redirect/"><meta charset="utf-8"/><meta property="mw:pageId" content="1707"/><meta property="mw:pageNamespace" content="1"/><link rel="dc:replaces" resource="mwr:revision/4637"/><meta property="mw:revisionSHA1" content="8657a5f3cf4782615e556d50b5e3852a88a522b4"/><meta property="dc:modified" content="2021-04-21T11:45:05.000Z"/><meta property="mw:html:version" content="2.2.0"/><link rel="dc:isVersionOf" href="http://localhost:3080/wiki/Talk%3AT279445"/><title>Talk:T279445</title><base href="http://localhost:3080/wiki/"/><link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=mediawiki.skinning.content.parsoid%7Cmediawiki.skinning.interface%7Csite.styles&amp;only=styles&amp;skin=vector"/><meta http-equiv="content-language" content="en"/><meta http-equiv="vary" content="Accept"/></head><body data-parsoid='{"dsr":[0,833,0,0]}' lang="en" class="mw-content-ltr sitedir-ltr ltr mw-body-content parsoid-body mediawiki mw-parser-output" dir="ltr"><section data-mw-section-id="0" data-parsoid="{}"></section><section data-mw-section-id="1" data-parsoid="{}"><h2 id="test1" data-parsoid='{"dsr":[0,11,2,2,1,1]}'>test1</h2>
<p data-parsoid='{"dsr":[12,100,0,0]}'>a <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[14,42,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[44,72,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</p>
<dl data-parsoid='{"dsr":[101,370,0,0]}'><dd data-parsoid='{"dsr":[101,190,1,0]}'>b <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[104,132,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[134,162,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)<dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test1</dd>
<dt data-parsoid='{"dsr":[191,256,1,0]}'>d <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[194,222,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[224,252,22,2]}'>talk</a>) 10</dt><dd data-parsoid='{"stx":"row","dsr":[256,280,1,0]}'>25, 21 April 2021 (UTC)</dd>
<dd data-parsoid='{"dsr":[281,370,1,0]}'>e <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[284,312,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[314,342,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl><dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test1-1</dd></dl>
</section><section data-mw-section-id="2" data-parsoid="{}"><h2 id="test2" data-parsoid='{"dsr":[372,383,2,2,1,1]}'>test2</h2>
<p data-parsoid='{"dsr":[384,472,0,0]}'>a <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[386,414,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[416,444,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</p>
<dl data-parsoid='{"dsr":[473,833,0,0]}'><dd data-parsoid='{"dsr":[473,653,1,0]}'>b <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[476,504,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[506,534,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)
<dl data-parsoid='{"dsr":[563,653,0,0]}'><dd data-parsoid='{"dsr":[563,653,2,0]}'>c <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[567,595,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[597,625,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)<dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-2</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-1</dd></dl></dd><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test2</dd>
<dt data-parsoid='{"dsr":[654,719,1,0]}'>d <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[657,685,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[687,715,22,2]}'>talk</a>) 10</dt><dd data-parsoid='{"stx":"row","dsr":[719,743,1,0]}'>25, 21 April 2021 (UTC)</dd>
<dd data-parsoid='{"dsr":[744,833,1,0]}'>e <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[747,775,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[777,805,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl><dl><dd data-parsoid="{}">Reply to c-Matma_Rex-2021-04-21T10:25:00.000Z-test2-1</dd></dl></section></body></html>

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html prefix="dc: http://purl.org/dc/terms/ mw: http://mediawiki.org/rdf/" about="http://localhost:3080/wiki/Special:Redirect/revision/4638"><head prefix="mwr: http://localhost:3080/wiki/Special:Redirect/"><meta charset="utf-8"/><meta property="mw:pageId" content="1707"/><meta property="mw:pageNamespace" content="1"/><link rel="dc:replaces" resource="mwr:revision/4637"/><meta property="mw:revisionSHA1" content="8657a5f3cf4782615e556d50b5e3852a88a522b4"/><meta property="dc:modified" content="2021-04-21T11:45:05.000Z"/><meta property="mw:html:version" content="2.2.0"/><link rel="dc:isVersionOf" href="http://localhost:3080/wiki/Talk%3AT279445"/><title>Talk:T279445</title><base href="http://localhost:3080/wiki/"/><link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=mediawiki.skinning.content.parsoid%7Cmediawiki.skinning.interface%7Csite.styles&amp;only=styles&amp;skin=vector"/><meta http-equiv="content-language" content="en"/><meta http-equiv="vary" content="Accept"/></head><body data-parsoid='{"dsr":[0,833,0,0]}' lang="en" class="mw-content-ltr sitedir-ltr ltr mw-body-content parsoid-body mediawiki mw-parser-output" dir="ltr"><section data-mw-section-id="0" data-parsoid="{}"></section><section data-mw-section-id="1" data-parsoid="{}"><h2 id="test1" data-parsoid='{"dsr":[0,11,2,2,1,1]}'>test1</h2>
<p data-parsoid='{"dsr":[12,100,0,0]}'>a <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[14,42,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[44,72,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</p>
<dl data-parsoid='{"dsr":[101,370,0,0]}'><dd data-parsoid='{"dsr":[101,190,1,0]}'>b <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[104,132,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[134,162,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd>
<dt data-parsoid='{"dsr":[191,256,1,0]}'>d <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[194,222,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[224,252,22,2]}'>talk</a>) 10</dt><dd data-parsoid='{"stx":"row","dsr":[256,280,1,0]}'>25, 21 April 2021 (UTC)</dd>
<dd data-parsoid='{"dsr":[281,370,1,0]}'>e <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[284,312,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[314,342,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl>
</section><section data-mw-section-id="2" data-parsoid="{}"><h2 id="test2" data-parsoid='{"dsr":[372,383,2,2,1,1]}'>test2</h2>
<p data-parsoid='{"dsr":[384,472,0,0]}'>a <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[386,414,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[416,444,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</p>
<dl data-parsoid='{"dsr":[473,833,0,0]}'><dd data-parsoid='{"dsr":[473,653,1,0]}'>b <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[476,504,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[506,534,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)
<dl data-parsoid='{"dsr":[563,653,0,0]}'><dd data-parsoid='{"dsr":[563,653,2,0]}'>c <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[567,595,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[597,625,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl></dd>
<dt data-parsoid='{"dsr":[654,719,1,0]}'>d <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[657,685,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[687,715,22,2]}'>talk</a>) 10</dt><dd data-parsoid='{"stx":"row","dsr":[719,743,1,0]}'>25, 21 April 2021 (UTC)</dd>
<dd data-parsoid='{"dsr":[744,833,1,0]}'>e <a rel="mw:WikiLink" href="./User:Matma_Rex" title="User:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User:Matma_Rex"},"sa":{"href":"User:Matma Rex"},"dsr":[747,775,17,2]}'>Matma Rex</a> (<a rel="mw:WikiLink" href="./User_talk:Matma_Rex" title="User talk:Matma Rex" data-parsoid='{"stx":"piped","a":{"href":"./User_talk:Matma_Rex"},"sa":{"href":"User talk:Matma Rex"},"dsr":[777,805,22,2]}'>talk</a>) 10:25, 21 April 2021 (UTC)</dd></dl></section></body></html>

View file

@ -0,0 +1,185 @@
[
{
"placeholderHeading": false,
"type": "heading",
"range": [
"0/1/0/0",
"0/1/0/1"
],
"headingLevel": 2,
"level": 0,
"name": "h-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "h-test1-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/1/2/0",
"0/1/2/4/28"
],
"signatureRanges": [
[
"0/1/2/1",
"0/1/2/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test1",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/1/4/0/0",
"0/1/4/0/4/28"
],
"signatureRanges": [
[
"0/1/4/0/1",
"0/1/4/0/4/28"
]
],
"level": 2,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": []
}
]
},
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/1/4/2/0",
"0/1/4/5/4/28"
],
"signatureRanges": [
[
"0/1/4/5/1",
"0/1/4/5/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test1-1",
"warnings": [
"Comment starts and ends with different indentation",
"Duplicate comment ID"
],
"replies": []
}
]
},
{
"placeholderHeading": false,
"type": "heading",
"range": [
"0/2/0/0",
"0/2/0/1"
],
"headingLevel": 2,
"level": 0,
"name": "h-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "h-test2-2021-04-21T10:25:00.000Z",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/2/2/0",
"0/2/2/4/28"
],
"signatureRanges": [
[
"0/2/2/1",
"0/2/2/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test2",
"warnings": [],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/2/4/0/0",
"0/2/4/0/4/28"
],
"signatureRanges": [
[
"0/2/4/0/1",
"0/2/4/0/4/28"
]
],
"level": 2,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-1",
"warnings": [
"Duplicate comment ID"
],
"replies": [
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/2/4/0/5/0/0",
"0/2/4/0/5/0/4/28"
],
"signatureRanges": [
[
"0/2/4/0/5/0/1",
"0/2/4/0/5/0/4/28"
]
],
"level": 3,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-Matma_Rex-2021-04-21T10:25:00.000Z-2",
"warnings": [
"Duplicate comment ID"
],
"replies": []
}
]
}
]
},
{
"type": "comment",
"timestamp": "2021-04-21T10:25:00.000Z",
"author": "Matma Rex",
"range": [
"0/2/4/2/0",
"0/2/4/5/4/28"
],
"signatureRanges": [
[
"0/2/4/5/1",
"0/2/4/5/4/28"
]
],
"level": 1,
"name": "c-Matma_Rex-2021-04-21T10:25:00.000Z",
"id": "c-Matma_Rex-2021-04-21T10:25:00.000Z-test2-1",
"warnings": [
"Comment starts and ends with different indentation",
"Duplicate comment ID"
],
"replies": []
}
]
}
]

View file

@ -41,6 +41,20 @@
"config": "../data/arwiki-config.json",
"data": "../data/arwiki-data.json"
},
{
"name": "Accidental dt tags (old parser)",
"dom": "cases/dt-tags-oldparser/dt-tags-oldparser.html",
"expected": "cases/dt-tags-oldparser/dt-tags-oldparser-modified.html",
"config": "../data/enwiki-config.json",
"data": "../data/enwiki-data.json"
},
{
"name": "Accidental dt tags (Parsoid)",
"dom": "cases/dt-tags-parsoid/dt-tags-parsoid.html",
"expected": "cases/dt-tags-parsoid/dt-tags-parsoid-modified.html",
"config": "../data/enwiki-config.json",
"data": "../data/enwiki-data.json"
},
{
"name": "Must split a list to reply to one of the comments",
"dom": "cases/split-list/split-list.html",