Subramanya Sastry has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/66880


Change subject: (Bug 49034) Normalize modified links during serialization
......................................................................

(Bug 49034) Normalize modified links during serialization

* When a regular piped link is edited, the serializer should
  treat it as modified and normalize its output to a simple
  link when possible.

* No change in parser test results.

* Tested as follows:
--------------------------------------------
[subbu@earth tests] cat /tmp/old.html
<p data-parsoid='{"dsr":[0,11,0,0]}'><a rel="mw:WikiLink" href="./Foo"
data-parsoid='{"tsr":[0,11],"a":{"href":"./Foo"},"sa":{"href":"Foo"},"stx":"piped","dsr":[0,11,6,2]}'>bar</a></p>
[subbu@earth tests] cat /tmp/new.html
<p data-parsoid='{"dsr":[0,11,0,0]}'><a rel="mw:WikiLink" href="./Foo"
data-parsoid='{"tsr":[0,11],"a":{"href":"./Foo"},"sa":{"href":"Foo"},"stx":"piped","dsr":[0,11,6,2]}'>Foo</a></p>
[subbu@earth tests] node parse --html2wt --selser --oldtext "[[Foo|bar]]" 
--oldhtmlfile /tmp/old.html < /tmp/new.html
[[Foo]]
[subbu@earth tests] node parse --html2wt < /tmp/new.html
[[Foo|Foo]]
--------------------------------------------

* TODO: Need a way to improve our selser change generation script
  to do more deterministic changes to capture test cases like this.

Change-Id: I6abef05522192f667d483b4eb4e05de771496c28
---
M js/lib/mediawiki.WikitextSerializer.js
1 file changed, 8 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Parsoid 
refs/changes/80/66880/1

diff --git a/js/lib/mediawiki.WikitextSerializer.js 
b/js/lib/mediawiki.WikitextSerializer.js
index f7c5df2..056cefc 100644
--- a/js/lib/mediawiki.WikitextSerializer.js
+++ b/js/lib/mediawiki.WikitextSerializer.js
@@ -909,6 +909,13 @@
        // Now get the target from rt data
        rtData.target = DU.getAttributeShadowInfo(node, 'href', tplAttrs);
 
+       // Check if the link target has been modified
+       DU.loadDataAttrib(node, "parsoid-diff", {});
+       var changes = node.data['parsoid-diff'].diff || [];
+       if (changes.length > 0) {
+               rtData.target.modified = true;
+       }
+
        // Get the content string or tokens
        var contentParts;
        if (node.childNodes.length >= 1 && DU.allChildrenAreText(node)) {
@@ -1440,8 +1447,7 @@
                                                                        
env.normalizeTitle( linkData.content.string ) ===
                                                                                
Util.decodeURI( linkData.href )) &&
                                                                // but preserve 
non-minimal piped links
-                                                               ! ( ! 
target.modified &&
-                                                                               
( dp.stx === 'piped' || dp.pipetrick ) ),
+                                                               ( 
target.modified || ( dp.stx !== 'piped' && !dp.pipetrick ) ),
                                canUsePipeTrick = linkData.content.string !== 
undefined &&
                                        linkData.type !== 
'mw:WikiLink/Category' &&
                                        (

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6abef05522192f667d483b4eb4e05de771496c28
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to