# MediaWiki/Extensions

## Interesting Extensions

What extensions should I use on my wiki?

1. We are the developers of the Html2Wiki extension which lets you import HTML web pages into your wiki.
2. Extension:QuickLink should be updated. It provides an easy way to link to other articles while editing.
3. Extension:TitleKey (git ) is written by Brion Vibber and offers interesting capability that is used on some/all? MW sites. Also, since it interacts with the MW internal search, it's a good example of how to create an extension that hooks into the search functionality. The TitleKey extension provides a case-insensitive title prefix search. It uses a separate table for the keys, so if it works cleanly it can be deployed without an expensive rebuild of core tables, and dumped when Wikimedia gets a nicer backend through Extension:LuceneSearch (pre 1.13) or Extension:MWSearch (1.13+). Note that MediaWiki has stopped using LuceneSearch and is now using mw:Extension:CirrusSearch which interfaces to wp:Elasticsearch (which is based on Lucene) on the backend. For the average site administrator, the benefit of this extension is that it allows search suggestions (e.g. from Opensearch API) to be case-insensitive.
4. Uncyclopedia uses a lot of interesting extensions http://en.uncyclopedia.co/wiki/Special:Version
5. There are about 164 MediaWiki extensions used by WMF projects These extensions as a group have had 131,043 commits made by 537 contributors representing 1,155,573 lines of code over the decade from April 2004 - November 2014 [1]
6. Then there are MediaWiki extensions hosted in the Wikimedia Foundation servers but not deployed in official Wikimedia projects. These extensions have had 84,409 commits made by 461 contributors representing 891,451 lines of code. The fact that these extensions are hosted on WMF servers does not imply endorsement. Rather, it shows that the developers are at least savvy enough to use the git hosting system available to extension developers and put in the effort to publish their projects.
7. Comparison of extensions in distributions

Some extensions that I may choose to install.

1. mw:Extension:CirrusSearch because the regular MySQL search stinks. See Search
3. mw:Extension:AdvancedSearch is a new interface to ElasticSearch
4. mw:Extension:Flow is a threaded discussion replacement for 'Talk' pages.
5. mw:Extension:WebChat used by the TranslateWiki.net community
6. mw:Extension:Semantic_Maps (or plain maps) for use in displaying hikes, bike routes etc. However, need to discover the applicability of the solution to the problem.
7. mw:Extension:WikiLove or mw:Extension:Thanks for community building
8. mw:Extension:Cargo Cargo instead of SMW
9. mw:Extension:DrawioEditor (https://github.com/mgeb/mediawiki-drawio-editor) https://Draw.io integration. But there are problems with the handling of SVG[2] nb. there is also the mw:Extension:Drawio project
10. mw:Extension:UploadWizard A bulk uploader in JavaScript that not only would be useful here, but would also inform as to improvements for mw:Html2Wiki
11. mw:Extension:TimedMediaHandler Timed Media Handler for displaying video
12. mw:Extension:MultimediaViewer a better multimedia viewer? (it's listed as being used on Commons) Certainly want to maximize the user experience in relation to Category:Graphics. There should be a better and faster way to browse images that are available in the wiki. Something that both supports thumbs and paging, and also something that supports something similar to using qiv through the browser. There is a gadget in use on Commons called FastCCI for example, view this file
Current and Proposed Telescopes by size
13. mw:Extension:Wikidiff2 apt-get install php-wikidiff2 word-level (space-delimited) diffs on general text, and character-level diffs on text composed of characters from the Japanese and Thai alphabets and the unified han; it includes support for Thai segmentation for word-level diffs in that language. Japanese, Chinese and Thai do not use spaces to separate words.
14. mw:Extension:Math for math formulas. Add the Mathoid service We get better Math results with SimpleMathJax
15. mw:Extension:Page Schemas for easily generating the forms and data structures that you would use to effect semantic models.
16. Cindy Cicalese's Extension:PluggableAuth and Extension:OpenID_Connect (and SAML?). to provide Single Sign-On options.
17. mw:Extension:Realnames for using a person's real name throughout the UI instead of user names which may be less identifiable: e.g. 'boomshakalaka'

1. like mw:Extension:Page Schemas, mobo (a node.js package) can be used to develop specific use case models for SMW and is considered a "Deploy Automation Framework" because it lives outside the wiki, but can inject into the wiki the data structures (and changes) that are needed to use the model in the organization.
2. mw:Extension:Piwik Integration for integrating the Piwik analytics platform (which is local so you control your data)
3. Add service for visualization of the wiki
4. Visual Diff is coming
5. https://collaborate.mitre.org/extensions/index.php/Hierarchy_Builder

## Distributions

Compare QualityBox extensions with BlueSpice extensions, and integrate the compare tool to QualityBox importer

## Extension Authors

Who authors MediaWiki extensions? Anyone can. These companies are some of the people authoring and supporting extensions

## Notes on Installed Extensions

### DataTable2

http://www.mediawiki.org/wiki/Extension:DataTable2 essentially does the converse of Semantic Media Wiki. Instead of storing data on multiple pages, which can then be queried and displayed, this extension allows for saving data in a single (or multiple) page and reusing that data on multiple pages.

### Interwiki

The Interwiki Extension has been added which makes it easy to manipulate the interwiki table. http://mediawiki.org/wiki/Extension:SpecialInterwiki But what is the Interwiki table you say? The Interwiki table sets up internal namespaces making it convenient for authors to create links to other wikis. For example, you can link to a Wikipedia article with the following syntax: [[WikiPedia:Thomas_Jefferson]] .

There is a long list of wikis and sites already included in the Interwiki table.

### Semantic Bundle

A great way to get all the goodness of SMW in an easy way.

### SyntaxHighlight_GeSHi

A must-have for any wiki that has code samples in it.

## Switch to using Git

Have an 'old' mediawiki instance running off un-versioned code that you want to convert over to git? Here's a script that can help you get going. Note: it will DELETE all directories in your current working directory if they are NOT already git-managed. Use only if you know what you're doing!! Use it from inside your extensions directory

#!/bin/bash
release="REL1_27"
git_root="https://github.com/wikimedia/mediawiki"
git_extension_root="${git_root}-extensions-" extension_dir=pwd for f in *; do if [ -d${f} ]; then
# Will not run if no directories are available
echo $f cd$f
# check for .git directory
if [ -d ".git" ]; then
git fetch
git checkout $release else cd$extension_dir
rm -rf ./${f} # when$f == 'Bootstrap' we want to clone the following:
# https://github.com/wikimedia/mediawiki-extensions-Bootstrap.git
git clone "${git_extension_root}${f}.git"
cd $f git checkout$release
fi
## add any composer managed dependencies
if [ -f "./composer.json" ]; then
composer update;
fi
# back to the extension directory
cd \$extension_dir;
rename 's/mediawiki-extensions-//' mediawiki-extensions-*
fi
done