Mediawiki

From EduTech Wiki
Jump to: navigation, search
Software information
Software name Mediawiki
Logo MediaWiki logo without tagline.png
Screenshot 135px
Developers MediaWiki foundation and MediaWiki volunteers
Owners Wikimedia Foundation
First release date 2002/01/01
Status stable
Last released
Last version
Programming language PHP
Operating systems Many
Platforms
Size (KB)
Languages Over 230
Genre Portalware
Keywords
Licenses GNU General Public License version 2
Web site here
Support websites
Description The first version of the software was deployed to serve the needs of the free content Wikipedia encyclopedia in 2002. It has been deployed since then in tens of thousands other websites for all sorts of purposes.
Last edit June 2013

Draft

1 Definition

MediaWiki is a free software wiki package written in PHP, originally for use on Wikipedia. It is now used by several other projects of the non-profit Wikimedia Foundation and by many other wikis, including this website.

We use MediaWikis in several other projects, including writing-to-learn wikis in high schools. Since MediaWikis are complex systems and somewhat difficult to use, you may consider another wiki technology for populations that are technically a bit challenged (most people, including the so-called digital natives). Simple editing in Mediawiki only needs knowledge of title, list, links and image tags and you may stick to that. But as the Wikipedia project shows, the addition of macros that help the user navigation experience and other markup for foreign formats can turn wiki editing into a more difficult coding exercise.

Consider using a Mediawiki in education, if you (a) plan to create a real hypertext and (b) have your students work on it for many many hours (not just 2-3 lessons). Another good reason for using a Mediawiki is the fact that its survival is guaranteed because it's the Wikipedia's engine.

Mediawiki also is a good knowledge management tool because of its many extensions that allow addition of (1) more community tools like blogs and structured discussions and (2) engines that can handle specific formats. An interesting example is Intellipedia (see [1], [2], [3] for more about Wikis in the Intelligence community). But again, Mediawiki syntax may turn out to be too complex for word processor additicts who believe - but actually don't - that they work efficiently with a complex Wysiswyg and refuse learning a few markup commands.

See also:

2 Mediawiki extensions

There exist many many MediaWiki extensions. Most are either not (yet) stable or will not work with your current wiki version. However, there are still many vital or useful extensions you might want to install. Below is a shortlist.

You also may start exploring extensions in various ways at the mediawiki.org site. We recommend:

2.1 Must-have user experience extensions for educational wikis

Here is a list of useful extensions that may want to install according to your needs (basically a sub-set of extensions we use for Edutech Wiki). You also should consider, that each additional extension will slow down the wiki somewhat...

Media
  • TimedMediaHandler is an extension which allows you to display audio and video files in wiki pages, using the same syntax as for image files.
Print formats extensions
  • Collection - An extension for creating wiki books. Create lecture notes for your students and create student-made books in project-oriented classes. See Help:Books for this wiki.
  • EPubExport. (broken for MW 16 as of Nov 2010, but can be fixed). Help students on the beach and soccer moms and dads. ePub is the most popular non-proprietry e-book format and supported by almost any hardware vendor and publishing house (except Amazon). To fix the broken extension, in files ePubExport.php and ePubExport.php kill all the lines containing wfLocaExtensionMessage.
