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\":\"&#39;&#39;1&#39;&#39;\",\"named\":true,\"spc\":[\"\",\"\",\"\",\"\"]}]]}'
 
data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"&#39;&#39;1&#39;&#39;\":{\"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\":\"&lt;gallery>\\nFile:foobar.jpg\\n&lt;/gallery>\",\"tagWidths\":[9,10],\"dsr\":[3,39,9,10]}'>&lt;gallery>\nFile:foobar.jpg\n&lt;/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\":\"&#39;&#39;a:b&#39;&#39;\"}},\"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

Reply via email to