mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
synced 2024-09-25 11:17:08 +00:00
Fix detection of template-generated ref lists
Bug: T188898 Change-Id: I77333323d8e6a324b1655c10c94ae397aad241b3
This commit is contained in:
parent
e563b4fb90
commit
3590446c2c
|
@ -383,6 +383,81 @@ ve.dm.citeExample.domToDataCases = {
|
|||
{ type: '/internalList' }
|
||||
]
|
||||
},
|
||||
'Template generated reflist': {
|
||||
body: '<p><sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw="{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"notes"}}"><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;" data-mw-group="notes"><span class="mw-reflink-text">[notes 1]</span></a></sup></p>' +
|
||||
'<div class="mw-references-wrap" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references group=\\"notes\\" />"}},"i":0}}]}">' +
|
||||
'<ol class="mw-references references" data-mw-group="notes">' +
|
||||
'<li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" data-mw-group="notes" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>' +
|
||||
'</ol>' +
|
||||
'</div>',
|
||||
fromDataBody: '<p><sup typeof="mw:Extension/ref" data-mw="{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"notes"}}"></sup></p>' +
|
||||
'<span typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references group=\\"notes\\" />"}},"i":0}}]}"></span>',
|
||||
clipboardBody: '<p><sup typeof="mw:Extension/ref" data-mw="{"attrs":{"group":"notes"},"body":{"id":"mw-reference-text-cite_note-1","html":"Foo"},"name":"ref"}" class="mw-ref"><a data-mw-group="notes" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[notes 1]</span></a></sup></p>' +
|
||||
'<div typeof="mw:Extension/references" data-mw="{"parts":[{"template":{"params":{"1":{"wt":"<references group=\\"notes\\" />"}},"target":{"wt":"echo","href":"./Template:Echo"},"i":0}}],"name":"references"}">' +
|
||||
// TODO: This should list should get populated on copy
|
||||
'<ol class="mw-references references"></ol>' +
|
||||
'</div>',
|
||||
data: [
|
||||
{ type: 'paragraph' },
|
||||
{
|
||||
type: 'mwReference',
|
||||
attributes: {
|
||||
contentsUsed: true,
|
||||
listGroup: 'mwReference/notes',
|
||||
listIndex: 0,
|
||||
listKey: 'auto/0',
|
||||
mw: {
|
||||
attrs: {
|
||||
group: 'notes'
|
||||
},
|
||||
body: {
|
||||
id: 'mw-reference-text-cite_note-1'
|
||||
},
|
||||
name: 'ref'
|
||||
},
|
||||
originalMw: '{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"notes"}}',
|
||||
refGroup: 'notes',
|
||||
refListItemId: 'mw-reference-text-cite_note-1'
|
||||
}
|
||||
},
|
||||
{ type: '/mwReference' },
|
||||
{ type: '/paragraph' },
|
||||
{
|
||||
type: 'mwReferencesList',
|
||||
attributes: {
|
||||
mw: {
|
||||
parts: [ {
|
||||
template: {
|
||||
params: {
|
||||
1: { wt: '<references group="notes" />' }
|
||||
},
|
||||
target: { wt: 'echo', href: './Template:Echo' },
|
||||
i: 0
|
||||
}
|
||||
} ]
|
||||
},
|
||||
originalMw: '{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references group=\\"notes\\" />"}},"i":0}}]}',
|
||||
refGroup: '',
|
||||
listGroup: 'mwReference/',
|
||||
isResponsive: true,
|
||||
templateGenerated: true
|
||||
}
|
||||
},
|
||||
{ type: '/mwReferencesList' },
|
||||
{ type: 'internalList' },
|
||||
{ type: 'internalItem', attributes: { originalHtml: 'Foo' } },
|
||||
{
|
||||
internal: {
|
||||
generated: 'wrapper'
|
||||
},
|
||||
type: 'paragraph'
|
||||
},
|
||||
'F', 'o', 'o',
|
||||
{ type: '/paragraph' },
|
||||
{ type: '/internalItem' },
|
||||
{ type: '/internalList' }
|
||||
]
|
||||
},
|
||||
'Template generated reflist (div wrapped)': {
|
||||
body: '<p><sup about="#mwt2" class="mw-ref" 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="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p>' +
|
||||
'<div about="#mwt3" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"reflist","href":"./Template:Reflist"},"params":{},"i":0}}]}">' +
|
||||
|
|
|
@ -63,14 +63,15 @@ ve.dm.MWReferencesListNode.static.preserveHtmlAttributes = false;
|
|||
ve.dm.MWReferencesListNode.static.toDataElement = function ( domElements, converter ) {
|
||||
var referencesListData, contentsDiv, contentsData, refListNode,
|
||||
mwDataJSON, mwData, refGroup, responsiveAttr, listGroup,
|
||||
templateGenerated = false,
|
||||
type = domElements[ 0 ].getAttribute( 'typeof' ) || '',
|
||||
templateGenerated = type.indexOf( 'mw:Transclusion' ) !== -1,
|
||||
isResponsiveDefault = mw.config.get( 'wgCiteResponsiveReferences' );
|
||||
|
||||
if ( ( domElements[ 0 ].getAttribute( 'typeof' ) || '' ).indexOf( 'mw:Extension/references' ) !== -1 ) {
|
||||
// We may have matched a mw:Transclusion wrapping a reference list, so pull out the refListNode
|
||||
if ( type.indexOf( 'mw:Extension/references' ) !== -1 ) {
|
||||
refListNode = domElements[ 0 ];
|
||||
} else {
|
||||
refListNode = domElements[ 0 ].querySelectorAll( '[typeof*="mw:Extension/references"]' )[ 0 ];
|
||||
templateGenerated = true;
|
||||
}
|
||||
|
||||
mwDataJSON = refListNode.getAttribute( 'data-mw' );
|
||||
|
|
Loading…
Reference in a new issue