jenkins-bot has submitted this change and it was merged.
Change subject: Don't use MagicLinkText chunk if we failed serialization as a
magic link.
......................................................................
Don't use MagicLinkText chunk if we failed serialization as a magic link.
[[Special:BookSources/0978739256|ISBN 0978739256]] will become a magic link,
but [[Special:BookSources/0978739256|foo]] is just an ordinary wikilink.
Similarly, [//tools.ietf.org/html/rfc1234 RFC 1234] will become the magic
link `RFC 1234`, but [//tools.ietf.org/html/rfc1234 foo] is just an ordinary
`mw:ExtLink`.
Change-Id: I3b42010e918f805b222283dee479f5c7cd408a20
---
M lib/wts.LinkHandler.js
M tests/parserTests.txt
2 files changed, 27 insertions(+), 1 deletion(-)
Approvals:
Subramanya Sastry: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/wts.LinkHandler.js b/lib/wts.LinkHandler.js
index 598cb5e..e1c6632 100644
--- a/lib/wts.LinkHandler.js
+++ b/lib/wts.LinkHandler.js
@@ -600,7 +600,16 @@
// preserve non-minimal forms.
if (magicLinkMatch) {
var serializer =
wiki.ExtResourceSerializer[magicLinkMatch[0]];
- cb(new MagicLinkText(serializer(magicLinkMatch,
target.value, contentStr), node), node);
+ var serialized = serializer(magicLinkMatch,
target.value, contentStr);
+ if (serialized[0] === '[') {
+ // Serialization as a magic link failed
(perhaps the
+ // content string wasn't appropriate).
+ cb(magicLinkMatch[0] === 'ISBN' ?
+ new WikiLinkText(serialized, node,
wiki, 'mw:WikiLink') :
+ new ExtLinkText(serialized, node, wiki,
'mw:ExtLink'));
+ } else {
+ cb(new MagicLinkText(serialized, node), node);
+ }
return;
// There is an interwiki for RFCs, but strangely none for PMIDs.
} else {
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index 4651059..eefed7b 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -10121,6 +10121,23 @@
1234</p>
!! end
+# <nowiki> nodes shouldn't be inserted during html2wt by Parsoid,
+# since these are ExtLinkText, not MagicLinkText
+!! test
+Magic links: use appropriate serialization for "almost" magic links.
+!! wikitext
+X[[Special:BookSources/0978739256|foo]]
+
+X[//tools.ietf.org/html/rfc1234 foo]
+!! html/php
+<p>X<a href="/wiki/Special:BookSources/0978739256"
title="Special:BookSources/0978739256">foo</a>
+</p><p>X<a rel="nofollow" class="external text"
href="//tools.ietf.org/html/rfc1234">foo</a>
+</p>
+!! html/parsoid
+<p>X<a rel="mw:WikiLink" href="./Special:BookSources/0978739256"
title="Special:BookSources/0978739256">foo</a></p>
+<p>X<a rel="mw:ExtLink" href="//tools.ietf.org/html/rfc1234">foo</a></p>
+!! end
+
###
### Templates
####
--
To view, visit https://gerrit.wikimedia.org/r/201410
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I3b42010e918f805b222283dee479f5c7cd408a20
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Cscott <[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