Créer vos propres styles pour Pybliographer.
Zoltán Kóta
zoltank@gmail.com
Frédéric Gobry
frederic.gobry@epfl.ch

Licence Créative Commons des Conditions Initiales à l'Identique 3.0

# Nouveaux styles

Vous pouvez décrire votre propre style bibliographique en écrivant un simple fichier XML. Le fichier XML doit comporter cet en-tête :

          <?xml version="1.0"?>

La description complète doit être insérée entre la paire de balises <bibstyle> dont la description est brièvement évoquée dans ce chapitre. Nous vous invitons à regarder le DTD correspondant, qui décrit en détail la syntaxe autorisée. Ce DTD se trouve dans le même répertoire que les fichiers de style par défaut.

# Formatage global

Le fichier de style XML décrit la manière dont les différents champs de données sont organisés pour créer un style bibliographique. Il peut, par exemple, spécifier qu'un article commence avec un titre en caractères gras, suivi par les noms des auteurs, etc.

Dans ce schéma, le format XML ne peut cependant pas décrire des informations d'un niveau inférieur, comme la façon dont doit être affiché le nom de l'auteur. Cela est faisable en pointant vers un ensemble de fonctions Python, regroupées dans un module. Regardons l'exemple suivant :

      <module name="generic">
        <define field="author">full_authors</define>
        <define field="editor">first_last_full_authors</define>
        <define field="date">european_date</define>
        <define method="keys">string_keys</define>
      </module>

Dans cet exemple, nous demandons que les champs author (auteur) soient formatés par la fonction `full_authors()` située dans le module generic.

Ce type de module doit être déclaré dans le fichier pybrc.py sous la forme d'une ligne de ce type :

    Autoload.preregister ('style','Generic','Pyblio.Style.Generic')

Vous aurez une idée plus précise sur l'explication des fonctions de formatage en regardant le code du fichier Generic.py, par exemple.

# Définition d'une bibliographie

Une fois les définitions basiques de formatage spécifiées, vous pouvez décrire l'aspect qu'auront les bibliographies réelles à l'aide des balises suivantes :

<style name="stylename">

Cette balise définit le style d'affichage actuel, parmi bold, italic, slanted, emph.

<inentry name="entryname">

Cette balise entoure un bloc qui ne doit s'afficher que lorsqu'il s'agit d'entrées du type entryname.

<notinentry name="entryname">

Cette balise entoure un bloc qui ne doit s'afficher que lorsqu'il s'agit d'entrées qui ne sont pas du type entryname.

<infield name="fieldname">

Cette balise entoure un bloc qui ne s'affiche que lorsque le champ fieldname existe dans l'entrée actuelle.

<notinfield name="fieldname">

Cette balise entoure un bloc qui ne s'affiche que lorsque le champ fieldname n'existe pas dans l'entrée actuelle.

<content name="fieldname"/>

Cette balise vide est remplacée par la valeur du champ actuel (quand il est placé dans un bloc <infield>), ou par le contenu du champ défini comme attribut.

<separator>

Le contenu de cette balise s'évalue à rien tant qu'aucun texte n'a été émis. C'est une manière pratique d'ajouter un séparateur après une série de champs sans s'inquiéter du cas spécial où les champs ne sont pas définis.

Les fichiers de style existants sont une bonne source d'exemples.

# Devenir du format

Dans le futur, ce format rudimentaire va certainement être remplacé par un mécanisme basé sur du XSL, qui devrait englober la définition XML et les modules Python, donnant ainsi des fichiers de style autonomes et analysables par n'importe quel analyseur syntaxique XSL.