Working with MediaWiki

From stacky wiki

Magic pages: MediaWiki:Mainpage MediaWiki:Sitenotice MediaWiki:Common.css

Edit sidebar


Hide toolbox unless logged in

Originally used [1], but the structure changed with an upgrade. For Vector.php, add the following in renderPortals:

if ( !$this->data['loggedin']) { $portals['TOOLBOX'] = false; }

Leaving WPtouch.php alone ... looks like the same idea doesn't work since data['loggedin'] doesn't get set.

Getting MathJax Working

I'm now using jsdelivr CDN for MathJax, following the recommendation in the MathJax documentation here, putting everything into MediaWiki:Common.js, which is run on every page.

Older MathJax

I got MathJax: git clone git:// MathJax

Using MathJax extension Went back to old solution; MathJax extension hiccupped.

old solution:

I installed the JavaScript extension[2] for MediaWiki.

I added a file mathjax.js (name doesn't matter) to extensions/JavaScript. It's content:

var e = document.createElement('script');
e.type = "text/javascript";
e.src = "/MathJax/MathJax.js?config=wikiconfig";

(I basically copied the MathJax configuration file used at MO ... got confused because you have to remember to modify the last line)

(Not) Getting Blahtex Working

It'd be much nicer to get MediaWiki to serve MathML and use MathJax to convert only if it has to, but I haven't been able to get Blahtex[3] to compile. I've been trying to follow the instructions here [4]. I'm able to checkout blahtex and to get texvc working, but if I try make or make linux, I get

g++ -O3   -c -o source/main.o source/main.cpp
source/main.cpp: In function ‘void ShowUsage()’:
source/main.cpp:108: error: ‘exit’ was not declared in this scope
make: *** [source/main.o] Error 1

Moving html to wiki

A useful substitution:

<a href="([^"]*)"[^>]*>([^<]*)</a>
[\1 \2]

Handling Spam


Using SpamBlacklist extension. Using blacklists at meta.wikimedia and wikipedia, and adding additional blacklisted urls to MediaWiki:Spam-blacklist as needed.

Also installed the UserMerge extension so that I can delete junk users. In extensions directory,

svn co

Started using CAPTCHAs:

svn co

Change text of the Special:Captcha/help at MediaWiki:Captchahelp-text (more generally, various bits of text are configurable through the Special:AllMessages page).

Was getting spam even when using ReCaptcha ... switched to Questycaptcha. Still got spam, but with no links, so added

$wgCaptchaTriggers['edit']          = true; 
$wgCaptchaTriggers['create']        = true;

Still getting spam users created pretty regularly (every two weeks?), so I'm disabling user creation with

$wgGroupPermissions['*']['createaccount'] = false;

Editing MediaWiki:Loginprompt to reflect that you need to contact me to create a user. To create a new user, visit Special:UserLogin while logged in.


Followed instructions here and pointed google webmasters to ... google complains the sitemap is html, so pointed to instead. Still not working.

Okay, looking at Manual_talk:GenerateSitemap.php, it looks like the following thing should work. I've modified the indexEntry function in $IP/maintenence/GenerateSitemap.php as follows:

<                       "\t\t<loc>$filename</loc>\n" .
>                       "\t\t<loc>$filename</loc>\n" .

Regenerating with

php maintenance/generateSitemap.php --server --urlpath

Great, that seems to make google happy. Adding daily cron job through web panel.


Added ParserFunctions extension to allow flow control in templates.

Error creating thumbnails

This error didn't used to appear, but now does. Enabling logging, I see the following behavior when I try to produce a 45px wide version of New.jpg:

File::transform: Doing stat for /home/ageraschenko/
BitmapHandler::doTransform: creating 45x38 thumbnail at /home/ageraschenko/
BitmapHandler::doTransform: scaler im
BitmapHandler::doTransform: running ImageMagick: '/usr/bin/convert' -quality 80 -background white -size 45 '/home/ageraschenko/' -thumbnail '45x38!' -set comment 'File source:' -depth 8 -sharpen '0x0.4' '/home/ageraschenko/' 2>&1
wfShellExec: '/home/ageraschenko/' 180 102400 102400 ''\''/usr/bin/convert'\'' -quality 80 -background white -size 45 '\''/home/ageraschenko/'\'' -thumbnail '\''45x38!'\'' -set comment '\''File source:'\'' -depth 8 -sharpen '\''0x0.4'\'' '\''/home/ageraschenko/'\'' 2>&1'
thumbnail failed on grumium: error 2 "" from "'/usr/bin/convert' -quality 80 -background white -size 45 '/home/ageraschenko/' -thumbnail '45x38!' -set comment 'File source:' -depth 8 -sharpen '0x0.4' '/home/ageraschenko/' 2>&1"

Weirdly, commenting out the line

$wgUseImageMagick = true;

in LocalSettings.php seems to fix the problem.

Finding Broken Links

Using the BrokenLinks extension, but it seems dodgy ... often the links it objects to work just fine.

Also handy: XHTML validator link checker

Restricted access to certain pages


[Not working] Citations/references

I tried cloning [6], but it doesn't work, probably because this version of MediaWiki is so old.

old Cite

Trunk of svn repo doesn't seem to work. Did this instead, as recommended at [7]

tar -xzf Cite-MW1.16-r62678.tar.gz -C /var/www/mediawiki/extensions

Setting up knotica

Have knotica add a CNAME record pointing "@" to "". Have dreamhost fully host "". Mirror "" at "".

One-click install mediawiki to "".

Setting up mail


    $wgSMTP = array(
       'host' => 'ssl://',
       'IDHost' => '',
       'port' => 465,
       'username' => '', ## or, or whatever email account you've set up for your Mediawiki installation
       'password' => 'emailpasswordforwebmaster',
       'auth' => true

Mobile support

Tried MobileFrontend extension, but it gives me errors. In extensions directory,

git clone

then in LocalSettings

$wgMFAutodetectMobileView = true;

Trying again, using instructions at [9].


put WPtouch.php and wptouch/ into skins/. Edit LocalSettings to say

if (preg_match("/(mobile|webos|opera mini)/i", $_SERVER['HTTP_USER_AGENT'])) {
    // Different file cache dir for mobile devices
    $wgCacheDirectory = "$IP/cache_mobile";
    // Mobile skin
    $wgDefaultSkin = 'wptouch';
} else {
    // normal skin
    $wgDefaultSkin = "vector";

Create cache_mobile dir with same permissions as cache dir and "Deny from all" .htaccess file.

In WPtouch.php, replace /apple-touch-icon.png with /wiki/favicon.ico.