jenkins-bot has submitted this change and it was merged.
Change subject: Marginal improvement parsing templates in definition lists
......................................................................
Marginal improvement parsing templates in definition lists
* Example 1, ;{{echo|''a:b''}} now properly becomes
<dl><dt><i>a:b</i></dt></dl>
as opposed to what we have now
<dl><dt>{{echo|''a</dt><dd>b''}}</dd></dl>
* Example 2, ;{{echo|a:b}} is rather unfortunate. Currently
<dl><dt>{{echo|a</dt><dd>b}}</dd></dl>
but with this change
<dl><dt>a:b</dt></dl>
when it should be
<dl><dt>a</dt><dd>b</dd></dl>
* Should look into adding an inList flag while tokenizing fetched
templates that pushes a colon on the stack.
Change-Id: Icd0b89c50d137b045171d126ddb6848a8aacb06a
---
M lib/mediawiki.tokenizer.utils.js
M tests/parserTests-blacklist.js
2 files changed, 2 insertions(+), 1 deletion(-)
Approvals:
Subramanya Sastry: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/mediawiki.tokenizer.utils.js b/lib/mediawiki.tokenizer.utils.js
index 370c852..cca7466 100644
--- a/lib/mediawiki.tokenizer.utils.js
+++ b/lib/mediawiki.tokenizer.utils.js
@@ -210,6 +210,7 @@
case ":":
return counters.colon &&
! stops.onStack( 'extlink' ) &&
+ ! stops.onCount( 'templatedepth' ) &&
! counters.linkdesc;
case "\r":
return stops.onStack( 'table' ) &&
diff --git a/tests/parserTests-blacklist.js b/tests/parserTests-blacklist.js
index 2b54a07..062381c 100644
--- a/tests/parserTests-blacklist.js
+++ b/tests/parserTests-blacklist.js
@@ -50,7 +50,7 @@
add("wt2html", "Templates: Other wikitext in parameter names (bug 67657)", "<p
about=\"#mwt1\" typeof=\"mw:Transclusion\"
data-parsoid='{\"dsr\":[0,18,0,0],\"pi\":[[{\"k\":\"''1''\",\"named\":true,\"spc\":[\"\",\"\",\"\",\"\"]}]]}'
data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"''1''\":{\"wt\":\"foo\"}},\"i\":0}}]}'>foo</p>");
add("wt2html", "4. Indent-Pre and extension tags", "<pre
data-parsoid='{\"dsr\":[0,39,1,0]}'>a <span typeof=\"mw:Extension/gallery\"
about=\"#mwt1\"
data-parsoid='{\"stx\":\"html\",\"src\":\"<gallery>\\nFile:foobar.jpg\\n</gallery>\",\"tagWidths\":[9,10],\"dsr\":[3,39,9,10]}'><gallery>\nFile:foobar.jpg\n</gallery></span></pre>");
add("wt2html", "6. Pre-blocks should extend across lines with leading WS even
when there is no wrappable content", "<pre
data-parsoid='{\"dsr\":[0,26,1,0]}'>a\n\n <!-- continue -->\nb</pre>\n\n<pre
data-parsoid='{\"dsr\":[28,30,1,0]}'>c</pre>\n \n<p
data-parsoid='{\"dsr\":[33,34,0,0]}'>d</p>");
-add("wt2html", "Definition Lists: colons occurring in tags", "<dl
data-parsoid='{\"dsr\":[0,93,0,0]}'><dt
data-parsoid='{\"dsr\":[0,2,1,0]}'>a</dt><dd
data-parsoid='{\"stx\":\"row\",\"dsr\":[2,4,1,0]}'>b</dd>\n<dt
data-parsoid='{\"dsr\":[5,15,1,0]}'><b
data-parsoid='{\"dsr\":[6,15,3,3]}'>a:b</b></dt>\n<dt
data-parsoid='{\"dsr\":[16,27,1,0]}'><i
data-parsoid='{\"stx\":\"html\",\"dsr\":[17,27,3,4]}'>a:b</i></dt>\n<dt
data-parsoid='{\"dsr\":[28,45,1,0]}'><span
data-parsoid='{\"stx\":\"html\",\"dsr\":[29,45,6,7]}'>a:b</span></dt>\n<dt
data-parsoid='{\"dsr\":[46,61,1,0]}'><div
data-parsoid='{\"stx\":\"html\",\"dsr\":[47,61,5,6]}'>a:b</div></dt>\n<dt
data-parsoid='{\"dsr\":[62,71,1,0]}'><span typeof=\"mw:Nowiki\"
data-parsoid='{\"src\":\"{{\",\"dsr\":[63,65,0,0]}'>{{</span>echo|a</dt><dd
data-parsoid='{\"stx\":\"row\",\"dsr\":[71,75,1,0]}'>b<span
typeof=\"mw:Nowiki\"
data-parsoid='{\"src\":\"}}\",\"dsr\":[73,75,0,0]}'>}}</span></dd>\n<dt
data-parsoid='{\"dsr\":[76,93,1,0]}'><span typeof=\"mw:Nowiki\"
data-parsoid='{\"src\":\"{{\",\"dsr\":[77,79,0,0]}'>{{</span>echo|<i
data-parsoid='{\"dsr\":[84,91,2,2]}'>a:b</i><span typeof=\"mw:Nowiki\"
data-parsoid='{\"src\":\"}}\",\"dsr\":[91,93,0,0]}'>}}</span></dt></dl>");
+add("wt2html", "Definition Lists: colons occurring in tags", "<dl
data-parsoid='{\"dsr\":[0,93,0,0]}'><dt
data-parsoid='{\"dsr\":[0,2,1,0]}'>a</dt><dd
data-parsoid='{\"stx\":\"row\",\"dsr\":[2,4,1,0]}'>b</dd>\n<dt
data-parsoid='{\"dsr\":[5,15,1,0]}'><b
data-parsoid='{\"dsr\":[6,15,3,3]}'>a:b</b></dt>\n<dt
data-parsoid='{\"dsr\":[16,27,1,0]}'><i
data-parsoid='{\"stx\":\"html\",\"dsr\":[17,27,3,4]}'>a:b</i></dt>\n<dt
data-parsoid='{\"dsr\":[28,45,1,0]}'><span
data-parsoid='{\"stx\":\"html\",\"dsr\":[29,45,6,7]}'>a:b</span></dt>\n<dt
data-parsoid='{\"dsr\":[46,61,1,0]}'><div
data-parsoid='{\"stx\":\"html\",\"dsr\":[47,61,5,6]}'>a:b</div></dt>\n<dt
data-parsoid='{\"dsr\":[62,75,1,0]}'><span about=\"#mwt1\"
typeof=\"mw:Transclusion\"
data-parsoid='{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[63,75,null,null]}'
data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"a:b\"}},\"i\":0}}]}'>a:b</span></dt>\n<dt
data-parsoid='{\"dsr\":[76,93,1,0]}'><i about=\"#mwt2\"
typeof=\"mw:Transclusion\"
data-parsoid='{\"dsr\":[77,93,null,null],\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]]}'
data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"''a:b''\"}},\"i\":0}}]}'>a:b</i></dt></dl>");
add("wt2html", "Definition Lists: colons and tables 1", "<dl
data-parsoid='{\"dsr\":[0,21,0,0]}'><dd
data-parsoid='{\"dsr\":[0,10,1,0]}'><table
data-parsoid='{\"dsr\":[1,10,2,2]}'>\n<tbody
data-parsoid='{\"dsr\":[4,8,0,0]}'><tr
data-parsoid='{\"autoInsertedEnd\":true,\"autoInsertedStart\":true,\"dsr\":[4,7,0,0]}'><td
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[4,7,1,0]}'>
x</td></tr>\n</tbody></table></dd>\n<dd
data-parsoid='{\"dsr\":[11,21,1,0]}'><table
data-parsoid='{\"dsr\":[12,21,2,2]}'>\n<tbody
data-parsoid='{\"dsr\":[15,19,0,0]}'><tr
data-parsoid='{\"autoInsertedEnd\":true,\"autoInsertedStart\":true,\"dsr\":[15,18,0,0]}'><td
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[15,18,1,0]}'>
y</td></tr>\n</tbody></table></dd></dl>");
add("wt2html", "External links: Free with trailing punctuation", "<p
data-parsoid='{\"dsr\":[0,198,0,0]}'><a rel=\"mw:ExtLink\"
href=\"http://example.com\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[0,18,0,0]}'>http://example.com</a>,\n<a
rel=\"mw:ExtLink\" href=\"http://example.com;\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[20,39,0,0]}'>http://example.com;</a>\n<a
rel=\"mw:ExtLink\" href=\"http://example.com\\\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[40,59,0,0]}'>http://example.com\\</a>\n<a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[60,78,0,0]}'>http://example.com</a>.\n<a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[80,98,0,0]}'>http://example.com</a>:\n<a
rel=\"mw:ExtLink\" href=\"http://example.com!\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[100,119,0,0]}'>http://example.com!</a>\n<a
rel=\"mw:ExtLink\" href=\"http://example.com?\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[120,139,0,0]}'>http://example.com?</a>\n<a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[140,158,0,0]}'>http://example.com</a>)\n<a
rel=\"mw:ExtLink\" href=\"http://example.com/url_with_(brackets)\"
data-parsoid='{\"stx\":\"url\",\"dsr\":[160,198,0,0]}'>http://example.com/url_with_(brackets)</a></p>");
add("wt2html", "Bug 2702: Mismatched <i>, <b> and <a> tags are invalid", "<p
data-parsoid='{\"dsr\":[0,204,0,0]}'><i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[0,29,2,0]}'><a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"targetOff\":22,\"contentOffsets\":[22,28],\"dsr\":[2,29,20,1]}'>text<i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[26,28,2,0]}'></i></a></i>\n<a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"targetOff\":50,\"contentOffsets\":[50,57],\"dsr\":[30,58,20,1]}'><b
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[50,57,3,0]}'>text</b></a><b
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[58,61,3,0]}'></b>\n<i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[62,106,2,0]}'>Something <a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"targetOff\":94,\"contentOffsets\":[94,105],\"dsr\":[74,106,20,1]}'>in
italic<i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[103,105,2,0]}'></i></a></i>\n<i
data-parsoid='{\"dsr\":[107,164,2,2]}'>Something <a rel=\"mw:ExtLink\"
href=\"http://example.com\"
data-parsoid='{\"targetOff\":139,\"contentOffsets\":[139,160],\"dsr\":[119,161,20,1]}'>mixed<b
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[144,160,3,0]}'><i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[147,160,2,0]}'>, even
bold</i></b></a>'</i>\n<b
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[165,204,3,0]}'><i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[168,204,2,0]}'>Now <a
rel=\"mw:ExtLink\" href=\"http://example.com\"
data-parsoid='{\"targetOff\":194,\"contentOffsets\":[194,203],\"dsr\":[174,204,20,1]}'>both<b
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[198,203,3,0]}'><i
data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[201,203,2,0]}'></i></b></a></i></b></p>");
--
To view, visit https://gerrit.wikimedia.org/r/179026
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Icd0b89c50d137b045171d126ddb6848a8aacb06a
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: Marcoil <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits