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