Blog / forum extensions
  • Wikilog - A blogging module. E.g. see the transcluded blog entries, i.e. the News in our main/home page or the Wikilog central page, or the blog of Daniel K. Schneider. This tool can be used for a variety of purposes. We just use it to announce news, but you also could use these as learning journals for example. Since these blogs are tightly integrated with the Wiki (Blogs pages are wiki pages) you can students have creating/modifying/collaborating on normal pages and then reflect upon the experience in their blog.
  • DiscussionThreading. Transform the discussion pages into threaded forums (else you quickly will get a mess. Useful if you plan to have students comment and ask questions. We use in two ways. In our technical courses on edutechwiki (fr) each exercise is defined on a normal wiki page and the discussion page of each of these is used as anchored support forum.
  • An alternative to DiscussionThreading is a renewed version of LiquidThreads (not tested, in aug 2011 this new version is still labeled "experimental*). It is now being used on Mediawiki.org.
Page layout and navigation extensions
  • SyntaxHighlight to display various kinds of computer code. A must have for technical wikis, also useful to get better rendering for the Collection extension.
  • CategoryTree allows to include trees of categories either in a page or in the sidebar. Helps global navigation if you use some sort of controlled vocabulary. At least you should put all categories within in some super categories and the super categories into a root category. It is ok to include a category in multiple super categories. We also use this extension to create "local" navigation structures. E.g. we display a menu of all course pages with each course page in order to tie all pages for class together..
User information
  • PageBy. An extension that inserts authors on top of the page if you add a tag. Useful if you believe that writing should be attributed. This actually should not be an extension tag, but a standard Mediawiki option to be configured.
Editing extensions
  • EditWarning shows a warning message if the user edits a page that is being edited by other users at the same time. This extension is broken for MW 1.17 as of Sept. 25 2011. Check if there is patch for version 0.4 or a new release.
  • For MediaWiki 1.17+: WikiEditor. Implements some extensions to the standard editing window and that help to write wiki code. This editor is used on Wikipedia sites. By default, it shows few buttons and must be configured to add more. Not as friendly as y Wysigwyg editor, but it does produce good wiki code ....
  • For older Wikis, you could install WikEd (needs modification of server files) or tell users to install it on top of Greasmonkey, a Firefox extension). Wiked currently provides the best in-browser editing - Daniel K. Schneider 11:39, 16 September 2010 (CEST).
  • CharInsert is an extension that creates JavaScript links that when clicked, insert predefined text into the text box. These links are usually used in MediaWiki:Edittools system message but also with other extension.
  • HotCat HotCat is a JavaScript program that helps registered users easily remove, change and add categories to Mediawiki pages. It has a suggestions list that will propose existing categories for auto-completion. Useful in writing-to-learn scenarios where students create many pages. Also, for regular contributors who tend to forget category names ...
Wysiwyg editing

So far, there was never a fully working wysiwyg editor since supporting Wiki and template syntax are a difficult technical challenge. Read WYSIWYG editor ....

  • [Prior to MW 1.16]: FCKeditor enables a more intuitive WYSIWYG editor when editing pages on a MediaWiki-based site. This extension can create bad wiki code and doesn't work with really outdated browser versions. Therefore, I didn't install it yet in this wiki since I care about having clean code and pages. We did use it in the french version and in other wikis for which I care less. This extension is not very well supported by upstream development as of 2011. Dead extensions.
  • WYSIWYG was a replacement for the FCKeditor (above). It uses a special version of the CKeditor that outputs wiki text rather than the usual HTML that caused problems for MediaWiki integrations in the past. Only works with a few MW versions, e.g. 1.16 and 1.17. Be careful to download just the editor if you don't want/need semantic MediaWiki extensions.
  • The latest project is called VisualEditor. IMHO, it may work sometimes later in 2013 if there are enough resources for development. It does seem to be "heavier" effort than previous projects and really could work. This editor will require a MediaWiki 1.22 or later installation - Daniel K. Schneider (talk) 12:05, 10 June 2013 (CEST).

2.2 Anti-spam and revision management extensions

Read our little Spam article within which we provide more information about the following strategies:

  • Set the $wgSpamRegex variable for LocalSetting to include "stop words".
  • Use mass deletion and other scripts that you can find in the maintenance directory.
  • Install the ReCaptcha extension that we currently use in this wiki. It will prohibit scripts from creating user accounts and (optionally) edit contents.
  • Alternatively or in addition, install FlaggedRevs extension. It will allow a wiki to monitor the changes that are made to pages, and to control more carefully the content that is displayed to the wiki's readers. Very flexible.

2.3 Administration and helper extensions

Read also: spam, an article that discussed spam prevention and recovery strategies and tools.

  • Admin Links is an extension to MediaWiki that defines a special page, "Special:AdminLinks", that holds links meant to be helpful for wiki administrators; it is meant to serve as a "control panel" for the functions an administrator would typically perform in a wiki.
  • MassEditRegex allows to change expressions in multiple pages. Very useful for instance, if you plan to add/remove or rename categories. Replace Text is another alternative that probably has similar functionality (not tested yet).
  • Nuke makes it possible for sysops to mass delete pages. Useful if page creation is not restricted by a difficult captcha.
  • Import Users allows to import a cvs file with users. That is useful if your wiki is standalone and you have class lists...
  • Instead of using dynamic page list extensions, you also can retrieve information about your wiki by simply using the external API, i.e. by typing URLs. Read API documentation at Mediawiki. Most queries also allow for various kinds of formating,
Example: http://edutechwiki.unige.ch/mediawiki/api.php?action=query&list=allpages&aplimit=1000&apfilterredir=nonredirects will list all pages

2.4 Semantic MediaWiki

Semantic MediaWiki, in the educational context, can play two major roles:

  • A teacher (with sufficient technical skills) could prepare information collection forms to support collective and collaborational educational scenarios. Students fill in a form (e.g. about animals, or educational games).
  • Some teaching materials can be prepared in more organized ways.

Read:

2.5 Other extensions

There exist dozens of more or less useful and well working extensions and hundreds in total. Look at our Version page to see what we currently use or wade your way through MediaWiki.org, where most extensions are listed and categorized.

  • Usability Initiative (various improvements for MW 1.16+, some of which you can see on wikipedia sites since summer 2010). This package is modular and you can (a) choose what functionality to add and (b) parametrize quite a lot. I found the Wikieditor to be the most useful thing to have. Collapsible menus can be interesting (since most users don't use the menus anyhow). Finally, you can gather statistical data. Installed so far on edutechwiki/fr - Daniel K. Schneider 12:10, 24 August 2010 (UTC)
  • Graphviz extension allows to create graphs using the dot language. You must have Graphviz installed on your server.
  • collaboration diagram using the Graphviz extension dynamically creates graphs that show user contributions for an article, a list of articles or a category of articles. (Click on "authors" in this wiki to see how it works).
  • UML Allows to create UML diagrams with a declarative language.
  • WikiWidgets (to install here, allows to include a limited set of useful widgets)
  • PageNotice provides a way for you to define fixed notice messages for the top or the bottom of a page (by individual page name), or entire namespaces (by namespace number). Not tested in EduTechiki, there seem to be performance hits, but I'd have to verify this.
  • TableEdit Helps editing tables (which is a challenge in wiki code). However, some problems with foreign characters were reported in the discussion page. Also, no official update for MW 16.1. Therefore, test before you install it for real.
  • IssueTracker implements a issue tracking system. Not tested ! Installation also probably would need some tweaking and reading of the Discussion page.
  • SubPageList. Will add an parser extension and XML tag for listing subpages. Ton install for MW 1.24, use composer in the root directory, like this:
composer require mediawiki/sub-page-list ~1.1
or
php composer.phar require mediawiki/sub-page-list ~1.1

2.6 Extensions to test

  • Zend Search Lucene for MediaWiki. Would be useful for replacing the internal default search engine which is not very good.
  • Extension:BookManager (developed for the wikibooks sites, so far very experimental, manual not clear - 14:44, 23 August 2011 (CEST) )
  • DataTransclusion allows individual data records to be retrieved from an external source such as a database or a web API. The fields from the data record are then passed to a template as template parameters for rendering. An extension for very technical authors.
  • MakeArticle Allows to define forms for creating pages. Might be useful for learners having to create standardized pages on given subjects. There exist also other forms extensions.

2.7 GIT/SVN copy/paste list

The following list can be copy/pasted to a shell in order to install a bleeding-edge MediaWiki server using GIT. Note that some extensions are not yet available through GIT. In particular, Very simple tag extensions and unmaintained ones. Since Jan 2014, we rather recommend using the composer manager !

; The Mediawiki (MW 1.22 as of Aug 2013)
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git

; Recommended maintained extensions
cd extensions
# Admin / info
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AdminLinks.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/ConfirmAccount.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Renameuser.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/CheckUser.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/MassEditRegex.git
# Page contents (tag extensions/ Templates)
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/ParserFunctions.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SyntaxHighlight_GeSHi.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Cite.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/RSS.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Gadgets.git
# Navigation
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/CategoryTree.git
# Edit / pages
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/WikiEditor.git
# git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/LiquidThreads.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/DiscussionThreading.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Wikilog.git
# Export / Social web
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Collection.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AddThis.git
List of risky or unmaintained extensions
# Graphics
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/GraphViz.git
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/WikiCategoryTagCloud.git 
# Page contents 
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/PageBy/
# Admin / info
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/WhosOnline/
Copy/paste code
http://www.mediawiki.org/wiki/Extension:TopTenPages/Code
Semantic MediaWiki extensions

3 Import, export and editing

See also ManageMediaWiki (our internal messy maintenance hints pages)

3.1 Editing tools and strategies

Overal, today, it's not possible to have a WYSISWYG editor that works with all wiki code and does not destroy more complex markup. The mediawiki language is quite a complex "mess" that makes creating an easy-to-use and perfectly working WYSIWYG or even a sophisticated WYSIYIM editor a difficult task.

Additional reading for technical people

If you plan to work with unsophisticated content structure, e.g. wiki for project-oriented learning (unlike Wikipedia), then you may install either the WySiWyg FCKeditorOfficial or WMWPlus extensions using older MW version (As of fev 2012, neither works with MW 1.18). I don't use it on edutechwikis because it may create bad code, but I do use for smaller wikis used in classes that implement student writing. You also can make this editor an option. I.e. when the user hits "edit" he first lands in the normal editing interface and has to click on an extra button.

You can improve the standard built-in wiki editor in two alternative ways:

For people who like to use programming editors there are three interesting solution

  • Install the external editing interface. Installation of this Perl-based reference implementation is difficult but worth the trouble. I use this on Linux for MW 16.x and could not live without. I believe that using this extension allows me to work about three times as fast when I explore a new subject (several open editing windows). At some point this extension was broken, but it works again / DKS / 11/2010).
  • Use the It's all text FireFox extension that will let you edit any form with most any editor (I use this on Windows).

For both these options you'll have to make sure that your text editor does have a MediaWiki mode. E.g. for emacs I use wikipedia-mode.el

  • mediawiki.el is a more recent extension and recommended by Mediawiki.org. It allows users to open, edit and save a wiki page directly from emacs. This extension is easy to install if you work with emacs 24.x or later.
Unfortunately, I encounter very rapidly authentication failures. Workaround: Saving all the time. Also, make sure that all time stamps are ok: Server machine, Wiki configuration, client machine and your personal settings in the wiki. This may be good vodoo. Also, you probably should check php settings (i.e. don't use the default timeouts).
Posting to: http://edutechwiki.unige.ch/mediawiki/api.php
Contacting host: edutechwiki.unige.ch:80
mediawiki-api-call: The server encountered an error: (badtoken) Invalid token

3.2 Export filters

  • To export for word processing, the currently best strategy is probably to use the Collection extension and configure it to export Open Office format. You also can export to DocBook
  • For PDF, same as above.
  • Wiki2LaTeX is a extension reported stable (aug 2011) and that exports to LaTex and to PDF (via LaTex). The extension is written in php and uses its own parser, which is based on the original Mediawiki parser. Not tested so far, but definitely worth trying if you are familiar with Latex.

3.3 Import filters

From HTML

Several solutions exit

From Word
From Open Office (OO)
  • Install Sun Wiki Publisher. This is easy, just click on the "Get It" Icon.
  • Additionally, you could configure it to save directly to the Mediawiki. Not tested !!
  • Then, just "export" to some file, open it in an text editor (any, but the MS Notepad) and copy/paste the content to the Wiki.

Using the OO exporter is useful for folks who write longer articles and then publish an almost finished version on the Wiki. Round tripping is possible, but not easy.

Latex import

4 Links

General
Other edutechwiki pages
Other Edutechwiki links
Facts about "Mediawiki"
Has descriptionThe first version of the software was deployed to serve the needs of the free content Wikipedia encyclopedia in 2002. It has been deployed since then in tens of thousands other websites for all sorts of purposes. +
Has licensesGNU General Public License version 2 +
Has nameMediawiki +
Has statusstable +
Has websitehttp://www.mediawiki.org +
Is developed byMediaWiki foundation and MediaWiki volunteers +
Is genrePortalware +
Owned byWikimedia Foundation +
Supports languagesOver 230 +
Uses operating systemsMany +
Uses programming languagePHP +
Was first released onJanuary 1, 2002 +
Was last editedJune 2013 +