Extension:StyleByHeaderTree

From MediaWiki.org
Jump to navigation Jump to search
MediaWiki extensions manual
Crystal Clear action run.svg
StyleBySection
Release status: unmaintained
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 GNU General Public License 2.0
Download
Hooks used
OutputPageBeforeHTML
Translate the StyleByHeaderTree extension if it is available at translatewiki.net
Check usage and version matrix.

The StyleByHeaderTree extension 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]

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]

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]

  • Download, extract and place the file(s) in a directory called headerTree in your extensions/ folder.
  • 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.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.