Guide SCENARIbuilder

Générateur Open Document Text

Mise en place

Les générateurs

Si vous créez un modèle sans générateurs, les auteurs vont pouvoir écrire du contenu, mais il ne sortira jamais de sa forme "source XML". Pour transformer les données saisies, l'auteur utilise les générateurs intégrés au modèle. Vous devez créé ces générateurs dans SCENARIbuilder, les lier et les adapter à la structure de votre modèle.

Schéma de fonctionnement

Dans le schéma suivant, nous allons expliquer le fonctionnement commun aux 2 générateurs du modèle helloworld.

  • Les générateurs sont déclarés dans le wspdef, en ajoutant un onglet de publication.
  • Un générateur possède un ou plusieurs templates, un gabarit qui agence la mise en forme globale d'une page.
  • Pour chaque champ de contenu à publier, les générateurs font appel au paramétrage des transformeurs : les composants qui permettent le passage des données des primitives .model vers un support spécifique.
  • Des fichiers de stylage interviennent aussi, pour définir couleurs, polices, couleurs et images de fond.

Composants du générateur

A partir de helloworld.wspdef

Vous allez créer le générateur HwOd a partir du wspdef. A la fin de ce tutoriel, votre wspdef pointera 2 générateurs comme on peut le voir sur l'écran suivant :

Créez le premier, Publication -> Générateurs 'open document' -> odGenerator

Les fichiers .generator

Pour chaque entrée souhaitée dans les onglets "publication", on crée en général 1 fichier .generator. Vous pouvez avoir 2 publications différentes dans le format de fichier de sortie, dans le stylage, dans l'agencement des parties, vous pouvez avoir une publication avec les "corrigées" et une sans, et à chaque fois cela donne lieu à la création d'un nouveau .generator, qui est le point de départ de toute nouvelle publication ou déclinaison d'une publication existante.

hwOd.generator

modelRoot : déclarez ici les modèles autorisés en tant que racine dans le générateur. Vous n'êtes pas obligé de déclarer tous les .model s'ils sont utilisés en tant que sous-modèles.

transformerList : créez un nouvel item de type publication -> transformerList. Ce fichier sera expliqué dans la partie suivante.

odTemplate : créez un nouvel item de type publication -> Générateurs 'open document' -> odTemplates (modèle openDocument) -> odTemplateText.

odStyle : laissez ce champ vide pour l'instant, il défini le stylage de chaque élément publié, mais il faut finir les autres parties du générateur avant de pouvoir le créer par un mécanisme spécial.

Les fichiers .transf

Les transformeurs sont utilisés pour traduire une donnée écrite par l'auteur en donnée à l'intérieur d'un document publié. Dans les cas les plus simples, on doit en créer un par .model et par générateur. Ils sont référencées par des listes de transformeurs (fichiers .transflist) pour pouvoir être exploité par le générateur.

hwOd.transflist

Ceci est la liste de tous les transformeurs que le générateur va utiliser. Reprenez les 2 transformeurs des modelets en version _od, et créez un nouveau transformeur Publication -> Générateurs 'open document' -> Transformers OpenDocument -> compositionOdtTransf.

helloworld.transf

Le transformeur compositionOdtTransf est systématiquement lié à un fichier compositionModel. A chaque fois que vous souhaitez voir l'apparition d'un contenu du .model dans votre génération, vous allez ajouter un sm:for codes="nom_de_partie". Maintenant que notre tranformeur "détecte" la part, il faut préciser ce qu'il en fait :

  • à l'intérieur du for, plaçons par exemple une balise heading (utilisée pour faire des parties titrées) ;
  • en guise de titre (title), nous allons mettre le titre de la part (partTitle), ce titre est défini par les métas de la part du fichier .model et fera automatiquement appel a sTitle_od.transf dans le modelet base, pointé par notre hwOd.transflist;
  • en guise de contenu, nous allons appeler le modèle qui a été détecté par le for : callSubModel. Le transformeur sText_od.transf se chargera de ce traitement.
Les transformeurs dans les modèles plus compliqués

Pour helloworld, le réseau de .transf correspond exactement au réseau .model et à notre unique sm:part de contenu. Ce n'est pas le cas pour tous les modèles plus complexes, vous pouvez avoir par exemple, des transformeurs qui ne vont pas détecter toutes les parts comme dans SimpleSlideShow où des commentaires pour l'orateur n'apparaissent pas dans les publications pour le lecteur. Vous pouvez les réorganiser, par exemple les champs d'état civil d'un CV ne seront pas forcément publiés dans le même ordre que celui de l'interface d'édition, en plaçant les for dans un ordre différent dans le transformeur.

Les templates

Les templates définissent les propriétés du document publié (pour les publications OpenOffice) ou d'un type de page publié (pour les publications HTML), et posent tous les blocs défini en dehors des transformeurs, à un niveau "au dessus" du contenu.

hwOd.odTemplate

Préoccupez vous maintenant de lier votre racine de contenu à une page. Nous allons faire au plus simple dans ce template de document :

  • un seul type de page.
  • juste un appel au modèle racine du générateur (callRootModel).

Stylage

Les styles

Créer un style, c'est appliquer une charte graphique aux éléments de contenu et du template. Techniquement, le style est constitué d'un fichier .odStyle.odt pour les générateurs OpenOffice ou un ensemble de fichiers .css pour les générateurs HTML.

Construire le style

Pour obtenir la première version du fichier de style, vous allez retourner sur le générateur, choisir l'onglet Styles et le bouton nouvelle construction.

  • Révélez le nouveau style généré
  • Une nouvelle fenêtre type "explorateur de fichier" doit s'ouvrir, elle contient le nouveau fichier odt
  • Copiez-le dans l'arbre à gauche, de votre atelier builder (par glisser-déposer ou par copier-coller)
  • retournez dans l'onglet édition de hwOd.generator et glissez-déposez le fichier depuis l'arbre de SCENARIbuilder vers le champ "odStyle" prévu à cet effet.
Quand reconstruire le fichier de style ?

A chaque fois que vous modifiez les transformeurs, en particulier si vous en ajoutez ou si vous déclarez des nouveaux codes et que vous souhaitez les restyler, vous devez revenir effectuer une nouvelle construction du fichier odStyle, le retélécharger, et le recopier à l'intérieur de votre atelier SCENARIbuilder en écrasant l'ancien. A partir du moment où le générateur est bien lié au style, reconstruire le style n'écrasera pas toutes les personnalisations que vous avez pu y effectuer.

La reconstruction sert uniquement à rajouter les parties manquantes par rapport aux évolutions de votre modèle dans l'odStyle pour que vous puissiez ensuite les styler. Il n'est pas nécessaire par exemple de le reconstruire après l'étape de personnalisation qui est décrite ci-dessous.

Personnaliser le style

Les personnalisations de l'odStyle.odt se déroulent dans OpenOffice : il s'ouvre par clic droit sur l'item dans le volet d'exploration, puis révéler dans le système de fichier.

En général, le stylage consiste à placer son curseur dans le document, sur le contenu d'une zone jaune, faire clic droit > edit paragraphe style. Pour éditer d'autres types de styles ou mieux les visualiser, appelez la fenêtre des styles : pressez F11. Les blocs jaunes créés automatiquement sont juste là pour mieux identifier les parties stylables par le modélisateur, mais n'apparaissent pas dans le document qui va exploiter votre style.

Ne pas sélectionner

Passez toujours par les modifications du style, ne sélectionnez pas directement le texte pour lui attribuer une mise en forme : elle ne serait pas réutilisée. Passez toujours par les styles.

(c) scenari-platform.org 2007