User:Dantman/Extension composer descriptions/Session

It probably won't be very useful, but this is the console session where I put together the report.

Last login: Fri Feb 20 18:44:31 on ttys009 You have new mail. Daniels-MacBook-Air:~ daniel$ cd /tmp Daniels-MacBook-Air:tmp daniel$ mkdir exts Daniels-MacBook-Air:tmp daniel$ cd exts $ for EXT in AWS cldr WikidataQuality Wikidata WikibaseQuery WikibaseJavaScriptApi WikiEditor Wikibase Validator UserFunctions UniversalLanguageSelector TranslationNotifications Translate SwiftMailer SubPageList SideBarMenu SemanticWatchlist SemanticSignup SemanticSifter SemanticResultFormats SemanticMaps SemanticInterlanguageLinks SemanticMediaWiki SemanticHighcharts SemanticGlossary SemanticExtraSpecialProperties SemanticForms SemanticBreadcrumbLinks Scribunto PubSubHubbub ProofreadPage ParserHooks MixedNamespaceSearchSuggestions MobileFrontend Maps Lingo InviteSignup ImageMap GraphViz GoogleLogin GoogleCustomWikiSearch GitHub Flow Elastica EducationProgram DonationInterface DataTypes ContentTranslation CollapsibleVector CleanChanges BounceHandler Bootstrap Babel ArticleFeedbackv5 AntiSpoof AbuseFilter; do git clone "https://git.wikimedia.org/git/mediawiki/extensions/$EXT.git"; done <...cut...> $ ls * <...cut...> $ ls */i18n <...cut...> $ ls */i18n/en.json AWS/i18n/en.json				Scribunto/i18n/en.json AbuseFilter/i18n/en.json			SemanticBreadcrumbLinks/i18n/en.json ArticleFeedbackv5/i18n/en.json			SemanticExtraSpecialProperties/i18n/en.json Babel/i18n/en.json				SemanticForms/i18n/en.json Bootstrap/i18n/en.json				SemanticGlossary/i18n/en.json BounceHandler/i18n/en.json			SemanticHighcharts/i18n/en.json CleanChanges/i18n/en.json			SemanticInterlanguageLinks/i18n/en.json CollapsibleVector/i18n/en.json			SemanticMaps/i18n/en.json ContentTranslation/i18n/en.json			SemanticMediaWiki/i18n/en.json EducationProgram/i18n/en.json			SemanticResultFormats/i18n/en.json Elastica/i18n/en.json				SemanticSifter/i18n/en.json Flow/i18n/en.json				SemanticSignup/i18n/en.json GitHub/i18n/en.json				SemanticWatchlist/i18n/en.json GoogleCustomWikiSearch/i18n/en.json		SideBarMenu/i18n/en.json GoogleLogin/i18n/en.json			SubPageList/i18n/en.json GraphViz/i18n/en.json				SwiftMailer/i18n/en.json ImageMap/i18n/en.json				TranslationNotifications/i18n/en.json InviteSignup/i18n/en.json			UniversalLanguageSelector/i18n/en.json Lingo/i18n/en.json				UserFunctions/i18n/en.json Maps/i18n/en.json				Validator/i18n/en.json MixedNamespaceSearchSuggestions/i18n/en.json	WikiEditor/i18n/en.json MobileFrontend/i18n/en.json			WikibaseQuery/i18n/en.json ParserHooks/i18n/en.json			WikidataQuality/i18n/en.json ProofreadPage/i18n/en.json			cldr/i18n/en.json PubSubHubbub/i18n/en.json $ npm i bluebird bluebird@2.9.12 node_modules/bluebird <...cut...> $ npm i lodash lodash@3.3.0 node_modules/lodash $ node-promised > var Promise = require('bluebird'), fs = Promise.promisifyAll(require('fs')), lo = require('lodash') undefined > fs.readdirAsync('.') [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr', 'node_modules' ] > _.omit(_, 'node_modules') TypeError: undefined is not a function at repl:1:3 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > i > fs.readdirAsync('.')

(^C again to quit) > [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr', 'node_modules' ] > fs.readdirAsync('.') [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr', 'node_modules' ] > lo.omit(_, 'node_modules') { '0': 'AWS', '1': 'AbuseFilter', '2': 'ArticleFeedbackv5', '3': 'Babel', '4': 'Bootstrap', '5': 'BounceHandler', '6': 'CleanChanges', '7': 'CollapsibleVector', '8': 'ContentTranslation', '9': 'DataTypes', '10': 'DonationInterface', '11': 'EducationProgram', '12': 'Elastica', '13': 'Flow', '14': 'GitHub', '15': 'GoogleCustomWikiSearch', '16': 'GoogleLogin', '17': 'GraphViz', '18': 'ImageMap', '19': 'InviteSignup', '20': 'Lingo', '21': 'Maps', '22': 'MixedNamespaceSearchSuggestions', '23': 'MobileFrontend', '24': 'ParserHooks', '25': 'ProofreadPage', '26': 'PubSubHubbub', '27': 'Scribunto', '28': 'SemanticBreadcrumbLinks', '29': 'SemanticExtraSpecialProperties', '30': 'SemanticForms', '31': 'SemanticGlossary', '32': 'SemanticHighcharts', '33': 'SemanticInterlanguageLinks', '34': 'SemanticMaps', '35': 'SemanticMediaWiki', '36': 'SemanticResultFormats', '37': 'SemanticSifter', '38': 'SemanticSignup', '39': 'SemanticWatchlist', '40': 'SideBarMenu', '41': 'SubPageList', '42': 'SwiftMailer', '43': 'Translate', '44': 'TranslationNotifications', '45': 'UniversalLanguageSelector', '46': 'UserFunctions', '47': 'Validator', '48': 'WikiEditor', '49': 'Wikibase', '50': 'WikibaseJavaScriptApi', '51': 'WikibaseQuery', '52': 'Wikidata', '53': 'WikidataQuality', '54': 'cldr', '55': 'node_modules' } > fs.readdirAsync('.') [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr', 'node_modules' ] > var dirs = _ undefined > _.pull(dirs, 'node_modules') TypeError: Cannot read property 'pull' of undefined at repl:1:2 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.pull(dirs, 'node_modules') [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr' ] > dirs [ 'AWS', 'AbuseFilter', 'ArticleFeedbackv5', 'Babel', 'Bootstrap', 'BounceHandler', 'CleanChanges', 'CollapsibleVector', 'ContentTranslation', 'DataTypes', 'DonationInterface', 'EducationProgram', 'Elastica', 'Flow', 'GitHub', 'GoogleCustomWikiSearch', 'GoogleLogin', 'GraphViz', 'ImageMap', 'InviteSignup', 'Lingo', 'Maps', 'MixedNamespaceSearchSuggestions', 'MobileFrontend', 'ParserHooks', 'ProofreadPage', 'PubSubHubbub', 'Scribunto', 'SemanticBreadcrumbLinks', 'SemanticExtraSpecialProperties', 'SemanticForms', 'SemanticGlossary', 'SemanticHighcharts', 'SemanticInterlanguageLinks', 'SemanticMaps', 'SemanticMediaWiki', 'SemanticResultFormats', 'SemanticSifter', 'SemanticSignup', 'SemanticWatchlist', 'SideBarMenu', 'SubPageList', 'SwiftMailer', 'Translate', 'TranslationNotifications', 'UniversalLanguageSelector', 'UserFunctions', 'Validator', 'WikiEditor', 'Wikibase', 'WikibaseJavaScriptApi', 'WikibaseQuery', 'Wikidata', 'WikidataQuality', 'cldr' ] > Promise.all(dirs).map(function(dir) { return fs.statAsync(dir); }, {concurency: 5}) <...cut...> > Promise.all(dirs).map(function(dir) { return fs.statAsync(dir); }, {concurency: 5}).call('isDirectory') TypeError: Object [object Array] has no method 'isDirectory' at ensureMethod (/private/tmp/exts/node_modules/bluebird/js/main/call_get.js:75:15) at Array.eval (eval at (/private/tmp/exts/node_modules/bluebird/js/main/call_get.js:18:12), :7:13) at Array.tryCatcher (/private/tmp/exts/node_modules/bluebird/js/main/util.js:24:31) at Promise._settlePromiseFromHandler (/private/tmp/exts/node_modules/bluebird/js/main/promise.js:454:31) at Promise._settlePromiseAt (/private/tmp/exts/node_modules/bluebird/js/main/promise.js:530:18) at Promise._settlePromises (/private/tmp/exts/node_modules/bluebird/js/main/promise.js:646:14) at Async._drainQueue (/private/tmp/exts/node_modules/bluebird/js/main/async.js:79:16) at Async._drainQueues (/private/tmp/exts/node_modules/bluebird/js/main/async.js:89:10) at Immediate.Async.drainQueues [as _onImmediate] (/private/tmp/exts/node_modules/bluebird/js/main/async.js:14:14) at processImmediate [as _immediateCallback] (timers.js:358:17) > Promise.all(dirs).map(function(dir) { return fs.statAsync(dir).call('isDirectory'); }, {concurency: 5}) [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'composer.json')).call('isFile'); }, {concurency: 5}) [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile'); }, {concurency: 5}) Error: ENOENT, stat 'DataTypes/i18n/en.json' at Error (native) > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw; }); }, {concurency: 5}) SyntaxError: Unexpected token ; at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw err; }); }, {concurency: 5})

(^C again to quit) > [ true, true, true, true, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, false, false, true, false, true, true ] > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw e; }); }, {concurency: 5})

undefined > [ true, true, true, true, true, true, true, true, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, false, false, true, false, true, true ] > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw e; }).then(function(isFile) { return { dir: dir, i18n: isFile ? path.join(dir, 'i18n/en.json') : false; }, {concurency: 5}) SyntaxError: Unexpected token ;   at Object.exports.createScript (vm.js:44:10)    at defaultEval (repl.js:117:23)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26)    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41)    at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14    at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17)    at process._tickDomainCallback (node.js:381:11) > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw e; }).then(function(isFile) { return { dir: dir, i18n: isFile ? path.join(dir, 'i18n/en.json') : false }; }, {concurency: 5}) ... > Promise.all(dirs).map(function(dir) { return fs.statAsync(path.join(dir, 'i18n/en.json')).call('isFile').catch(function(e) { if ( e.code === 'ENOENT' ) { return false; } throw e; }).then(function(isFile) { return { dir: dir, i18n: isFile ? path.join(dir, 'i18n/en.json') : false }; }); }, {concurency: 5}) [ { dir: 'AWS', i18n: 'AWS/i18n/en.json' }, { dir: 'AbuseFilter', i18n: 'AbuseFilter/i18n/en.json' }, { dir: 'ArticleFeedbackv5', i18n: 'ArticleFeedbackv5/i18n/en.json' }, { dir: 'Babel', i18n: 'Babel/i18n/en.json' }, { dir: 'Bootstrap', i18n: 'Bootstrap/i18n/en.json' }, { dir: 'BounceHandler', i18n: 'BounceHandler/i18n/en.json' }, { dir: 'CleanChanges', i18n: 'CleanChanges/i18n/en.json' }, { dir: 'CollapsibleVector', i18n: 'CollapsibleVector/i18n/en.json' }, { dir: 'ContentTranslation', i18n: 'ContentTranslation/i18n/en.json' }, { dir: 'DataTypes', i18n: false }, { dir: 'DonationInterface', i18n: false }, { dir: 'EducationProgram', i18n: 'EducationProgram/i18n/en.json' }, { dir: 'Elastica', i18n: 'Elastica/i18n/en.json' }, { dir: 'Flow', i18n: 'Flow/i18n/en.json' }, { dir: 'GitHub', i18n: 'GitHub/i18n/en.json' }, { dir: 'GoogleCustomWikiSearch', i18n: 'GoogleCustomWikiSearch/i18n/en.json' }, { dir: 'GoogleLogin', i18n: 'GoogleLogin/i18n/en.json' }, { dir: 'GraphViz', i18n: 'GraphViz/i18n/en.json' }, { dir: 'ImageMap', i18n: 'ImageMap/i18n/en.json' }, { dir: 'InviteSignup', i18n: 'InviteSignup/i18n/en.json' }, { dir: 'Lingo', i18n: 'Lingo/i18n/en.json' }, { dir: 'Maps', i18n: 'Maps/i18n/en.json' }, { dir: 'MixedNamespaceSearchSuggestions', i18n: 'MixedNamespaceSearchSuggestions/i18n/en.json' }, { dir: 'MobileFrontend', i18n: 'MobileFrontend/i18n/en.json' }, { dir: 'ParserHooks', i18n: 'ParserHooks/i18n/en.json' }, { dir: 'ProofreadPage', i18n: 'ProofreadPage/i18n/en.json' }, { dir: 'PubSubHubbub', i18n: 'PubSubHubbub/i18n/en.json' }, { dir: 'Scribunto', i18n: 'Scribunto/i18n/en.json' }, { dir: 'SemanticBreadcrumbLinks', i18n: 'SemanticBreadcrumbLinks/i18n/en.json' }, { dir: 'SemanticExtraSpecialProperties', i18n: 'SemanticExtraSpecialProperties/i18n/en.json' }, { dir: 'SemanticForms', i18n: 'SemanticForms/i18n/en.json' }, { dir: 'SemanticGlossary', i18n: 'SemanticGlossary/i18n/en.json' }, { dir: 'SemanticHighcharts', i18n: 'SemanticHighcharts/i18n/en.json' }, { dir: 'SemanticInterlanguageLinks', i18n: 'SemanticInterlanguageLinks/i18n/en.json' }, { dir: 'SemanticMaps', i18n: 'SemanticMaps/i18n/en.json' }, { dir: 'SemanticMediaWiki', i18n: 'SemanticMediaWiki/i18n/en.json' }, { dir: 'SemanticResultFormats', i18n: 'SemanticResultFormats/i18n/en.json' }, { dir: 'SemanticSifter', i18n: 'SemanticSifter/i18n/en.json' }, { dir: 'SemanticSignup', i18n: 'SemanticSignup/i18n/en.json' }, { dir: 'SemanticWatchlist', i18n: 'SemanticWatchlist/i18n/en.json' }, { dir: 'SideBarMenu', i18n: 'SideBarMenu/i18n/en.json' }, { dir: 'SubPageList', i18n: 'SubPageList/i18n/en.json' }, { dir: 'SwiftMailer', i18n: 'SwiftMailer/i18n/en.json' }, { dir: 'Translate', i18n: false }, { dir: 'TranslationNotifications', i18n: 'TranslationNotifications/i18n/en.json' }, { dir: 'UniversalLanguageSelector', i18n: 'UniversalLanguageSelector/i18n/en.json' }, { dir: 'UserFunctions', i18n: 'UserFunctions/i18n/en.json' }, { dir: 'Validator', i18n: 'Validator/i18n/en.json' }, { dir: 'WikiEditor', i18n: 'WikiEditor/i18n/en.json' }, { dir: 'Wikibase', i18n: false }, { dir: 'WikibaseJavaScriptApi', i18n: false }, { dir: 'WikibaseQuery', i18n: 'WikibaseQuery/i18n/en.json' }, { dir: 'Wikidata', i18n: false }, { dir: 'WikidataQuality', i18n: 'WikidataQuality/i18n/en.json' }, { dir: 'cldr', i18n: 'cldr/i18n/en.json' } ] > var exts = _ undefined > _.where(exts, { i18n: false }) TypeError: Cannot read property 'where' of undefined at repl:1:2 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.where(exts, { i18n: false }) [ { dir: 'DataTypes', i18n: false }, { dir: 'DonationInterface', i18n: false }, { dir: 'Translate', i18n: false }, { dir: 'Wikibase', i18n: false }, { dir: 'WikibaseJavaScriptApi', i18n: false }, { dir: 'Wikidata', i18n: false } ] > Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.read fs.read              fs.readAsync          fs.readFile           fs.readFileAsync      fs.readFileSync fs.readFileSyncAsync  fs.readSync           fs.readSyncAsync      fs.readdir            fs.readdirAsync fs.readdirSync        fs.readdirSyncAsync   fs.readlink           fs.readlinkAsync      fs.readlinkSync fs.readlinkSyncAsync

> Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.readF fs.readFile          fs.readFileAsync      fs.readFileSync       fs.readFileSyncAsync

> Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.readFileAsync(ext.i18n, 'utf8').then(JSON.parse); }, {concurency: 10}); }); SyntaxError: Unexpected token,   at Object.exports.createScript (vm.js:44:10)    at defaultEval (repl.js:117:23)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26)    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41)    at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14    at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17)    at process._tickDomainCallback (node.js:381:11) > Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.readFileAsync(ext.i18n, 'utf8').then(JSON.parse); } }, {concurency: 10}); <...cut...> > Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.readFileAsync(ext.i18n, 'utf8').then(JSON.parse).then(function(i18n) { ext.i18nData = i18n; }; } }, {concurency: 10}); SyntaxError: Unexpected token ; at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > Promise.all(exts).map(function(ext) { if ( ext.i18n ) { return fs.readFileAsync(ext.i18n, 'utf8').then(JSON.parse).then(function(i18n) { ext.i18nData = i18n; }); } }, {concurency: 10}); [ undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined ] > exts <...cut...> > lo(exts[1].i18nData).keys.filter(RegExp.pro RegExp.propertyIsEnumerable

RegExp.prototype

> lo(exts[1].i18nData).keys.filter(RegExp.prototype.test. RegExp.prototype.test.__defineGetter__     RegExp.prototype.test.__defineSetter__ RegExp.prototype.test.__lookupGetter__      RegExp.prototype.test.__lookupSetter__ RegExp.prototype.test.__proto__             RegExp.prototype.test.constructor RegExp.prototype.test.hasOwnProperty        RegExp.prototype.test.isPrototypeOf RegExp.prototype.test.propertyIsEnumerable  RegExp.prototype.test.toLocaleString RegExp.prototype.test.toString              RegExp.prototype.test.valueOf

RegExp.prototype.test.apply                RegExp.prototype.test.arguments RegExp.prototype.test.bind                 RegExp.prototype.test.call RegExp.prototype.test.caller               RegExp.prototype.test.length RegExp.prototype.test.name

> lo(exts[1].i18nData).keys.filter(RegExp.prototype.test.bind(/[-_]desc$/)) <...cut...> > _.pluck(exts, 'descProp') TypeError: undefined is not a function at repl:1:3 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.pluck(exts, 'descProp') [ [ 'aws-desc' ], [ 'abusefilter-desc' ], [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ], [ 'babel-desc' ], [ 'bootstrap-desc' ], [ 'bouncehandler-desc' ], [ 'cleanchanges-desc' ], [ 'collapsiblevector-desc' ], [ 'cx-desc', 'cx-beta-desc', 'cx-create-new-translation-desc' ], undefined, undefined, [ 'educationprogram-desc' ], [ 'elastica-desc' ], [ 'flow-desc', 'flow-special-desc' ], [ 'github-desc' ], [ 'gcws-desc' ], [ 'googlelogin-desc' ], [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ], [ 'imagemap_desc', 'imagemap_invalid_desc' ], [ 'is-desc' ], [ 'lingo-desc' ], [ 'maps-desc' ], [ 'mnss-desc' ], [ 'mobile-frontend-desc', 'mobile-frontend-diffview-404-desc', 'mobile-frontend-fontchanger-desc', 'mobile-frontend-generic-404-desc', 'mobile-frontend-history-404-desc', 'mobile-frontend-languages-404-desc' ], [ 'parserhooks-desc' ], [ 'proofreadpage_desc' ], [ 'pubsubhubbub-desc' ], [ 'scribunto-desc', 'scribunto-common-error-category-desc', 'scribunto-module-with-errors-category-desc' ], [ 'sbl-desc' ], [ 'sesp-desc' ], [ 'semanticforms-desc', 'sf_category_desc' ], [ 'semanticglossary-desc' ], [ 'semantichighcharts-desc' ], [ 'sil-desc' ], [ 'semanticmaps-desc' ], [ 'smw-desc' ], [ 'srf-desc' ], [ 'semanticsifter-desc' ], [ 'ses-desc' ], [ 'semanticwatchlist-desc' ], [ 'sidebarmenu-desc' ], [ 'spl-desc' ], [ 'swiftmailer-desc' ], undefined, [ 'translationnotifications-desc' ], [ 'uls-desc', 'uls-betafeature-desc', 'ext-uls-display-settings-desc', 'ext-uls-input-settings-desc' ], [ 'userfunctions-desc' ], [ 'validator-desc' ], [ 'wikieditor-desc', 'wikieditor-toolbar-desc' ], undefined, undefined, [ 'wikibasequery-desc' ], undefined, [ 'wikidataquality-desc' ], [ 'cldr-desc' ] ] > lo.each(exts, function(ext) { if ( ext.descProp && ext.descProp.length === 1; { ext.descProp = ext.descProp[0]; } }); SyntaxError: Unexpected token ;   at Object.exports.createScript (vm.js:44:10)    at defaultEval (repl.js:117:23)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26)    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41)    at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14    at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17)    at process._tickDomainCallback (node.js:381:11) > lo.each(exts, function(ext) { if ( ext.descProp && ext.descProp.length === 1; ) { ext.descProp = ext.descProp[0]; } }); SyntaxError: Unexpected token ;    at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.each(exts, function(ext) { if ( ext.descProp && ext.descProp.length === 1 ) { ext.descProp = ext.descProp[0]; } }); <...cut...> > lo.pluck(exts, 'descProp') [ 'aws-desc', 'abusefilter-desc', [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ], 'babel-desc', 'bootstrap-desc', 'bouncehandler-desc', 'cleanchanges-desc', 'collapsiblevector-desc', [ 'cx-desc', 'cx-beta-desc', 'cx-create-new-translation-desc' ], undefined, undefined, 'educationprogram-desc', 'elastica-desc', [ 'flow-desc', 'flow-special-desc' ], 'github-desc', 'gcws-desc', 'googlelogin-desc', [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ], [ 'imagemap_desc', 'imagemap_invalid_desc' ], 'is-desc', 'lingo-desc', 'maps-desc', 'mnss-desc', [ 'mobile-frontend-desc', 'mobile-frontend-diffview-404-desc', 'mobile-frontend-fontchanger-desc', 'mobile-frontend-generic-404-desc', 'mobile-frontend-history-404-desc', 'mobile-frontend-languages-404-desc' ], 'parserhooks-desc', 'proofreadpage_desc', 'pubsubhubbub-desc', [ 'scribunto-desc', 'scribunto-common-error-category-desc', 'scribunto-module-with-errors-category-desc' ], 'sbl-desc', 'sesp-desc', [ 'semanticforms-desc', 'sf_category_desc' ], 'semanticglossary-desc', 'semantichighcharts-desc', 'sil-desc', 'semanticmaps-desc', 'smw-desc', 'srf-desc', 'semanticsifter-desc', 'ses-desc', 'semanticwatchlist-desc', 'sidebarmenu-desc', 'spl-desc', 'swiftmailer-desc', undefined, 'translationnotifications-desc', [ 'uls-desc', 'uls-betafeature-desc', 'ext-uls-display-settings-desc', 'ext-uls-input-settings-desc' ], 'userfunctions-desc', 'validator-desc', [ 'wikieditor-desc', 'wikieditor-toolbar-desc' ], undefined, undefined, 'wikibasequery-desc', undefined, 'wikidataquality-desc', 'cldr-desc' ] > lo.find(exts, { dir: 'ContentTranslation' }) <...cut...> > var ext = lo.find(exts, { dir: 'ContentTranslation' }) undefined > ext.i ext.isPrototypeOf

ext.i18n          ext.i18nData

> ext.i1 ext.i18n     ext.i18nData

> ext.descProp [ 'cx-desc', 'cx-beta-desc', 'cx-create-new-translation-desc' ] > ext.descProp = 'cx-desc' 'cx-desc' > lo.pluck(exts, 'descProp') [ 'aws-desc', 'abusefilter-desc', [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ], 'babel-desc', 'bootstrap-desc', 'bouncehandler-desc', 'cleanchanges-desc', 'collapsiblevector-desc', 'cx-desc', undefined, undefined, 'educationprogram-desc', 'elastica-desc', [ 'flow-desc', 'flow-special-desc' ], 'github-desc', 'gcws-desc', 'googlelogin-desc', [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ], [ 'imagemap_desc', 'imagemap_invalid_desc' ], 'is-desc', 'lingo-desc', 'maps-desc', 'mnss-desc', [ 'mobile-frontend-desc', 'mobile-frontend-diffview-404-desc', 'mobile-frontend-fontchanger-desc', 'mobile-frontend-generic-404-desc', 'mobile-frontend-history-404-desc', 'mobile-frontend-languages-404-desc' ], 'parserhooks-desc', 'proofreadpage_desc', 'pubsubhubbub-desc', [ 'scribunto-desc', 'scribunto-common-error-category-desc', 'scribunto-module-with-errors-category-desc' ], 'sbl-desc', 'sesp-desc', [ 'semanticforms-desc', 'sf_category_desc' ], 'semanticglossary-desc', 'semantichighcharts-desc', 'sil-desc', 'semanticmaps-desc', 'smw-desc', 'srf-desc', 'semanticsifter-desc', 'ses-desc', 'semanticwatchlist-desc', 'sidebarmenu-desc', 'spl-desc', 'swiftmailer-desc', undefined, 'translationnotifications-desc', [ 'uls-desc', 'uls-betafeature-desc', 'ext-uls-display-settings-desc', 'ext-uls-input-settings-desc' ], 'userfunctions-desc', 'validator-desc', [ 'wikieditor-desc', 'wikieditor-toolbar-desc' ], undefined, undefined, 'wikibasequery-desc', undefined, 'wikidataquality-desc', 'cldr-desc' ] > var ext = lo.find(exts, { dir: 'WikiEditor' }) undefined > ext.descProp [ 'wikieditor-desc', 'wikieditor-toolbar-desc' ] > ext.descProp = 'wikieditor-desc SyntaxError: Unexpected token ILLEGAL at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > ext.descProp = 'wikieditor-desc' 'wikieditor-desc' > var ext = lo.find(exts, { dir: 'UniversalLanguageSelector' }) undefined > ext.descProp [ 'uls-desc', 'uls-betafeature-desc', 'ext-uls-display-settings-desc', 'ext-uls-input-settings-desc' ] > ext.descProp = 'uls-desc' 'uls-desc' > lo.pluck(exts, 'descProp') [ 'aws-desc', 'abusefilter-desc', [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ], 'babel-desc', 'bootstrap-desc', 'bouncehandler-desc', 'cleanchanges-desc', 'collapsiblevector-desc', 'cx-desc', undefined, undefined, 'educationprogram-desc', 'elastica-desc', [ 'flow-desc', 'flow-special-desc' ], 'github-desc', 'gcws-desc', 'googlelogin-desc', [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ], [ 'imagemap_desc', 'imagemap_invalid_desc' ], 'is-desc', 'lingo-desc', 'maps-desc', 'mnss-desc', [ 'mobile-frontend-desc', 'mobile-frontend-diffview-404-desc', 'mobile-frontend-fontchanger-desc', 'mobile-frontend-generic-404-desc', 'mobile-frontend-history-404-desc', 'mobile-frontend-languages-404-desc' ], 'parserhooks-desc', 'proofreadpage_desc', 'pubsubhubbub-desc', [ 'scribunto-desc', 'scribunto-common-error-category-desc', 'scribunto-module-with-errors-category-desc' ], 'sbl-desc', 'sesp-desc', [ 'semanticforms-desc', 'sf_category_desc' ], 'semanticglossary-desc', 'semantichighcharts-desc', 'sil-desc', 'semanticmaps-desc', 'smw-desc', 'srf-desc', 'semanticsifter-desc', 'ses-desc', 'semanticwatchlist-desc', 'sidebarmenu-desc', 'spl-desc', 'swiftmailer-desc', undefined, 'translationnotifications-desc', 'uls-desc', 'userfunctions-desc', 'validator-desc', 'wikieditor-desc', undefined, undefined, 'wikibasequery-desc', undefined, 'wikidataquality-desc', 'cldr-desc' ] > var ext = lo.find(exts, { dir: 'SemanticForms' }) undefined > ext.descProp [ 'semanticforms-desc', 'sf_category_desc' ] > ext.descProp = 'semanticforms-desc' 'semanticforms-desc' > var ext = lo.find(exts, { dir: 'MobileFrontend' }) undefined > ext.descProp [ 'mobile-frontend-desc', 'mobile-frontend-diffview-404-desc', 'mobile-frontend-fontchanger-desc', 'mobile-frontend-generic-404-desc', 'mobile-frontend-history-404-desc', 'mobile-frontend-languages-404-desc' ] > ext.descProp = 'mobile-frontend-desc' 'mobile-frontend-desc' > var ext = lo.find(exts, { dir: 'Scribunto' }) undefined > ext.descProp [ 'scribunto-desc', 'scribunto-common-error-category-desc', 'scribunto-module-with-errors-category-desc' ] > ext.descProp = 'scribunto-desc' 'scribunto-desc' > lo.pluck(exts, 'descProp')' SyntaxError: Unexpected token ILLEGAL at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.pluck(exts, 'descProp') [ 'aws-desc', 'abusefilter-desc', [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ], 'babel-desc', 'bootstrap-desc', 'bouncehandler-desc', 'cleanchanges-desc', 'collapsiblevector-desc', 'cx-desc', undefined, undefined, 'educationprogram-desc', 'elastica-desc', [ 'flow-desc', 'flow-special-desc' ], 'github-desc', 'gcws-desc', 'googlelogin-desc', [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ], [ 'imagemap_desc', 'imagemap_invalid_desc' ], 'is-desc', 'lingo-desc', 'maps-desc', 'mnss-desc', 'mobile-frontend-desc', 'parserhooks-desc', 'proofreadpage_desc', 'pubsubhubbub-desc', 'scribunto-desc', 'sbl-desc', 'sesp-desc', 'semanticforms-desc', 'semanticglossary-desc', 'semantichighcharts-desc', 'sil-desc', 'semanticmaps-desc', 'smw-desc', 'srf-desc', 'semanticsifter-desc', 'ses-desc', 'semanticwatchlist-desc', 'sidebarmenu-desc', 'spl-desc', 'swiftmailer-desc', undefined, 'translationnotifications-desc', 'uls-desc', 'userfunctions-desc', 'validator-desc', 'wikieditor-desc', undefined, undefined, 'wikibasequery-desc', undefined, 'wikidataquality-desc', 'cldr-desc' ] > var ext = lo.find(exts, { dir: '' }) > lo.filter(ext, function(ext) { return Array.isArray(ext.descProp); }) [] > lo.filter(exts, function(ext) { return Array.isArray(ext.descProp); }) <...cut...> > var toUpdate = _ undefined > var ext = toUpdate.shift undefined > ext. ext.__defineGetter__     ext.__defineSetter__      ext.__lookupGetter__      ext.__lookupSetter__ ext.__proto__            ext.constructor           ext.hasOwnProperty        ext.isPrototypeOf ext.propertyIsEnumerable ext.toLocaleString        ext.toString              ext.valueOf

