Arlolra has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/377368 )
Change subject: [WIP] T159894: Add support for Cite's `responsive` parameter ...................................................................... [WIP] T159894: Add support for Cite's `responsive` parameter * Ports commit 04c3ad01 in core's Cite extension. * Until $wgCiteResponsiveReferences is exported, a number of wikis which have enabled this won't be getting the right default. https://github.com/wikimedia/operations-mediawiki-config/blob/master/wmf-config/InitialiseSettings.php#L14945-L14970 However, it looks like enwiki's {{reflist}} explicitly sets the parameter either way, so not a bad start. * The "ext.cite.styles" css resource is added from core's Cite extension 05cb5cc1, since that's where the responsive css lives. * FIXME: This needs tests! Change-Id: I8f9277b3ecb253e0bee7ee55eef7af4935821527 --- M lib/config/WikiConfig.js M lib/ext/Cite/index.js M lib/html2wt/DOMHandlers.js 3 files changed, 41 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/68/377368/1 diff --git a/lib/config/WikiConfig.js b/lib/config/WikiConfig.js index 2406346..6ecc370 100644 --- a/lib/config/WikiConfig.js +++ b/lib/config/WikiConfig.js @@ -210,6 +210,12 @@ // Whether the Linter MediaWiki extension is installed this.linterEnabled = general.linter !== undefined; + // FIXME(arlolra): Export $wgCiteResponsiveReferences + this.responsiveReferences = { + enabled: true, + threshold: 10, + }; + // The interwikiMap maps prefixes to the corresponding information // gathered from the api query (prefix, language, url, local) this.interwikiMap = new Map(); diff --git a/lib/ext/Cite/index.js b/lib/ext/Cite/index.js index 4225198..17cb230 100644 --- a/lib/ext/Cite/index.js +++ b/lib/ext/Cite/index.js @@ -18,7 +18,6 @@ var KV = defines.KV; var SelfclosingTagTk = defines.SelfclosingTagTk; - /** * Simple token transform version of the Ref extension tag * @@ -338,6 +337,8 @@ dp.group = refsOpts.group; ol.setAttribute('data-mw-group', refsOpts.group); } + // Pass along the `responsive` paramter + dp.tmp.responsive = refsOpts.responsive; }; cb({ async: false, @@ -493,6 +494,8 @@ 'attrs': { // Dont emit empty keys 'group': group || undefined, + // Rt the `responsive` parameter + responsive: dp.tmp.responsive, }, }; @@ -523,6 +526,22 @@ // Remove the group from refsData refsData.removeRefGroup(group); + + // Support the `responsive` parameter + var rrOpts = refsData.env.conf.wiki.responsiveReferences; + var responsiveWrap = rrOpts.enabled; + if (dp.tmp.hasOwnProperty('responsive')) { + responsiveWrap = dp.tmp.responsive !== '0'; + } + if (responsiveWrap) { + var div = refsNode.ownerDocument.createElement('div'); + div.classList.add('mw-references-wrap'); + if (refGroup.refs.length > rrOpts.threshold) { + div.classList.add('mw-references-columns'); + } + refsNode.parentNode.insertBefore(div, refsNode); + div.appendChild(refsNode); + } }; // Process <ref>s left behind after the DOM is fully processed. @@ -707,7 +726,10 @@ serialHandler: this.references.serialHandler, }, ], - styles: ['ext.cite.style'], + styles: [ + 'ext.cite.style', + 'ext.cite.styles', + ], }; }; diff --git a/lib/html2wt/DOMHandlers.js b/lib/html2wt/DOMHandlers.js index 6964097..f7c9fe7 100644 --- a/lib/html2wt/DOMHandlers.js +++ b/lib/html2wt/DOMHandlers.js @@ -1368,6 +1368,17 @@ lastChild: id({ min: 0, max: 1 }), }, }, + div: { + handle: Promise.method(function(node, state, wrapperUnmodified) { + if (/\bmw-references-wrap\b/.test(node.classList)) { + // Just serialize the children + return state.serializeChildren(node); + } else { + // Fall back to plain HTML serialization + return _htmlElementHandler(node, state); + } + }), + }, }); var parentMap = { -- To view, visit https://gerrit.wikimedia.org/r/377368 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8f9277b3ecb253e0bee7ee55eef7af4935821527 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