Arlolra has uploaded a new change for review.

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

Change subject: Use dom to build category links
......................................................................

Use dom to build category links

 * Follow up to Iae2f3bf90b13f83411432e06e2ee7e188f34bb43.

Change-Id: I701ed182893d0bc0daee99fd27bad95b19504a44
---
M lib/mediawiki.ApiRequest.js
1 file changed, 23 insertions(+), 16 deletions(-)


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

diff --git a/lib/mediawiki.ApiRequest.js b/lib/mediawiki.ApiRequest.js
index 5927b3a..ed1de76 100644
--- a/lib/mediawiki.ApiRequest.js
+++ b/lib/mediawiki.ApiRequest.js
@@ -14,7 +14,8 @@
 var request = require('request'),
        qs = require('querystring'),
        events = require('events'),
-       util = require('util');
+       util = require('util'),
+       domino = require('domino');
 
 // all revision properties which parsoid is interested in.
 var PARSOID_RVPROP = ('content|ids|timestamp|user|userid|size|sha1|'+
@@ -29,11 +30,11 @@
  * @extends Error
  */
 function DoesNotExistError( message ) {
-    Error.captureStackTrace(this, DoesNotExistError);
-    this.name = "DoesNotExistError";
-    this.message = message || "Something doesn't exist";
-    this.code = 404;
-    this.stack = null;  // suppress stack
+       Error.captureStackTrace(this, DoesNotExistError);
+       this.name = "DoesNotExistError";
+       this.message = message || "Something doesn't exist";
+       this.code = 404;
+       this.stack = null;  // suppress stack
 }
 DoesNotExistError.prototype = Error.prototype;
 
@@ -42,10 +43,10 @@
  * @extends Error
  */
 function ParserError( message ) {
-    Error.captureStackTrace(this, ParserError);
-    this.name = "ParserError";
-    this.message = message || "Generic parser error";
-    this.code = 500;
+       Error.captureStackTrace(this, ParserError);
+       this.name = "ParserError";
+       this.message = message || "Generic parser error";
+       this.code = 500;
 }
 ParserError.prototype = Error.prototype;
 
@@ -54,7 +55,7 @@
  * @extends Error
  */
 function AccessDeniedError( message ) {
-    Error.captureStackTrace(this, AccessDeniedError);
+       Error.captureStackTrace(this, AccessDeniedError);
        this.name = 'AccessDeniedError';
        this.message = message || 'Your wiki requires a logged-in account to 
access the API.';
        this.code = 401;
@@ -523,6 +524,7 @@
 /**
  * @inheritdoc ApiRequest#_handleJSON
  */
+var doc = domino.createDocument();
 PHPParseRequest.prototype._handleJSON = function ( error, data ) {
        if ( error ) {
                this._processListeners( error, '' );
@@ -575,12 +577,17 @@
                if (data.parse.categories) {
                        for (i in data.parse.categories) {
                                var category = data.parse.categories[i];
-                               parsedHtml += '\n<link 
rel="mw:PageProp/Category" href="./Category:' +
-                                       encodeURIComponent(category['*']);
-                               if (category.sortkey) {
-                                       parsedHtml += "#" + 
encodeURIComponent(category.sortkey);
+
+                               var link = doc.createElement("link");
+                               link.setAttribute("rel", 
"mw:PageProp/Category");
+
+                               var href = "./Category:" + 
encodeURIComponent(category['*']);
+                               if ( category.sortkey ) {
+                                       href += "#" + 
encodeURIComponent(category.sortkey);
                                }
-                               parsedHtml += '"/>';
+                               link.setAttribute("href", href);
+
+                               parsedHtml += "\n" + link.outerHTML;
                        }
                }
        } catch ( e2 ) {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I701ed182893d0bc0daee99fd27bad95b19504a44
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>

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

Reply via email to