Extension:StyleByHeaderTree

From MediaWiki.org
(Redirected from Extension:StyleBySection)
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
StyleBySection

Release status: stable

Implementation Page action
Description Wraps sections according to header hierarchy. Gives class and id to the wrapping divs according to section title.
Author(s) François Moreau
Latest version 1.1 (2008-10-22)
MediaWiki 1.8+
Database changes No
License GPL
Download external source
Hooks used
OutputPageBeforeHTML

Translate the StyleByHeaderTree extension if possible

Check usage and version matrix; code metrics

Introduction[edit | edit source]

StyleByHeaderTree does two things to rendered xhtml pages:

  • it wraps each section according to the nesting hierarchy of their respective headers;
  • it may give a class and/or an id to each wrapping div, depending on the header's content and the set of rules defined for the plugin.

Usage[edit | edit source]

This is useful for styling, javascripting and adding semantics. This allows for a richer presentation without additional intervention from the authors, as long as certain conventions exist regarding section headers. In our organization, we have used this primarily as a mean to bring stronger semantics to wiki pages, which was then used to produce XML content with further extensions.

The directives associating headers with classes and id are written in a YAML file. Each rule specifies what class and id will be given to the created wrappers' header matching a regular expression or an exact string.

Your Wiki's MediaWiki:Monobook.css may then be edited to give style to the containers according to their classes and id.

Example[edit | edit source]

StyleByHeaderExtensionExample.png

Example of rules file

extensions/headerTree/example.yml:

intro:
  is: Introduction
  attr:
    class: intro
 
question:
  match: ^Question [0-9]+$
  attr:
    id: question-[COUNTER]
    class: question
 
answer:
  is: Answer
  attr:
    class: answer
 
code-color:
  match: ^Code\s+(.*)$
  attr:
    class: code-$1

Installation[edit | edit source]

  • Download the extension and unzip it in your mediawiki's extensions/ folder. and extract the files in a directory called headerTree in your extensions/ folder. If you're a developer and this extension is in a Git repository, then instead you should clone the repository.
  • Add the following code at the bottom of your LocalSettings.php:
require_once( "$IP/extensions/headerTree/headerTree.php" );
$wgHooks['OutputPageBeforeHTML'][] = array(
    new HeaderTree(),
    'apply',
    //change this string according to your new rules file's path
    "$IP/extensions/headerTree/example.yml"
);
  • Create a new .yml rules file fitting your needs.
  • Edit your wiki's MediaWiki:Monobook.css to use the new classes and id.
  • Done! Navigate to "Special:Version" on your wiki to verify that the extension is successfully installed.