Subramanya Sastry has uploaded a new change for review. https://gerrit.wikimedia.org/r/70785
Change subject: References handling: Fix bugs introduced by 7d88538d ...................................................................... References handling: Fix bugs introduced by 7d88538d * source and group attributes were being added as HTML attrs. on the ol-node which is invalid. Plus, after refererences generation, source attr was being deleted which causes crashers in production if references output is reused from cache. * Moved both attributes to data.parsoid * Removed group="" from parserTests that I erroneously added in that previous commit. * Minor cleanup in DOMPostProcessor. Change-Id: I85f4ad0a311d653d7ba3e010c7a5db028b643e9f --- M js/lib/ext.Cite.js M js/lib/mediawiki.DOMPostProcessor.js M js/tests/parserTests.txt 3 files changed, 13 insertions(+), 11 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Parsoid refs/changes/85/70785/1 diff --git a/js/lib/ext.Cite.js b/js/lib/ext.Cite.js index 322e3d1..d7b6522 100644 --- a/js/lib/ext.Cite.js +++ b/js/lib/ext.Cite.js @@ -299,11 +299,15 @@ "></ol>" ]; - var wrapperDOM = Util.parseHTML(buf.join('')).body.childNodes; - wrapperDOM[0].setAttribute('source', refsTok.getAttribute('source')); + var wrapperDOM = Util.parseHTML(buf.join('')).body.childNodes, + ol = wrapperDOM[0]; + + var dp = DU.getJSONAttribute(ol, "data-parsoid", {}); + dp.src = refsTok.getAttribute('source'); if (group) { - wrapperDOM[0].setAttribute('group', group); + dp.group = group; } + DU.setJSONAttribute(ol, "data-parsoid", dp); var expansion = { nodes: wrapperDOM, @@ -316,7 +320,6 @@ // into Util and pass env into it .. can avoid extending ExtensionHandler // as well. this.manager = manager; - cb({ tokens: this.encapsulateExpansionHTML(refsTok, expansion), async: false }); }.bind(this); @@ -420,9 +423,9 @@ }; References.prototype.insertReferencesIntoDOM = function(refsNode) { - var group = refsNode.getAttribute("group") || '', - about = refsNode.getAttribute('about'), - src = refsNode.getAttribute('source'), + var about = refsNode.getAttribute('about'), + group = refsNode.data.parsoid.group || '', + src = refsNode.data.parsoid.src, // Extract ext-source for <references>..</references> usage body = Util.extractExtBody("references", src).trim(), refGroup = getRefGroup(this.refGroups, group); @@ -443,7 +446,6 @@ }); } - refsNode.removeAttribute('source'); refsNode.setAttribute('data-mw', dataMW); if (refGroup) { diff --git a/js/lib/mediawiki.DOMPostProcessor.js b/js/lib/mediawiki.DOMPostProcessor.js index 2c047ca..554f480 100644 --- a/js/lib/mediawiki.DOMPostProcessor.js +++ b/js/lib/mediawiki.DOMPostProcessor.js @@ -2468,7 +2468,7 @@ var metaType = node.getAttribute("typeof"); if (metaType && // TODO: Use /Start for all Transclusion / Param markers! - (metaType.match(/\bmw:(StartTag|EndTag|Extension\/(?:ref|references)\/Marker|TSRMarker)\/?[^\s]*\b/) && + (metaType.match(/\bmw:(StartTag|EndTag|Extension\/ref\/Marker|TSRMarker)\/?[^\s]*\b/) && !node.getAttribute("property")) || (editMode && metaType === "mw:Placeholder/StrippedTag") ) { diff --git a/js/tests/parserTests.txt b/js/tests/parserTests.txt index 3e67ed2..11e3454 100644 --- a/js/tests/parserTests.txt +++ b/js/tests/parserTests.txt @@ -14417,7 +14417,7 @@ <p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[a 1]</a></span> B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[b 1]</a></span></p> -<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references" group="a"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol> +<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol> !!end !!test @@ -14459,7 +14459,7 @@ <p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[a 1]</a></span> B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"<ref>bfoo</ref>","dsr":[30,45,5,6]}'><a href="#cite_note-1">[1]</a></span></p> -<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references" group="a"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> afoo</li></ol> +<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> afoo</li></ol> <p>C <span about="#mwt8" class="reference" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span></p> -- To view, visit https://gerrit.wikimedia.org/r/70785 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I85f4ad0a311d653d7ba3e010c7a5db028b643e9f Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Parsoid Gerrit-Branch: master Gerrit-Owner: Subramanya Sastry <ssas...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits