jenkins-bot has submitted this change and it was merged. Change subject: Table cells not properly parsed in an implicit-td context ......................................................................
Table cells not properly parsed in an implicit-td context * Fixes the problematic parse on, enwiki/Province_of_Ogliastra?oldid=577754889 Bug: T71123 Change-Id: I7a08b2e5a20d1fea3e19c47b275f53f01d6253b4 --- M lib/pegTokenizer.pegjs.txt M tests/parserTests.txt 2 files changed, 45 insertions(+), 14 deletions(-) Approvals: Subramanya Sastry: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/pegTokenizer.pegjs.txt b/lib/pegTokenizer.pegjs.txt index 4edf061..a79bbc4 100644 --- a/lib/pegTokenizer.pegjs.txt +++ b/lib/pegTokenizer.pegjs.txt @@ -1718,24 +1718,27 @@ return res; } +tds + = ( pp:( pipe_pipe / p:pipe & row_syntax_table_args { return p; } ) + tdt:table_data_tag { + var da = tdt[0].dataAttribs; + da.stx_v = "row"; + da.tsr[0] = da.tsr[0] - pp.length; // include "||" + if (pp !== "||" || (da.startTagSrc && da.startTagSrc !== pp)) { + // Variation from default + da.startTagSrc = pp + (da.startTagSrc ? da.startTagSrc.substring(1) : ''); + } + return tdt; + } + )* + table_data_tags // avoid recursion via nested_block_in_table = ! { return stops.onStack('tableDataBlock'); } p:pipe ![+-] td:table_data_tag tagEndPos:({return peg$currPos;}) - tds:( pp:(pipe_pipe / p:pipe & row_syntax_table_args { return p; }) - tdt:table_data_tag { - var da = tdt[0].dataAttribs; - da.stx_v = "row"; - da.tsr[0] = da.tsr[0] - pp.length; // include "||" - if (pp !== "||" || (da.startTagSrc && da.startTagSrc !== pp)) { - // Variation from default - da.startTagSrc = pp + (da.startTagSrc ? da.startTagSrc.substring(1) : ''); - } - return tdt; - } - )* { + tds:tds { var da = td[0].dataAttribs; da.tsr[0] = da.tsr[0] - p.length; // include "|" if (p !== "|") { @@ -1751,13 +1754,13 @@ ! "}" tagEndPos:({return peg$currPos;}) b:nested_block+ - { + tds:tds { b = tu.flattenIfArray(b); var nlTok = b.shift(); var td = tu.buildTableTokens("td", "|", '', [nlTok.dataAttribs.tsr[1], tagEndPos], peg$currPos, b); td[0].dataAttribs.autoInsertedStart = true; td[0].dataAttribs.autoInsertedEnd = true; - return [nlTok, td]; + return [ nlTok ].concat( td, tds ); } table_data_tag diff --git a/tests/parserTests.txt b/tests/parserTests.txt index d7e4368..aa00140 100644 --- a/tests/parserTests.txt +++ b/tests/parserTests.txt @@ -140,6 +140,12 @@ !! endarticle !! article +Template:table_attribs_4 +!! text +| style="background-color:#DC241f;" width="10px" | +!! endarticle + +!! article Template:table_header_cells !! text {{table_attribs}}!!style='color:red;'|''Bar''||style='color:brown;'|''Foo'' and Baz @@ -6158,6 +6164,28 @@ !! end !! test +Table cells not properly parsed in an implicit-td context +!! wikitext +{| +|- +{{table_attribs_4}} || a || b +|} +!! html/php+tidy +<table> +<tr> +<td style="background-color:#DC241f;" width="10px"></td> +<td>a</td> +<td>b</td> +</tr> +</table> +!! html/parsoid +<table> +<tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'> +<td style="background-color:#DC241f;" width="10px" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["",{"template":{"target":{"wt":"table_attribs_4","href":"./Template:Table_attribs_4"},"params":{},"i":0}}," "]}'> </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> a </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> b</td></tr> +</tbody></table> +!! end + +!! test Parsoid: Round-trip tables directly followed by content (bug 51219) !! options parsoid=wt2html,wt2wt -- To view, visit https://gerrit.wikimedia.org/r/196483 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7a08b2e5a20d1fea3e19c47b275f53f01d6253b4 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Arlolra <abrea...@wikimedia.org> Gerrit-Reviewer: Cscott <canan...@wikimedia.org> Gerrit-Reviewer: Marcoil <marc...@wikimedia.org> Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits