jenkins-bot has submitted this change and it was merged. Change subject: WikiEditor: Move HTML for dialogs to separate files ......................................................................
WikiEditor: Move HTML for dialogs to separate files Move the HTML for the dialogs to separate template files, using the template mechanism from core. It is still possible to specify the HTML directly as before, to be used in gadgets etc. Change-Id: Ia7ad5aaa9cac429d1c9d706bdf6760e3eda358bc --- M extension.json M modules/jquery.wikiEditor.dialogs.config.js M modules/jquery.wikiEditor.dialogs.js A modules/templates/dialogInsertFile.html A modules/templates/dialogInsertLink.html A modules/templates/dialogInsertReference.html A modules/templates/dialogInsertTable.html A modules/templates/dialogReplace.html 8 files changed, 169 insertions(+), 158 deletions(-) Approvals: Fomafix: Looks good to me, but someone else must approve TheDJ: Looks good to me, approved jenkins-bot: Verified diff --git a/extension.json b/extension.json index 0a397ea..1cb026c 100644 --- a/extension.json +++ b/extension.json @@ -101,7 +101,14 @@ "wikieditor-toolbar-file-format", "wikieditor-toolbar-tool-file-insert", "wikieditor-toolbar-tool-file-cancel" - ] + ], + "templates": { + "dialogInsertFile.html": "templates/dialogInsertFile.html", + "dialogInsertLink.html": "templates/dialogInsertLink.html", + "dialogInsertReference.html": "templates/dialogInsertReference.html", + "dialogInsertTable.html": "templates/dialogInsertTable.html", + "dialogReplace.html": "templates/dialogReplace.html" + } }, "jquery.wikiEditor.preview": { "group": "ext.wikiEditor", diff --git a/modules/jquery.wikiEditor.dialogs.config.js b/modules/jquery.wikiEditor.dialogs.config.js index 3c80637..857828b 100644 --- a/modules/jquery.wikiEditor.dialogs.config.js +++ b/modules/jquery.wikiEditor.dialogs.config.js @@ -95,28 +95,7 @@ 'insert-link': { titleMsg: 'wikieditor-toolbar-tool-link-title', id: 'wikieditor-toolbar-link-dialog', - html: '\ - <fieldset>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-link-int-target" rel="wikieditor-toolbar-tool-link-int-target" id="wikieditor-toolbar-tool-link-int-target-label"></label>\ - <div id="wikieditor-toolbar-link-int-target-status"></div>\ - <input type="text" id="wikieditor-toolbar-link-int-target"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-link-int-text" rel="wikieditor-toolbar-tool-link-int-text"></label>\ - <input type="text" id="wikieditor-toolbar-link-int-text"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <div class="wikieditor-toolbar-floated-field-wrapper">\ - <input type="radio" id="wikieditor-toolbar-link-type-int" name="wikieditor-toolbar-link-type" selected/>\ - <label for="wikieditor-toolbar-link-type-int" rel="wikieditor-toolbar-tool-link-int"></label>\ - </div>\ - <div class="wikieditor-toolbar-floated-field-wrapper">\ - <input type="radio" id="wikieditor-toolbar-link-type-ext" name="wikieditor-toolbar-link-type"/>\ - <label for="wikieditor-toolbar-link-type-ext" rel="wikieditor-toolbar-tool-link-ext"></label>\ - </div>\ - </div>\ - </fieldset>', + htmlTemplate: 'dialogInsertLink.html', init: function () { var api = new mw.Api(); @@ -629,16 +608,7 @@ 'insert-reference': { titleMsg: 'wikieditor-toolbar-tool-reference-title', id: 'wikieditor-toolbar-reference-dialog', - html: '\ - <div class="wikieditor-toolbar-dialog-wrapper">\ - <fieldset><div class="wikieditor-toolbar-table-form">\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-reference-text"\ - rel="wikieditor-toolbar-tool-reference-text"></label>\ - <input type="text" id="wikieditor-toolbar-reference-text"/>\ - </div>\ - </div></fieldset>\ - </div>', + htmlTemplate: 'dialogInsertReference.html', init: function () { // Insert translated strings into labels $( this ).find( '[rel]' ).each( function () { @@ -726,42 +696,7 @@ 'insert-file': { titleMsg: 'wikieditor-toolbar-tool-file-title', id: 'wikieditor-toolbar-file-dialog', - html: '\ - <fieldset>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-file-target" rel="wikieditor-toolbar-file-target" id="wikieditor-toolbar-tool-file-target-label"></label>\ - <input type="text" id="wikieditor-toolbar-file-target"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-file-caption" rel="wikieditor-toolbar-file-caption"></label>\ - <input type="text" id="wikieditor-toolbar-file-caption"/>\ - </div>\ - <div class="wikieditor-toolbar-file-options">\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-file-size" rel="wikieditor-toolbar-file-size"></label><br/>\ - <input type="text" id="wikieditor-toolbar-file-size" size="5"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-file-float" rel="wikieditor-toolbar-file-float"></label><br/>\ - <select type="text" id="wikieditor-toolbar-file-float">\ - <option value="default" selected="selected" rel="wikieditor-toolbar-file-default"></option>\ - <option data-i18n-magic="img_none"></option>\ - <option data-i18n-magic="img_center"></option>\ - <option data-i18n-magic="img_left"></option>\ - <option data-i18n-magic="img_right"></option>\ - </select>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-file-format" rel="wikieditor-toolbar-file-format"></label><br/>\ - <select type="text" id="wikieditor-toolbar-file-format">\ - <option selected="selected" data-i18n-magic="img_thumbnail">thumb</option>\ - <option data-i18n-magic="img_framed"></option>\ - <option data-i18n-magic="img_frameless"></option>\ - <option value="default" rel="wikieditor-toolbar-file-format-none"></option>\ - </select>\ - </div>\ - </div>\ - </fieldset>', + htmlTemplate: 'dialogInsertFile.html', init: function () { var magicWordsI18N = mw.config.get( 'wgWikiEditorMagicWords' ); var defaultMsg = mw.msg( 'wikieditor-toolbar-file-default' ); @@ -875,68 +810,7 @@ 'insert-table': { titleMsg: 'wikieditor-toolbar-tool-table-title', id: 'wikieditor-toolbar-table-dialog', - // FIXME: Localize 'x'? - html: '\ - <div class="wikieditor-toolbar-dialog-wrapper">\ - <fieldset><div class="wikieditor-toolbar-table-form">\ - <div class="wikieditor-toolbar-field-wrapper">\ - <input type="checkbox" id="wikieditor-toolbar-table-dimensions-header" checked/>\ - <label for="wikieditor-toolbar-table-dimensions-header"\ - rel="wikieditor-toolbar-tool-table-dimensions-header"></label>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <input type="checkbox" id="wikieditor-toolbar-table-wikitable" checked/>\ - <label for="wikieditor-toolbar-table-wikitable" rel="wikieditor-toolbar-tool-table-wikitable"></label>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <input type="checkbox" id="wikieditor-toolbar-table-sortable"/>\ - <label for="wikieditor-toolbar-table-sortable" rel="wikieditor-toolbar-tool-table-sortable"></label>\ - </div>\ - <div class="wikieditor-toolbar-table-dimension-fields">\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-table-dimensions-rows"\ - rel="wikieditor-toolbar-tool-table-dimensions-rows"></label><br/>\ - <input type="number" min="1" max="1000" id="wikieditor-toolbar-table-dimensions-rows" size="4"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-table-dimensions-columns"\ - rel="wikieditor-toolbar-tool-table-dimensions-columns"></label><br/>\ - <input type="number" min="1" max="1000" id="wikieditor-toolbar-table-dimensions-columns" size="4"/>\ - </div>\ - </div>\ - </div></fieldset>\ - <div class="wikieditor-toolbar-table-preview-wrapper" >\ - <span rel="wikieditor-toolbar-tool-table-example"></span>\ - <div class="wikieditor-toolbar-table-preview-content">\ - <table id="wikieditor-toolbar-table-preview" class="wikieditor-toolbar-table-preview wikitable">\ - <thead>\ - <tr class="wikieditor-toolbar-table-preview-header">\ - <th rel="wikieditor-toolbar-tool-table-example-header"></th>\ - <th rel="wikieditor-toolbar-tool-table-example-header"></th>\ - <th rel="wikieditor-toolbar-tool-table-example-header"></th>\ - </tr>\ - </thead><tbody>\ - <tr class="wikieditor-toolbar-table-preview-hidden" style="display: none;">\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - </tr><tr>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - </tr><tr>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - </tr><tr>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td>\ - </tr>\ - </tbody>\ - </table>\ - </div>\ - </div></div>', + htmlTemplate: 'dialogInsertTable.html', init: function () { $( this ).find( '[rel]' ).each( function () { $( this ).text( mw.msg( $( this ).attr( 'rel' ) ) ); @@ -1111,31 +985,7 @@ }, titleMsg: 'wikieditor-toolbar-tool-replace-title', id: 'wikieditor-toolbar-replace-dialog', - html: '\ - <div id="wikieditor-toolbar-replace-message">\ - <div id="wikieditor-toolbar-replace-nomatch" rel="wikieditor-toolbar-tool-replace-nomatch"></div>\ - <div id="wikieditor-toolbar-replace-success"></div>\ - <div id="wikieditor-toolbar-replace-emptysearch" rel="wikieditor-toolbar-tool-replace-emptysearch"></div>\ - <div id="wikieditor-toolbar-replace-invalidregex"></div>\ - </div>\ - <fieldset>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-replace-search" rel="wikieditor-toolbar-tool-replace-search"></label>\ - <input type="text" id="wikieditor-toolbar-replace-search"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <label for="wikieditor-toolbar-replace-replace" rel="wikieditor-toolbar-tool-replace-replace"></label>\ - <input type="text" id="wikieditor-toolbar-replace-replace"/>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <input type="checkbox" id="wikieditor-toolbar-replace-case"/>\ - <label for="wikieditor-toolbar-replace-case" rel="wikieditor-toolbar-tool-replace-case"></label>\ - </div>\ - <div class="wikieditor-toolbar-field-wrapper">\ - <input type="checkbox" id="wikieditor-toolbar-replace-regex"/>\ - <label for="wikieditor-toolbar-replace-regex" rel="wikieditor-toolbar-tool-replace-regex"></label>\ - </div>\ - </fieldset>', + htmlTemplate: 'dialogReplace.html', init: function () { $( this ).find( '[rel]' ).each( function () { $( this ).text( mw.msg( $( this ).attr( 'rel' ) ) ); diff --git a/modules/jquery.wikiEditor.dialogs.js b/modules/jquery.wikiEditor.dialogs.js index 907b048..31475ad 100644 --- a/modules/jquery.wikiEditor.dialogs.js +++ b/modules/jquery.wikiEditor.dialogs.js @@ -115,7 +115,7 @@ * @param {String} name Dialog name (key in $.wikiEditor.modules.dialogs.modules) */ reallyCreate: function ( context, module, name ) { - var msg, dialogDiv, + var msg, dialogDiv, $content, configuration = module.dialog; // Add some stuff to configuration configuration.bgiframe = true; @@ -133,10 +133,15 @@ configuration.newButtons[mw.msg( msg )] = configuration.buttons[msg]; } configuration.buttons = configuration.newButtons; + if ( module.htmlTemplate ) { + $content = mw.template.get( 'jquery.wikiEditor.dialogs.config', module.htmlTemplate ).render(); + } else { + $content = $( $.parseHTML( module.html ) ); + } // Create the dialog <div> dialogDiv = $( '<div>' ) .attr( 'id', module.id ) - .html( module.html ) + .append( $content ) .data( 'context', context ) .appendTo( $( 'body' ) ) .each( module.init ) diff --git a/modules/templates/dialogInsertFile.html b/modules/templates/dialogInsertFile.html new file mode 100644 index 0000000..142672d --- /dev/null +++ b/modules/templates/dialogInsertFile.html @@ -0,0 +1,35 @@ +<fieldset> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-file-target" rel="wikieditor-toolbar-file-target" id="wikieditor-toolbar-tool-file-target-label"></label> + <input type="text" id="wikieditor-toolbar-file-target"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-file-caption" rel="wikieditor-toolbar-file-caption"></label> + <input type="text" id="wikieditor-toolbar-file-caption"/> + </div> + <div class="wikieditor-toolbar-file-options"> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-file-size" rel="wikieditor-toolbar-file-size"></label><br/> + <input type="text" id="wikieditor-toolbar-file-size" size="5"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-file-float" rel="wikieditor-toolbar-file-float"></label><br/> + <select type="text" id="wikieditor-toolbar-file-float"> + <option value="default" selected="selected" rel="wikieditor-toolbar-file-default"></option> + <option data-i18n-magic="img_none"></option> + <option data-i18n-magic="img_center"></option> + <option data-i18n-magic="img_left"></option> + <option data-i18n-magic="img_right"></option> + </select> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-file-format" rel="wikieditor-toolbar-file-format"></label><br/> + <select type="text" id="wikieditor-toolbar-file-format"> + <option selected="selected" data-i18n-magic="img_thumbnail">thumb</option> + <option data-i18n-magic="img_framed"></option> + <option data-i18n-magic="img_frameless"></option> + <option value="default" rel="wikieditor-toolbar-file-format-none"></option> + </select> + </div> + </div> +</fieldset> diff --git a/modules/templates/dialogInsertLink.html b/modules/templates/dialogInsertLink.html new file mode 100644 index 0000000..382d9c8 --- /dev/null +++ b/modules/templates/dialogInsertLink.html @@ -0,0 +1,21 @@ +<fieldset> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-link-int-target" rel="wikieditor-toolbar-tool-link-int-target" id="wikieditor-toolbar-tool-link-int-target-label"></label> + <div id="wikieditor-toolbar-link-int-target-status"></div> + <input type="text" id="wikieditor-toolbar-link-int-target"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-link-int-text" rel="wikieditor-toolbar-tool-link-int-text"></label> + <input type="text" id="wikieditor-toolbar-link-int-text"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <div class="wikieditor-toolbar-floated-field-wrapper"> + <input type="radio" id="wikieditor-toolbar-link-type-int" name="wikieditor-toolbar-link-type" selected/> + <label for="wikieditor-toolbar-link-type-int" rel="wikieditor-toolbar-tool-link-int"></label> + </div> + <div class="wikieditor-toolbar-floated-field-wrapper"> + <input type="radio" id="wikieditor-toolbar-link-type-ext" name="wikieditor-toolbar-link-type"/> + <label for="wikieditor-toolbar-link-type-ext" rel="wikieditor-toolbar-tool-link-ext"></label> + </div> + </div> +</fieldset> diff --git a/modules/templates/dialogInsertReference.html b/modules/templates/dialogInsertReference.html new file mode 100644 index 0000000..8842499 --- /dev/null +++ b/modules/templates/dialogInsertReference.html @@ -0,0 +1,9 @@ +<div class="wikieditor-toolbar-dialog-wrapper"> +<fieldset><div class="wikieditor-toolbar-table-form"> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-reference-text" + rel="wikieditor-toolbar-tool-reference-text"></label> + <input type="text" id="wikieditor-toolbar-reference-text"/> + </div> +</div></fieldset> +</div> diff --git a/modules/templates/dialogInsertTable.html b/modules/templates/dialogInsertTable.html new file mode 100644 index 0000000..512b045 --- /dev/null +++ b/modules/templates/dialogInsertTable.html @@ -0,0 +1,60 @@ +<div class="wikieditor-toolbar-dialog-wrapper"> +<fieldset><div class="wikieditor-toolbar-table-form"> + <div class="wikieditor-toolbar-field-wrapper"> + <input type="checkbox" id="wikieditor-toolbar-table-dimensions-header" checked/> + <label for="wikieditor-toolbar-table-dimensions-header" + rel="wikieditor-toolbar-tool-table-dimensions-header"></label> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <input type="checkbox" id="wikieditor-toolbar-table-wikitable" checked/> + <label for="wikieditor-toolbar-table-wikitable" rel="wikieditor-toolbar-tool-table-wikitable"></label> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <input type="checkbox" id="wikieditor-toolbar-table-sortable"/> + <label for="wikieditor-toolbar-table-sortable" rel="wikieditor-toolbar-tool-table-sortable"></label> + </div> + <div class="wikieditor-toolbar-table-dimension-fields"> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-table-dimensions-rows" + rel="wikieditor-toolbar-tool-table-dimensions-rows"></label><br/> + <input type="number" min="1" max="1000" id="wikieditor-toolbar-table-dimensions-rows" size="4"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-table-dimensions-columns" + rel="wikieditor-toolbar-tool-table-dimensions-columns"></label><br/> + <input type="number" min="1" max="1000" id="wikieditor-toolbar-table-dimensions-columns" size="4"/> + </div> + </div> +</div></fieldset> +<div class="wikieditor-toolbar-table-preview-wrapper"> + <span rel="wikieditor-toolbar-tool-table-example"></span> + <div class="wikieditor-toolbar-table-preview-content"> + <table id="wikieditor-toolbar-table-preview" class="wikieditor-toolbar-table-preview wikitable"> + <thead> + <tr class="wikieditor-toolbar-table-preview-header"> + <th rel="wikieditor-toolbar-tool-table-example-header"></th> + <th rel="wikieditor-toolbar-tool-table-example-header"></th> + <th rel="wikieditor-toolbar-tool-table-example-header"></th> + </tr> + </thead><tbody> + <tr class="wikieditor-toolbar-table-preview-hidden" style="display: none;"> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + </tr><tr> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + </tr><tr> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + </tr><tr> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + <td rel="wikieditor-toolbar-tool-table-example-cell-text"></td> + </tr> + </tbody> + </table> + </div> +</div></div> diff --git a/modules/templates/dialogReplace.html b/modules/templates/dialogReplace.html new file mode 100644 index 0000000..55fbef6 --- /dev/null +++ b/modules/templates/dialogReplace.html @@ -0,0 +1,24 @@ +<div id="wikieditor-toolbar-replace-message"> + <div id="wikieditor-toolbar-replace-nomatch" rel="wikieditor-toolbar-tool-replace-nomatch"></div> + <div id="wikieditor-toolbar-replace-success"></div> + <div id="wikieditor-toolbar-replace-emptysearch" rel="wikieditor-toolbar-tool-replace-emptysearch"></div> + <div id="wikieditor-toolbar-replace-invalidregex"></div> +</div> +<fieldset> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-replace-search" rel="wikieditor-toolbar-tool-replace-search"></label> + <input type="text" id="wikieditor-toolbar-replace-search"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <label for="wikieditor-toolbar-replace-replace" rel="wikieditor-toolbar-tool-replace-replace"></label> + <input type="text" id="wikieditor-toolbar-replace-replace"/> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <input type="checkbox" id="wikieditor-toolbar-replace-case"/> + <label for="wikieditor-toolbar-replace-case" rel="wikieditor-toolbar-tool-replace-case"></label> + </div> + <div class="wikieditor-toolbar-field-wrapper"> + <input type="checkbox" id="wikieditor-toolbar-replace-regex"/> + <label for="wikieditor-toolbar-replace-regex" rel="wikieditor-toolbar-tool-replace-regex"></label> + </div> +</fieldset> -- To view, visit https://gerrit.wikimedia.org/r/227187 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia7ad5aaa9cac429d1c9d706bdf6760e3eda358bc Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/WikiEditor Gerrit-Branch: master Gerrit-Owner: Gerrit Patch Uploader <gerritpatchuploa...@gmail.com> Gerrit-Reviewer: Fomafix Gerrit-Reviewer: Gerrit Patch Uploader <gerritpatchuploa...@gmail.com> Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com> Gerrit-Reviewer: Schnark <listenle...@gmail.com> Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits