jenkins-bot has submitted this change and it was merged.
Change subject: Revert "Remove dual-type support for Languages and Categories"
......................................................................
Revert "Remove dual-type support for Languages and Categories"
'Cos Parsoid caches things for ages.
This reverts commit 114a24f1d30571da248864dfdd53a1fbd08b5f4a.
Change-Id: I8b2f4d982becea36ddc06b29b3a48660fa0f3a44
---
M modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
M modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
M modules/ve-mw/test/dm/ve.dm.mwExample.js
3 files changed, 34 insertions(+), 20 deletions(-)
Approvals:
Jforrester: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
b/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
index 648b6cf..5ad9493 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
@@ -30,10 +30,14 @@
ve.dm.MWCategoryMetaItem.static.matchTagNames = [ 'link' ];
-ve.dm.MWCategoryMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/Category' ];
+ve.dm.MWCategoryMetaItem.static.matchRdfaTypes = [
+ 'mw:WikiLink/Category', // old type, pre-bug 53432
+ 'mw:PageProp/Category' // new type
+];
ve.dm.MWCategoryMetaItem.static.toDataElement = function ( domElements ) {
- var href = domElements[0].getAttribute( 'href' ),
+ var firstDomElement = domElements[0],
+ href = firstDomElement.getAttribute( 'href' ),
/*jshint regexp:false */
matches = href.match( /^((?:\.\.?\/)*)(.*?)(?:#(.*))?$/ ),
rawSortkey = matches[3] || '';
@@ -44,7 +48,8 @@
'category': decodeURIComponent( matches[2] ).replace(
/_/g, ' ' ),
'origCategory': matches[2],
'sortkey': decodeURIComponent( rawSortkey ).replace(
/_/g, ' ' ),
- 'origSortkey': rawSortkey
+ 'origSortkey': rawSortkey,
+ 'origRel': firstDomElement.getAttribute( 'rel' )
}
};
};
@@ -69,7 +74,7 @@
} else {
category = encodeURIComponent( category );
}
- domElement.setAttribute( 'rel', 'mw:PageProp/Category' );
+ domElement.setAttribute( 'rel', dataElement.attributes.origRel ||
'mw:WikiLink/Category' );
href = hrefPrefix + category;
if ( sortkey !== '' ) {
href += '#' + sortkey;
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
b/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
index 3fd1190..2c7d074 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
@@ -28,21 +28,26 @@
ve.dm.MWLanguageMetaItem.static.matchTagNames = [ 'link' ];
-ve.dm.MWLanguageMetaItem.static.matchRdfaTypes = [ 'mw:PageProp/Language' ];
+ve.dm.MWLanguageMetaItem.static.matchRdfaTypes = [
+ 'mw:WikiLink/Language', // old type, pre-bug 53432
+ 'mw:PageProp/Language' // new type
+];
ve.dm.MWLanguageMetaItem.static.toDataElement = function ( domElements ) {
- var href = domElements[0].getAttribute( 'href' );
+ var firstDomElement = domElements[0],
+ href = firstDomElement.getAttribute( 'href' );
return {
'type': 'mwLanguage',
'attributes': {
- 'href': href
+ 'href': href,
+ 'origRel': firstDomElement.getAttribute( 'rel' )
}
};
};
ve.dm.MWLanguageMetaItem.static.toDomElements = function ( dataElement, doc ) {
var domElement = doc.createElement( 'link' );
- domElement.setAttribute( 'rel', 'mw:PageProp/Language' );
+ domElement.setAttribute( 'rel', dataElement.attributes.origRel ||
'mw:WikiLink/Language' );
domElement.setAttribute( 'href', dataElement.attributes.href );
return [ domElement ];
};
diff --git a/modules/ve-mw/test/dm/ve.dm.mwExample.js
b/modules/ve-mw/test/dm/ve.dm.mwExample.js
index 0bdab61..809a7b1 100644
--- a/modules/ve-mw/test/dm/ve.dm.mwExample.js
+++ b/modules/ve-mw/test/dm/ve.dm.mwExample.js
@@ -24,14 +24,14 @@
'inlineOpenModified': '<span about="#mwt1" typeof="mw:Transclusion"
data-mw="{"id":"mwt1","target":{"wt":"Inline"},"params":{"1":{"wt":"5,678"}}}"
data-parsoid="{"tsr":[18,34],"src":"{{Inline|1,234}}","dsr":[18,34,null,null]}">',
'inlineContent': '$1,234.00',
'inlineClose': '</span>',
- 'mixed': '<link about="#mwt1" rel="mw:PageProp/Category"
typeof="mw:Transclusion"
data-mw="{"id":"mwt1","target":{"wt":"Inline"},"params":{"1":{"wt":"5,678"}}}"><span
about="#mwt1">Foo</span>',
+ 'mixed': '<link about="#mwt1" rel="mw:WikiLink/Category"
typeof="mw:Transclusion"
data-mw="{"id":"mwt1","target":{"wt":"Inline"},"params":{"1":{"wt":"5,678"}}}"><span
about="#mwt1">Foo</span>',
'pairOne': '<p about="#mwt1" typeof="mw:Transclusion"
data-mw="{"params":{"1":{"wt":"foo"}}}"
data-parsoid="1">foo</p>',
'pairTwo': '<p about="#mwt2" typeof="mw:Transclusion"
data-mw="{"params":{"1":{"wt":"foo"}}}"
data-parsoid="2">foo</p>',
'meta':
- '<link rel="mw:PageProp/Category" href="./Category:Page"
about="#mwt1" typeof="mw:Transclusion" ' +
+ '<link rel="mw:WikiLink/Category" href="./Category:Page"
about="#mwt1" typeof="mw:Transclusion" ' +
'data-mw="{"target":{"wt":"Template:Echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Category:Page]]\\n[[Category:Book]]"}},"i":0}">'
+
'<span about="#mwt1" data-parsoid="{}">\n</span>' +
- '<link rel="mw:PageProp/Category" href="./Category:Book"
about="#mwt1">'
+ '<link rel="mw:WikiLink/Category" href="./Category:Book"
about="#mwt1">'
};
ve.dm.mwExample.MWTransclusion.blockData = {
'type': 'mwTransclusionBlock',
@@ -98,7 +98,7 @@
'htmlAttributes': [
{ 'values': {
'about': '#mwt1',
- 'rel': 'mw:PageProp/Category',
+ 'rel': 'mw:WikiLink/Category',
'typeof': 'mw:Transclusion',
'data-mw':
'{\"id\":\"mwt1\",\"target\":{\"wt\":\"Inline\"},\"params\":{\"1\":{\"wt\":\"5,678\"}}}'
} },
@@ -255,7 +255,8 @@
'category': 'Category:Bar',
'origCategory': 'Category:Bar',
'sortkey': '',
- 'origSortkey': ''
+ 'origSortkey': '',
+ 'origRel': 'mw:PageProp/Category'
},
'htmlAttributes': [
{
@@ -312,7 +313,8 @@
'category': 'Category:Foo foo',
'origCategory': 'Category:Foo_foo',
'sortkey': 'Bar baz#quux',
- 'origSortkey': 'Bar baz%23quux'
+ 'origSortkey': 'Bar baz%23quux',
+ 'origRel': 'mw:PageProp/Category'
},
'htmlAttributes': [
@@ -386,7 +388,7 @@
'htmlAttributes': [
{
'values': {
- 'rel': 'mw:PageProp/Category',
+ 'rel': 'mw:WikiLink/Category',
'href': './Category:Bar'
},
'computed': {
@@ -439,7 +441,7 @@
'origSortkey': 'Bar baz%23quux'
},
'htmlAttributes': [ { 'values': {
- 'rel': 'mw:PageProp/Category',
+ 'rel': 'mw:WikiLink/Category',
'href': './Category:Foo_foo#Bar baz%23quux'
} } ]
},
@@ -1551,7 +1553,7 @@
},
'whitespace preservation with wrapped comments and language links': {
'body': 'Foo\n' +
- '<link rel="mw:PageProp/Language"
href="http://de.wikipedia.org/wiki/Foo">\n' +
+ '<link rel="mw:WikiLink/Language"
href="http://de.wikipedia.org/wiki/Foo">\n' +
'<link rel="mw:PageProp/Language"
href="http://fr.wikipedia.org/wiki/Foo">',
'data': [
{
@@ -1568,13 +1570,14 @@
{
'type': 'mwLanguage',
'attributes': {
- 'href':
'http://de.wikipedia.org/wiki/Foo'
+ 'href':
'http://de.wikipedia.org/wiki/Foo',
+ 'origRel': 'mw:WikiLink/Language'
},
'htmlAttributes': [
{
'values': {
'href':
'http://de.wikipedia.org/wiki/Foo',
- 'rel':
'mw:PageProp/Language'
+ 'rel':
'mw:WikiLink/Language'
},
'computed': {
'href':
'http://de.wikipedia.org/wiki/Foo'
@@ -1587,7 +1590,8 @@
{
'type': 'mwLanguage',
'attributes': {
- 'href':
'http://fr.wikipedia.org/wiki/Foo'
+ 'href':
'http://fr.wikipedia.org/wiki/Foo',
+ 'origRel': 'mw:PageProp/Language'
},
'htmlAttributes': [
{
--
To view, visit https://gerrit.wikimedia.org/r/99609
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8b2f4d982becea36ddc06b29b3a48660fa0f3a44
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits