jenkins-bot has submitted this change and it was merged.

Change subject: Scrub table cells starting with escapable prefixes
......................................................................


Scrub table cells starting with escapable prefixes

 * Add a space to prevent nowiki'ing.

Bug: T93116
Change-Id: I8a29df6d00af596228b7385824243158fd92424e
---
M lib/wts.normalizeDOM.js
M tests/parserTests.txt
2 files changed, 81 insertions(+), 0 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/wts.normalizeDOM.js b/lib/wts.normalizeDOM.js
index f69cac3..c3b3752 100644
--- a/lib/wts.normalizeDOM.js
+++ b/lib/wts.normalizeDOM.js
@@ -121,6 +121,7 @@
  * 2. Strip empty headings and style tags
  * 3. Force SOL transparent links to serialize before/after heading
  * 4. Trailing spaces are migrated out of links
+ * 5. Space is added before escapable prefixes in table cells
  */
 
 function normalizeNode(env, node) {
@@ -157,6 +158,16 @@
                }
                return node;
 
+       // Table cells
+       } else if (node.nodeName === 'TD') {
+               var first = node.firstChild;
+               // Emit a space before escapable prefix
+               // This is preferable to serializing with a nowiki.
+               if (DU.isText(first) && /^[\-+]/.test(first.nodeValue)) {
+                       first.nodeValue = ' ' + first.nodeValue;
+               }
+               return node;
+
        // Default
        } else {
                return node;
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index b9ff013..b54dddf 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -25220,6 +25220,76 @@
 [[Foo ]]'''bar'''
 !! end
 
+!! test
+1. Table cells with escapable prefixes
+!! options
+parsoid={
+  "modes": ["html2wt"],
+  "scrubWikitext": false
+}
+!! html
+<table>
+<tr><td>a</td></tr>
+<tr><td>-</td></tr>
+<tr><td>+</td></tr>
+</table>
+!! wikitext
+{|
+|a
+|-
+|<nowiki>-</nowiki>
+|-
+|<nowiki>+</nowiki>
+|}
+!! end
+
+!! test
+2. Table cells with escapable prefixes
+!! options
+parsoid={
+  "modes": ["html2wt"],
+  "scrubWikitext": true
+}
+!! html
+<table>
+<tr><td>a</td></tr>
+<tr><td>-</td></tr>
+<tr><td>+</td></tr>
+</table>
+!! wikitext
+{|
+|a
+|-
+| -
+|-
+| +
+|}
+!! end
+
+!! test
+3. Table cells with escapable prefixes
+!! options
+parsoid={
+  "modes": ["html2wt"],
+  "scrubWikitext": true
+}
+!! html
+<table data-parsoid='{}'>
+<tr data-parsoid='{}'><td data-parsoid='{}'>a</td></tr>
+<tr data-parsoid='{}'><td data-parsoid='{}'>-</td></tr>
+<tr data-parsoid='{}'><td data-parsoid='{}'>+</td></tr>
+</table>
+!! wikitext
+{|
+|a
+|-
+|<nowiki>-</nowiki>
+|-
+|<nowiki>+</nowiki>
+|}
+!! end
+
+
 # ---------------------------------------------------
 # End of tests spec'ing wikitext serialization norms |
 # ---------------------------------------------------

-- 
To view, visit https://gerrit.wikimedia.org/r/229186
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8a29df6d00af596228b7385824243158fd92424e
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Arlolra <[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