Arlolra has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/366571 )
Change subject: T154718: Aliases get the same sort order as paramOrder
......................................................................
T154718: Aliases get the same sort order as paramOrder
Change-Id: Ie18bc50ca8a5a95c2f51f7a2904744bd58c61c9e
---
M lib/html2wt/WikitextSerializer.js
M tests/mocha/templatedata.js
M tests/mockAPI.js
3 files changed, 28 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/71/366571/1
diff --git a/lib/html2wt/WikitextSerializer.js
b/lib/html2wt/WikitextSerializer.js
index d25cb0c..1777032 100644
--- a/lib/html2wt/WikitextSerializer.js
+++ b/lib/html2wt/WikitextSerializer.js
@@ -480,13 +480,23 @@
kvMap.set(k, { serializeAsNamed: serializeAsNamed,
name: name, value: value });
});
}).then(function() {
+ var paramOrder = [];
+ if (tplData && Array.isArray(tplData.paramOrder)) {
+ var params = tplData.params;
+ // Aliases have the same sort order as the main name
+ paramOrder = tplData.paramOrder.reduce(function(prev,
next) {
+ var aliases = params && params[next] &&
params[next].aliases;
+ aliases = Array.isArray(aliases) ? aliases : [];
+ return prev.concat(next, aliases);
+ }, paramOrder);
+ }
var argOrder = [].concat(
// 1. Use tpldata param order as the first guide
// Note that:
// (a) template arg names are case-sensitive
// (b) arg names in tplData.paramOrder already
// have their spaces trimmed
- (tplData && tplData.paramOrder) || [],
+ paramOrder,
// 2. Push keys from data-parsoid
// data-parsoid argInfo also present in data-mw
diff --git a/tests/mocha/templatedata.js b/tests/mocha/templatedata.js
index 27b65e5..4ad8233 100644
--- a/tests/mocha/templatedata.js
+++ b/tests/mocha/templatedata.js
@@ -170,6 +170,17 @@
'edited': '{{BlockTplWithParamOrder\n| f1 = BAR\n|
f2 = foo\n}}SOME TEXT{{InlineTplNoParamOrder|f2 = foo|f1 = foo}}',
},
},
+
+ // 11. Alias sort order
+ {
+ 'name': 'Enforce param order with aliases',
+ 'html': '<span about="#mwt1" typeof="mw:Transclusion"' + "
data-mw='" +
'{"parts":[{"template":{"target":{"wt":"WithParamOrderAndAliases\\n","href":"./Template:WithParamOrderAndAliases"},"params":{"f2":{"wt":"foo"},"f3":{"wt":"foo"}},"i":1}}]}'
+ "'" + '>foo</span>',
+ 'wt': {
+ 'no_selser':
'{{WithParamOrderAndAliases|f3=foo|f2=foo}}',
+ 'new_content':
'{{WithParamOrderAndAliases|f3=foo|f2=foo}}',
+ 'edited':
'{{WithParamOrderAndAliases|f3=foo|f2=BAR}}',
+ },
+ },
];
var dataParsoidVersionTests = [
diff --git a/tests/mockAPI.js b/tests/mockAPI.js
index 732637d..f73c208 100644
--- a/tests/mockAPI.js
+++ b/tests/mockAPI.js
@@ -264,6 +264,12 @@
'format': 'block',
'paramOrder': ['f1','f2'],
},
+ 'Template:WithParamOrderAndAliases': {
+ 'params': {
+ 'f1': { 'aliases': ['f3'] }
+ },
+ 'paramOrder': ['f1','f2'],
+ },
};
var formatters = {
--
To view, visit https://gerrit.wikimedia.org/r/366571
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie18bc50ca8a5a95c2f51f7a2904744bd58c61c9e
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