Arlolra has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/365403 )

Change subject: [WIP] T169293: Colon prefixed media links still point to media
......................................................................

[WIP] T169293: Colon prefixed media links still point to media

Change-Id: Icf418e8cb2a69db20e0a9ebb5e929a6598b081fb
---
M lib/wt2html/tt/LinkHandler.js
M tests/parserTests.txt
2 files changed, 16 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/03/365403/1

diff --git a/lib/wt2html/tt/LinkHandler.js b/lib/wt2html/tt/LinkHandler.js
index 19aa601..5d68e04 100644
--- a/lib/wt2html/tt/LinkHandler.js
+++ b/lib/wt2html/tt/LinkHandler.js
@@ -314,18 +314,23 @@
 WikiLinkHandler.prototype.getWikiLinkHandler = function(token, target, 
isRedirect) {
        var title = target.title;
        if (title) {
-               if (!target.fromColonEscapedText && !isRedirect) {
+               if (isRedirect) {
+                       return this.renderWikiLink.bind(this);
+               }
+               if (title.getNamespace().isMedia()) {
+                       // Render as a media link.
+                       return this.renderMedia.bind(this);
+               }
+               if (!target.fromColonEscapedText) {
                        if (title.getNamespace().isFile()) {
                                // Render as a file.
                                return this.renderFile.bind(this);
-                       } else if (title.getNamespace().isMedia()) {
-                               return this.renderMedia.bind(this);
-                       } else if (title.getNamespace().isCategory()) {
+                       }
+                       if (title.getNamespace().isCategory()) {
                                // Render as a category membership.
                                return this.renderCategory.bind(this);
                        }
                }
-               // Colon-escaped or non-file/category links.
                // Render as plain wiki links.
                return this.renderWikiLink.bind(this);
 
@@ -1896,7 +1901,8 @@
        link.setShadowInfo('namespace', 
title.getNamespace().getNormalizedText(), nsText);
        link.setShadowInfo('fileName', imgHrefFileName, fileName);
 
-       var content = token.getAttribute('mw:maybeContent') || 
token.getAttribute('href');
+       var content = 
Util.tokensToString(token.getAttribute('href')).replace(/^:/, '');
+       content = token.getAttribute('mw:maybeContent') || content;
        cb({ tokens: [ link, content, new EndTagTk('a') ] });
 };
 
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index 9aa7324..be3d3a4 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -17156,13 +17156,16 @@
 !! wikitext
 [[Media:Foobar.jpg]]
 [[Media:Video.ogv]]
+[[:Media:Video.ogv]]
 !! html/php
 <p><a href="http://example.com/images/3/3a/Foobar.jpg"; class="internal" 
title="Foobar.jpg">Media:Foobar.jpg</a>
+<a href="http://example.com/images/0/00/Video.ogv"; class="internal" 
title="Video.ogv">Media:Video.ogv</a>
 <a href="http://example.com/images/0/00/Video.ogv"; class="internal" 
title="Video.ogv">Media:Video.ogv</a>
 </p>
 !! html/parsoid
 <p><a rel="mw:MediaLink" href="//example.com/images/3/3a/Foobar.jpg" 
title="Foobar.jpg">Media:Foobar.jpg</a>
-<a rel="mw:MediaLink" href="//example.com/images/0/00/Video.ogv" 
title="Video.ogv">Media:Video.ogv</a></p>
+<a rel="mw:MediaLink" href="//example.com/images/0/00/Video.ogv" 
title="Video.ogv">Media:Video.ogv</a>
+<a rel="mw:MediaLink" href="//example.com/images/0/00/Video.ogv" 
title="Video.ogv" 
data-parsoid='{"a":{"namespace":"Media"},"sa":{"namespace":":Media"}}'>Media:Video.ogv</a></p>
 !! end
 
 !! test

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icf418e8cb2a69db20e0a9ebb5e929a6598b081fb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <abrea...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to