Table des matières

But

Générer une table des matières pour une page wiki, en utilisant les en-têtes (titres) trouvées sur cette page.

Solution

Le script pagetoc.php -- ceci est une version de développement et nécessite des essais avec la version 2 de PmWiki.

Mettre pagetoc.php dans votre répertoire cookbook/ .

Ajouter la ligne suivante au fichier local/config.php

    include_once("cookbook/pagetoc.php");

Quelques notes sur l'utilisation par rapport à d'autres scripts:

  • Il reconnait quelques balises complémentaires de PmWiki:Cookbook.MarkupExtensions, mais doit fonctionner sans nécessiter l'installation d'aucun autre script.
  • Si vous utilisez PmWiki:Cookbook.MarkupExtensions, vous devez utiliser la version 2.0.5 ou ultérieure (pour préserver l'indépendance des scripts, nombre de parties du script 2.0.4 ont été déplacées vers pagetoc)
  • pagetoc supprime la table dans la vue imprimée, mais PmWiki:Cookbook.PublishWikiTrail transforme l'action='print' en action='browse', aussi il faut inclure pagetoc avant d'inclure publish
  • Le script cesse de rechercher les en-têtes quand il atteint une directive de coupure de page (:breakpage:)

Discussion

L'utilisation la plus simple est d'ajouter la ligne suivante sur n'importe quelle page wiki

    (:toc:)

C'est tout. Tout en-tête après la directive toc sera listé, sur 2 niveaux.

Vous pouvez faire apparaître les ancres en écrivant

    (:toc anchors=visible:)

Si vous avez entré vos propres ancres, le script les utilise. Si vous voulez que vos ancres soient visibles, écrivez

    [[##ancre]] au lieu de  [[#ancre]]

Vous pouvez changer le titre par défaut de la table en écrivant

    (:toc Titre de remplacement:)

Vous pouvez combiner des ancres visibles avec un autre titre en écrivant

    (:toc anchors=visible Titre de remplacement:)

Vous pouvez changer la liste numérotés en liste simple en écrivant

    (:*toc:)

Vous pouvez utiliser des balises wiki dans vos en-têtes et toc créera un texte de lien approprié. En principe...

Les balises Standard PmWiki [[#anchor | text]] sont acceptées. TableDesMatières améliore ceci de 2 manières:

    [[#ancre | #]] utilise le texte du paragraphe après 
       [[#ancre]] comme texte de lien

    [[#ancre | *]] utilise "ancre" comme texte de lien 

Variables de configuration

$DefaultTocTitle est mis à "On this page..."
$TocHeaderFmt est mis à "<b>$TocTitle</b>"
$VisibleAnchor est mis à §
$VisibleAnchorLinks est mis à false (une ancre visible anchor mis comme titre; true en fait une référence HTML href)
$TocSize est mis à 'smaller'
$NumberToc est mis à true

Soyez certain d'affecter la variable $TocSize (à 'medium' par exemple) avant d'inclure le script pagetoc.

Dans ce cas, le code qui définit le style est exécuté dès chargement du script, d'ou la nécessité de fixer la variable de taille avant l'inclusion.

Limitations

Le code qui crée la table est embrouillé. L'étendre pour avoir plus de deux niveaux nécessite une réecriture complète de la fonction.

Contributeur

jr?


<< Création automatique de vignettes | Index compléments | PmWiki2PDF >>


Traduction de Cookbook:PageTableOfContents - page originale sur PmWiki:PmWikiFr.TableDesMatières


Page originale sur PmWikiFr.TableDesMatieres - Référencé par
Dernières modifications:
PmWikiFr.TableDesMatieres: 10 septembre 2011 à 17h40