Mediawiki

From miki
Revision as of 22:02, 16 November 2009 by Mip (talk | contribs) (→‎RawFile: Patch to use html class attribute instead of {{#fileanchor}})
Jump to navigation Jump to search

Hints and Tips

Purge wiki page cache
When changing templates, purge the browser & mediawiki cache. To purge the cache of a single page, add &action=purge to the URL (see [1] for more)

Keyboard shortcuts

  • Reference page in wikipedia
  • Page explaining how to change keyboard shortcut using user custom stylesheet.
  • Most frequently-used HTML access keys (default access-key shortcut is alt+shift for Firefox and shift+Esc for Opera):
Action Key
accesskey-edit e
accesskey-preview p
accesskey-save s
accesskey-search f

Access Restriction

See these pages for implementing access restriction in MediaWiki:

  • A page that implement per-page access restriction [2].
  • Another way to hide pages [3].
  • Yet another extension [4].
  • Security problem with access restriction extension:
  • Some information on how to create custom namespaces [7].

Miscellaneous

  • Page Special:Version produces a complete list of all extensions installed on the wiki.

Extensions

SyntaxHighlight GeSHi

This extension adds the <source> tag to present formatted source code. See official page.

Restoring 1.0.7.# output - solving <pre> formatting problem

  • Since at least version r24298 (July 21, 2007) (with GeSHi version 1.0.8), <source> tag does not match usual formatting applied for <pre> tags. This is because the extension applies by default the new GeSHi header style GESHI_HEADER_PRE_VALID. The following patch allows to restore the old formatting when there is no attribute line. It also introduces a new option valid to attribute enclose to force application of header style GESHI_HEADER_PRE_VALID
--- SyntaxHighlight_GeSHi.class.php.old 2008-09-07 23:24:37.000000000 +0200
+++ SyntaxHighlight_GeSHi.class.php     2008-09-07 23:33:15.000000000 +0200
@@ -39,7 +39,7 @@
                // "Enclose" parameter
                if ( isset( $args['enclose'] ) && $args['enclose'] == 'div' ) {
                        $enclose = GESHI_HEADER_DIV;
-               } elseif ( defined('GESHI_HEADER_PRE_VALID') ) {
+               } elseif ( (isset( $args['line'] ) || isset( $args['enclose'] ) && $args['enclose'] == 'valid' ) && defined('GESHI_HEADER_PRE_VALID') ) {
                        // Since version 1.0.8 geshi can produce valid pre, but we need to check for it
                        $enclose = GESHI_HEADER_PRE_VALID;
                } elseif( isset( $args['line'] ) ) {
  • Example: the following code
After the following command, <source lang="bash" enclose="valid">  % cat ~/hello.c</source> you'll get the following output
<source lang="c">
#include <stdio.h>
int main(int,int)
{
  printf("Hello, World!\n");
  return 0;
}
</source>

gives:

After the following command,
  % cat ~/hello.c
you'll get the following output
#include <stdio.h>
int main(int,int)
{
  printf("Hello, World!\n");
  return 0;
}
  • Another solution is discussed here. The proposed solution is to edit file "SyntaxHighlight_GeSHi.class.php". Go to line 192, which should look like
$css[] = ".source-$lang {line-height: normal;}";

Change this to

$css[] = ".source-$lang {padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em;}";

and you have restored the pre css formatting.

RawFile

RawFile is an extension made by Philippe Teuwen to allow downloading directly text in <pre> or <source> block as a file.

Patch v0.2 → v0.3

The patch below adds an optional parameter to hook {{#filelink}}. With 1 param, the file is fetched from the current page as usual:

Save [{{#filelink: fstab}} this file] in your <tt>/etc</tt> directory.

With 2 param, the 2nd param is telling which page to fetch the file from:

Save [{{#filelink: fstab|Config files - fstab}} this file] in your <tt>/etc</tt> directory.

Patch v0.3 → v0.?

This patch allows for specifying the file anchor using an html class attribute instead of using {{#fileanchor}}. For instance:

Save [{{#filelink: example.sh}} this file] in your home directory.
<source lang="bash" class="example.sh">
#! /bin/bash

echo 'Hello, World!'
</source>