Spage has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/226258

Change subject: promote BoilerPlate files to top level
......................................................................

promote BoilerPlate files to top level

So BoilerPlate acts like other extensions.
Remove other files (they're still in extension/examples).

Bug: T94279
Change-Id: I8f7b7cb02161bd582a7314040f25583eaafbaee6
---
R .jscsrc
R .jshintrc
R BoilerPlate.hooks.php
R BoilerPlate.i18n.alias.php
R BoilerPlate.php
D ContentAction/ContentAction.php
D ContentAction/i18n/en.json
D DataPages/DataPages.example.php
D DataPages/DataPages.php
D DataPages/XmlContent.php
D DataPages/XmlContentHandler.php
D Example/.jshintrc
D Example/Example.hooks.php
D Example/Example.i18n.alias.php
D Example/Example.i18n.magic.php
D Example/Example.php
D Example/api/ApiQueryExample.php
D Example/i18n/en.json
D Example/i18n/qqq.json
D Example/modules/ext.Example.welcome.css
D Example/modules/ext.Example.welcome.init.js
D Example/modules/ext.Example.welcome.js
D Example/specials/SpecialHelloWorld.php
D Example/sql/add-example_note.sql
R Gruntfile.js
R README
R composer.json
R i18n/ast.json
R i18n/bcl.json
R i18n/be-tarask.json
R i18n/br.json
R i18n/ca.json
R i18n/ce.json
R i18n/da.json
R i18n/de.json
R i18n/dsb.json
R i18n/en-gb.json
R i18n/en.json
R i18n/eo.json
R i18n/es.json
R i18n/fa.json
R i18n/fi.json
R i18n/fo.json
R i18n/fr.json
R i18n/frp.json
R i18n/gl.json
R i18n/he.json
R i18n/hsb.json
R i18n/hu.json
R i18n/ia.json
R i18n/id.json
R i18n/it.json
R i18n/ja.json
R i18n/ko.json
R i18n/ksh.json
R i18n/lb.json
R i18n/map-bms.json
R i18n/mk.json
R i18n/mr.json
R i18n/ms.json
R i18n/mt.json
R i18n/nb.json
R i18n/nl.json
R i18n/oc.json
R i18n/pl.json
R i18n/pms.json
R i18n/ps.json
R i18n/pt-br.json
R i18n/pt.json
R i18n/qqq.json
R i18n/roa-tara.json
R i18n/ru.json
R i18n/si.json
R i18n/sv.json
R i18n/ta.json
R i18n/te.json
R i18n/tl.json
R i18n/uk.json
R i18n/yi.json
R i18n/zh-hans.json
R i18n/zh-hant.json
R modules/ext.BoilerPlate.foo.css
R modules/ext.BoilerPlate.foo.js
R modules/ext.BoilerPlate.js
R package.json
R specials/SpecialHelloWorld.php
86 files changed, 0 insertions(+), 1,031 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BoilerPlate 
refs/changes/58/226258/1

diff --git a/BoilerPlate/.jscsrc b/.jscsrc
similarity index 100%
rename from BoilerPlate/.jscsrc
rename to .jscsrc
diff --git a/BoilerPlate/.jshintrc b/.jshintrc
similarity index 100%
rename from BoilerPlate/.jshintrc
rename to .jshintrc
diff --git a/BoilerPlate/BoilerPlate.hooks.php b/BoilerPlate.hooks.php
similarity index 100%
rename from BoilerPlate/BoilerPlate.hooks.php
rename to BoilerPlate.hooks.php
diff --git a/BoilerPlate/BoilerPlate.i18n.alias.php b/BoilerPlate.i18n.alias.php
similarity index 100%
rename from BoilerPlate/BoilerPlate.i18n.alias.php
rename to BoilerPlate.i18n.alias.php
diff --git a/BoilerPlate/BoilerPlate.php b/BoilerPlate.php
similarity index 100%
rename from BoilerPlate/BoilerPlate.php
rename to BoilerPlate.php
diff --git a/ContentAction/ContentAction.php b/ContentAction/ContentAction.php
deleted file mode 100644
index ee6322b..0000000
--- a/ContentAction/ContentAction.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * An extension that demonstrates how to use the SkinTemplateContentActions
- * hook to add a new content action
- *
- * @author Ævar Arnfjörð Bjarmason <[email protected]>
- * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 
2.0 or later
- */
-
-$wgExtensionCredits['other'][] = array(
-       'path' => __FILE__,
-       'name' => 'Content action hook',
-       'author' => 'Ævar Arnfjörð Bjarmason',
-       'descriptionmsg' => 'contentaction-desc',
-);
-
-$wgHooks['UnknownAction'][] = 'wfAddactActionHook';
-$wgHooks['SkinTemplateNavigation'][] = 'wfAddactionContentHook';
-
-$wgMessagesDirs['ContentAction'] = __DIR__ . '/i18n';
-
-function wfAddActionContentHook( $skin, &$content_actions ) {
-       $action = $skin->getRequest->getText( 'action' );
-
-       if ( $skin->getTitle()->getNamespace() != NS_SPECIAL ) {
-               $content_actions['actions']['myact'] = array(
-                       'class' => $action === 'myact' ? 'selected' : false,
-                       'text' => wfMessage( 'contentaction-myact' )->text(),
-                       'href' => $skin->getTitle()->getLocalUrl( 
'action=myact' )
-               );
-       }
-
-       return true;
-}
-
-function wfAddactActionHook( $action, $article ) {
-       $title = $article->getTitle();
-
-       if ( $action === 'myact' ) {
-               $article->getContext()->getOutput()->addWikiText(
-                       'The page name is ' . $title->getText() . ' and you are 
' . $article->getUserText()
-               );
-               return false;
-       }
-
-       return true;
-}
diff --git a/ContentAction/i18n/en.json b/ContentAction/i18n/en.json
deleted file mode 100644
index 02c1d65..0000000
--- a/ContentAction/i18n/en.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "@metadata": {
-        "authors": []
-    },
-    "contentaction-desc": "Adds a new tab to each page",
-    "contentaction-myact": "My action"
-}
diff --git a/DataPages/DataPages.example.php b/DataPages/DataPages.example.php
deleted file mode 100644
index 189b83e..0000000
--- a/DataPages/DataPages.example.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-//////////////////////////////////////////////////////////////
-// Example settings for activating the DataPages extension
-//////////////////////////////////////////////////////////////
-
-// load the extension
-require_once( $IP . '/extensions/examples/DataPages/DataPages.php' );
-
-// Define a custom namespace for XML.
-// If your extension is going to use an extra namespace,
-// you should list the suggested default at
-// <http://www.mediawiki.org/wiki/Extension_default_namespaces>.
-define( 'NS_XML', 234 );
-define( 'NS_XML_TALK', NS_XML +1 );
-
-$wgExtraNamespaces[ NS_XML ] = 'XML';
-$wgExtraNamespaces[ NS_XML_TALK ] = 'XML_Talk';
-
-// Associate the XML namespace with the XML content model provided by the 
extension.
-// CONTENT_MODEL_XML_DATA is a constant defined in DataPages.php.
-$wgNamespaceContentModels[ NS_XML ] = CONTENT_MODEL_XML_DATA;
\ No newline at end of file
diff --git a/DataPages/DataPages.php b/DataPages/DataPages.php
deleted file mode 100644
index 4371ef9..0000000
--- a/DataPages/DataPages.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Data pages extension, an example for how to use the ContentHandler
- * facility to handle XML content in MediaWiki.
- *
- * See DataPages.example.php for information on what to put into
- * your LocalSettings file.
- *
- * Note that this example represents XML as a string internally.
- * More advanced implementation may want to use a DOM based approach.
- *
- * Please look at XmlContentHandler.php and XmlContent.php to see what
- * can and should be done to support custom data types.
- *
- * @file
- * @ingroup Extensions
- * @author Daniel Kinzler, brightbyte.de
- *
- * @copyright Wikimedia Deutschland e.V., 2013
- * @license GNU General Public Licence 2.0 or later
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
-       echo( "This file is an extension to the MediaWiki software and cannot 
be used on its own.\n" );
-       die( 1 );
-}
-
-if ( version_compare( $wgVersion, '1.21', '<' ) ) {
-       die( "This extension requires MediaWiki 1.21+\n" );
-}
-
-$wgExtensionCredits['other'][] = array(
-       'path' => __FILE__,
-       'name' => 'DataPages',
-       'author' => 'Daniel Kinzler',
-);
-
-$wgAutoloadClasses['XmlContentHandler'] = __DIR__ . '/XmlContentHandler.php';
-$wgAutoloadClasses['XmlContent'] = __DIR__ . '/XmlContent.php';
-
-// Define a constant for the identifier of our custom content model...
-define( 'CONTENT_MODEL_XML_DATA', 'XML_DATA' );
-
-// ...and register a handler for that content model.
-$wgContentHandlers[CONTENT_MODEL_XML_DATA] = 'XmlContentHandler';
-
-// The content model is typically associated with a namespace later,
-// see DataPages.example.php
\ No newline at end of file
diff --git a/DataPages/XmlContent.php b/DataPages/XmlContent.php
deleted file mode 100644
index 532d605..0000000
--- a/DataPages/XmlContent.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
- /**
- *
- * Copyright © 25.05.13 by the authors listed below.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @license GPL 2+
- * @file
- *
- * @author Daniel Kinzler
- */
-
-
-/**
- * Class XmlContent represents XML content.
- *
- * This is based on TextContent, and represents XML as a string.
- *
- * Using a text based content model is the simplest option, since it
- * allows the use of the standard editor and diff code, and does not require
- * serialization/unserialization.
- *
- * However, text based content is "dumb". It means that your code can't make 
use
- * of the XML structure, making it a bit pointless. If you want to use and 
manipulate
- * the XML structure, then it should be represented as a DOM inside the 
XmlContent.
- *
- * In that case, XmlContentHandler::serializeContent()
- * and XmlContentHandler::unserializeContent() would have to be used for
- * serializing resp. parsing the XML DOM.
- *
- * Also, a special editor might be needed to interact with the structure.
- *
- * @package DataPages
- */
-class XmlContent extends \TextContent {
-
-       public function __construct( $text, $model_id = CONTENT_MODEL_XML_DATA 
) {
-               parent::__construct( $text, $model_id );
-       }
-
-       public function getHtml() {
-               // We could put pretty printing and syntax highlighting here.
-               // And maybe throw in some JS for collapsible sections.
-               // For now, let's assume the XML is already pretty.
-
-               $html = htmlspecialchars( $this->getNativeData() );
-               $html = "<pre>" . $html . "</pre>";
-               return $html;
-       }
-
-       public function getParserOutput( Title $title,
-               $revId = null,
-               ParserOptions $options = null, $generateHtml = true
-       ) {
-               // If you want to have more control over parsing than getHtml() 
gives you,
-               // you can control the construction of the ParserOutput object 
and add
-               // meta data like categories, etc. based on the content.
-
-               return parent::getParserOutput( $title, $revId, $options, 
$generateHtml );
-       }
-
-       public function isEmpty() {
-               // Determines whether this content can be considered empty.
-               // For XML, we want to check whether there's any CDATA:
-
-               $text = trim( strip_tags( $this->getNativeData() ) );
-               return $text === '';
-       }
-
-       public function isCountable( $hasLinks = null ) {
-               // Determines whether this content should be counted as a 
"page" for the wiki's statistics.
-               // Here, we require it to be not-empty and not a redirect:
-               return !$this->isEmpty() && !$this->isRedirect();
-       }
-
-       public function prepareSave( WikiPage $page, $flags, $baseRevId, User 
$user ) {
-               // Called before saving an edit.
-               // This is the preferred place for checking constraints, be they
-               // on the content itself, or for global consistency.
-               //
-               // Alternatively, validity can be checked in isValid(), but 
there
-               // we have no way to provide a detailed error report to the 
user.
-               //
-               // NOTE: For checking even on preview, we'd need a custom 
editor.
-               // A nicer way to do this might be added to the ContentHandler 
facility in the future.
-
-               libxml_use_internal_errors ( true );
-               $doc = simplexml_load_string( $this->getNativeData() );
-
-               $errors = libxml_get_errors();
-
-               $status = Status::newGood();
-
-               if ( !$doc || $errors ) {
-                       // construct an informative error message here!
-
-                       $param1 = array_reduce( // fancy way to concatenate the 
messages from LibXMLError objects
-                               $errors,
-                               function ( $msg, $error ) {
-                                       if ( $msg !== '' ) $msg .= '; ';
-                                       $msg .= "line " . $error->line . ": " . 
$error->message;
-                                       return $msg;
-                               },
-                               ''
-                       );
-
-                       // you should use a more meaningful message, if possible
-                       $status->fatal( 'content-failed-to-parse', "XML", "", 
$param1 );
-               }
-
-               return $status;
-       }
-
-       public function isValid() {
-               // This is a last line of defense against storing invalid data.
-               // It can be used to check validity, as an alternative to doing 
so
-               // in prepareSave().
-               //
-               // Checking here has the advantage that this is ALWAYS called 
before
-               // the content is saved to the database, no matter whether the 
content
-               // was edited, imported, restored, or what.
-               //
-               // The downside is that it's too late here for meaningful 
interaction
-               // with the user, we can just abort the save operation, casing 
an internal
-               // error.
-
-               return parent::isValid();
-       }
-
-       public function getTextForSearchIndex() {
-               // Should return text relevant to the wiki's search index, for 
instance by stripping tags:
-               return strip_tags( $this->getNativeData() );
-       }
-
-       public function convert( $toModel, $lossy = '' ) {
-               // Implement conversion to other content models.
-               // Text based models can per default be converted to all other 
text based models.
-
-               return parent::convert( $toModel, $lossy );
-       }
-
-       public function getSection( $sectionId ) {
-               // We could implement sections as XML elements based on their 
id attribute.
-               // If XmlContent was DOM based, that would be nice and easy.
-               return parent::getSection( $sectionId );
-       }
-
-       public function replaceSection( $section, Content $with, $sectionTitle 
= '' ) {
-               // If we want to support sections, we also have to provide a 
way to substitute them,
-               // for section based editing.
-               return parent::replaceSection( $section, $with, $sectionTitle );
-       }
-}
\ No newline at end of file
diff --git a/DataPages/XmlContentHandler.php b/DataPages/XmlContentHandler.php
deleted file mode 100644
index efe3576..0000000
--- a/DataPages/XmlContentHandler.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
- /**
- *
- * Copyright © 25.05.13 by the authors listed below.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @license GPL 2+
- * @file
- *
- * @author Daniel Kinzler
- */
-
-
-/**
- * Class XmlContentHandler represents the set of operations for XMLContent 
that can be
- * performed without the actual content. Most importantly, it acts as a factory
- * and serialization/unserialization service for XmlContent objects.
- *
- * This extends TextContentHandler because XmlContent extends TextContent.
- * Content and ContentHandler implementations are generally paired like this.
- * See the documentation of XmlContent for more information.
- *
- * @package DataPages
- */
-class XmlContentHandler extends \TextContentHandler {
-
-       public function __construct(
-               $modelId = CONTENT_MODEL_XML_DATA,
-               $formats = array( CONTENT_FORMAT_XML )  // XML is supported as 
a serialization format by default
-       ) {
-               parent::__construct( $modelId, $formats );
-       }
-
-       public function serializeContent( Content $content, $format = null ) {
-               // No special logic needed; XmlContent just wraps the raw text.
-               // If XmlContent were DOM-based, we'd serialize the XML DOM 
here.
-               return parent::serializeContent( $content, $format );
-       }
-
-       public function unserializeContent( $text, $format = null ) {
-               // No special logic needed; XmlContent just wraps the raw text.
-               // If XmlContent were DOM-based, we'd parse the XML here.
-               return new XmlContent( $text );
-       }
-
-       public function makeEmptyContent() {
-               return new XmlContent( '' );
-       }
-
-       public function getActionOverrides() {
-               // Add an override for the edit action to specify a custom 
editor
-               // for editing XML. The standard edit page will work as a 
default for
-               // any text-based content.
-               return parent::getActionOverrides();
-       }
-
-       public function createDifferenceEngine( IContextSource $context,
-               $old = 0, $new = 0, $rcid = 0,
-               $refreshCache = false, $unhide = false
-       ) {
-               // We could provide a custom difference engine for creating and
-               // rendering diffs between XML structures.
-               // The default implementation is line-based, which isn't too 
great for XML.
-               return parent::createDifferenceEngine( $context, $old, $new, 
$rcid, $refreshCache, $unhide );
-       }
-
-       public function supportsSections() {
-               // return true if XmlContent implements section-handling
-               return parent::supportsSections();
-       }
-
-       public function supportsRedirects() {
-               // return true if XmlContent supports representing redirects
-               return parent::supportsRedirects();
-       }
-
-       public function merge3( Content $oldContent, Content $myContent, 
Content $yourContent ) {
-               // You could implement smart DOM-based diff/merge here.
-               // The default implementation is line-based, which isn't too 
great for XML.
-               return parent::merge3( $oldContent, $myContent, $yourContent );
-       }
-}
\ No newline at end of file
diff --git a/Example/.jshintrc b/Example/.jshintrc
deleted file mode 100644
index 2ff5525..0000000
--- a/Example/.jshintrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-       // Enforcing
-       "bitwise": true,
-       "eqeqeq": true,
-       "es3": true,
-       "latedef": true,
-       "noarg": true,
-       "nonew": true,
-       "undef": true,
-       "unused": true,
-       "strict": false,
-
-       // Environment
-       "browser": true,
-
-       "globals": {
-               "mediaWiki": false,
-               "jQuery": false
-       }
-}
diff --git a/Example/Example.hooks.php b/Example/Example.hooks.php
deleted file mode 100644
index b7f2b76..0000000
--- a/Example/Example.hooks.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/**
- * Hooks for Example extension
- *
- * @file
- * @ingroup Extensions
- */
-
-class ExampleHooks {
-       /**
-        * Add welcome module to the load queue of all pages
-        */
-       public static function onBeforePageDisplay( OutputPage &$out, Skin 
&$skin ) {
-               global $wgExampleEnableWelcome;
-
-               if ( $wgExampleEnableWelcome ) {
-                       $out->addModules( 'ext.Example.welcome.init' );
-               }
-
-               // Always return true, indicating that parser initialization 
should
-               // continue normally.
-               return true;
-       }
-
-       /**
-        * Expose configuration variables through mw.config in javascript.
-        */
-       public static function onResourceLoaderGetConfigVars( &$vars ) {
-               global $wgExampleEnableWelcome, $wgExampleWelcomeColorDefault, 
$wgExampleWelcomeColorDays;
-
-               if ( $wgExampleEnableWelcome ) {
-                       $vars['wgExampleWelcomeColorDefault'] = 
$wgExampleWelcomeColorDefault;
-                       $vars['wgExampleWelcomeColorDays'] = 
$wgExampleWelcomeColorDays;
-               }
-
-               return true;
-       }
-
-       /**
-        * Register parser hooks
-        * See also http://www.mediawiki.org/wiki/Manual:Parser_functions
-        */
-       public static function onParserFirstCallInit( &$parser ) {
-               // Add the following to a wiki page to see how it works:
-               //  <dump>test</dump>
-               //  <dump foo="bar" baz="quux">test content</dump>
-               $parser->setHook( 'dump' , 'ExampleHooks::parserTagDump' );
-
-               // Add the following to a wiki page to see how it works:
-               //  {{#echo: hello }}
-               $parser->setFunctionHook( 'echo', 
'ExampleHooks::parserFunctionEcho' );
-
-               // Add the following to a wiki page to see how it works:
-               //  {{#showme: hello | hi | there }}
-               $parser->setFunctionHook( 'showme', 
'ExampleHooks::parserFunctionShowme' );
-
-               return true;
-       }
-
-       public static function onRegisterMagicWords( &$magicWordsIds ) {
-               // Add the following to a wiki page to see how it works:
-               //  {{MYWORD}}
-               $magicWordsIds[] = 'myword';
-
-               return true;
-       }
-
-       public static function onParserGetVariableValueSwitch( &$parser, 
&$cache, &$magicWordId, &$ret ) {
-               if ( $magicWordId === 'myword' ) {
-                       // Return value and cache should match. Cache is used 
to save
-                       // additional call when it is used multiple times on a 
page.
-                       $ret = $cache['myword'] = self::parserGetWordMyword();
-               }
-
-               return true;
-       }
-
-       /**
-        * This registers our database schema update(s)
-        */
-       public static function onLoadExtensionSchemaUpdates( $updater ) {
-               $updater->addExtensionTable( 'example_note', __DIR__ . 
'/sql/add-example_note.sql' );
-
-               return true;
-       }
-
-       /**
-        * Parser magic word handler for {{MYWORD}}
-        *
-        * @return string: Wikitext to be rendered in the page.
-        */
-       public static function parserGetWordMyword() {
-               global $wgExampleMyWord;
-
-               return wfEscapeWikiText( $wgExampleMyWord );
-       }
-
-       /**
-        * Parser hook handler for <dump>
-        *
-        * @param string $data: The content of the tag.
-        * @param array $params: The attributes of the tag.
-        * @param Parser $parser: Parser instance available to render
-        *  wikitext into html, or parser methods.
-        * @param PPFrame $frame: Can be used to see what template
-        *  arguments ({{{1}}}) this hook was used with.
-        *
-        * @return string: HTML to insert in the page.
-        */
-       public static function parserTagDump( $data, $attribs, $parser, $frame 
) {
-               $dump =  array(
-                       'content' => $data,
-                       'atributes' => (object)$attribs,
-               );
-
-               // Very important to escape user data with htmlspecialchars() 
to prevent
-               // an XSS security vulnerability.
-               $html = '<pre>Dump Tag: ' . htmlspecialchars( 
FormatJson::encode( $dump, /*prettyPrint=*/true ) ) . '</pre>';
-
-               return $html;
-       }
-
-       /**
-        * Parser function handler for {{#echo: .. }}
-        *
-        * @param Parser $parser
-        * @param string $value
-        *
-        * @return string: HTML to insert in the page.
-        */
-       public static function parserFunctionEcho( $parser, $value ) {
-               return '<pre>Echo Function: ' . htmlspecialchars( $value ) . 
'</pre>';
-       }
-
-       /**
-        * Parser function handler for {{#showme: .. | .. }}
-        *
-        * @param Parser $parser
-        * @param string $arg
-        *
-        * @return string: HTML to insert in the page.
-        */
-       public static function parserFunctionShowme( $parser, $value /* arg2, 
arg3, */ ) {
-               $args = array_slice( func_get_args(), 2 );
-               $showme = array(
-                       'value' => $value,
-                       'arguments' => $args,
-               );
-
-               return '<pre>Showme Function: ' . htmlspecialchars( 
FormatJson::encode( $showme, /*prettyPrint=*/true ) ) . '</pre>';
-       }
-}
diff --git a/Example/Example.i18n.alias.php b/Example/Example.i18n.alias.php
deleted file mode 100644
index a8facd4..0000000
--- a/Example/Example.i18n.alias.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Aliases for special pages of the Example extension
- *
- * @file
- * @ingroup Extensions
- */
-
-$specialPageAliases = array();
-
-/** English (English) */
-$specialPageAliases['en'] = array(
-       'HelloWorld' => array( 'HelloWorld' ),
-);
-
-/** Dutch (Nederlands) */
-$specialPageAliases['nl'] = array(
-       'HelloWorld' => array( 'HalloWereld' ),
-);
diff --git a/Example/Example.i18n.magic.php b/Example/Example.i18n.magic.php
deleted file mode 100644
index ad1a756..0000000
--- a/Example/Example.i18n.magic.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Internationalisation file for magic words in the Example extension
- *
- * @file
- * @ingroup Extensions
- */
-
-$magicWords = array();
-
-/** English (English) */
-$magicWords['en'] = array(
-       'echo' => array( 0, 'echo' ),
-       'showme' => array( 0, 'showme' ),
-       'myword' => array( 0, 'MYWORD' ),
-);
-
-/** Dutch (Nederlands) */
-$magicWords['nl'] = array(
-       'echo' => array( 0, 'echo' ),
-       'showme' => array( 0, 'laatzien' ),
-       'myword' => array( 0, 'MIJNWOORD' ),
-);
diff --git a/Example/Example.php b/Example/Example.php
deleted file mode 100644
index 8dd18f8..0000000
--- a/Example/Example.php
+++ /dev/null
@@ -1,160 +0,0 @@
-<?php
-/**
- * Example extension - based on the BoilerPlate
- *
- * For more info see mediawiki.org/wiki/Extension:Example
- *
- * You should add a brief comment explaining what the file contains and
- * what it is for. MediaWiki core uses the doxygen documentation syntax,
- * you're recommended to use those tags to complement your comment.
- * See the online documentation at:
- * http://www.stack.nl/~dimitri/doxygen/manual.html
- *
- * Here are commonly used tags, most of them are optional, though:
- *
- * First we tag this document block as describing the entire file (as opposed
- * to a variable, class or function):
- * @file
- *
- * We regroup all extensions documentation in the group named "Extensions":
- * @ingroup Extensions
- *
- * The author would let everyone know who wrote the code, if there is more
- * than one author, add multiple author annotations:
- * @author Jane Doe
- * @author George Foo
- *
- * To mention the file version in the documentation:
- * @version 1.0
- *
- * The license governing the extension code:
- * @license GNU General Public Licence 2.0 or later
- */
-
-/**
- * MediaWiki has several global variables which can be reused or even altered
- * by your extension. The very first one is the $wgExtensionCredits which will
- * expose to MediaWiki metadata about your extension. For additional
- * documentation, see its documentation block in includes/DefaultSettings.php
- */
-$wgExtensionCredits['other'][] = array(
-       'path' => __FILE__,
-
-       // Name of your Extension:
-       'name' => 'Example',
-
-       // Sometime other patches contributors and minor authors are not worth
-       // mentionning, you can use the special case '...' to output a localised
-       // message 'and others...'.
-       'author' => array(
-               'Jane Doe',
-               'George Foo',
-               '...'
-       ),
-
-       'version'  => '0.1.0',
-
-       // The extension homepage. www.mediawiki.org will be happy to host
-       // your extension homepage.
-       'url' => 'https://www.mediawiki.org/wiki/Extension:Example',
-
-
-       # Key name of the message containing the description.
-       'descriptionmsg' => 'example-desc',
-);
-
-/* Setup */
-
-// Initialize an easy to use shortcut:
-$dir = dirname( __FILE__ );
-$dirbasename = basename( $dir );
-
-// Register files
-// MediaWiki need to know which PHP files contains your class. It has a
-// registering mecanism to append to the internal autoloader. Simply use
-// $wgAutoLoadClasses as below:
-$wgAutoloadClasses['ExampleHooks'] = $dir . '/Example.hooks.php';
-$wgAutoloadClasses['SpecialHelloWorld'] = $dir . 
'/specials/SpecialHelloWorld.php';
-$wgAutoloadClasses['ApiQueryExample'] = $dir . '/api/ApiQueryExample.php';
-
-$wgMessagesDirs['Example'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['ExampleAlias'] = $dir . '/Example.i18n.alias.php';
-$wgExtensionMessagesFiles['ExampleMagic'] = $dir . '/Example.i18n.magic.php';
-
-$wgAPIListModules['example'] = 'ApiQueryExample';
-
-// Register hooks
-// See also http://www.mediawiki.org/wiki/Manual:Hooks
-$wgHooks['BeforePageDisplay'][] = 'ExampleHooks::onBeforePageDisplay';
-$wgHooks['ResourceLoaderGetConfigVars'][] = 
'ExampleHooks::onResourceLoaderGetConfigVars';
-$wgHooks['ParserFirstCallInit'][] = 'ExampleHooks::onParserFirstCallInit';
-$wgHooks['MagicWordwgVariableIDs'][] = 'ExampleHooks::onRegisterMagicWords';
-$wgHooks['ParserGetVariableValueSwitch'][] = 
'ExampleHooks::onParserGetVariableValueSwitch';
-$wgHooks['LoadExtensionSchemaUpdates'][] = 
'ExampleHooks::onLoadExtensionSchemaUpdates';
-
-// Register special pages
-// See also http://www.mediawiki.org/wiki/Manual:Special_pages
-$wgSpecialPages['HelloWorld'] = 'SpecialHelloWorld';
-
-// Register modules
-// See also http://www.mediawiki.org/wiki/Manual:$wgResourceModules
-// ResourceLoader modules are the de facto standard way to easily
-// load JavaScript and CSS files to the client.
-$wgResourceModules['ext.Example.welcome'] = array(
-       'scripts' => array(
-               'modules/ext.Example.welcome.js',
-       ),
-       'styles' => array(
-               'modules/ext.Example.welcome.css',
-       ),
-       'messages' => array(
-               'example-welcome-title-loggedout',
-               'example-welcome-title-user',
-               'example-welcome-color-label',
-               'example-welcome-color-value',
-       ),
-       'dependencies' => array(
-               'mediawiki.util',
-               'mediawiki.user',
-               'mediawiki.Title',
-       ),
-
-       'localBasePath' => $dir,
-       'remoteExtPath' => 'examples/' . $dirbasename,
-);
-
-$wgResourceModules['ext.Example.welcome.init'] = array(
-       'scripts' => 'modules/ext.Example.welcome.init.js',
-       'dependencies' => array(
-               'ext.Example.welcome',
-       ),
-
-       'localBasePath' => $dir,
-       'remoteExtPath' => 'examples/' . $dirbasename,
-);
-
-/* Configuration */
-
-
-/** Your extension configuration settings. Since they are going to be global
- * always use a "wg" prefix + your extension name + your setting key.
- * The entire variable name should use "lowerCamelCase".
- */
-
-// Enable Welcome
-// Example of a configuration setting to enable the 'Welcome' feature:
-$wgExampleEnableWelcome = true;
-
-// Color map for the Welcome feature
-$wgExampleWelcomeColorDefault = '#eee';
-// Days not defined here fall back to the default
-$wgExampleWelcomeColorDays = array(
-       'Monday' => 'orange',
-       'Tuesday' => 'blue',
-       'Wednesday' => 'green',
-       'Thursday' => 'red',
-       'Friday' => 'yellow',
-);
-
-// Value of {{MYWORD}} constant
-$wgExampleMyWord = 'Awesome';
diff --git a/Example/api/ApiQueryExample.php b/Example/api/ApiQueryExample.php
deleted file mode 100644
index 47e5969..0000000
--- a/Example/api/ApiQueryExample.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-class ApiQueryExample extends ApiQueryBase {
-
-       /**
-        * Constructor is optional. Only needed if we give
-        * this module properties a prefix (in this case we're using
-        * "ex" as the prefix for the module's properties.
-        * Query modules have the convention to use a property prefix.
-        * Base modules generally don't use a prefix, and as such don't
-        * need the constructor in most cases.
-        */
-       public function __construct( $query, $moduleName ) {
-               parent::__construct( $query, $moduleName, 'ex' );
-       }
-
-       /**
-        * In this example we're returning one ore more properties
-        * of wgExampleFooStuff. In a more realistic example, this
-        * method would probably
-        */
-       public function execute() {
-               global $wgExampleFooStuff;
-               $params = $this->extractRequestParams();
-
-               $stuff = array();
-
-               // This is a filtered request, only show this key if it exists,
-               // (or none, if it doesn't exist)
-               if ( isset( $params['key'] ) ) {
-                       $key = $params['key'];
-                       if ( isset( $wgExampleFooStuff[$key] ) ) {
-                               $stuff[$key] = $wgExampleFooStuff[$key];
-                       }
-
-               // This is an unfiltered request, replace the array with the 
total
-               // set of properties instead.
-               } else {
-                       $stuff = $wgExampleFooStuff;
-               }
-
-               $r = array( 'stuff' => $stuff );
-               $this->getResult()->addValue( null, $this->getModuleName(), $r 
);
-       }
-
-       public function getAllowedParams() {
-               return array(
-                       'key' => array(
-                               ApiBase::PARAM_TYPE => 'string',
-                       ),
-               );
-       }
-
-       protected function getExamplesMessages() {
-               return array(
-                       'action=query&list=example'
-                               => 'apihelp-query+example-example-1',
-                       'action=query&list=example&key=do'
-                               => 'apihelp-query+example-example-2',
-               );
-       }
-}
diff --git a/Example/i18n/en.json b/Example/i18n/en.json
deleted file mode 100644
index e4d8022..0000000
--- a/Example/i18n/en.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-    "@metadata": {
-        "authors": []
-    },
-    "example-desc": "This is an example extension using the BoilerPlate.",
-    "example-welcome-title-user": "Howdy, $1!",
-    "example-welcome-title-loggedout": "Hi there!",
-    "example-welcome-color-label": "Today's color:",
-    "example-welcome-color-value": "$1",
-    "example-helloworld": "Bar",
-    "example-helloworld-intro": "This is the HelloWorld special page, as 
provided by the Example extension.",
-    "apihelp-query+example-description": "Get information about foo.",
-    "apihelp-query+example-param-key": "Reduce the result to only one of the 
foo properties.",
-    "apihelp-query+example-example-1": "Get all the information about foo.",
-    "apihelp-query+example-example-2": "Get only information for the key 
\"do\""
-}
diff --git a/Example/i18n/qqq.json b/Example/i18n/qqq.json
deleted file mode 100644
index e2cc6d9..0000000
--- a/Example/i18n/qqq.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-    "@metadata": {
-        "authors": []
-    },
-    "example-desc": "{{desc}}",
-    "example-welcome-title-user": "Title of the Welcome interface for 
logged-in users. $1 is the username.",
-    "example-welcome-title-loggedout": "Title of the Welcome interface 
logged-out users.",
-    "example-helloworld": "Title of Special:HelloWorld.",
-    "example-helloworld-intro": "Intro paragraph shown on Special:HelloWorld.",
-    "apihelp-query+example-description": 
"{{doc-apihelp-description|query+example}}",
-    "apihelp-query+example-param-key": 
"{{doc-apihelp-param|query+example|key}}",
-    "apihelp-query+example-example-1": "{{doc-apihelp-example|query+example}}",
-    "apihelp-query+example-example-2": "{{doc-apihelp-example|query+example}}"
-}
diff --git a/Example/modules/ext.Example.welcome.css 
b/Example/modules/ext.Example.welcome.css
deleted file mode 100644
index 1150543..0000000
--- a/Example/modules/ext.Example.welcome.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Stylesheet for Example's Welcome feature.
- */
-
-.mw-example-welcome {
-       display: block;
-       background-color: #f9f9f9;
-       border: 1px solid #eee;
-       padding: 0.5em 0.7em;
-       margin: 1em 0;
-       overflow: hidden;
-}
-
-.mw-example-welcome-color {
-       float: right;
-       padding: 0.5em 0.7em;
-       background: white;
-       border: 5px solid transparent;
-       text-align: center;
-}
-
-.mw-example-welcome-color-code {
-       font-size: large;
-}
diff --git a/Example/modules/ext.Example.welcome.init.js 
b/Example/modules/ext.Example.welcome.init.js
deleted file mode 100644
index 6ade70c..0000000
--- a/Example/modules/ext.Example.welcome.init.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Initialize Welcome
- *
- * This file is part of the 'ext.Example.welcome.init' module,
- * which is enqueued for loading from ExampleHooks::onBeforePageDisplay()
- * in Example.hooks.php.
- */
-( function ( mw, $ ) {
-
-       // Let jQuery invoke the init method as soon as the document is ready
-       // $(..) is short for $(document).ready(..).
-       // See also api.jquery.com/jQuery and api.jquery.com/ready
-       $( mw.libs.welcome.init );
-
-}( mediaWiki, jQuery ) );
diff --git a/Example/modules/ext.Example.welcome.js 
b/Example/modules/ext.Example.welcome.js
deleted file mode 100644
index 09e9c8d..0000000
--- a/Example/modules/ext.Example.welcome.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * JavaScript for Welcome in Example.
- * Inserts a welcome message into the page content.
- */
-( function ( mw, $ ) {
-       var welcome, dayMap;
-
-       /**
-        * Local cache of mapping date day indices to day names in English.
-        * Note that the range is 0-6, where 0 = Sunday.
-        * See also 
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getDay
-        */
-       dayMap = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 
'Friday', 'Saturday'];
-
-       welcome = {
-               init: function () {
-                       var $box, dNow, color;
-
-                       $box = $( '<div class="mw-example-welcome"></div>' 
).append(
-                               $( '<h4>', {
-                                       text: mw.user.isAnon() ?
-                                               mw.msg( 
'example-welcome-title-loggedout') :
-                                               mw.msg( 
'example-welcome-title-user', mw.user.getName() )
-                               } )
-                       );
-
-                       // Get the current date and the associated color for 
that date's day
-                       dNow = new Date();
-                       color = welcome.getColorByDate( dNow );
-
-                       // Append the message about today's color, and the 
color icon itself.
-                       $box.prepend(
-                               $( '<div>' )
-                                       .addClass( 'mw-example-welcome-color' )
-                                       .css( 'borderColor', color )
-                                       .prepend(
-                                               $( '<h5>' ).text( mw.msg( 
'example-welcome-color-label' ) )
-                                       )
-                                       .append(
-                                               $( '<code>' )
-                                                       .addClass( 
'mw-example-welcome-color-code' )
-                                                       .text( mw.msg( 
'example-welcome-color-value', color ) )
-                                       )
-                       );
-
-                       $( '#content' ).append( $box );
-               },
-
-               /**
-                * Get the color associated with the given date's day.
-                * If no color is assigned to this day, the default will be 
used instead.
-                *
-                * @param Date d: Instance of Date to use to get the correct 
color.
-                */
-               getColorByDate: function ( d ) {
-                       var days, day;
-
-                       day = dayMap[d.getDay()];
-                       days = mw.config.get( 'wgExampleWelcomeColorDays' );
-
-                       if ( day && days[day] !== undefined ) {
-                               return days[day];
-                       }
-
-                       return mw.config.get( 'wgExampleWelcomeColorDefault' );
-               }
-       };
-
-       mw.libs.welcome = welcome;
-
-}( mediaWiki, jQuery ) );
diff --git a/Example/specials/SpecialHelloWorld.php 
b/Example/specials/SpecialHelloWorld.php
deleted file mode 100644
index db56abb..0000000
--- a/Example/specials/SpecialHelloWorld.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/**
- * HelloWorld SpecialPage for Example extension
- *
- * @file
- * @ingroup Extensions
- */
-
-class SpecialHelloWorld extends SpecialPage {
-
-       /**
-        * Initialize the special page.
-        */
-       public function __construct() {
-               // A special page should at least have a name.
-               // We do this by calling the parent class (the SpecialPage 
class)
-               // constructor method with the name as first and only parameter.
-               parent::__construct( 'HelloWorld' );
-       }
-
-       /**
-        * Shows the page to the user.
-        * @param string $sub: The subpage string argument (if any).
-        *  [[Special:HelloWorld/subpage]].
-        */
-       public function execute( $sub ) {
-               $out = $this->getOutput();
-
-               $out->setPageTitle( $this->msg( 'example-helloworld' ) );
-
-               // Parses message from .i18n.php as wikitext and adds it to the
-               // page output.
-               $out->addWikiMsg( 'example-helloworld-intro' );
-       }
-
-       protected function getGroupName() {
-               return 'other';
-       }
-}
diff --git a/Example/sql/add-example_note.sql b/Example/sql/add-example_note.sql
deleted file mode 100644
index ba611bd..0000000
--- a/Example/sql/add-example_note.sql
+++ /dev/null
@@ -1,29 +0,0 @@
---
--- Tables for the Example extension
---
-
--- Notes table
-CREATE TABLE /*_*/example_note (
-  -- Unique ID to identify each note
-  exnote_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
-
-  -- Foreign key to user.user_id
-  exnote_user int unsigned NOT NULL,
-
-  -- Key to page.page_id.
-  exnote_page int unsigned NOT NULL,
-
-  -- Note value as a string.
-  exnote_value blob
-
-) /*$wgDBTableOptions*/;
-
--- For querying of all notes from a certain user
---  (e.g. Special:Notes).
--- For querying of all notes from a certain user on a certain page
---  (e.g. "My notes" on a page).
-CREATE INDEX /*i*/exnote_user_page ON /*_*/example_note (exnote_user, 
exnote_page);
-
--- For querying of all notes from all users on a certain page
---  (e.g. "Notes by other users" on a certain page).
-CREATE INDEX /*i*/exnote_page_user ON /*_*/example_note (exnote_page, 
exnote_user);
diff --git a/BoilerPlate/Gruntfile.js b/Gruntfile.js
similarity index 100%
rename from BoilerPlate/Gruntfile.js
rename to Gruntfile.js
diff --git a/BoilerPlate/README b/README
similarity index 100%
rename from BoilerPlate/README
rename to README
diff --git a/BoilerPlate/composer.json b/composer.json
similarity index 100%
rename from BoilerPlate/composer.json
rename to composer.json
diff --git a/BoilerPlate/i18n/ast.json b/i18n/ast.json
similarity index 100%
rename from BoilerPlate/i18n/ast.json
rename to i18n/ast.json
diff --git a/BoilerPlate/i18n/bcl.json b/i18n/bcl.json
similarity index 100%
rename from BoilerPlate/i18n/bcl.json
rename to i18n/bcl.json
diff --git a/BoilerPlate/i18n/be-tarask.json b/i18n/be-tarask.json
similarity index 100%
rename from BoilerPlate/i18n/be-tarask.json
rename to i18n/be-tarask.json
diff --git a/BoilerPlate/i18n/br.json b/i18n/br.json
similarity index 100%
rename from BoilerPlate/i18n/br.json
rename to i18n/br.json
diff --git a/BoilerPlate/i18n/ca.json b/i18n/ca.json
similarity index 100%
rename from BoilerPlate/i18n/ca.json
rename to i18n/ca.json
diff --git a/BoilerPlate/i18n/ce.json b/i18n/ce.json
similarity index 100%
rename from BoilerPlate/i18n/ce.json
rename to i18n/ce.json
diff --git a/BoilerPlate/i18n/da.json b/i18n/da.json
similarity index 100%
rename from BoilerPlate/i18n/da.json
rename to i18n/da.json
diff --git a/BoilerPlate/i18n/de.json b/i18n/de.json
similarity index 100%
rename from BoilerPlate/i18n/de.json
rename to i18n/de.json
diff --git a/BoilerPlate/i18n/dsb.json b/i18n/dsb.json
similarity index 100%
rename from BoilerPlate/i18n/dsb.json
rename to i18n/dsb.json
diff --git a/BoilerPlate/i18n/en-gb.json b/i18n/en-gb.json
similarity index 100%
rename from BoilerPlate/i18n/en-gb.json
rename to i18n/en-gb.json
diff --git a/BoilerPlate/i18n/en.json b/i18n/en.json
similarity index 100%
rename from BoilerPlate/i18n/en.json
rename to i18n/en.json
diff --git a/BoilerPlate/i18n/eo.json b/i18n/eo.json
similarity index 100%
rename from BoilerPlate/i18n/eo.json
rename to i18n/eo.json
diff --git a/BoilerPlate/i18n/es.json b/i18n/es.json
similarity index 100%
rename from BoilerPlate/i18n/es.json
rename to i18n/es.json
diff --git a/BoilerPlate/i18n/fa.json b/i18n/fa.json
similarity index 100%
rename from BoilerPlate/i18n/fa.json
rename to i18n/fa.json
diff --git a/BoilerPlate/i18n/fi.json b/i18n/fi.json
similarity index 100%
rename from BoilerPlate/i18n/fi.json
rename to i18n/fi.json
diff --git a/BoilerPlate/i18n/fo.json b/i18n/fo.json
similarity index 100%
rename from BoilerPlate/i18n/fo.json
rename to i18n/fo.json
diff --git a/BoilerPlate/i18n/fr.json b/i18n/fr.json
similarity index 100%
rename from BoilerPlate/i18n/fr.json
rename to i18n/fr.json
diff --git a/BoilerPlate/i18n/frp.json b/i18n/frp.json
similarity index 100%
rename from BoilerPlate/i18n/frp.json
rename to i18n/frp.json
diff --git a/BoilerPlate/i18n/gl.json b/i18n/gl.json
similarity index 100%
rename from BoilerPlate/i18n/gl.json
rename to i18n/gl.json
diff --git a/BoilerPlate/i18n/he.json b/i18n/he.json
similarity index 100%
rename from BoilerPlate/i18n/he.json
rename to i18n/he.json
diff --git a/BoilerPlate/i18n/hsb.json b/i18n/hsb.json
similarity index 100%
rename from BoilerPlate/i18n/hsb.json
rename to i18n/hsb.json
diff --git a/BoilerPlate/i18n/hu.json b/i18n/hu.json
similarity index 100%
rename from BoilerPlate/i18n/hu.json
rename to i18n/hu.json
diff --git a/BoilerPlate/i18n/ia.json b/i18n/ia.json
similarity index 100%
rename from BoilerPlate/i18n/ia.json
rename to i18n/ia.json
diff --git a/BoilerPlate/i18n/id.json b/i18n/id.json
similarity index 100%
rename from BoilerPlate/i18n/id.json
rename to i18n/id.json
diff --git a/BoilerPlate/i18n/it.json b/i18n/it.json
similarity index 100%
rename from BoilerPlate/i18n/it.json
rename to i18n/it.json
diff --git a/BoilerPlate/i18n/ja.json b/i18n/ja.json
similarity index 100%
rename from BoilerPlate/i18n/ja.json
rename to i18n/ja.json
diff --git a/BoilerPlate/i18n/ko.json b/i18n/ko.json
similarity index 100%
rename from BoilerPlate/i18n/ko.json
rename to i18n/ko.json
diff --git a/BoilerPlate/i18n/ksh.json b/i18n/ksh.json
similarity index 100%
rename from BoilerPlate/i18n/ksh.json
rename to i18n/ksh.json
diff --git a/BoilerPlate/i18n/lb.json b/i18n/lb.json
similarity index 100%
rename from BoilerPlate/i18n/lb.json
rename to i18n/lb.json
diff --git a/BoilerPlate/i18n/map-bms.json b/i18n/map-bms.json
similarity index 100%
rename from BoilerPlate/i18n/map-bms.json
rename to i18n/map-bms.json
diff --git a/BoilerPlate/i18n/mk.json b/i18n/mk.json
similarity index 100%
rename from BoilerPlate/i18n/mk.json
rename to i18n/mk.json
diff --git a/BoilerPlate/i18n/mr.json b/i18n/mr.json
similarity index 100%
rename from BoilerPlate/i18n/mr.json
rename to i18n/mr.json
diff --git a/BoilerPlate/i18n/ms.json b/i18n/ms.json
similarity index 100%
rename from BoilerPlate/i18n/ms.json
rename to i18n/ms.json
diff --git a/BoilerPlate/i18n/mt.json b/i18n/mt.json
similarity index 100%
rename from BoilerPlate/i18n/mt.json
rename to i18n/mt.json
diff --git a/BoilerPlate/i18n/nb.json b/i18n/nb.json
similarity index 100%
rename from BoilerPlate/i18n/nb.json
rename to i18n/nb.json
diff --git a/BoilerPlate/i18n/nl.json b/i18n/nl.json
similarity index 100%
rename from BoilerPlate/i18n/nl.json
rename to i18n/nl.json
diff --git a/BoilerPlate/i18n/oc.json b/i18n/oc.json
similarity index 100%
rename from BoilerPlate/i18n/oc.json
rename to i18n/oc.json
diff --git a/BoilerPlate/i18n/pl.json b/i18n/pl.json
similarity index 100%
rename from BoilerPlate/i18n/pl.json
rename to i18n/pl.json
diff --git a/BoilerPlate/i18n/pms.json b/i18n/pms.json
similarity index 100%
rename from BoilerPlate/i18n/pms.json
rename to i18n/pms.json
diff --git a/BoilerPlate/i18n/ps.json b/i18n/ps.json
similarity index 100%
rename from BoilerPlate/i18n/ps.json
rename to i18n/ps.json
diff --git a/BoilerPlate/i18n/pt-br.json b/i18n/pt-br.json
similarity index 100%
rename from BoilerPlate/i18n/pt-br.json
rename to i18n/pt-br.json
diff --git a/BoilerPlate/i18n/pt.json b/i18n/pt.json
similarity index 100%
rename from BoilerPlate/i18n/pt.json
rename to i18n/pt.json
diff --git a/BoilerPlate/i18n/qqq.json b/i18n/qqq.json
similarity index 100%
rename from BoilerPlate/i18n/qqq.json
rename to i18n/qqq.json
diff --git a/BoilerPlate/i18n/roa-tara.json b/i18n/roa-tara.json
similarity index 100%
rename from BoilerPlate/i18n/roa-tara.json
rename to i18n/roa-tara.json
diff --git a/BoilerPlate/i18n/ru.json b/i18n/ru.json
similarity index 100%
rename from BoilerPlate/i18n/ru.json
rename to i18n/ru.json
diff --git a/BoilerPlate/i18n/si.json b/i18n/si.json
similarity index 100%
rename from BoilerPlate/i18n/si.json
rename to i18n/si.json
diff --git a/BoilerPlate/i18n/sv.json b/i18n/sv.json
similarity index 100%
rename from BoilerPlate/i18n/sv.json
rename to i18n/sv.json
diff --git a/BoilerPlate/i18n/ta.json b/i18n/ta.json
similarity index 100%
rename from BoilerPlate/i18n/ta.json
rename to i18n/ta.json
diff --git a/BoilerPlate/i18n/te.json b/i18n/te.json
similarity index 100%
rename from BoilerPlate/i18n/te.json
rename to i18n/te.json
diff --git a/BoilerPlate/i18n/tl.json b/i18n/tl.json
similarity index 100%
rename from BoilerPlate/i18n/tl.json
rename to i18n/tl.json
diff --git a/BoilerPlate/i18n/uk.json b/i18n/uk.json
similarity index 100%
rename from BoilerPlate/i18n/uk.json
rename to i18n/uk.json
diff --git a/BoilerPlate/i18n/yi.json b/i18n/yi.json
similarity index 100%
rename from BoilerPlate/i18n/yi.json
rename to i18n/yi.json
diff --git a/BoilerPlate/i18n/zh-hans.json b/i18n/zh-hans.json
similarity index 100%
rename from BoilerPlate/i18n/zh-hans.json
rename to i18n/zh-hans.json
diff --git a/BoilerPlate/i18n/zh-hant.json b/i18n/zh-hant.json
similarity index 100%
rename from BoilerPlate/i18n/zh-hant.json
rename to i18n/zh-hant.json
diff --git a/BoilerPlate/modules/ext.BoilerPlate.foo.css 
b/modules/ext.BoilerPlate.foo.css
similarity index 100%
rename from BoilerPlate/modules/ext.BoilerPlate.foo.css
rename to modules/ext.BoilerPlate.foo.css
diff --git a/BoilerPlate/modules/ext.BoilerPlate.foo.js 
b/modules/ext.BoilerPlate.foo.js
similarity index 100%
rename from BoilerPlate/modules/ext.BoilerPlate.foo.js
rename to modules/ext.BoilerPlate.foo.js
diff --git a/BoilerPlate/modules/ext.BoilerPlate.js b/modules/ext.BoilerPlate.js
similarity index 100%
rename from BoilerPlate/modules/ext.BoilerPlate.js
rename to modules/ext.BoilerPlate.js
diff --git a/BoilerPlate/package.json b/package.json
similarity index 100%
rename from BoilerPlate/package.json
rename to package.json
diff --git a/BoilerPlate/specials/SpecialHelloWorld.php 
b/specials/SpecialHelloWorld.php
similarity index 100%
rename from BoilerPlate/specials/SpecialHelloWorld.php
rename to specials/SpecialHelloWorld.php

-- 
To view, visit https://gerrit.wikimedia.org/r/226258
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8f7b7cb02161bd582a7314040f25583eaafbaee6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BoilerPlate
Gerrit-Branch: master
Gerrit-Owner: Spage <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to