From 67f1424f28e9658a26a3aae6c185d5f408506d57 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Thu, 28 Mar 2019 20:40:47 +0100 Subject: [PATCH] Change 'mediawiki.Title' to use 'packageFiles' Seems neater. Change-Id: Ib9a64f1b2efcc224e2d6eaf306eefa9527b6a2dd --- .../generatePhpCharToUpperMappings.php | 10 +- resources/Resources.php | 8 +- resources/src/mediawiki.Title/Title.js | 15 +- .../src/mediawiki.Title/phpCharToUpper.js | 255 ------------------ .../src/mediawiki.Title/phpCharToUpper.json | 245 +++++++++++++++++ 5 files changed, 267 insertions(+), 266 deletions(-) delete mode 100644 resources/src/mediawiki.Title/phpCharToUpper.js create mode 100644 resources/src/mediawiki.Title/phpCharToUpper.json diff --git a/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php b/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php index ff875d8735..a04958c642 100755 --- a/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php +++ b/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php @@ -1,7 +1,7 @@ #!/usr/bin/env php [ 'desktop', 'mobile' ], ], 'mediawiki.Title' => [ - 'scripts' => [ - 'resources/src/mediawiki.Title/Title.js', - 'resources/src/mediawiki.Title/phpCharToUpper.js', + 'localBasePath' => "$IP/resources/src/mediawiki.Title", + 'remoteBasePath' => "$wgResourceBasePath/resources/src/mediawiki.Title", + 'packageFiles' => [ + 'Title.js', + 'phpCharToUpper.json' ], 'dependencies' => [ 'mediawiki.String', diff --git a/resources/src/mediawiki.Title/Title.js b/resources/src/mediawiki.Title/Title.js index 6bb3bce2a6..78ae135150 100644 --- a/resources/src/mediawiki.Title/Title.js +++ b/resources/src/mediawiki.Title/Title.js @@ -34,6 +34,8 @@ var mwString = require( 'mediawiki.String' ), + toUpperMapping = require( './phpCharToUpper.json' ), + namespaceIds = mw.config.get( 'wgNamespaceIds' ), /** @@ -783,6 +785,17 @@ } }; + /** + * PHP's strtoupper differs from String.toUpperCase in a number of cases (T147646). + * + * @param {string} chr Unicode character + * @return {string} Unicode character, in upper case, according to the same rules as in PHP + */ + Title.phpCharToUpper = function ( chr ) { + var mapped = toUpperMapping[ chr ]; + return mapped || chr.toUpperCase(); + }; + /* Public members */ Title.prototype = { @@ -827,8 +840,6 @@ ) { return this.title; } - // PHP's strtoupper differs from String.toUpperCase in a number of cases - // Bug: T147646 return mw.Title.phpCharToUpper( this.title[ 0 ] ) + this.title.slice( 1 ); }, diff --git a/resources/src/mediawiki.Title/phpCharToUpper.js b/resources/src/mediawiki.Title/phpCharToUpper.js deleted file mode 100644 index ed700f0f81..0000000000 --- a/resources/src/mediawiki.Title/phpCharToUpper.js +++ /dev/null @@ -1,255 +0,0 @@ -// This file can't be parsed by JSDuck due to . -// (It is excluded in jsduck.json.) -// ESLint suggests unquoting some object keys, which would render the file unparseable by Opera 12. -/* eslint-disable quote-props */ -( function () { - var toUpperMapping = { - 'ß': 'ß', - 'ʼn': 'ʼn', - 'Dž': 'Dž', - 'dž': 'Dž', - 'Lj': 'Lj', - 'lj': 'Lj', - 'Nj': 'Nj', - 'nj': 'Nj', - 'ǰ': 'ǰ', - 'Dz': 'Dz', - 'dz': 'Dz', - 'ʝ': 'Ʝ', - 'ͅ': 'ͅ', - 'ΐ': 'ΐ', - 'ΰ': 'ΰ', - 'և': 'և', - 'ᏸ': 'Ᏸ', - 'ᏹ': 'Ᏹ', - 'ᏺ': 'Ᏺ', - 'ᏻ': 'Ᏻ', - 'ᏼ': 'Ᏼ', - 'ᏽ': 'Ᏽ', - 'ẖ': 'ẖ', - 'ẗ': 'ẗ', - 'ẘ': 'ẘ', - 'ẙ': 'ẙ', - 'ẚ': 'ẚ', - 'ὐ': 'ὐ', - 'ὒ': 'ὒ', - 'ὔ': 'ὔ', - 'ὖ': 'ὖ', - 'ᾀ': 'ᾈ', - 'ᾁ': 'ᾉ', - 'ᾂ': 'ᾊ', - 'ᾃ': 'ᾋ', - 'ᾄ': 'ᾌ', - 'ᾅ': 'ᾍ', - 'ᾆ': 'ᾎ', - 'ᾇ': 'ᾏ', - 'ᾈ': 'ᾈ', - 'ᾉ': 'ᾉ', - 'ᾊ': 'ᾊ', - 'ᾋ': 'ᾋ', - 'ᾌ': 'ᾌ', - 'ᾍ': 'ᾍ', - 'ᾎ': 'ᾎ', - 'ᾏ': 'ᾏ', - 'ᾐ': 'ᾘ', - 'ᾑ': 'ᾙ', - 'ᾒ': 'ᾚ', - 'ᾓ': 'ᾛ', - 'ᾔ': 'ᾜ', - 'ᾕ': 'ᾝ', - 'ᾖ': 'ᾞ', - 'ᾗ': 'ᾟ', - 'ᾘ': 'ᾘ', - 'ᾙ': 'ᾙ', - 'ᾚ': 'ᾚ', - 'ᾛ': 'ᾛ', - 'ᾜ': 'ᾜ', - 'ᾝ': 'ᾝ', - 'ᾞ': 'ᾞ', - 'ᾟ': 'ᾟ', - 'ᾠ': 'ᾨ', - 'ᾡ': 'ᾩ', - 'ᾢ': 'ᾪ', - 'ᾣ': 'ᾫ', - 'ᾤ': 'ᾬ', - 'ᾥ': 'ᾭ', - 'ᾦ': 'ᾮ', - 'ᾧ': 'ᾯ', - 'ᾨ': 'ᾨ', - 'ᾩ': 'ᾩ', - 'ᾪ': 'ᾪ', - 'ᾫ': 'ᾫ', - 'ᾬ': 'ᾬ', - 'ᾭ': 'ᾭ', - 'ᾮ': 'ᾮ', - 'ᾯ': 'ᾯ', - 'ᾲ': 'ᾲ', - 'ᾳ': 'ᾼ', - 'ᾴ': 'ᾴ', - 'ᾶ': 'ᾶ', - 'ᾷ': 'ᾷ', - 'ᾼ': 'ᾼ', - 'ῂ': 'ῂ', - 'ῃ': 'ῌ', - 'ῄ': 'ῄ', - 'ῆ': 'ῆ', - 'ῇ': 'ῇ', - 'ῌ': 'ῌ', - 'ῒ': 'ῒ', - 'ΐ': 'ΐ', - 'ῖ': 'ῖ', - 'ῗ': 'ῗ', - 'ῢ': 'ῢ', - 'ΰ': 'ΰ', - 'ῤ': 'ῤ', - 'ῦ': 'ῦ', - 'ῧ': 'ῧ', - 'ῲ': 'ῲ', - 'ῳ': 'ῼ', - 'ῴ': 'ῴ', - 'ῶ': 'ῶ', - 'ῷ': 'ῷ', - 'ῼ': 'ῼ', - 'ⅰ': 'ⅰ', - 'ⅱ': 'ⅱ', - 'ⅲ': 'ⅲ', - 'ⅳ': 'ⅳ', - 'ⅴ': 'ⅴ', - 'ⅵ': 'ⅵ', - 'ⅶ': 'ⅶ', - 'ⅷ': 'ⅷ', - 'ⅸ': 'ⅸ', - 'ⅹ': 'ⅹ', - 'ⅺ': 'ⅺ', - 'ⅻ': 'ⅻ', - 'ⅼ': 'ⅼ', - 'ⅽ': 'ⅽ', - 'ⅾ': 'ⅾ', - 'ⅿ': 'ⅿ', - 'ⓐ': 'ⓐ', - 'ⓑ': 'ⓑ', - 'ⓒ': 'ⓒ', - 'ⓓ': 'ⓓ', - 'ⓔ': 'ⓔ', - 'ⓕ': 'ⓕ', - 'ⓖ': 'ⓖ', - 'ⓗ': 'ⓗ', - 'ⓘ': 'ⓘ', - 'ⓙ': 'ⓙ', - 'ⓚ': 'ⓚ', - 'ⓛ': 'ⓛ', - 'ⓜ': 'ⓜ', - 'ⓝ': 'ⓝ', - 'ⓞ': 'ⓞ', - 'ⓟ': 'ⓟ', - 'ⓠ': 'ⓠ', - 'ⓡ': 'ⓡ', - 'ⓢ': 'ⓢ', - 'ⓣ': 'ⓣ', - 'ⓤ': 'ⓤ', - 'ⓥ': 'ⓥ', - 'ⓦ': 'ⓦ', - 'ⓧ': 'ⓧ', - 'ⓨ': 'ⓨ', - 'ⓩ': 'ⓩ', - 'ꞵ': 'Ꞵ', - 'ꞷ': 'Ꞷ', - 'ꭓ': 'Ꭓ', - 'ꭰ': 'Ꭰ', - 'ꭱ': 'Ꭱ', - 'ꭲ': 'Ꭲ', - 'ꭳ': 'Ꭳ', - 'ꭴ': 'Ꭴ', - 'ꭵ': 'Ꭵ', - 'ꭶ': 'Ꭶ', - 'ꭷ': 'Ꭷ', - 'ꭸ': 'Ꭸ', - 'ꭹ': 'Ꭹ', - 'ꭺ': 'Ꭺ', - 'ꭻ': 'Ꭻ', - 'ꭼ': 'Ꭼ', - 'ꭽ': 'Ꭽ', - 'ꭾ': 'Ꭾ', - 'ꭿ': 'Ꭿ', - 'ꮀ': 'Ꮀ', - 'ꮁ': 'Ꮁ', - 'ꮂ': 'Ꮂ', - 'ꮃ': 'Ꮃ', - 'ꮄ': 'Ꮄ', - 'ꮅ': 'Ꮅ', - 'ꮆ': 'Ꮆ', - 'ꮇ': 'Ꮇ', - 'ꮈ': 'Ꮈ', - 'ꮉ': 'Ꮉ', - 'ꮊ': 'Ꮊ', - 'ꮋ': 'Ꮋ', - 'ꮌ': 'Ꮌ', - 'ꮍ': 'Ꮍ', - 'ꮎ': 'Ꮎ', - 'ꮏ': 'Ꮏ', - 'ꮐ': 'Ꮐ', - 'ꮑ': 'Ꮑ', - 'ꮒ': 'Ꮒ', - 'ꮓ': 'Ꮓ', - 'ꮔ': 'Ꮔ', - 'ꮕ': 'Ꮕ', - 'ꮖ': 'Ꮖ', - 'ꮗ': 'Ꮗ', - 'ꮘ': 'Ꮘ', - 'ꮙ': 'Ꮙ', - 'ꮚ': 'Ꮚ', - 'ꮛ': 'Ꮛ', - 'ꮜ': 'Ꮜ', - 'ꮝ': 'Ꮝ', - 'ꮞ': 'Ꮞ', - 'ꮟ': 'Ꮟ', - 'ꮠ': 'Ꮠ', - 'ꮡ': 'Ꮡ', - 'ꮢ': 'Ꮢ', - 'ꮣ': 'Ꮣ', - 'ꮤ': 'Ꮤ', - 'ꮥ': 'Ꮥ', - 'ꮦ': 'Ꮦ', - 'ꮧ': 'Ꮧ', - 'ꮨ': 'Ꮨ', - 'ꮩ': 'Ꮩ', - 'ꮪ': 'Ꮪ', - 'ꮫ': 'Ꮫ', - 'ꮬ': 'Ꮬ', - 'ꮭ': 'Ꮭ', - 'ꮮ': 'Ꮮ', - 'ꮯ': 'Ꮯ', - 'ꮰ': 'Ꮰ', - 'ꮱ': 'Ꮱ', - 'ꮲ': 'Ꮲ', - 'ꮳ': 'Ꮳ', - 'ꮴ': 'Ꮴ', - 'ꮵ': 'Ꮵ', - 'ꮶ': 'Ꮶ', - 'ꮷ': 'Ꮷ', - 'ꮸ': 'Ꮸ', - 'ꮹ': 'Ꮹ', - 'ꮺ': 'Ꮺ', - 'ꮻ': 'Ꮻ', - 'ꮼ': 'Ꮼ', - 'ꮽ': 'Ꮽ', - 'ꮾ': 'Ꮾ', - 'ꮿ': 'Ꮿ', - 'ff': 'ff', - 'fi': 'fi', - 'fl': 'fl', - 'ffi': 'ffi', - 'ffl': 'ffl', - 'ſt': 'ſt', - 'st': 'st', - 'ﬓ': 'ﬓ', - 'ﬔ': 'ﬔ', - 'ﬕ': 'ﬕ', - 'ﬖ': 'ﬖ', - 'ﬗ': 'ﬗ' - }; - mw.Title.phpCharToUpper = function ( chr ) { - var mapped = toUpperMapping[ chr ]; - return mapped || chr.toUpperCase(); - }; -}() ); diff --git a/resources/src/mediawiki.Title/phpCharToUpper.json b/resources/src/mediawiki.Title/phpCharToUpper.json new file mode 100644 index 0000000000..b0887fa36a --- /dev/null +++ b/resources/src/mediawiki.Title/phpCharToUpper.json @@ -0,0 +1,245 @@ +{ + "ß": "ß", + "ʼn": "ʼn", + "Dž": "Dž", + "dž": "Dž", + "Lj": "Lj", + "lj": "Lj", + "Nj": "Nj", + "nj": "Nj", + "ǰ": "ǰ", + "Dz": "Dz", + "dz": "Dz", + "ʝ": "Ʝ", + "ͅ": "ͅ", + "ΐ": "ΐ", + "ΰ": "ΰ", + "և": "և", + "ᏸ": "Ᏸ", + "ᏹ": "Ᏹ", + "ᏺ": "Ᏺ", + "ᏻ": "Ᏻ", + "ᏼ": "Ᏼ", + "ᏽ": "Ᏽ", + "ẖ": "ẖ", + "ẗ": "ẗ", + "ẘ": "ẘ", + "ẙ": "ẙ", + "ẚ": "ẚ", + "ὐ": "ὐ", + "ὒ": "ὒ", + "ὔ": "ὔ", + "ὖ": "ὖ", + "ᾀ": "ᾈ", + "ᾁ": "ᾉ", + "ᾂ": "ᾊ", + "ᾃ": "ᾋ", + "ᾄ": "ᾌ", + "ᾅ": "ᾍ", + "ᾆ": "ᾎ", + "ᾇ": "ᾏ", + "ᾈ": "ᾈ", + "ᾉ": "ᾉ", + "ᾊ": "ᾊ", + "ᾋ": "ᾋ", + "ᾌ": "ᾌ", + "ᾍ": "ᾍ", + "ᾎ": "ᾎ", + "ᾏ": "ᾏ", + "ᾐ": "ᾘ", + "ᾑ": "ᾙ", + "ᾒ": "ᾚ", + "ᾓ": "ᾛ", + "ᾔ": "ᾜ", + "ᾕ": "ᾝ", + "ᾖ": "ᾞ", + "ᾗ": "ᾟ", + "ᾘ": "ᾘ", + "ᾙ": "ᾙ", + "ᾚ": "ᾚ", + "ᾛ": "ᾛ", + "ᾜ": "ᾜ", + "ᾝ": "ᾝ", + "ᾞ": "ᾞ", + "ᾟ": "ᾟ", + "ᾠ": "ᾨ", + "ᾡ": "ᾩ", + "ᾢ": "ᾪ", + "ᾣ": "ᾫ", + "ᾤ": "ᾬ", + "ᾥ": "ᾭ", + "ᾦ": "ᾮ", + "ᾧ": "ᾯ", + "ᾨ": "ᾨ", + "ᾩ": "ᾩ", + "ᾪ": "ᾪ", + "ᾫ": "ᾫ", + "ᾬ": "ᾬ", + "ᾭ": "ᾭ", + "ᾮ": "ᾮ", + "ᾯ": "ᾯ", + "ᾲ": "ᾲ", + "ᾳ": "ᾼ", + "ᾴ": "ᾴ", + "ᾶ": "ᾶ", + "ᾷ": "ᾷ", + "ᾼ": "ᾼ", + "ῂ": "ῂ", + "ῃ": "ῌ", + "ῄ": "ῄ", + "ῆ": "ῆ", + "ῇ": "ῇ", + "ῌ": "ῌ", + "ῒ": "ῒ", + "ΐ": "ΐ", + "ῖ": "ῖ", + "ῗ": "ῗ", + "ῢ": "ῢ", + "ΰ": "ΰ", + "ῤ": "ῤ", + "ῦ": "ῦ", + "ῧ": "ῧ", + "ῲ": "ῲ", + "ῳ": "ῼ", + "ῴ": "ῴ", + "ῶ": "ῶ", + "ῷ": "ῷ", + "ῼ": "ῼ", + "ⅰ": "ⅰ", + "ⅱ": "ⅱ", + "ⅲ": "ⅲ", + "ⅳ": "ⅳ", + "ⅴ": "ⅴ", + "ⅵ": "ⅵ", + "ⅶ": "ⅶ", + "ⅷ": "ⅷ", + "ⅸ": "ⅸ", + "ⅹ": "ⅹ", + "ⅺ": "ⅺ", + "ⅻ": "ⅻ", + "ⅼ": "ⅼ", + "ⅽ": "ⅽ", + "ⅾ": "ⅾ", + "ⅿ": "ⅿ", + "ⓐ": "ⓐ", + "ⓑ": "ⓑ", + "ⓒ": "ⓒ", + "ⓓ": "ⓓ", + "ⓔ": "ⓔ", + "ⓕ": "ⓕ", + "ⓖ": "ⓖ", + "ⓗ": "ⓗ", + "ⓘ": "ⓘ", + "ⓙ": "ⓙ", + "ⓚ": "ⓚ", + "ⓛ": "ⓛ", + "ⓜ": "ⓜ", + "ⓝ": "ⓝ", + "ⓞ": "ⓞ", + "ⓟ": "ⓟ", + "ⓠ": "ⓠ", + "ⓡ": "ⓡ", + "ⓢ": "ⓢ", + "ⓣ": "ⓣ", + "ⓤ": "ⓤ", + "ⓥ": "ⓥ", + "ⓦ": "ⓦ", + "ⓧ": "ⓧ", + "ⓨ": "ⓨ", + "ⓩ": "ⓩ", + "ꞵ": "Ꞵ", + "ꞷ": "Ꞷ", + "ꭓ": "Ꭓ", + "ꭰ": "Ꭰ", + "ꭱ": "Ꭱ", + "ꭲ": "Ꭲ", + "ꭳ": "Ꭳ", + "ꭴ": "Ꭴ", + "ꭵ": "Ꭵ", + "ꭶ": "Ꭶ", + "ꭷ": "Ꭷ", + "ꭸ": "Ꭸ", + "ꭹ": "Ꭹ", + "ꭺ": "Ꭺ", + "ꭻ": "Ꭻ", + "ꭼ": "Ꭼ", + "ꭽ": "Ꭽ", + "ꭾ": "Ꭾ", + "ꭿ": "Ꭿ", + "ꮀ": "Ꮀ", + "ꮁ": "Ꮁ", + "ꮂ": "Ꮂ", + "ꮃ": "Ꮃ", + "ꮄ": "Ꮄ", + "ꮅ": "Ꮅ", + "ꮆ": "Ꮆ", + "ꮇ": "Ꮇ", + "ꮈ": "Ꮈ", + "ꮉ": "Ꮉ", + "ꮊ": "Ꮊ", + "ꮋ": "Ꮋ", + "ꮌ": "Ꮌ", + "ꮍ": "Ꮍ", + "ꮎ": "Ꮎ", + "ꮏ": "Ꮏ", + "ꮐ": "Ꮐ", + "ꮑ": "Ꮑ", + "ꮒ": "Ꮒ", + "ꮓ": "Ꮓ", + "ꮔ": "Ꮔ", + "ꮕ": "Ꮕ", + "ꮖ": "Ꮖ", + "ꮗ": "Ꮗ", + "ꮘ": "Ꮘ", + "ꮙ": "Ꮙ", + "ꮚ": "Ꮚ", + "ꮛ": "Ꮛ", + "ꮜ": "Ꮜ", + "ꮝ": "Ꮝ", + "ꮞ": "Ꮞ", + "ꮟ": "Ꮟ", + "ꮠ": "Ꮠ", + "ꮡ": "Ꮡ", + "ꮢ": "Ꮢ", + "ꮣ": "Ꮣ", + "ꮤ": "Ꮤ", + "ꮥ": "Ꮥ", + "ꮦ": "Ꮦ", + "ꮧ": "Ꮧ", + "ꮨ": "Ꮨ", + "ꮩ": "Ꮩ", + "ꮪ": "Ꮪ", + "ꮫ": "Ꮫ", + "ꮬ": "Ꮬ", + "ꮭ": "Ꮭ", + "ꮮ": "Ꮮ", + "ꮯ": "Ꮯ", + "ꮰ": "Ꮰ", + "ꮱ": "Ꮱ", + "ꮲ": "Ꮲ", + "ꮳ": "Ꮳ", + "ꮴ": "Ꮴ", + "ꮵ": "Ꮵ", + "ꮶ": "Ꮶ", + "ꮷ": "Ꮷ", + "ꮸ": "Ꮸ", + "ꮹ": "Ꮹ", + "ꮺ": "Ꮺ", + "ꮻ": "Ꮻ", + "ꮼ": "Ꮼ", + "ꮽ": "Ꮽ", + "ꮾ": "Ꮾ", + "ꮿ": "Ꮿ", + "ff": "ff", + "fi": "fi", + "fl": "fl", + "ffi": "ffi", + "ffl": "ffl", + "ſt": "ſt", + "st": "st", + "ﬓ": "ﬓ", + "ﬔ": "ﬔ", + "ﬕ": "ﬕ", + "ﬖ": "ﬖ", + "ﬗ": "ﬗ" +} -- 2.20.1