On 02/20/2015 11:41 AM, Subramanya
Sastry wrote:
As part of T88290, we are going to be making some changes
to the data-mw spec for <ref> tags.
Sorry, I missed a link here: That is
https://phabricator.wikimedia.org/T88290
Subbu.
So far, the data-mw attribute for <ref> tags had
the entire HTML for the reference represented in the body.html
property in data-mw. However, in order to reduce the size of the
HTML that we generate (and reduce network load and parsing load
on clients, especially visual editor), we have been working on a
change where we add a reference to the HTML via the body.id
attribute in data-mw.
https://gerrit.wikimedia.org/r/#/c/191593/
is the patch that Marc has been working on.
An example at the end of this email will show the specific
change and how it looks. We will update the DOM spec page[1]
shortly.
So, once this patch is reviewed, tested, and deployed (most
likely Feb 25 or Mar 2 unless there are concerns / problems that
show up), Parsoid will only be emitting an id-based reference to
the HTML. However, Parsoid will continue to accept both
data-mw.body.html and data-mw.body.id for serialization.
That said, because of the specifics of Parsoid's selective
serializer implementation. if a <ref>'s content has been
edited, Parsoid expects to see *some* edit in the wrapper HTML
of the <ref> itself. If you continue to send Parsoid
data-mw.body.html back, all will work fine (since that will
register as an edit). But, if you send Parsoid data-mw.body.id
back, you should change the value of that id to a different
value.
This update is a bit late in coming -- kind of lost
track of it amidst the work, but as far as we know, only VE is
affected by this change and they have already fixed their
code. Flow has confirmed they aren't. But, let us know
if there are any questions / concerns.
Subbu and Marc.
[1] https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec
--------------------------------------------------------------------------------------------------------------------------------------------------------
Wikitext
--------
A <ref>
This is a '''[[bolded link]]''' and this is a
{{echo|transclusion}}
</ref>
<references />
Current HTML
------------
<p>A <span about="#mwt2" class="reference"
id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref"
data-mw='{"name":"ref","body":{"html":"This is a <b
data-parsoid='{\"dsr\":[19,40,3,3]}'><a
rel=\"mw:WikiLink\" href=\"./Bolded_link\" title=\"Bolded link\"
data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded
link\"},\"dsr\":[22,37,2,2]}'>bolded
link</a></b> and this is a <span
about=\"#mwt3\" typeof=\"mw:Transclusion\"
data-parsoid='{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}'
data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}'>transclusion</span>\n"},"attrs":{}}'><a
href="#cite_note-1">[1]</a></span></p>
<ol class="references"
typeof="mw:Extension/references" about="#mwt5"
data-mw='{"name":"references","attrs":{}}'>
<li about="#cite_note-1" id="cite_note-1"><span
rel="mw:referencedBy"><a
href="#cite_ref-1">↑</a></span> This is a
<b><a rel="mw:WikiLink" href="./Bolded_link"
title="Bolded link">bolded link</a></b> and this
is a <span about="#mwt3" typeof="mw:Transclusion"
data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
</li>
</ol>
New HTML
--------
<p>A <span about="#mwt2" class="reference"
id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref"
data-mw='{"name":"ref","body":{"id":
"mw-reference-text-cite_note-1"},"attrs":{}}'><a
href="#cite_note-1">[1]</a></span></p>
<ol class="references"
typeof="mw:Extension/references" about="#mwt5"
data-mw='{"name":"references","attrs":{}}'>
<li about="#cite_note-1" id="cite_note-1"><span
rel="mw:referencedBy"><a
href="#cite_ref-1">↑</a></span> <span
id="mw-reference-text-cite_note-1"
class="mw-reference-text">This is a <b><a
rel="mw:WikiLink" href="./Bolded_link" title="Bolded
link">bolded link</a></b> and this is a <span
about="#mwt3" typeof="mw:Transclusion"
data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
</span>
</li>
</ol>