ext.descProp             ext.dir                   ext.i18n                  ext.i18nData

> ext.descProp [ 'articlefeedbackv5-special-sort-relevance-desc', 'articlefeedbackv5-special-sort-helpful-desc', 'articlefeedbackv5-special-sort-age-desc', 'articlefeedbackv5-desc' ] > ext.descProp = 'articlefeedbackv5-desc' 'articlefeedbackv5-desc' > ext = toUpdate.shift <...cut...> > ext.descProp =  'flow-desc' 'flow-desc' > var ext = toUpdate.shift undefined > ext.descProp [ 'graphviz-desc', 'graphviz-category-desc', 'graphviz-subcategory-desc', 'graphviz-map-desc' ] > ext.descProp = 'graphviz-desc' 'graphviz-desc' > var ext = toUpdate.shift; ext.descProp [ 'imagemap_desc', 'imagemap_invalid_desc' ] > ext.descProp = 'imagemap_desc' 'imagemap_desc' > var ext = toUpdate.shift; ext.descProp TypeError: Cannot read property 'descProp' of undefined at repl:1:32 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.pluck(exts, 'descProp') [ 'aws-desc', 'abusefilter-desc', 'articlefeedbackv5-desc', 'babel-desc', 'bootstrap-desc', 'bouncehandler-desc', 'cleanchanges-desc', 'collapsiblevector-desc', 'cx-desc', undefined, undefined, 'educationprogram-desc', 'elastica-desc', 'flow-desc', 'github-desc', 'gcws-desc', 'googlelogin-desc', 'graphviz-desc', 'imagemap_desc', 'is-desc', 'lingo-desc', 'maps-desc', 'mnss-desc', 'mobile-frontend-desc', 'parserhooks-desc', 'proofreadpage_desc', 'pubsubhubbub-desc', 'scribunto-desc', 'sbl-desc', 'sesp-desc', 'semanticforms-desc', 'semanticglossary-desc', 'semantichighcharts-desc', 'sil-desc', 'semanticmaps-desc', 'smw-desc', 'srf-desc', 'semanticsifter-desc', 'ses-desc', 'semanticwatchlist-desc', 'sidebarmenu-desc', 'spl-desc', 'swiftmailer-desc', undefined, 'translationnotifications-desc', 'uls-desc', 'userfunctions-desc', 'validator-desc', 'wikieditor-desc', undefined, undefined, 'wikibasequery-desc', undefined, 'wikidataquality-desc', 'cldr-desc' ] > _.map(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { return ext.i18nData[ext.descProp]; }) SyntaxError: Unexpected token )   at Object.exports.createScript (vm.js:44:10)    at defaultEval (repl.js:117:23)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26)    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41)    at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14    at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17)    at process._tickDomainCallback (node.js:381:11) > _.map(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { return ext.i18nData[ext.descProp]; } }) TypeError: [object Array] is not a function    at Array.map (native)    at repl:1:3    at defaultEval (repl.js:134:27)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > _.map(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { return ext.i18nData[ext.descProp]; } }); TypeError: [object Array] is not a function at Array.map (native) at repl:1:3 at defaultEval (repl.js:134:27) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > lo.map(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { return ext.i18nData[ext.descProp]; } }); [ 'Plugin for using Amazon Web Services', 'Applies automatic heuristics to edits', 'Article feedback', 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates', 'Provides the Bootstrap framework in the wiki', 'Helps in handling email bounces for MediaWiki', 'More compact display of the recent changes list', 'Enhances the user interface when using the Vector skin', 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools', undefined, undefined, 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles', 'Base Elasticsearch functionality for other extensions by providing Elastica library', 'Workflow management system', 'Allows embedding the contents of files from GitHub', 'Allows integration with Google Custom Search or Google Site Search', 'Provides a Special page to allow users to login with their Google accounts', 'Allows embedding Graphviz markup and generates inline images', 'Allows client-side clickable image maps using  tag', 'Send email invites', 'Provides hover-over tool tips on pages from words defined on the $1 page', 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.', 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from', 'Mobile Frontend', 'OOP interface for creating MediaWiki parser hooks in a declarative fashion', 'Allow easy comparison of text to the original scan', 'Publishes changes to a PubSubHubbub hub', 'Framework for embedding scripting languages into MediaWiki pages', 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter', 'Adds some extra special properties to all pages', 'Forms for adding and editing semantic data', 'A glossary extension with a Semantic MediaWiki backend', 'A SMW result format displaying data with the help of the highcharts library', 'A Semantic MediaWiki extension to create and manage interlanguage links', 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension', 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)', 'Additional result formats for Semantic MediaWiki queries', 'Allows to sift through semantic data and displays the result in a filterable view', 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time', 'Lets users be notified of specific changes to Semantic MediaWiki data', 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus', 'Allows to list and count subpages', 'Provides SwiftMailer as alternate mailer', undefined, 'Allows translators to sign up for translation notifications', 'Gives the user several ways to select a language and to adjust language settings', 'Enhance parser with user functions', 'Declarative parameter processing library', 'Provides an extendable wikitext editing interface and many feature-providing modules', undefined, undefined, 'Adds query capabilities to Wikibase', undefined, 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.', 'Extension which provides localised language names based on CLDR data' ] > lo.each(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { return ext.i18nData[ext.descProp]; } }); <...cut...> > lo.each(exts, function(ext) { if ( ext.i18nData && ext.descProp ) { ext.description = ext.i18nData[ext.descProp]; delete ext.i18nData; delete ext.i18n; } }); [ { dir: 'AWS', descProp: 'aws-desc', description: 'Plugin for using Amazon Web Services' }, { dir: 'AbuseFilter', descProp: 'abusefilter-desc', description: 'Applies automatic heuristics to edits' }, { dir: 'ArticleFeedbackv5', descProp: 'articlefeedbackv5-desc', description: 'Article feedback' }, { dir: 'Babel', descProp: 'babel-desc', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates' }, { dir: 'Bootstrap', descProp: 'bootstrap-desc', description: 'Provides the Bootstrap framework in the wiki' }, { dir: 'BounceHandler', descProp: 'bouncehandler-desc', description: 'Helps in handling email bounces for MediaWiki' }, { dir: 'CleanChanges', descProp: 'cleanchanges-desc', description: 'More compact display of the recent changes list' }, { dir: 'CollapsibleVector', descProp: 'collapsiblevector-desc', description: 'Enhances the user interface when using the Vector skin' }, { dir: 'ContentTranslation', descProp: 'cx-desc', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools' }, { dir: 'DataTypes', i18n: false }, { dir: 'DonationInterface', i18n: false }, { dir: 'EducationProgram', descProp: 'educationprogram-desc', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles' }, { dir: 'Elastica', descProp: 'elastica-desc', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library' }, { dir: 'Flow', descProp: 'flow-desc', description: 'Workflow management system' }, { dir: 'GitHub', descProp: 'github-desc', description: 'Allows embedding the contents of files from GitHub' }, { dir: 'GoogleCustomWikiSearch', descProp: 'gcws-desc', description: 'Allows integration with Google Custom Search or Google Site Search' }, { dir: 'GoogleLogin', descProp: 'googlelogin-desc', description: 'Provides a Special page to allow users to login with their Google accounts' }, { dir: 'GraphViz', descProp: 'graphviz-desc', description: 'Allows embedding Graphviz markup and generates inline images' }, { dir: 'ImageMap', descProp: 'imagemap_desc', description: 'Allows client-side clickable image maps using  tag' }, { dir: 'InviteSignup', descProp: 'is-desc', description: 'Send email invites' }, { dir: 'Lingo', descProp: 'lingo-desc', description: 'Provides hover-over tool tips on pages from words defined on the $1 page' }, { dir: 'Maps', descProp: 'maps-desc', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.' }, { dir: 'MixedNamespaceSearchSuggestions', descProp: 'mnss-desc', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from' }, { dir: 'MobileFrontend', descProp: 'mobile-frontend-desc', description: 'Mobile Frontend' }, { dir: 'ParserHooks', descProp: 'parserhooks-desc', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion' }, { dir: 'ProofreadPage', descProp: 'proofreadpage_desc', description: 'Allow easy comparison of text to the original scan' }, { dir: 'PubSubHubbub', descProp: 'pubsubhubbub-desc', description: 'Publishes changes to a PubSubHubbub hub' }, { dir: 'Scribunto', descProp: 'scribunto-desc', description: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', descProp: 'sbl-desc', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter' }, { dir: 'SemanticExtraSpecialProperties', descProp: 'sesp-desc', description: 'Adds some extra special properties to all pages' }, { dir: 'SemanticForms', descProp: 'semanticforms-desc', description: 'Forms for adding and editing semantic data' }, { dir: 'SemanticGlossary', descProp: 'semanticglossary-desc', description: 'A glossary extension with a Semantic MediaWiki backend' }, { dir: 'SemanticHighcharts', descProp: 'semantichighcharts-desc', description: 'A SMW result format displaying data with the help of the highcharts library' }, { dir: 'SemanticInterlanguageLinks', descProp: 'sil-desc', description: 'A Semantic MediaWiki extension to create and manage interlanguage links' }, { dir: 'SemanticMaps', descProp: 'semanticmaps-desc', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension' }, { dir: 'SemanticMediaWiki', descProp: 'smw-desc', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)' }, { dir: 'SemanticResultFormats', descProp: 'srf-desc', description: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', descProp: 'semanticsifter-desc', description: 'Allows to sift through semantic data and displays the result in a filterable view' }, { dir: 'SemanticSignup', descProp: 'ses-desc', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time' }, { dir: 'SemanticWatchlist', descProp: 'semanticwatchlist-desc', description: 'Lets users be notified of specific changes to Semantic MediaWiki data' }, { dir: 'SideBarMenu', descProp: 'sidebarmenu-desc', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus' }, { dir: 'SubPageList', descProp: 'spl-desc', description: 'Allows to list and count subpages' }, { dir: 'SwiftMailer', descProp: 'swiftmailer-desc', description: 'Provides SwiftMailer as alternate mailer' }, { dir: 'Translate', i18n: false }, { dir: 'TranslationNotifications', descProp: 'translationnotifications-desc', description: 'Allows translators to sign up for translation notifications' }, { dir: 'UniversalLanguageSelector', descProp: 'uls-desc', description: 'Gives the user several ways to select a language and to adjust language settings' }, { dir: 'UserFunctions', descProp: 'userfunctions-desc', description: 'Enhance parser with user functions' }, { dir: 'Validator', descProp: 'validator-desc', description: 'Declarative parameter processing library' }, { dir: 'WikiEditor', descProp: 'wikieditor-desc', description: 'Provides an extendable wikitext editing interface and many feature-providing modules' }, { dir: 'Wikibase', i18n: false }, { dir: 'WikibaseJavaScriptApi', i18n: false }, { dir: 'WikibaseQuery', descProp: 'wikibasequery-desc', description: 'Adds query capabilities to Wikibase' }, { dir: 'Wikidata', i18n: false }, { dir: 'WikidataQuality', descProp: 'wikidataquality-desc', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.' }, { dir: 'cldr', descProp: 'cldr-desc', description: 'Extension which provides localised language names based on CLDR data' } ] > exts [ { dir: 'AWS', descProp: 'aws-desc', description: 'Plugin for using Amazon Web Services' }, { dir: 'AbuseFilter', descProp: 'abusefilter-desc', description: 'Applies automatic heuristics to edits' }, { dir: 'ArticleFeedbackv5', descProp: 'articlefeedbackv5-desc', description: 'Article feedback' }, { dir: 'Babel', descProp: 'babel-desc', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates' }, { dir: 'Bootstrap', descProp: 'bootstrap-desc', description: 'Provides the Bootstrap framework in the wiki' }, { dir: 'BounceHandler', descProp: 'bouncehandler-desc', description: 'Helps in handling email bounces for MediaWiki' }, { dir: 'CleanChanges', descProp: 'cleanchanges-desc', description: 'More compact display of the recent changes list' }, { dir: 'CollapsibleVector', descProp: 'collapsiblevector-desc', description: 'Enhances the user interface when using the Vector skin' }, { dir: 'ContentTranslation', descProp: 'cx-desc', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools' }, { dir: 'DataTypes', i18n: false }, { dir: 'DonationInterface', i18n: false }, { dir: 'EducationProgram', descProp: 'educationprogram-desc', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles' }, { dir: 'Elastica', descProp: 'elastica-desc', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library' }, { dir: 'Flow', descProp: 'flow-desc', description: 'Workflow management system' }, { dir: 'GitHub', descProp: 'github-desc', description: 'Allows embedding the contents of files from GitHub' }, { dir: 'GoogleCustomWikiSearch', descProp: 'gcws-desc', description: 'Allows integration with Google Custom Search or Google Site Search' }, { dir: 'GoogleLogin', descProp: 'googlelogin-desc', description: 'Provides a Special page to allow users to login with their Google accounts' }, { dir: 'GraphViz', descProp: 'graphviz-desc', description: 'Allows embedding Graphviz markup and generates inline images' }, { dir: 'ImageMap', descProp: 'imagemap_desc', description: 'Allows client-side clickable image maps using  tag' }, { dir: 'InviteSignup', descProp: 'is-desc', description: 'Send email invites' }, { dir: 'Lingo', descProp: 'lingo-desc', description: 'Provides hover-over tool tips on pages from words defined on the $1 page' }, { dir: 'Maps', descProp: 'maps-desc', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.' }, { dir: 'MixedNamespaceSearchSuggestions', descProp: 'mnss-desc', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from' }, { dir: 'MobileFrontend', descProp: 'mobile-frontend-desc', description: 'Mobile Frontend' }, { dir: 'ParserHooks', descProp: 'parserhooks-desc', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion' }, { dir: 'ProofreadPage', descProp: 'proofreadpage_desc', description: 'Allow easy comparison of text to the original scan' }, { dir: 'PubSubHubbub', descProp: 'pubsubhubbub-desc', description: 'Publishes changes to a PubSubHubbub hub' }, { dir: 'Scribunto', descProp: 'scribunto-desc', description: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', descProp: 'sbl-desc', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter' }, { dir: 'SemanticExtraSpecialProperties', descProp: 'sesp-desc', description: 'Adds some extra special properties to all pages' }, { dir: 'SemanticForms', descProp: 'semanticforms-desc', description: 'Forms for adding and editing semantic data' }, { dir: 'SemanticGlossary', descProp: 'semanticglossary-desc', description: 'A glossary extension with a Semantic MediaWiki backend' }, { dir: 'SemanticHighcharts', descProp: 'semantichighcharts-desc', description: 'A SMW result format displaying data with the help of the highcharts library' }, { dir: 'SemanticInterlanguageLinks', descProp: 'sil-desc', description: 'A Semantic MediaWiki extension to create and manage interlanguage links' }, { dir: 'SemanticMaps', descProp: 'semanticmaps-desc', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension' }, { dir: 'SemanticMediaWiki', descProp: 'smw-desc', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)' }, { dir: 'SemanticResultFormats', descProp: 'srf-desc', description: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', descProp: 'semanticsifter-desc', description: 'Allows to sift through semantic data and displays the result in a filterable view' }, { dir: 'SemanticSignup', descProp: 'ses-desc', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time' }, { dir: 'SemanticWatchlist', descProp: 'semanticwatchlist-desc', description: 'Lets users be notified of specific changes to Semantic MediaWiki data' }, { dir: 'SideBarMenu', descProp: 'sidebarmenu-desc', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus' }, { dir: 'SubPageList', descProp: 'spl-desc', description: 'Allows to list and count subpages' }, { dir: 'SwiftMailer', descProp: 'swiftmailer-desc', description: 'Provides SwiftMailer as alternate mailer' }, { dir: 'Translate', i18n: false }, { dir: 'TranslationNotifications', descProp: 'translationnotifications-desc', description: 'Allows translators to sign up for translation notifications' }, { dir: 'UniversalLanguageSelector', descProp: 'uls-desc', description: 'Gives the user several ways to select a language and to adjust language settings' }, { dir: 'UserFunctions', descProp: 'userfunctions-desc', description: 'Enhance parser with user functions' }, { dir: 'Validator', descProp: 'validator-desc', description: 'Declarative parameter processing library' }, { dir: 'WikiEditor', descProp: 'wikieditor-desc', description: 'Provides an extendable wikitext editing interface and many feature-providing modules' }, { dir: 'Wikibase', i18n: false }, { dir: 'WikibaseJavaScriptApi', i18n: false }, { dir: 'WikibaseQuery', descProp: 'wikibasequery-desc', description: 'Adds query capabilities to Wikibase' }, { dir: 'Wikidata', i18n: false }, { dir: 'WikidataQuality', descProp: 'wikidataquality-desc', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.' }, { dir: 'cldr', descProp: 'cldr-desc', description: 'Extension which provides localised language names based on CLDR data' } ] > lo.where(exts, { description: undefined }) [] > lo.where(exts, { description: null }) [] > lo.filter(exts, function(ext) { return !ext.description; }) [ { dir: 'DataTypes', i18n: false }, { dir: 'DonationInterface', i18n: false }, { dir: 'Translate', i18n: false }, { dir: 'Wikibase', i18n: false }, { dir: 'WikibaseJavaScriptApi', i18n: false }, { dir: 'Wikidata', i18n: false } ] > var toUpdate = _ undefined > var ext = toUpdate.shift undefined > ext.dir 'DataTypes' > delete ext.i18n; true > ext.description = 'Collection of data type definitions' 'Collection of data type definitions' > var ext = toUpdate.shift; if ( ext ) { ext.dir; } 'DonationInterface' > ext { dir: 'DonationInterface', i18n: false } > delete ext.i18n; true > "Donation landing page that integrates gateway extensions",SyntaxError: Unexpected token ILLEGAL at Object.exports.createScript (vm.js:44:10) at defaultEval (repl.js:117:23) at bound (domain.js:254:14) at runBound (domain.js:267:12) at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41) at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14 at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17) at process._tickDomainCallback (node.js:381:11) > extensions", > ext.description = "Donation landing page that integrates gateway extensions" 'Donation landing page that integrates gateway extensions' > var ext = toUpdate.shift; if ( ext ) { ext.dir; } 'Translate' > delete ext.i18n; true > ext.description = "Special page for translating MediaWiki and beyond" 'Special page for translating MediaWiki and beyond' > var ext = toUpdate.shift; if ( ext ) { ext.dir; } 'Wikibase' > delete ext.i18n; true > ext.description = "Structured data repository" 'Structured data repository' > var ext = toUpdate.shift; if ( ext ) { ext.dir; } 'WikibaseJavaScriptApi' > delete ext.i18n; true > ext.description = 'Wikibase API client in JavaScript' 'Wikibase API client in JavaScript' > var ext = toUpdate.shift; if ( ext ) { ext.dir; } 'Wikidata' > ext.description = 'Wikidata extensions build' 'Wikidata extensions build' > delete ext.i18n; true > var ext = toUpdate.shift; if ( ext ) { ext.dir; } undefined > exts [ { dir: 'AWS', descProp: 'aws-desc', description: 'Plugin for using Amazon Web Services' }, { dir: 'AbuseFilter', descProp: 'abusefilter-desc', description: 'Applies automatic heuristics to edits' }, { dir: 'ArticleFeedbackv5', descProp: 'articlefeedbackv5-desc', description: 'Article feedback' }, { dir: 'Babel', descProp: 'babel-desc', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates' }, { dir: 'Bootstrap', descProp: 'bootstrap-desc', description: 'Provides the Bootstrap framework in the wiki' }, { dir: 'BounceHandler', descProp: 'bouncehandler-desc', description: 'Helps in handling email bounces for MediaWiki' }, { dir: 'CleanChanges', descProp: 'cleanchanges-desc', description: 'More compact display of the recent changes list' }, { dir: 'CollapsibleVector', descProp: 'collapsiblevector-desc', description: 'Enhances the user interface when using the Vector skin' }, { dir: 'ContentTranslation', descProp: 'cx-desc', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools' }, { dir: 'DataTypes', description: 'Collection of data type definitions' }, { dir: 'DonationInterface', description: 'Donation landing page that integrates gateway extensions' }, { dir: 'EducationProgram', descProp: 'educationprogram-desc', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles' }, { dir: 'Elastica', descProp: 'elastica-desc', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library' }, { dir: 'Flow', descProp: 'flow-desc', description: 'Workflow management system' }, { dir: 'GitHub', descProp: 'github-desc', description: 'Allows embedding the contents of files from GitHub' }, { dir: 'GoogleCustomWikiSearch', descProp: 'gcws-desc', description: 'Allows integration with Google Custom Search or Google Site Search' }, { dir: 'GoogleLogin', descProp: 'googlelogin-desc', description: 'Provides a Special page to allow users to login with their Google accounts' }, { dir: 'GraphViz', descProp: 'graphviz-desc', description: 'Allows embedding Graphviz markup and generates inline images' }, { dir: 'ImageMap', descProp: 'imagemap_desc', description: 'Allows client-side clickable image maps using  tag' }, { dir: 'InviteSignup', descProp: 'is-desc', description: 'Send email invites' }, { dir: 'Lingo', descProp: 'lingo-desc', description: 'Provides hover-over tool tips on pages from words defined on the $1 page' }, { dir: 'Maps', descProp: 'maps-desc', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.' }, { dir: 'MixedNamespaceSearchSuggestions', descProp: 'mnss-desc', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from' }, { dir: 'MobileFrontend', descProp: 'mobile-frontend-desc', description: 'Mobile Frontend' }, { dir: 'ParserHooks', descProp: 'parserhooks-desc', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion' }, { dir: 'ProofreadPage', descProp: 'proofreadpage_desc', description: 'Allow easy comparison of text to the original scan' }, { dir: 'PubSubHubbub', descProp: 'pubsubhubbub-desc', description: 'Publishes changes to a PubSubHubbub hub' }, { dir: 'Scribunto', descProp: 'scribunto-desc', description: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', descProp: 'sbl-desc', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter' }, { dir: 'SemanticExtraSpecialProperties', descProp: 'sesp-desc', description: 'Adds some extra special properties to all pages' }, { dir: 'SemanticForms', descProp: 'semanticforms-desc', description: 'Forms for adding and editing semantic data' }, { dir: 'SemanticGlossary', descProp: 'semanticglossary-desc', description: 'A glossary extension with a Semantic MediaWiki backend' }, { dir: 'SemanticHighcharts', descProp: 'semantichighcharts-desc', description: 'A SMW result format displaying data with the help of the highcharts library' }, { dir: 'SemanticInterlanguageLinks', descProp: 'sil-desc', description: 'A Semantic MediaWiki extension to create and manage interlanguage links' }, { dir: 'SemanticMaps', descProp: 'semanticmaps-desc', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension' }, { dir: 'SemanticMediaWiki', descProp: 'smw-desc', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)' }, { dir: 'SemanticResultFormats', descProp: 'srf-desc', description: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', descProp: 'semanticsifter-desc', description: 'Allows to sift through semantic data and displays the result in a filterable view' }, { dir: 'SemanticSignup', descProp: 'ses-desc', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time' }, { dir: 'SemanticWatchlist', descProp: 'semanticwatchlist-desc', description: 'Lets users be notified of specific changes to Semantic MediaWiki data' }, { dir: 'SideBarMenu', descProp: 'sidebarmenu-desc', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus' }, { dir: 'SubPageList', descProp: 'spl-desc', description: 'Allows to list and count subpages' }, { dir: 'SwiftMailer', descProp: 'swiftmailer-desc', description: 'Provides SwiftMailer as alternate mailer' }, { dir: 'Translate', description: 'Special page for translating MediaWiki and beyond' }, { dir: 'TranslationNotifications', descProp: 'translationnotifications-desc', description: 'Allows translators to sign up for translation notifications' }, { dir: 'UniversalLanguageSelector', descProp: 'uls-desc', description: 'Gives the user several ways to select a language and to adjust language settings' }, { dir: 'UserFunctions', descProp: 'userfunctions-desc', description: 'Enhance parser with user functions' }, { dir: 'Validator', descProp: 'validator-desc', description: 'Declarative parameter processing library' }, { dir: 'WikiEditor', descProp: 'wikieditor-desc', description: 'Provides an extendable wikitext editing interface and many feature-providing modules' }, { dir: 'Wikibase', description: 'Structured data repository' }, { dir: 'WikibaseJavaScriptApi', description: 'Wikibase API client in JavaScript' }, { dir: 'WikibaseQuery', descProp: 'wikibasequery-desc', description: 'Adds query capabilities to Wikibase' }, { dir: 'Wikidata', description: 'Wikidata extensions build' }, { dir: 'WikidataQuality', descProp: 'wikidataquality-desc', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.' }, { dir: 'cldr', descProp: 'cldr-desc', description: 'Extension which provides localised language names based on CLDR data' } ] > lo.each(exts, function(ext) { delete ext.descProp; }) [ { dir: 'AWS', description: 'Plugin for using Amazon Web Services' }, { dir: 'AbuseFilter', description: 'Applies automatic heuristics to edits' }, { dir: 'ArticleFeedbackv5', description: 'Article feedback' }, { dir: 'Babel', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates' }, { dir: 'Bootstrap', description: 'Provides the Bootstrap framework in the wiki' }, { dir: 'BounceHandler', description: 'Helps in handling email bounces for MediaWiki' }, { dir: 'CleanChanges', description: 'More compact display of the recent changes list' }, { dir: 'CollapsibleVector', description: 'Enhances the user interface when using the Vector skin' }, { dir: 'ContentTranslation', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools' }, { dir: 'DataTypes', description: 'Collection of data type definitions' }, { dir: 'DonationInterface', description: 'Donation landing page that integrates gateway extensions' }, { dir: 'EducationProgram', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles' }, { dir: 'Elastica', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library' }, { dir: 'Flow', description: 'Workflow management system' }, { dir: 'GitHub', description: 'Allows embedding the contents of files from GitHub' }, { dir: 'GoogleCustomWikiSearch', description: 'Allows integration with Google Custom Search or Google Site Search' }, { dir: 'GoogleLogin', description: 'Provides a Special page to allow users to login with their Google accounts' }, { dir: 'GraphViz', description: 'Allows embedding Graphviz markup and generates inline images' }, { dir: 'ImageMap', description: 'Allows client-side clickable image maps using  tag' }, { dir: 'InviteSignup', description: 'Send email invites' }, { dir: 'Lingo', description: 'Provides hover-over tool tips on pages from words defined on the $1 page' }, { dir: 'Maps', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.' }, { dir: 'MixedNamespaceSearchSuggestions', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from' }, { dir: 'MobileFrontend', description: 'Mobile Frontend' }, { dir: 'ParserHooks', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion' }, { dir: 'ProofreadPage', description: 'Allow easy comparison of text to the original scan' }, { dir: 'PubSubHubbub', description: 'Publishes changes to a PubSubHubbub hub' }, { dir: 'Scribunto', description: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter' }, { dir: 'SemanticExtraSpecialProperties', description: 'Adds some extra special properties to all pages' }, { dir: 'SemanticForms', description: 'Forms for adding and editing semantic data' }, { dir: 'SemanticGlossary', description: 'A glossary extension with a Semantic MediaWiki backend' }, { dir: 'SemanticHighcharts', description: 'A SMW result format displaying data with the help of the highcharts library' }, { dir: 'SemanticInterlanguageLinks', description: 'A Semantic MediaWiki extension to create and manage interlanguage links' }, { dir: 'SemanticMaps', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension' }, { dir: 'SemanticMediaWiki', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)' }, { dir: 'SemanticResultFormats', description: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', description: 'Allows to sift through semantic data and displays the result in a filterable view' }, { dir: 'SemanticSignup', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time' }, { dir: 'SemanticWatchlist', description: 'Lets users be notified of specific changes to Semantic MediaWiki data' }, { dir: 'SideBarMenu', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus' }, { dir: 'SubPageList', description: 'Allows to list and count subpages' }, { dir: 'SwiftMailer', description: 'Provides SwiftMailer as alternate mailer' }, { dir: 'Translate', description: 'Special page for translating MediaWiki and beyond' }, { dir: 'TranslationNotifications', description: 'Allows translators to sign up for translation notifications' }, { dir: 'UniversalLanguageSelector', description: 'Gives the user several ways to select a language and to adjust language settings' }, { dir: 'UserFunctions', description: 'Enhance parser with user functions' }, { dir: 'Validator', description: 'Declarative parameter processing library' }, { dir: 'WikiEditor', description: 'Provides an extendable wikitext editing interface and many feature-providing modules' }, { dir: 'Wikibase', description: 'Structured data repository' }, { dir: 'WikibaseJavaScriptApi', description: 'Wikibase API client in JavaScript' }, { dir: 'WikibaseQuery', description: 'Adds query capabilities to Wikibase' }, { dir: 'Wikidata', description: 'Wikidata extensions build' }, { dir: 'WikidataQuality', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.' }, { dir: 'cldr', description: 'Extension which provides localised language names based on CLDR data' } ] > Promise.all(exts).map(function(ext) { return fs.readF fs.readFile          fs.readFileAsync      fs.readFileSync       fs.readFileSyncAsync

> Promise.all(exts).map(function(ext) { return fs.readFile fs.readFile          fs.readFileAsync      fs.readFileSync       fs.readFileSyncAsync

> Promise.all(exts).map(function(ext) { return fs.readFileAsync(path.join(ext.dir, 'composer.json').then(JSON.parse); }, {concurency: 10}) SyntaxError: Unexpected token ;   at Object.exports.createScript (vm.js:44:10)    at defaultEval (repl.js:117:23)    at bound (domain.js:254:14)    at runBound (domain.js:267:12)    at Promise.apply (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1122:26)    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:752:41)    at /usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:1337:14    at flush (/usr/local/lib/node_modules/repl-promised/node_modules/q/q.js:108:17)    at process._tickDomainCallback (node.js:381:11) > Promise.all(exts).map(function(ext) { return fs.readFileAsync(path.join(ext.dir, 'composer.json'), 'utf8').then(JSON.parse); }, {concurency: 10}); <...cut...> > Promise.all(exts).map(function(ext) { return fs.readFileAsync(path.join(ext.dir, 'composer.json'), 'utf8').then(JSON.parse).get('description'); }, {concurency: 10}); [ 'Use Amazon Web Services as a MediaWiki backend', 'The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.', 'The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.', 'Users can easily indicate their language proficiency on their user page', 'Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions', 'MediaWiki extension to process emails that bounce using VERP', 'More compact display of recent changes lists', 'Improves on the user interface elements of the Vector skin', 'Allows editors to translate an article from one language to another with the help of translation tools.', 'PHP library defining the DataTypes\\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".', 'Wikimedia Foundation payment processing library', 'Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors', 'Provides the elastica library and a connection layer as a MediaWiki extension', 'Discussion and collaboration system extension for MediaWiki', 'Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories', 'Allow MediaWiki integration with Google Custom Search', 'Allow users to login to MediaWiki with their Google Account', 'Online DOT graph renderer and message sequence chart renderer', 'Allows clickable HTML image maps', 'Invite users to sign up', 'Provides hover-over tool tips on wiki pages from terms defined on a wiki page', 'Adds various mapping features to MediaWiki', 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.', 'Provides a mobile-friendly view to MediaWiki', 'Adds a OOP and declarative parser hook interface on top of MediaWiki', 'The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.', 'Allows publishing changes to a PubSubHubbub hub', 'Framework for embedding scripting languages into MediaWiki pages', 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.', 'Provides extra special properties for Semantic MediaWiki', 'An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.', 'A terminology markup extension with a Semantic MediaWiki back-end', 'Adds the \'highcharts\' result format to SMW', 'A Semantic Mediawiki extension to create and manage interlanguage links.', 'Adds geographic capabilities to Semantic MediaWiki', 'MediaWiki extension that lets you store and query structured data within wiki pages', 'Additional result formats for Semantic MediaWiki queries', 'The SemanticSifter extension queries a set of pages and displays the result in a filterable view.', 'A Semantic Mediawiki extension to support user registration semantically.', 'A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.', 'Allows for a simple sidebar menu which supports infinite number of sub-menus.', 'SubPageList is a lightweight extension to display lists of subpages', 'SwiftMailer library for Mediawiki extension SwiftMailer', 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software', 'Manage communication with translators', 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.', 'Enhance parser with user functions', 'MediaWiki wrapper for the ParamProcessor library', 'WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.', 'Structured data repository for MediaWiki', 'Wikibase API client in JavaScript', 'Extension to Wikibase Repo that adds the ability to define and execute queries', 'Wikidata build, including related components used for wikidata.org.', 'Extension for Wikibase to improve the data quality.', 'CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data' ] > Promise.all(exts).map(function(ext) { return fs.readFileAsync(path.join(ext.dir, 'composer.json'), 'utf8').then(JSON.parse).get('description').then(function(description) { ext.composerDescription = description; }, {concurency: 10}); ... > Promise.all(exts).map(function(ext) { return fs.readFileAsync(path.join(ext.dir, 'composer.json'), 'utf8').then(JSON.parse).get('description').then(function(description) { ext.composerDescription = description; }) }, {concurency: 10});

undefined > jij[ undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined ] > jij > exts [ { dir: 'AWS', description: 'Plugin for using Amazon Web Services', composerDescription: 'Use Amazon Web Services as a MediaWiki backend' }, { dir: 'AbuseFilter', description: 'Applies automatic heuristics to edits', composerDescription: 'The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.' }, { dir: 'ArticleFeedbackv5', description: 'Article feedback', composerDescription: 'The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.' }, { dir: 'Babel', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates', composerDescription: 'Users can easily indicate their language proficiency on their user page' }, { dir: 'Bootstrap', description: 'Provides the Bootstrap framework in the wiki', composerDescription: 'Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions' }, { dir: 'BounceHandler', description: 'Helps in handling email bounces for MediaWiki', composerDescription: 'MediaWiki extension to process emails that bounce using VERP' }, { dir: 'CleanChanges', description: 'More compact display of the recent changes list', composerDescription: 'More compact display of recent changes lists' }, { dir: 'CollapsibleVector', description: 'Enhances the user interface when using the Vector skin', composerDescription: 'Improves on the user interface elements of the Vector skin' }, { dir: 'ContentTranslation', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools', composerDescription: 'Allows editors to translate an article from one language to another with the help of translation tools.' }, { dir: 'DataTypes', description: 'Collection of data type definitions', composerDescription: 'PHP library defining the DataTypes\\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".' }, { dir: 'DonationInterface', description: 'Donation landing page that integrates gateway extensions', composerDescription: 'Wikimedia Foundation payment processing library' }, { dir: 'EducationProgram', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles', composerDescription: 'Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors' }, { dir: 'Elastica', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library', composerDescription: 'Provides the elastica library and a connection layer as a MediaWiki extension' }, { dir: 'Flow', description: 'Workflow management system', composerDescription: 'Discussion and collaboration system extension for MediaWiki' }, { dir: 'GitHub', description: 'Allows embedding the contents of files from GitHub', composerDescription: 'Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories' }, { dir: 'GoogleCustomWikiSearch', description: 'Allows integration with Google Custom Search or Google Site Search', composerDescription: 'Allow MediaWiki integration with Google Custom Search' }, { dir: 'GoogleLogin', description: 'Provides a Special page to allow users to login with their Google accounts', composerDescription: 'Allow users to login to MediaWiki with their Google Account' }, { dir: 'GraphViz', description: 'Allows embedding Graphviz markup and generates inline images', composerDescription: 'Online DOT graph renderer and message sequence chart renderer' }, { dir: 'ImageMap', description: 'Allows client-side clickable image maps using  tag', composerDescription: 'Allows clickable HTML image maps' }, { dir: 'InviteSignup', description: 'Send email invites', composerDescription: 'Invite users to sign up' }, { dir: 'Lingo', description: 'Provides hover-over tool tips on pages from words defined on the $1 page', composerDescription: 'Provides hover-over tool tips on wiki pages from terms defined on a wiki page' }, { dir: 'Maps', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.', composerDescription: 'Adds various mapping features to MediaWiki' }, { dir: 'MixedNamespaceSearchSuggestions', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from', composerDescription: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.' }, { dir: 'MobileFrontend', description: 'Mobile Frontend', composerDescription: 'Provides a mobile-friendly view to MediaWiki' }, { dir: 'ParserHooks', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion', composerDescription: 'Adds a OOP and declarative parser hook interface on top of MediaWiki' }, { dir: 'ProofreadPage', description: 'Allow easy comparison of text to the original scan', composerDescription: 'The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.' }, { dir: 'PubSubHubbub', description: 'Publishes changes to a PubSubHubbub hub', composerDescription: 'Allows publishing changes to a PubSubHubbub hub' }, { dir: 'Scribunto', description: 'Framework for embedding scripting languages into MediaWiki pages', composerDescription: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter', composerDescription: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.' }, { dir: 'SemanticExtraSpecialProperties', description: 'Adds some extra special properties to all pages', composerDescription: 'Provides extra special properties for Semantic MediaWiki' }, { dir: 'SemanticForms', description: 'Forms for adding and editing semantic data', composerDescription: 'An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.' }, { dir: 'SemanticGlossary', description: 'A glossary extension with a Semantic MediaWiki backend', composerDescription: 'A terminology markup extension with a Semantic MediaWiki back-end' }, { dir: 'SemanticHighcharts', description: 'A SMW result format displaying data with the help of the highcharts library', composerDescription: 'Adds the \'highcharts\' result format to SMW' }, { dir: 'SemanticInterlanguageLinks', description: 'A Semantic MediaWiki extension to create and manage interlanguage links', composerDescription: 'A Semantic Mediawiki extension to create and manage interlanguage links.' }, { dir: 'SemanticMaps', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension', composerDescription: 'Adds geographic capabilities to Semantic MediaWiki' }, { dir: 'SemanticMediaWiki', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)', composerDescription: 'MediaWiki extension that lets you store and query structured data within wiki pages' }, { dir: 'SemanticResultFormats', description: 'Additional result formats for Semantic MediaWiki queries', composerDescription: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', description: 'Allows to sift through semantic data and displays the result in a filterable view', composerDescription: 'The SemanticSifter extension queries a set of pages and displays the result in a filterable view.' }, { dir: 'SemanticSignup', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time', composerDescription: 'A Semantic Mediawiki extension to support user registration semantically.' }, { dir: 'SemanticWatchlist', description: 'Lets users be notified of specific changes to Semantic MediaWiki data', composerDescription: 'A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.' }, { dir: 'SideBarMenu', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus', composerDescription: 'Allows for a simple sidebar menu which supports infinite number of sub-menus.' }, { dir: 'SubPageList', description: 'Allows to list and count subpages', composerDescription: 'SubPageList is a lightweight extension to display lists of subpages' }, { dir: 'SwiftMailer', description: 'Provides SwiftMailer as alternate mailer', composerDescription: 'SwiftMailer library for Mediawiki extension SwiftMailer' }, { dir: 'Translate', description: 'Special page for translating MediaWiki and beyond', composerDescription: 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software' }, { dir: 'TranslationNotifications', description: 'Allows translators to sign up for translation notifications', composerDescription: 'Manage communication with translators' }, { dir: 'UniversalLanguageSelector', description: 'Gives the user several ways to select a language and to adjust language settings', composerDescription: 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.' }, { dir: 'UserFunctions', description: 'Enhance parser with user functions', composerDescription: 'Enhance parser with user functions' }, { dir: 'Validator', description: 'Declarative parameter processing library', composerDescription: 'MediaWiki wrapper for the ParamProcessor library' }, { dir: 'WikiEditor', description: 'Provides an extendable wikitext editing interface and many feature-providing modules', composerDescription: 'WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.' }, { dir: 'Wikibase', description: 'Structured data repository', composerDescription: 'Structured data repository for MediaWiki' }, { dir: 'WikibaseJavaScriptApi', description: 'Wikibase API client in JavaScript', composerDescription: 'Wikibase API client in JavaScript' }, { dir: 'WikibaseQuery', description: 'Adds query capabilities to Wikibase', composerDescription: 'Extension to Wikibase Repo that adds the ability to define and execute queries' }, { dir: 'Wikidata', description: 'Wikidata extensions build', composerDescription: 'Wikidata build, including related components used for wikidata.org.' }, { dir: 'WikidataQuality', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.', composerDescription: 'Extension for Wikibase to improve the data quality.' }, { dir: 'cldr', description: 'Extension which provides localised language names based on CLDR data', composerDescription: 'CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data' } ] > lo.each(exts, function(ext) { console.log(ext.dir); console.log(ext.description); console.log(ext.composerDescription); console.log(''); }) AWS Plugin for using Amazon Web Services Use Amazon Web Services as a MediaWiki backend

AbuseFilter Applies automatic heuristics to edits The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.

ArticleFeedbackv5 Article feedback The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.

Babel Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates Users can easily indicate their language proficiency on their user page

Bootstrap Provides the Bootstrap framework in the wiki Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions

BounceHandler Helps in handling email bounces for MediaWiki MediaWiki extension to process emails that bounce using VERP

CleanChanges More compact display of the recent changes list More compact display of recent changes lists

CollapsibleVector Enhances the user interface when using the Vector skin Improves on the user interface elements of the Vector skin

ContentTranslation A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools Allows editors to translate an article from one language to another with the help of translation tools.

DataTypes Collection of data type definitions PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

DonationInterface Donation landing page that integrates gateway extensions Wikimedia Foundation payment processing library

EducationProgram Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors

Elastica Base Elasticsearch functionality for other extensions by providing Elastica library Provides the elastica library and a connection layer as a MediaWiki extension

Flow Workflow management system Discussion and collaboration system extension for MediaWiki

GitHub Allows embedding the contents of files from GitHub Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories

GoogleCustomWikiSearch Allows integration with Google Custom Search or Google Site Search Allow MediaWiki integration with Google Custom Search

GoogleLogin Provides a Special page to allow users to login with their Google accounts Allow users to login to MediaWiki with their Google Account

GraphViz Allows embedding Graphviz markup and generates inline images Online DOT graph renderer and message sequence chart renderer

ImageMap Allows client-side clickable image maps using  tag Allows clickable HTML image maps

InviteSignup Send email invites Invite users to sign up

Lingo Provides hover-over tool tips on pages from words defined on the $1 page Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Maps Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations. Adds various mapping features to MediaWiki

MixedNamespaceSearchSuggestions Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.

MobileFrontend Mobile Frontend Provides a mobile-friendly view to MediaWiki

ParserHooks OOP interface for creating MediaWiki parser hooks in a declarative fashion Adds a OOP and declarative parser hook interface on top of MediaWiki

ProofreadPage Allow easy comparison of text to the original scan The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.

PubSubHubbub Publishes changes to a PubSubHubbub hub Allows publishing changes to a PubSubHubbub hub

Scribunto Framework for embedding scripting languages into MediaWiki pages Framework for embedding scripting languages into MediaWiki pages

SemanticBreadcrumbLinks A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.

SemanticExtraSpecialProperties Adds some extra special properties to all pages Provides extra special properties for Semantic MediaWiki

SemanticForms Forms for adding and editing semantic data An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.

SemanticGlossary A glossary extension with a Semantic MediaWiki backend A terminology markup extension with a Semantic MediaWiki back-end

SemanticHighcharts A SMW result format displaying data with the help of the highcharts library Adds the 'highcharts' result format to SMW

SemanticInterlanguageLinks A Semantic MediaWiki extension to create and manage interlanguage links A Semantic Mediawiki extension to create and manage interlanguage links.

SemanticMaps Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension Adds geographic capabilities to Semantic MediaWiki

SemanticMediaWiki Making your wiki more accessible - for machines and humans (online documentation) MediaWiki extension that lets you store and query structured data within wiki pages

SemanticResultFormats Additional result formats for Semantic MediaWiki queries Additional result formats for Semantic MediaWiki queries

SemanticSifter Allows to sift through semantic data and displays the result in a filterable view The SemanticSifter extension queries a set of pages and displays the result in a filterable view.

SemanticSignup A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time A Semantic Mediawiki extension to support user registration semantically.

SemanticWatchlist Lets users be notified of specific changes to Semantic MediaWiki data A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.

SideBarMenu A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus Allows for a simple sidebar menu which supports infinite number of sub-menus.

SubPageList Allows to list and count subpages SubPageList is a lightweight extension to display lists of subpages

SwiftMailer Provides SwiftMailer as alternate mailer SwiftMailer library for Mediawiki extension SwiftMailer

Translate Special page for translating MediaWiki and beyond The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

TranslationNotifications Allows translators to sign up for translation notifications Manage communication with translators

UniversalLanguageSelector Gives the user several ways to select a language and to adjust language settings The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

UserFunctions Enhance parser with user functions Enhance parser with user functions

Validator Declarative parameter processing library MediaWiki wrapper for the ParamProcessor library

WikiEditor Provides an extendable wikitext editing interface and many feature-providing modules WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.

Wikibase Structured data repository Structured data repository for MediaWiki

WikibaseJavaScriptApi Wikibase API client in JavaScript Wikibase API client in JavaScript

WikibaseQuery Adds query capabilities to Wikibase Extension to Wikibase Repo that adds the ability to define and execute queries

Wikidata Wikidata extensions build Wikidata build, including related components used for wikidata.org.

WikidataQuality Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata. Extension for Wikibase to improve the data quality.

cldr Extension which provides localised language names based on CLDR data CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data

[ { dir: 'AWS', description: 'Plugin for using Amazon Web Services', composerDescription: 'Use Amazon Web Services as a MediaWiki backend' }, { dir: 'AbuseFilter', description: 'Applies automatic heuristics to edits', composerDescription: 'The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.' }, { dir: 'ArticleFeedbackv5', description: 'Article feedback', composerDescription: 'The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.' }, { dir: 'Babel', description: 'Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates', composerDescription: 'Users can easily indicate their language proficiency on their user page' }, { dir: 'Bootstrap', description: 'Provides the Bootstrap framework in the wiki', composerDescription: 'Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions' }, { dir: 'BounceHandler', description: 'Helps in handling email bounces for MediaWiki', composerDescription: 'MediaWiki extension to process emails that bounce using VERP' }, { dir: 'CleanChanges', description: 'More compact display of the recent changes list', composerDescription: 'More compact display of recent changes lists' }, { dir: 'CollapsibleVector', description: 'Enhances the user interface when using the Vector skin', composerDescription: 'Improves on the user interface elements of the Vector skin' }, { dir: 'ContentTranslation', description: 'A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools', composerDescription: 'Allows editors to translate an article from one language to another with the help of translation tools.' }, { dir: 'DataTypes', description: 'Collection of data type definitions', composerDescription: 'PHP library defining the DataTypes\\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".' }, { dir: 'DonationInterface', description: 'Donation landing page that integrates gateway extensions', composerDescription: 'Wikimedia Foundation payment processing library' }, { dir: 'EducationProgram', description: 'Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles', composerDescription: 'Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors' }, { dir: 'Elastica', description: 'Base Elasticsearch functionality for other extensions by providing Elastica library', composerDescription: 'Provides the elastica library and a connection layer as a MediaWiki extension' }, { dir: 'Flow', description: 'Workflow management system', composerDescription: 'Discussion and collaboration system extension for MediaWiki' }, { dir: 'GitHub', description: 'Allows embedding the contents of files from GitHub', composerDescription: 'Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories' }, { dir: 'GoogleCustomWikiSearch', description: 'Allows integration with Google Custom Search or Google Site Search', composerDescription: 'Allow MediaWiki integration with Google Custom Search' }, { dir: 'GoogleLogin', description: 'Provides a Special page to allow users to login with their Google accounts', composerDescription: 'Allow users to login to MediaWiki with their Google Account' }, { dir: 'GraphViz', description: 'Allows embedding Graphviz markup and generates inline images', composerDescription: 'Online DOT graph renderer and message sequence chart renderer' }, { dir: 'ImageMap', description: 'Allows client-side clickable image maps using  tag', composerDescription: 'Allows clickable HTML image maps' }, { dir: 'InviteSignup', description: 'Send email invites', composerDescription: 'Invite users to sign up' }, { dir: 'Lingo', description: 'Provides hover-over tool tips on pages from words defined on the $1 page', composerDescription: 'Provides hover-over tool tips on wiki pages from terms defined on a wiki page' }, { dir: 'Maps', description: 'Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.', composerDescription: 'Adds various mapping features to MediaWiki' }, { dir: 'MixedNamespaceSearchSuggestions', description: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from', composerDescription: 'Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.' }, { dir: 'MobileFrontend', description: 'Mobile Frontend', composerDescription: 'Provides a mobile-friendly view to MediaWiki' }, { dir: 'ParserHooks', description: 'OOP interface for creating MediaWiki parser hooks in a declarative fashion', composerDescription: 'Adds a OOP and declarative parser hook interface on top of MediaWiki' }, { dir: 'ProofreadPage', description: 'Allow easy comparison of text to the original scan', composerDescription: 'The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.' }, { dir: 'PubSubHubbub', description: 'Publishes changes to a PubSubHubbub hub', composerDescription: 'Allows publishing changes to a PubSubHubbub hub' }, { dir: 'Scribunto', description: 'Framework for embedding scripting languages into MediaWiki pages', composerDescription: 'Framework for embedding scripting languages into MediaWiki pages' }, { dir: 'SemanticBreadcrumbLinks', description: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter', composerDescription: 'A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.' }, { dir: 'SemanticExtraSpecialProperties', description: 'Adds some extra special properties to all pages', composerDescription: 'Provides extra special properties for Semantic MediaWiki' }, { dir: 'SemanticForms', description: 'Forms for adding and editing semantic data', composerDescription: 'An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.' }, { dir: 'SemanticGlossary', description: 'A glossary extension with a Semantic MediaWiki backend', composerDescription: 'A terminology markup extension with a Semantic MediaWiki back-end' }, { dir: 'SemanticHighcharts', description: 'A SMW result format displaying data with the help of the highcharts library', composerDescription: 'Adds the \'highcharts\' result format to SMW' }, { dir: 'SemanticInterlanguageLinks', description: 'A Semantic MediaWiki extension to create and manage interlanguage links', composerDescription: 'A Semantic Mediawiki extension to create and manage interlanguage links.' }, { dir: 'SemanticMaps', description: 'Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension', composerDescription: 'Adds geographic capabilities to Semantic MediaWiki' }, { dir: 'SemanticMediaWiki', description: 'Making your wiki more accessible - for machines \'\'and\'\' humans (online documentation)', composerDescription: 'MediaWiki extension that lets you store and query structured data within wiki pages' }, { dir: 'SemanticResultFormats', description: 'Additional result formats for Semantic MediaWiki queries', composerDescription: 'Additional result formats for Semantic MediaWiki queries' }, { dir: 'SemanticSifter', description: 'Allows to sift through semantic data and displays the result in a filterable view', composerDescription: 'The SemanticSifter extension queries a set of pages and displays the result in a filterable view.' }, { dir: 'SemanticSignup', description: 'A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time', composerDescription: 'A Semantic Mediawiki extension to support user registration semantically.' }, { dir: 'SemanticWatchlist', description: 'Lets users be notified of specific changes to Semantic MediaWiki data', composerDescription: 'A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.' }, { dir: 'SideBarMenu', description: 'A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus', composerDescription: 'Allows for a simple sidebar menu which supports infinite number of sub-menus.' }, { dir: 'SubPageList', description: 'Allows to list and count subpages', composerDescription: 'SubPageList is a lightweight extension to display lists of subpages' }, { dir: 'SwiftMailer', description: 'Provides SwiftMailer as alternate mailer', composerDescription: 'SwiftMailer library for Mediawiki extension SwiftMailer' }, { dir: 'Translate', description: 'Special page for translating MediaWiki and beyond', composerDescription: 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software' }, { dir: 'TranslationNotifications', description: 'Allows translators to sign up for translation notifications', composerDescription: 'Manage communication with translators' }, { dir: 'UniversalLanguageSelector', description: 'Gives the user several ways to select a language and to adjust language settings', composerDescription: 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.' }, { dir: 'UserFunctions', description: 'Enhance parser with user functions', composerDescription: 'Enhance parser with user functions' }, { dir: 'Validator', description: 'Declarative parameter processing library', composerDescription: 'MediaWiki wrapper for the ParamProcessor library' }, { dir: 'WikiEditor', description: 'Provides an extendable wikitext editing interface and many feature-providing modules', composerDescription: 'WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.' }, { dir: 'Wikibase', description: 'Structured data repository', composerDescription: 'Structured data repository for MediaWiki' }, { dir: 'WikibaseJavaScriptApi', description: 'Wikibase API client in JavaScript', composerDescription: 'Wikibase API client in JavaScript' }, { dir: 'WikibaseQuery', description: 'Adds query capabilities to Wikibase', composerDescription: 'Extension to Wikibase Repo that adds the ability to define and execute queries' }, { dir: 'Wikidata', description: 'Wikidata extensions build', composerDescription: 'Wikidata build, including related components used for wikidata.org.' }, { dir: 'WikidataQuality', description: 'Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.', composerDescription: 'Extension for Wikibase to improve the data quality.' }, { dir: 'cldr', description: 'Extension which provides localised language names based on CLDR data', composerDescription: 'CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data' } ] > lo.each(exts, function(ext) { console.log(ext.dir); console.log(ext.description); console.log(ext.composerDescription); console.log(); });  AWS Plugin for using Amazon Web Services Use Amazon Web Services as a MediaWiki backend

AbuseFilter Applies automatic heuristics to edits The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.

ArticleFeedbackv5 Article feedback The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.

Babel Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates Users can easily indicate their language proficiency on their user page

Bootstrap Provides the Bootstrap framework in the wiki Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions

BounceHandler Helps in handling email bounces for MediaWiki MediaWiki extension to process emails that bounce using VERP

CleanChanges More compact display of the recent changes list More compact display of recent changes lists

CollapsibleVector Enhances the user interface when using the Vector skin Improves on the user interface elements of the Vector skin

ContentTranslation A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools Allows editors to translate an article from one language to another with the help of translation tools.

DataTypes Collection of data type definitions PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

DonationInterface Donation landing page that integrates gateway extensions Wikimedia Foundation payment processing library

EducationProgram Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors

Elastica Base Elasticsearch functionality for other extensions by providing Elastica library Provides the elastica library and a connection layer as a MediaWiki extension

Flow Workflow management system Discussion and collaboration system extension for MediaWiki

GitHub Allows embedding the contents of files from GitHub Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories

GoogleCustomWikiSearch Allows integration with Google Custom Search or Google Site Search Allow MediaWiki integration with Google Custom Search

GoogleLogin Provides a Special page to allow users to login with their Google accounts Allow users to login to MediaWiki with their Google Account

GraphViz Allows embedding Graphviz markup and generates inline images Online DOT graph renderer and message sequence chart renderer

ImageMap Allows client-side clickable image maps using  tag Allows clickable HTML image maps

InviteSignup Send email invites Invite users to sign up

Lingo Provides hover-over tool tips on pages from words defined on the $1 page Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Maps Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations. Adds various mapping features to MediaWiki

MixedNamespaceSearchSuggestions Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.

MobileFrontend Mobile Frontend Provides a mobile-friendly view to MediaWiki

ParserHooks OOP interface for creating MediaWiki parser hooks in a declarative fashion Adds a OOP and declarative parser hook interface on top of MediaWiki

ProofreadPage Allow easy comparison of text to the original scan The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.

PubSubHubbub Publishes changes to a PubSubHubbub hub Allows publishing changes to a PubSubHubbub hub

Scribunto Framework for embedding scripting languages into MediaWiki pages Framework for embedding scripting languages into MediaWiki pages

SemanticBreadcrumbLinks A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.

SemanticExtraSpecialProperties Adds some extra special properties to all pages Provides extra special properties for Semantic MediaWiki

SemanticForms Forms for adding and editing semantic data An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.

SemanticGlossary A glossary extension with a Semantic MediaWiki backend A terminology markup extension with a Semantic MediaWiki back-end

SemanticHighcharts A SMW result format displaying data with the help of the highcharts library Adds the 'highcharts' result format to SMW

SemanticInterlanguageLinks A Semantic MediaWiki extension to create and manage interlanguage links A Semantic Mediawiki extension to create and manage interlanguage links.

SemanticMaps Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension Adds geographic capabilities to Semantic MediaWiki

SemanticMediaWiki Making your wiki more accessible - for machines and humans (online documentation) MediaWiki extension that lets you store and query structured data within wiki pages

SemanticResultFormats Additional result formats for Semantic MediaWiki queries Additional result formats for Semantic MediaWiki queries

SemanticSifter Allows to sift through semantic data and displays the result in a filterable view The SemanticSifter extension queries a set of pages and displays the result in a filterable view.

SemanticSignup A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time A Semantic Mediawiki extension to support user registration semantically.

SemanticWatchlist Lets users be notified of specific changes to Semantic MediaWiki data A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.

SideBarMenu A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus Allows for a simple sidebar menu which supports infinite number of sub-menus.

SubPageList Allows to list and count subpages SubPageList is a lightweight extension to display lists of subpages

SwiftMailer Provides SwiftMailer as alternate mailer SwiftMailer library for Mediawiki extension SwiftMailer

Translate Special page for translating MediaWiki and beyond The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

TranslationNotifications Allows translators to sign up for translation notifications Manage communication with translators

UniversalLanguageSelector Gives the user several ways to select a language and to adjust language settings The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

UserFunctions Enhance parser with user functions Enhance parser with user functions

Validator Declarative parameter processing library MediaWiki wrapper for the ParamProcessor library

WikiEditor Provides an extendable wikitext editing interface and many feature-providing modules WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.

Wikibase Structured data repository Structured data repository for MediaWiki

WikibaseJavaScriptApi Wikibase API client in JavaScript Wikibase API client in JavaScript

WikibaseQuery Adds query capabilities to Wikibase Extension to Wikibase Repo that adds the ability to define and execute queries

Wikidata Wikidata extensions build Wikidata build, including related components used for wikidata.org.

WikidataQuality Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata. Extension for Wikibase to improve the data quality.

cldr Extension which provides localised language names based on CLDR data CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data

'' > lo.each(exts, function(ext) { console.log('%s: (%s)', ext.dir, ext.description === ext.composerDescription ? 'same' : 'different'); console.log(ext.description); console.log(ext.composerDescription); console.log(); });  AWS: (different) Plugin for using Amazon Web Services Use Amazon Web Services as a MediaWiki backend

AbuseFilter: (different) Applies automatic heuristics to edits The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.

ArticleFeedbackv5: (different) Article feedback The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.

Babel: (different) Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates Users can easily indicate their language proficiency on their user page

Bootstrap: (different) Provides the Bootstrap framework in the wiki Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions

BounceHandler: (different) Helps in handling email bounces for MediaWiki MediaWiki extension to process emails that bounce using VERP

CleanChanges: (different) More compact display of the recent changes list More compact display of recent changes lists

CollapsibleVector: (different) Enhances the user interface when using the Vector skin Improves on the user interface elements of the Vector skin

ContentTranslation: (different) A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools Allows editors to translate an article from one language to another with the help of translation tools.

DataTypes: (different) Collection of data type definitions PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

DonationInterface: (different) Donation landing page that integrates gateway extensions Wikimedia Foundation payment processing library

EducationProgram: (different) Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors

Elastica: (different) Base Elasticsearch functionality for other extensions by providing Elastica library Provides the elastica library and a connection layer as a MediaWiki extension

Flow: (different) Workflow management system Discussion and collaboration system extension for MediaWiki

GitHub: (different) Allows embedding the contents of files from GitHub Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories

GoogleCustomWikiSearch: (different) Allows integration with Google Custom Search or Google Site Search Allow MediaWiki integration with Google Custom Search

GoogleLogin: (different) Provides a Special page to allow users to login with their Google accounts Allow users to login to MediaWiki with their Google Account

GraphViz: (different) Allows embedding Graphviz markup and generates inline images Online DOT graph renderer and message sequence chart renderer

ImageMap: (different) Allows client-side clickable image maps using  tag Allows clickable HTML image maps

InviteSignup: (different) Send email invites Invite users to sign up

Lingo: (different) Provides hover-over tool tips on pages from words defined on the $1 page Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Maps: (different) Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations. Adds various mapping features to MediaWiki

MixedNamespaceSearchSuggestions: (different) Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.

MobileFrontend: (different) Mobile Frontend Provides a mobile-friendly view to MediaWiki

ParserHooks: (different) OOP interface for creating MediaWiki parser hooks in a declarative fashion Adds a OOP and declarative parser hook interface on top of MediaWiki

ProofreadPage: (different) Allow easy comparison of text to the original scan The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.

PubSubHubbub: (different) Publishes changes to a PubSubHubbub hub Allows publishing changes to a PubSubHubbub hub

Scribunto: (same) Framework for embedding scripting languages into MediaWiki pages Framework for embedding scripting languages into MediaWiki pages

SemanticBreadcrumbLinks: (different) A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.

SemanticExtraSpecialProperties: (different) Adds some extra special properties to all pages Provides extra special properties for Semantic MediaWiki

SemanticForms: (different) Forms for adding and editing semantic data An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.

SemanticGlossary: (different) A glossary extension with a Semantic MediaWiki backend A terminology markup extension with a Semantic MediaWiki back-end

SemanticHighcharts: (different) A SMW result format displaying data with the help of the highcharts library Adds the 'highcharts' result format to SMW

SemanticInterlanguageLinks: (different) A Semantic MediaWiki extension to create and manage interlanguage links A Semantic Mediawiki extension to create and manage interlanguage links.

SemanticMaps: (different) Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension Adds geographic capabilities to Semantic MediaWiki

SemanticMediaWiki: (different) Making your wiki more accessible - for machines and humans (online documentation) MediaWiki extension that lets you store and query structured data within wiki pages

SemanticResultFormats: (same) Additional result formats for Semantic MediaWiki queries Additional result formats for Semantic MediaWiki queries

SemanticSifter: (different) Allows to sift through semantic data and displays the result in a filterable view The SemanticSifter extension queries a set of pages and displays the result in a filterable view.

SemanticSignup: (different) A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time A Semantic Mediawiki extension to support user registration semantically.

SemanticWatchlist: (different) Lets users be notified of specific changes to Semantic MediaWiki data A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.

SideBarMenu: (different) A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus Allows for a simple sidebar menu which supports infinite number of sub-menus.

SubPageList: (different) Allows to list and count subpages SubPageList is a lightweight extension to display lists of subpages

SwiftMailer: (different) Provides SwiftMailer as alternate mailer SwiftMailer library for Mediawiki extension SwiftMailer

Translate: (different) Special page for translating MediaWiki and beyond The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

TranslationNotifications: (different) Allows translators to sign up for translation notifications Manage communication with translators

UniversalLanguageSelector: (different) Gives the user several ways to select a language and to adjust language settings The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

UserFunctions: (same) Enhance parser with user functions Enhance parser with user functions

Validator: (different) Declarative parameter processing library MediaWiki wrapper for the ParamProcessor library

WikiEditor: (different) Provides an extendable wikitext editing interface and many feature-providing modules WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.

Wikibase: (different) Structured data repository Structured data repository for MediaWiki

WikibaseJavaScriptApi: (same) Wikibase API client in JavaScript Wikibase API client in JavaScript

WikibaseQuery: (different) Adds query capabilities to Wikibase Extension to Wikibase Repo that adds the ability to define and execute queries

Wikidata: (different) Wikidata extensions build Wikidata build, including related components used for wikidata.org.

WikidataQuality: (different) Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata. Extension for Wikibase to improve the data quality.

cldr: (different) Extension which provides localised language names based on CLDR data CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data

'' > lo.each(exts, function(ext) { console.log('%s: (%s)', ext.dir, ext.description === ext.composerDescription ? 'same' : 'different'); console.log('Extension description:'); console.log(ext.description); console.log(ext.composerDescription); console.log(); });  AWS: (different) Extension description: Plugin for using Amazon Web Services Use Amazon Web Services as a MediaWiki backend

AbuseFilter: (different) Extension description: Applies automatic heuristics to edits The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.

ArticleFeedbackv5: (different) Extension description: Article feedback The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.

Babel: (different) Extension description: Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates Users can easily indicate their language proficiency on their user page

Bootstrap: (different) Extension description: Provides the Bootstrap framework in the wiki Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions

BounceHandler: (different) Extension description: Helps in handling email bounces for MediaWiki MediaWiki extension to process emails that bounce using VERP

CleanChanges: (different) Extension description: More compact display of the recent changes list More compact display of recent changes lists

CollapsibleVector: (different) Extension description: Enhances the user interface when using the Vector skin Improves on the user interface elements of the Vector skin

ContentTranslation: (different) Extension description: A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools Allows editors to translate an article from one language to another with the help of translation tools.

DataTypes: (different) Extension description: Collection of data type definitions PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

DonationInterface: (different) Extension description: Donation landing page that integrates gateway extensions Wikimedia Foundation payment processing library

EducationProgram: (different) Extension description: Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors

Elastica: (different) Extension description: Base Elasticsearch functionality for other extensions by providing Elastica library Provides the elastica library and a connection layer as a MediaWiki extension

Flow: (different) Extension description: Workflow management system Discussion and collaboration system extension for MediaWiki

GitHub: (different) Extension description: Allows embedding the contents of files from GitHub Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories

GoogleCustomWikiSearch: (different) Extension description: Allows integration with Google Custom Search or Google Site Search Allow MediaWiki integration with Google Custom Search

GoogleLogin: (different) Extension description: Provides a Special page to allow users to login with their Google accounts Allow users to login to MediaWiki with their Google Account

GraphViz: (different) Extension description: Allows embedding Graphviz markup and generates inline images Online DOT graph renderer and message sequence chart renderer

ImageMap: (different) Extension description: Allows client-side clickable image maps using  tag Allows clickable HTML image maps

InviteSignup: (different) Extension description: Send email invites Invite users to sign up

Lingo: (different) Extension description: Provides hover-over tool tips on pages from words defined on the $1 page Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Maps: (different) Extension description: Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations. Adds various mapping features to MediaWiki

MixedNamespaceSearchSuggestions: (different) Extension description: Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.

MobileFrontend: (different) Extension description: Mobile Frontend Provides a mobile-friendly view to MediaWiki

ParserHooks: (different) Extension description: OOP interface for creating MediaWiki parser hooks in a declarative fashion Adds a OOP and declarative parser hook interface on top of MediaWiki

ProofreadPage: (different) Extension description: Allow easy comparison of text to the original scan The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.

PubSubHubbub: (different) Extension description: Publishes changes to a PubSubHubbub hub Allows publishing changes to a PubSubHubbub hub

Scribunto: (same) Extension description: Framework for embedding scripting languages into MediaWiki pages Framework for embedding scripting languages into MediaWiki pages

SemanticBreadcrumbLinks: (different) Extension description: A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.

SemanticExtraSpecialProperties: (different) Extension description: Adds some extra special properties to all pages Provides extra special properties for Semantic MediaWiki

SemanticForms: (different) Extension description: Forms for adding and editing semantic data An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.

SemanticGlossary: (different) Extension description: A glossary extension with a Semantic MediaWiki backend A terminology markup extension with a Semantic MediaWiki back-end

SemanticHighcharts: (different) Extension description: A SMW result format displaying data with the help of the highcharts library Adds the 'highcharts' result format to SMW

SemanticInterlanguageLinks: (different) Extension description: A Semantic MediaWiki extension to create and manage interlanguage links A Semantic Mediawiki extension to create and manage interlanguage links.

SemanticMaps: (different) Extension description: Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension Adds geographic capabilities to Semantic MediaWiki

SemanticMediaWiki: (different) Extension description: Making your wiki more accessible - for machines and humans (online documentation) MediaWiki extension that lets you store and query structured data within wiki pages

SemanticResultFormats: (same) Extension description: Additional result formats for Semantic MediaWiki queries Additional result formats for Semantic MediaWiki queries

SemanticSifter: (different) Extension description: Allows to sift through semantic data and displays the result in a filterable view The SemanticSifter extension queries a set of pages and displays the result in a filterable view.

SemanticSignup: (different) Extension description: A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time A Semantic Mediawiki extension to support user registration semantically.

SemanticWatchlist: (different) Extension description: Lets users be notified of specific changes to Semantic MediaWiki data A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.

SideBarMenu: (different) Extension description: A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus Allows for a simple sidebar menu which supports infinite number of sub-menus.

SubPageList: (different) Extension description: Allows to list and count subpages SubPageList is a lightweight extension to display lists of subpages

SwiftMailer: (different) Extension description: Provides SwiftMailer as alternate mailer SwiftMailer library for Mediawiki extension SwiftMailer

Translate: (different) Extension description: Special page for translating MediaWiki and beyond The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

TranslationNotifications: (different) Extension description: Allows translators to sign up for translation notifications Manage communication with translators

UniversalLanguageSelector: (different) Extension description: Gives the user several ways to select a language and to adjust language settings The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

UserFunctions: (same) Extension description: Enhance parser with user functions Enhance parser with user functions

Validator: (different) Extension description: Declarative parameter processing library MediaWiki wrapper for the ParamProcessor library

WikiEditor: (different) Extension description: Provides an extendable wikitext editing interface and many feature-providing modules WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.

Wikibase: (different) Extension description: Structured data repository Structured data repository for MediaWiki

WikibaseJavaScriptApi: (same) Extension description: Wikibase API client in JavaScript Wikibase API client in JavaScript

WikibaseQuery: (different) Extension description: Adds query capabilities to Wikibase Extension to Wikibase Repo that adds the ability to define and execute queries

Wikidata: (different) Extension description: Wikidata extensions build Wikidata build, including related components used for wikidata.org.

WikidataQuality: (different) Extension description: Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata. Extension for Wikibase to improve the data quality.

cldr: (different) Extension description: Extension which provides localised language names based on CLDR data CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data

'' > lo.each(exts, function(ext) { console.log('=== %s: (%s) ===', ext.dir, ext.description === ext.composerDescription ? 'same' : 'different'); console.log("Extension description: "); console.log(ext.description); console.log(); console.log("Composer description: "); console.log(ext.composerDescription); console.log(); }); ''

AWS: (different)
Extension description: Plugin for using Amazon Web Services

Composer description: Use Amazon Web Services as a MediaWiki backend

AbuseFilter: (different)
Extension description: Applies automatic heuristics to edits

Composer description: The AbuseFilter extension allows privileged users to set specific controls on actions by users, such as edits, and create automated reactions for certain behaviors.

ArticleFeedbackv5: (different)
Extension description: Article feedback

Composer description: The Article Feedback Tool, Version 5 is a Wikimedia Foundation project designed to engage readers in the assessment of article quality.

Babel: (different)
Extension description: Adds the  parser function to allow automated generation of a babel userbox column with the ability to include custom templates

Composer description: Users can easily indicate their language proficiency on their user page

Bootstrap: (different)
Extension description: Provides the Bootstrap framework in the wiki

Composer description: Provides the Twitter Bootstrap3 web front-end framework to MediaWiki skins and extensions

BounceHandler: (different)
Extension description: Helps in handling email bounces for MediaWiki

Composer description: MediaWiki extension to process emails that bounce using VERP

CleanChanges: (different)
Extension description: More compact display of the recent changes list

Composer description: More compact display of recent changes lists

CollapsibleVector: (different)
Extension description: Enhances the user interface when using the Vector skin

Composer description: Improves on the user interface elements of the Vector skin

ContentTranslation: (different)
Extension description: A tool that allows editors to translate pages from one language to another with the help of machine translation and other translation tools

Composer description: Allows editors to translate an article from one language to another with the help of translation tools.

DataTypes: (different)
Extension description: Collection of data type definitions

Composer description: PHP library defining the DataTypes\DataType class of which instances represent a type of value, such as "positive integer" or "percentage".

DonationInterface: (different)
Extension description: Donation landing page that integrates gateway extensions

Composer description: Wikimedia Foundation payment processing library

EducationProgram: (different)
Extension description: Facilitates educational programs by adding various interfaces to manage courses, institutions and the various education user roles

Composer description: Facilitates educational programs by adding various interfaces to manage courses, students, institutions, mentors

Elastica: (different)
Extension description: Base Elasticsearch functionality for other extensions by providing Elastica library

Composer description: Provides the elastica library and a connection layer as a MediaWiki extension

Flow: (different)
Extension description: Workflow management system

Composer description: Discussion and collaboration system extension for MediaWiki

GitHub: (different)
Extension description: Allows embedding the contents of files from GitHub

Composer description: Simple MediaWiki extension that allows embedding the content of files hosted in GitHub git repositories

GoogleCustomWikiSearch: (different)
Extension description: Allows integration with Google Custom Search or Google Site Search

Composer description: Allow MediaWiki integration with Google Custom Search

GoogleLogin: (different)
Extension description: Provides a Special page to allow users to login with their Google accounts

Composer description: Allow users to login to MediaWiki with their Google Account

GraphViz: (different)
Extension description: Allows embedding Graphviz markup and generates inline images

Composer description: Online DOT graph renderer and message sequence chart renderer

ImageMap: (different)
Extension description: Allows client-side clickable image maps using  tag

Composer description: Allows clickable HTML image maps

InviteSignup: (different)
Extension description: Send email invites

Composer description: Invite users to sign up

Lingo: (different)
Extension description: Provides hover-over tool tips on pages from words defined on the $1 page

Composer description: Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Maps: (different)
Extension description: Enables embedding of dynamic maps into wiki pages, geocoding of addresses and other geographical operations.

Composer description: Adds various mapping features to MediaWiki

MixedNamespaceSearchSuggestions: (different)
Extension description: Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from

Composer description: Includes suggestions from all content namespaces in the search box, showing from which namespace each suggestion is from.

MobileFrontend: (different)
Extension description: Mobile Frontend

Composer description: Provides a mobile-friendly view to MediaWiki

ParserHooks: (different)
Extension description: OOP interface for creating MediaWiki parser hooks in a declarative fashion

Composer description: Adds a OOP and declarative parser hook interface on top of MediaWiki

ProofreadPage: (different)
Extension description: Allow easy comparison of text to the original scan

Composer description: The ProofreadPage extension adds book proofreading capacity to MediaWiki. It can render a book either as a column of OCR text beside a column of scanned images, or broken into its logical organization (such as chapters or poems) using transclusion.

PubSubHubbub: (different)
Extension description: Publishes changes to a PubSubHubbub hub

Composer description: Allows publishing changes to a PubSubHubbub hub

Scribunto: (same)
Extension description: Framework for embedding scripting languages into MediaWiki pages

Composer description: Framework for embedding scripting languages into MediaWiki pages

SemanticBreadcrumbLinks: (different)
Extension description: A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter

Composer description: A Semantic MediaWiki extension to build breadcrumb links from an attributive property filter.

SemanticExtraSpecialProperties: (different)
Extension description: Adds some extra special properties to all pages

Composer description: Provides extra special properties for Semantic MediaWiki

SemanticForms: (different)
Extension description: Forms for adding and editing semantic data

Composer description: An extension, based around Semantic MediaWiki, that allows users to create forms for adding and editing pages that use templates to store semantic data.

SemanticGlossary: (different)
Extension description: A glossary extension with a Semantic MediaWiki backend

Composer description: A terminology markup extension with a Semantic MediaWiki back-end

SemanticHighcharts: (different)
Extension description: A SMW result format displaying data with the help of the highcharts library

Composer description: Adds the 'highcharts' result format to SMW

SemanticInterlanguageLinks: (different)
Extension description: A Semantic MediaWiki extension to create and manage interlanguage links

Composer description: A Semantic Mediawiki extension to create and manage interlanguage links.

SemanticMaps: (different)
Extension description: Provides the ability to view and edit coordinate data stored with the Semantic MediaWiki extension

Composer description: Adds geographic capabilities to Semantic MediaWiki

SemanticMediaWiki: (different)
Extension description: Making your wiki more accessible - for machines and humans (online documentation)

Composer description: MediaWiki extension that lets you store and query structured data within wiki pages

SemanticResultFormats: (same)
Extension description: Additional result formats for Semantic MediaWiki queries

Composer description: Additional result formats for Semantic MediaWiki queries

SemanticSifter: (different)
Extension description: Allows to sift through semantic data and displays the result in a filterable view

Composer description: The SemanticSifter extension queries a set of pages and displays the result in a filterable view.

SemanticSignup: (different)
Extension description: A MediaWiki extension built on top of Semantic Forms allowing to populate a user page with semantic data at signup time

Composer description: A Semantic Mediawiki extension to support user registration semantically.

SemanticWatchlist: (different)
Extension description: Lets users be notified of specific changes to Semantic MediaWiki data

Composer description: A Semantic MediaWiki extension that allows users to use a watchlist for semantic properties.

SideBarMenu: (different)
Extension description: A simple sidebar menu parser which creates collapsible/expandable menus and sub-menus

Composer description: Allows for a simple sidebar menu which supports infinite number of sub-menus.

SubPageList: (different)
Extension description: Allows to list and count subpages

Composer description: SubPageList is a lightweight extension to display lists of subpages

SwiftMailer: (different)
Extension description: Provides SwiftMailer as alternate mailer

Composer description: SwiftMailer library for Mediawiki extension SwiftMailer

Translate: (different)
Extension description: Special page for translating MediaWiki and beyond

Composer description: The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software

TranslationNotifications: (different)
Extension description: Allows translators to sign up for translation notifications

Composer description: Manage communication with translators

UniversalLanguageSelector: (different)
Extension description: Gives the user several ways to select a language and to adjust language settings

Composer description: The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.

UserFunctions: (same)
Extension description: Enhance parser with user functions

Composer description: Enhance parser with user functions

Validator: (different)
Extension description: Declarative parameter processing library

Composer description: MediaWiki wrapper for the ParamProcessor library

WikiEditor: (different)
Extension description: Provides an extendable wikitext editing interface and many feature-providing modules

Composer description: WikiEditor is an extendable framework with a set of feature-based modules that improve the user experience of editing.

Wikibase: (different)
Extension description: Structured data repository

Composer description: Structured data repository for MediaWiki

WikibaseJavaScriptApi: (same)
Extension description: Wikibase API client in JavaScript

Composer description: Wikibase API client in JavaScript

WikibaseQuery: (different)
Extension description: Adds query capabilities to Wikibase

Composer description: Extension to Wikibase Repo that adds the ability to define and execute queries

Wikidata: (different)
Extension description: Wikidata extensions build

Composer description: Wikidata build, including related components used for wikidata.org.

WikidataQuality: (different)
Extension description: Migrate and improve the usage of constraints by visualizing constraint reports and cross-check data with external databases to ensure the quality of Wikidata.

Composer description: Extension for Wikibase to improve the data quality.

cldr: (different)
Extension description: Extension which provides localised language names based on CLDR data

Composer description: CLDR extension contains local language names for different languages, countries, and currencies extracted from CLDR data

'' >