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