D o m i n i q u e   G u e b e y    J u n g l e      Bazar informatique

Documentation technique du site

Sommaire / Index :
Vue sommaire du site.
Enregistrement et génération des pages.
Mise à disposition des éléments de base et exemples de pages web.
Formats XML.
Eléments et attributs.
Fichiers annexes inclus (bandeau et menus).
Exemple de fichier XML.
Classes et feuilles de style (CSS).
Spécifications « note » (de bas de page).
Spécifications « liens ».
Spécifications « galerie d’image ».
Spécifications « calendrier ».
Spécifications « liste RSS ».
Fichier externe de description/menu (et xsl:key).
Langages de script.
Liste des modules XSLT.
Sortie d’un fichier par XSLT.
Lancement de la génération.
Utilisation d’un fichier externe et instruction document().
Utilisation de XPATH.
Utilisation des CSS Cascading Style Sheets.
Projets & liste des tâches / roadmap.
Terminé.

Vue sommaire du site

Répertoire racine
Contenu :
  • Home Page (index.html),
  • pages d’informations de base (au sujet de/about, signature open PGP avec fichiers textes téléchargeables, e-Mail, log/historique, auteur...),
  • fichiers de service (rdf, robots.txt).
design
Le repertoire design contient les feuilles de style
design/images
design/images contient des icones et autres images communes à tout le site.
XML/XSL
Les modules XSLT (fichiers .xsl) utilisés pour la génération des pages.
Répertoires thématiques
Chaque sujet principal (marche, informatique...) est contenu dans son propre répertoire, qui peut lui-même être subdivisé en chapitres distincts figurant dans des sous-répertoires (marche/technique, marche/resultats...)

Enregistrement et génération des pages

Les données sont écrites dans des fichiers XML. Un fichier XML peut contenir les données de plusieurs pages html. Un des intérêts de la méthode est d’obtenir automatiquement des header, en-têtes et pieds de pages standardisés.

Des transformations XSL créent automatiquement les fichiers HTML. Les modules XSL sont regroupés dans un ensemble nommé xslengin (alias net.dg77.xslengin). Le format html produit a évolué au fil du temps :

La transformation est lancée soit pour l’ensemble des pages contenues dans le fichier xml, soit pour l’une seule des pages html.

En principe, à chaque répertoire correspond un fichier XML qui regroupe l’ensemble des pages qui s’y trouvent installées. Néanmoins, il peut y en avoir plusieurs si une page ou un thème prend un forte importance, ou si des sous-répertoires importants sont développés (ex. : marche_technique.xml...). Inversement, des pages de plusieurs (sous-)répertoires peuvent être regroupées dans un seul fichier XML, notamment si leur taille est réduite.

La description d’une page peut se limiter à indiquer en référence (balise docu) un fichier externe à inclure.


Mise à disposition des éléments de base et exemples de pages web

(Depuis le 10 décembre 2015) Une distribution peut être librement récupérée sous forme de fichier compressé (format zip) dans le répertoire design.

design/www_template.zip.

Fichier « Lisez-moi.txt » de la distribution.

Fichier « Read_me.txt » de la distribution.


Formats XML

Différentes structures XML utilisées

La structure XML peut correspondre à différents types :

Formats standards, intégrés à la transformation XSLT
Balisage XHTML
Format RSS 2
En sommeil : balisage WML (Wap, pour téléphones mobiles).
Formats spécifiques
Définition des variables paramétrées.
Balises « maison ».
Liste de liens.
Galerie d’images. Ements qui entrainent, outre une page index, la crération d’autant de pages html qu’il y a d’images définiés.
Calendrier.
Obsolète : le Curriculum Vitae correspondait à un format et un traîtement spécifiques.
Fichier de description
Document externe utilisé pour fournir le sous-titre figurant sur le bandeau, en fonction du répertoire (et éventuellement du sous-répertoire).

Sur la méthode d’inclusion de fichiers externes, cf infra la section Utilisation d’un fichier externe et instruction document().

Fichier des paramètres Config.xml

Ce fichier doit impérativement porter ce nom et se trouver dans le répertoire design. Il contient la définition des variables utilisées par la génération.

<config xmlns="http://www.dg77.net/XML/">
  <!-- Encodage -->
  <encodage>utf-8</encodage>
  <!-- nom de domaine et sous-domaine -->
  <domaine>xxxxxx.com</domaine>
  <ssdomaine>www</ssdomaine>
  <!-- Auteur du site -->
  <dgauteur>Alfred Jarry</dgauteur>
  <!-- Fichier bandeau general du site -->
  <dgbando>../../design/root_bando.xml</dgbando>
  <!-- feuille de style (CSS) d'affichage -->
  <pcss>design/yyy.css</pcss>
  <!--  feuille de style (CSS) d'impression -->
  <pcss_prt>design/yyy_prt.css</pcss_prt>
  <!--  feuille de style (CSS) pour "mobile device" -->
  <pcss_mob>design/yyy_mob.css</pcss_mob>
  <!-- URL à utiliser pour CONTACT -->
  <pcontact>http://www.xxxxxx.com/email/</pcontact>
  <!-- URL de la page ABOUT -->
  <pabout>about.htm</pabout>
  <!-- nom du processeur xslt -->
  <ngen>saxon9he</ngen>
  <!-- url de l'auteur du processeur xslt -->
  <pgen>http://saxon.sourceforge.net/</pgen>
  <!-- Nom de cette machine XSLT -->
  <pgenerateur>net.dg77.xslengin</pgenerateur>
</config>

Eléments et attributs

Obligatoire

 <www> 
Elément racine de chaque fichier XML.
 <page> 
Elément qui englobe les données de chaque page Web.
 <titre> 
Titre de la page Web (élément title de la partie head.

Recommandé

 <cre> 
Date de création.
 <upd> 
Date de dernière modification.
 <hl> 
(12 nov 2006) hl comme « hyper lien ». Utilisé à la place de la balise <a> (anchor), cet élément permet d’avoir automatiquement l’indication de l’URL intégral dans la version imprimée. Ne fonctionne que pour les URL complêts avec protocole (exemple type : http: (http://www.domaine.tld/index.html)
Mise au point du 30 mai 2014 : désormais, le generateur sait aussi manipuler les liens internes (ex : ../../repert/toto.html) et reconstituer l’URL.
 <corps> 
Délimitation de la partie "donnés" pour la distinguer de la partie description. Recommandé pour les fichiers XML externes chargés par l’intermédiaire d’une balise <docu> ou <inclure>.

Inclusion d’éléments dans la page

<insert/@source="fichier_xml" />
Nouveauté du 2015-12-14. Permet d’insérer un fichier xml à un endroit quelconque (progrès par rapport à docu), avec traîtement standard du balisage (progrès par rapport à inclure)
 <docu> 
Fichier XML externe inclu dans la page web, défini dans la partie description.
<inclure/@source="fichier_xml" />
Permet d’insérer un fichier xml tel quel dans le corps des données. L’attribut source spécifie le nom de l’objet à inclure.

Facultatif

page/@e
Elément page/attribut e : enfilade ; si non vide, entraîne la création de liens précédent/suivant pointant vers la page précédente comme la suivante si celles-ci ont le même attribut. Facultatif.
page/@retour
Cet attribut indique la page de retour. Facultatif.
 <description> 
Contient les informations de base pour une page Web.
 <class> 
Facultatif : possibilité d’avoir une classe particulière pour le contenu principal de la page.
 <keywords> 
Mots clefs, utilisés dans la balise keywords de la partie head dans la page Web.
 <meta> 
Balises meta, utilisés dans les balise meta de la partie head dans la page Web.
 <link> 
Balises link, utilisés dans la balise link de la partie head dans la page Web.
 <style> 
Nom de la « feuille de style » CSS d’affichage.
 <style_print> 
Nom de la « feuille de style » CSS d’impression.
 <tet_add> 
Balises tet_add, permet d’ajouter quelque-chose en tête de page (après la partie bandeau standard), avant la partie « main ».
 <comment> 
Permet d’inclure des commentaires dans le document résultant. Fonctionne aussi dans l’entête (description), auquel cas les commentaires figureront en début de header quelle que soit leur place dans la partie description.
 <domaine/> 
(16 juillet 2011) Nom de domaine défini en paramètre. La balise domaine fait référence à un simple template qui récupère la variable.
 <ssdomaine/> 
(17 juillet 2011) Nom de sous-domaine défini en paramètre. Généralement www. La balise ssdomaine fait rérérence à un simple template qui récupère la variable. Exemple : <span class="print"> [http://<d:ssdomaine/>.<d:domaine/>/cv/index.html]</span>
Pages RSS :  @sommaire  (balise item)
(10 sept 2013) Possibilité d’afficher le sommaire des item en tête de page.
 @typ 
Utilisé avec les éléments link dans les fichiers XML/RSS. L’attribut typ est utilisé pour identifier le type de fichier, de lien... exemple : typ="mail". Par défaut, le lien généré sera du type URL avec protocole http.
 @format 
Attribut utilisé dans les éléments description des fichiers XML/RSS. Si la valeur est « pre », alors les données seront sorties entre balises pre par la génération du html.

Utile

 <bidon> 
Elément factice, utilisé pour différents besoins :
  • Au début du fichier XML source, permet d’avoir un attribut @retour supplémentaire indiquant une page se trouvant dans un autre XML.
  • Comme élément racine d’un fichier XML inséré par la balise inclure.

Fichiers annexes inclus (bandeau et menus)

Bandeau ($dgbando)

L’entête général du site est récupéré dans un fichier xml défini par la variable dgbando. Exemple :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE div SYSTEM "../XSL/listent.ent">
<div xmlns="http://www.dg77.net/XML/"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
><xsl:text disable-output-escaping="yes">&nbsp;M&nbsp;o&nbsp;n&nbsp;_&nbsp;S&nbsp;i&nbsp;t&nbsp;e&nbsp;&nbsp; 
</xsl:text>
<xsl:text disable-output-escaping="yes">&nbsp;&nbsp;&lt;/xsl:text></div>

Titre d’entête (root_index.xml)

Utilisé dans le traîtement de l’entête. Ce fichier définit les fichiers à inclure, en fonction du répertoire ou répertoire + sous-répertoire de la rubrique en question. Exemple pour la section « Galerie ».

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Liste des sections :
- cle   : nom du repertoire
- lib   : titre a afficher
- menu  : fichier contenant la barre de menu
-->
<index xmlns="http://www.dg77.net/XML/d/">
...
 <entree>
   <cle>galerie</cle>
   <lib>Images</lib>
   <menu>../etc/menu_root.xml</menu>
 </entree>
...
</index>

Insertion en tête de page

Par exemple : ajout de menu déroulant sous le bandeau. Cf la balise tet_add.


Exemple de fichier XML

La reproduction ci-dessous concerne la présente page. On voit qu’elle est contenue entre les balises <page> ... </page>. En tête de fichier, après la déclaration XML, la mention DOCTYPE fait référence à un fichier qui contient la liste des entités utilisées dans le document XML.

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE www SYSTEM "../XML/XSL/listent.ent">
<www xmlns="http://www.dg77.net/XML/" 
    xmlns:d="http://www.dg77.net/XML/d/"
>

...

<!-- *************************************************** -->

<page nomfic="tekno/sitedoc.htm" retour="tekno/index.html" e="">
<description>
    <cre>2004-10-28</cre>
    <upd></upd>
    <titre>Documentation technique</titre>
    <description>Documentation technique sur la creation des pages de ce site</description>
    <keywords>ducumentation,howto,web,site,html,xhtml,xml,xslt</keywords>
    <style></style>
    <docu></docu>
</description>

<corps>

<h2>Documentation technique du site</h2><
    ...
    
</corps>
</page>
<!-- *************************************************** -->

<page nomfic="tekno/tomcat.htm" retour="tekno/index.html" e="">
<description>
    ...
</page>

</www>

Une partie préliminaire, contenue au sein de l’élément description, donne diverses information qui serviront à la partie HEAD de la page. Noter d’abord les attributs :

La description contient différentes informations classiques (titre, description, mots-clefs...). La balise titre est obligatoire. cre et upd sont les dates de création et dernière modification de la page. Il est possible d’insérer dans cette partie des balisages meta et link : ils seront reproduits dans l’entete de la page résultante.


Classes et feuilles de style (CSS)

Classes générales de présentation

contenu
Présentation standard
cont_litt
Présentation à marges large pour textes plus aérés.
galerie
Présentation pour page image.

Feuilles de style (CSS)

CSS principales, obligatoires.

[n] désigne le numéro de version.

dg[n].css
Fichier CSS pour écran de moniteur courant.
dg[n]_prt.css
CSS pour impression.
mobile[n].css
CSS pour terminal mobile, activation dans l’entête par l’élément <link rel="stylesheet" type="text/css" href="design/mobile.css" media="handeld"/>.
CSS facultatives.
ecranvert.css
Pour les pages contenant notamment des « écrans verts » (terminaux 5250) IBM.
galerie.css
Style destiné aux galeries d’images.
galerie_prt.css
Style destiné à l’impression de pages de « galeries d’images ».
marche_calend.css
Pour affichage d’un calendrier avec couleurs de fond variées.
poeme.css
Pour affichage de vers.
sommaire.css
Pour affichage d’un bandeau de menu avec sous-menus dynamiques.
CSS spéciales.
rss.css
Pour affichage direct d’un fichier css (sans transformation xsl).

CSS3 – compatibilité avec terminaux mobiles

Différenciation selon la largeur

Une clause @media permet de modifier la présentation si la fenêtre mesure 480 pixels ou moins. Implémenté le 17 juin 2012.

Simplification de l’entête
Non affichage du bandeau et de la barre de menu.
Limitation de la taille des images
Utilisation de max-width : la largeur des images est limitée à un maximum de 300 pixels.
Non sortie de certaines images
La classe "deco" remplace dans ce but la classe "navd".
Floating right
La classe "suitd" permet de conserver sur petit écran la propriété Floating Right, normalement supprimée pour navd et navg.

Spécifications « note » (de bas de page)

Eléments et attributs

 <d:note> 
Le contenu est renvoyé en note de bas de page. Numérotage automatique.
d:note/@ref
Elément note : indique l’id de retour. Facultatif.
d:note/@id
Elément note : indique l’id du renvoi à la note. A défaut, ce sera un numéro. Utilité : permettre un autre renvoi à la note (dans la même page du moins).

Du balisage peut être inclu dans le corps de la note.

Amélioration du 29 nov 2016 : sur passage du curseur, affichage dans une infobulle du contenu de la note (limité à 1600 caractères) par ajout d’un attribut TITLE dans le module XSLT :

<xsl:attribute name="title"><xsl:value-of select="substring(current(),1,1600)"/></xsl:attribute>

Exemple

« ...mais dans ces cas il me semble que le poète 
a voulu plutôt nous faire sentir son penchant inévitable, quelque idiote 
qu’elle soit, pour la jouissance des plaisirs sexuels. » 
<d:note ref="neef1">Theodore Lee Neef, La Satire Des Femmes Dans la 
Poesie Lyrique Francaise Du Moyen Age – Giard & Brière, 
Paris 1900</d:note> ... 

Spécifications « liens »

Exemple

<d:liens titre="Sites meritoires et meritant le detour" niv="3">
   <d:categorie titre="Droit des gens et humanitaire">
      <d:lien uri="http://www.mediasol.org">Info sur l’économie sociale.</d:lien>
      <d:liec>Bla bla bla.</d:liec>
      <d:lien uri="http://www.aui-ong.org">Action d’Urgence Internationale, 
          interventions à la suite de catastrophes naturelles, prévention, formation, 
          reconstruction.</d:lien>
      <d:lien uri="http://www.amnesty.org">Arrestations arbitraires, tortures, 
          exécutions : ça existe ;
          attention, ça n’arrive pas qu’aux autres.</d:lien>
   </d:categorie>
</d:liens>

Nomenclature des éléments

 <liens> 
Elément racine, obligatoire.
 <categorie> 
Elément qui permet d’établir des subdivisions en sections (facultatif).
 <lien> 
Lien internet, contient un libellé.
 <liec> 
Commentaire facultatif, ajouté en petits caractères.
 @uri 
Attribut qui contient l’URL ; exemple :  uri="http://www.w3.org" 
 @niv 
Attribut qui spécifie le niveau du titre. Valeur : de 1 à 5 (pour h1 à h5). A défaut, utilisation de h4 (h5 pour les sous-titres). Implémenté (enfin) le 20 février 2011.

Spécifications « galerie d’image »

Principe

Le traîtement de ces éléments aura deux effets :

  1. Dans le document en cours, création d’un "index" des images qu’on veut montrer.
  2. Pour chaque image, il y aura aussi génération d’une page "web" HTML.

Exemple minimum d’une galerie composée de deux images

<d:galerie>
    <d:galimage>
        <d:galtit>titre 1</d:galtit>
        <d:galfic galhau="500" alt="texte libre">nom_de_fichier_1</d:galfic>
    </d:galimage>
    <d:galimage>
        <d:galtit>titre 2</d:galtit>
        <d:galfic>nom_de_fichier_2S</d:galfic>
    </d:galimage>
</d:galerie>

Nomenclature des éléments

 <galerie>  élément racine.
Obligatoire.
Attribut facultatif :
@sorhtml
Permet d’indiquer un emplacement particulier pour chaque image.
 <galimage>  informations d’une image.
Doit contenir au moins les éléments galtit (titre) et galfic (nom du fichier).
 <galtit>  titre de l’image.
 <galfic>  nom de fichier sans l’extension.
Le nom du fichier image sert à désigner aussi bien l’icone affichée sur la page index que le fichier html qui permet de voir l’image.
Attributs facultatifs :
@galhau
Indique la hauteur en pixels de l’image affichée
@galarg
Indique la largeur en pixels de l’image affichée
@alt
Attribut standard xhtml, contient un texte de remplacement à l’image.
L’extension de l’image comme de l’icone est ".jpg". Le fichier icone est précédé de "t_". La page image générée portera le même nom suivi de l’extension ".htm".
Exemple à partir d’une image nommée affreux.jpg, on devra avoir une image réduite (icône) nommée t_affreux.jpg et le système générera une page affreux.htm.
Informations facultatives associées aux images
 <galaut>  auteur.
 <galcop>  copyright.
 <galtxte>  et  <galtxtf>  texte qui est sorti avant (galtxte) ou après (galtxtf) l’image.
Les quatres éléments galaut, galcop, galtxte et galtxtf peuvent contenir des balises html.
 <galcre>  et  <galupd>  dates de création et de dernière modification de la page image. A défaut, c’est la date de la page index d’origine qui est utilisée.
Possibilité d’avoir des informations communes
Si on spécifie sous l’élément racine galerie un élément galcop, galaut, galtxte ou galtxtf, il sera reproduit dans chacune des pages images.
Un élément galcop ou galaut spécifié au niveau de l’image prend le pas sur le même élément au niveau supérieur comme indiqué précédemment.
Eléments généraux spécifiques à une page image
 <description> 
Il est possible d’insérer dans une page image les données standard de description et keywords destinées à son entête html (partie head). Pour cela elles doivent être insérées dans une balise description standard. Voir illustration ci-dessous (noter l’absence de namespace).

Exemple plus étoffé, toujours composé de deux images

Noter l’attribut alt qui sera copié automatiquement dans la balise img.

<d:galerie>
    <d:galaut><b>Nom de l’auteur affiché en gras sous toutes les images</b></d:galaut>
    <d:galcop>Mentions de copyright reproduites sous toutes les images</d:galcop>
    <d:galtxte>Ce texte sortira sous le titre, en tête de chaque page image, ainsi que 
    sur la planche index.</d:galtxte>
    <d:galtxtf>Ce texte sortira en fin de chaque page image, sous l’image, ainsi que 
    sur la planche index..</d:galtxtf>
    <d:galimage>
        <d:galtit>titre 1</d:galtit>
        <d:galfic alt="XXXXXX" galhau="500">nom_de_fichier_1</d:galfic>
        <d:galtxte>Ce texte sortira au dessus de l’image.</d:galtxte>
        <d:galtxtf>Ce texte sortira au dessous de l’image.</d:galtxtf>
        <d:galaut><b>Nom de l’auteur spécifique de cette image</b></d:galaut>
        <-- Il n’y aura pas de mention de copyright 
        sur la page de cette image :                                 -->
        <d:galcop>  </d:galcop<
        <description> <!-- sera reportee dans la balise META Description de l’entete -->
          <description>xxxxx texte descriptif particulier xxxxxxx</description>
          <keywords>Liste de mots clefs.</keywords>
        </description>
    </d:galimage>
    <d:galimage>
        <d:galtit>titre 2</d:galtit>
        <d:galfic>nom_de_fichier_2</d:galfic>
        <d:galtxte>Ce texte sortira au dessus de l’image.</d:galtxte>
        <d:galtxtf>Ce texte sortira au dessous de l’image.</d:galtxtf>
        <-- Dates particulières de création et modification de 
        cette page image :                                           -->
        <d:galcre>2006-07-14</d:galcre>
        <d:galupd>2006-07-31</d:galupd>
    </d:galimage>
</d:galerie>

Spécifications « calendrier »

 <calend> 
Obligatoire, élément racine.
Attribut facultatif @titre
Attribut facultatif @niv
 <cal_sec>  section.
Pour subdivision éventuelle.
Attribut @titre
 <cal_eve> .
Libellé évènement.
 <cal_date> 
Date de l’évènement.
 <cal_loc> 
Lieu de l’évènement.
 <cal_tit> 
Désignation de l’évènement.
 <cal_com> 
Commentaires/description de l’évènement.
 <cal_res> 
Facultatif. Destiné à indiquer un lien vers d’éventuels résultats.
Attribut obligatoire : @href lien

Spécifications « liste RSS »

(28 aout 2012) But : afficher une liste des n premiers titres d’un fichier RSS. L’attribut ficrss indique le fichier en entrée  ; refhtml désigne le fichier html en sortie (dans le rss, on récupère l’attribut guid pour pointer exactement sur le bon item).

(24 avr. 2015) Nouvel attribut : limitation du nombre d’items affichés (facultatif). Dans l’exemple ci-dessous, 10 items maximum seront sortis.

 <listrss ficrss="../xxxx/xxxxx.xml" refhtml="zzzz.htm" maxitem="10" /> 


Fichier externe de description/menu et xsl:key

Fonction : fournir un index du site et des libellés automatisables.

Ce fichier ouvre aussi une possibilité de barre de menu en tête de page.

 index 
Racine
 entree 
Enregistrement
 cle 
Nom de répertoire, suivi éventuellement d’un sous-répertoire
 lib 
Libellé
 menu 
Nom d’un fichier contenant une "barre de menu" (classe/id "menubar") affichable en tête de page.

Exemple :

<index xmlns="http://www.dg77.net/XML/d/">
 <entree>
   <cle>marche</cle>
   <lib>La marche athlétique</lib>
   <menu>../src/menu_marche.xml</menu>
 </entree>
 <entree>
   <cle>tekno</cle>
   <lib>Bazar informatique</lib>
 </entree>
 <entree>
   <cle>tekno/as400</cle>
   <lib>AS/400 - iSeries</lib>
 </entree>
</index>

Génération. L’argument de recherche est transmis par la variable clef. Noter l’utilisation de for-each pour contourner l’interdiction d’utiliser directement document() dans match="...

<!-- Definition de la clef d'acces -->
<!-- xsl:key doit etre au sommet de la page xslt ("top level") -->
<xsl:key name="chainage" match="d:entree" use="d:cle"></xsl:key>

  ...

<!-- Recherche et recuperation du libelle -->
 <xsl:for-each select="document('../fic_plan.xml')/d:index">
   <xsl:value-of select="key('chainage',$clef)/d:lib" />
 </xsl:for-each>

Langages de script

Fenêtre popup javascript

Balise ajoutée dans l’entête (partie « description » dans le source xml). A la génération, cette ligne sera copiée dans le « head » de la page html :

    <script src="../../script/jspop.js" type="text/javascript"></script>

Lien compatible avec un navigateur n’utilisant pas javascript et conforme xhtml strict :

<a href="optique.htm#anxabsph" onclick="popUp(this.href,'console',400,600);return false;" 
    rel="external">[*]</a>.

Liste des modules XSLT

Génération standard des pages

listent.ent
DTD contenant des entités caractère
dg77_2.xsl
Initialise les variables et charge les autres modules
dg_h.xsl
Traitement général. Noter : calcul du chemin de retour à la racine, création d’un seul fichier si son nom complêt a été passé en paramètre.
dg77_head.xsl
Génère la partie HEAD (meta, link...)
dg_entete.xsl
Partie haute de l’affichage (barre de navigation, appelle le contenu de navig
dg77_navig.xsl
Module appelé par entete et pied : gère les liens de navigation en avant et en arrière.
dg_p.xsl
Fonctionne comme l’entête mais en plus sort les informations relatives à la page (dates de création-mise à jour, informations générales etc...)
dg77_sommaire.xsl
Sortie automatique d’une table des matières (s’applique aux fichiers "liens").
dg_hautbas.xsl
Positionne l’icone-lien de navigation verticale.
dg_contact.xsl
Sortie des cases "contact" et "à propos de ce site".
dg_hl.xsl
Template de traîtement de l’élément hl (sortie de l’URL complet dans la version imprimable).

Outils particuliers

Quelques traîtements ont été créés pour des besoins spécifiques. Voir descriptifs dans la page Memento XPATH + XSLT [http://www.dg77.net/tekno/xpath.htm] :


Sortie d’un fichier par XSLT

Générateur et xsl:result-document

<xsl:stylesheet version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:saxon="http://icl.com/saxon"
        extension-element-prefixes="saxon"
        exclude-result-prefixes="dg rss2 dbk saxon"
        ...
>
...
...
<xsl:template name="outhtml">
            <xsl:variable name="znom"><xsl:value-of select="@nomfic"/></xsl:variable>
            <xsl:result-document href="{$znom}">
                <xsl:call-template name="outh"/>
            </xsl:result-document>
</xsl:template>

Utilisation de xalan:write

Avant l’utilisation de Saxon, il y a eu une période "Xalan" (8 octobre 2004 - 31 octobre 2005). Noter le "namespace" et les instructions spécifiques dans dg77_html.xsl

<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:xalan="org.apache.xalan.xslt.extensions.Redirect"
	extension-element-prefixes="xalan"
	xmlns:dg="http://www.dg77.net/XML/"
        xmlns:rss2="http://blogs.law.harvard.edu/tech/rss"
        exclude-result-prefixes="dg rss2"
>

...

<!-- 	OUTHTML : sortie de la page      -->
<xsl:template name="outhtml">...
<!-- Chargement de variables ... -->
...
<xalan:write select="@nomfic">
    <html>
        <xsl:attribute name="xml:lang">
            <xsl:choose>
                <xsl:when test="dg:description/dg:lang != ''">
                    <xsl:value-of select="dg:description/dg:lang"/>
                </xsl:when>
                <xsl:otherwise>fr</xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>
        <xsl:call-template name="thead">
...
        </body>
    </html>
</xalan:write>
...

Lancement de la génération

Utilisation du processeur SAXON

Se placer d’abord dans le répertoire racine du site. Lancement pour cette page : x2  tekno/tekno.xml  dim02jul2006-15:24  tekno/dgsite.htm

echo Fichier xml lu : %1  Horodatage : %2  Fichier traite : %3
echo on
java -jar saxon8.jar %1 XML/XSL/dg77_2.xsl dateheure=%2 fichier=%3 fxml=%1

Utilisation du processeur Xalan

Le script ci-dessous est pour Unix-Gnu/Linux. Pour la présente page, son lancement se fera sous la forme suivante : dg77gen.sh  tekno/tekno.xml  tekno/dgsite.htm . Noter que le second paramètre doit concorder exactement avec le contenu de l’attribut nomfic de l’élément page. Si on l’omet, TOUTES les pages du fichier XML sont traîtées.

#! /bin/bash
# 
# GENERATION XSLT utilisant XALAN
# Créé le 11 juillet 2004 par Dominique Guebey
#
# parametres :
# 1 : nom du fichier XML
# 2 : nom de l'element fichier unique a traiter ; par defaut tous seront generes
# dateheure (3) : chaine de caracteres pour horodatage
dateheure=`eval date +%a-%d%B%Y-%T`
java -classpath $CLASSPATH:/opt/SUNWappserver/lib/endorsed/xalan.jar.pack org.apache.xalan.xslt.Process 
   -in $1 -xsl XML/XSL/dg77_gen.xsl -out sortie.htm -param dateheure $dateheure -param fichier $2 -param fxml $1

Attention : l’instruction java -classpath... a été mise sur plusieurs lignes uniquement pour la clarté de la mise-en-page.


Utilisation d’un fichier externe et instruction document()

La balise docu dans la partie description permet d’importer un fichier externe.

Un fichier externe peut être de type "liens" (spécifique), RSS2, ou XHTML.

Pour le format XHTML, quelques aménagements sont nécessaires :

Inclusion d’un RSS2 : possibilité d’afficher (mais pas imprimer) un sommaire en début de page html. Conditionné par un attribut sommaire non vide dans la balise channel.

Utilisation de document() associé avec key : cf supra Fichier externe de description/menu.

Pour les fichiers de liens, voir un exemple : HTML et XML


Utilisation de XPATH

XPATH permet de récupérer des données de fichiers XML situées à différents emplacements. Exemples :

Voir la page spécifique Memento Xpath


Utilisation des CSS Cascading Style Sheets

Formats particuliers

Des CSS spécifiques autorisent l’affichage direct d’un fichier XML.

Evolutions, à noter :


Projets & liste des tâches / roadmap

Progiciellisation

Paraméter les URL standards :

Entête

Améliorer l’algorithme. Actuellement il faut définir tous les sous-répertoires dans le fichier root_index.xml pour avoir l’entête correct.

Notes de bas de page automatiques

Balise spécifique d:note
Reste à voir :
Ne fonctionne pas pour un document externe.

Sommaire automatique

A voir.

Indexation générale

A voir.


Terminé

Suppression du support de format WAP

Effectuée le 2015-12-08.

 <card> 
Obsolète. Délimite les données à inclure dans une page WAP lisible sur un téléphone mobile. La taille totale totale du fichier .WML résultant doit être inférieure à 4 Ko.

Suppression du support de format Docbook (DBK)

Effectuée le 2015-12-08.

Progiciellisation

Présentation
Domaine du site intégralement paramétré
Modules XSLT

Le nom de domaine est paramétrable (depuis les 16-17 juillet 2011). Les valeurs sont chargées par le module dg77_2.xsl, dans les variables domaine et ssdomaine. Reste à voir :

Le module redir_gen.xsl est autonome, utilisation exceptionnelle.

Version imprimable

Cf liens automatique infra

Sortie des liens automatique

Balise hl. But : ne plus être obligé de saisir deux fois les URL.

Fils RSS

Normalisation des fichiers mis en ligne

Scripts de mise en ligne particuliers pour les RSS (log.xml et news.xml). Un module xslt élimine tout ce qui est non-standard avant l’envoi.

Gestion du lien

Si l’URL contient un protocole (présence de ://), sortie in extenso. Sinon :

Passage à html5

Génération en html5 opérationnelle le 4 novembre 2014. Auparavant on utilisait le xhtml 1.1 (depuis le 6 juin 2003). Le changement initial concerne la partie head et est sans incidence sur le contenu des pages.

Liste de lien

Paramétrage du niveau de titre (h1, h2...). Cf spécifications liens. Ajouter un attribut :

Sommaire automatique d’un fichier RSS

Vu depuis...

Evolutions vers XHTML 2.0

Ce projet est arrêté, la norme en cours est devenue HTML5.

Compatibilité de marquages XHTML2 pour sortie en XHTML1.1
Rubrique Description Remarque A faire Avancement
edit Nouvel attribut Remplace DEL et INS Gérer aussi date ? Prévu dans XSLT (sans plus)
di Nouveau subdivision de dl Prévu dans XSLT (sans plus)
role Nouvel attribut "semantic web" Prévu dans XSLT (sans plus)
separator Nouveau Remplace hr invisible Révision des sources (vu) Prévu (converti en hr class="pavu")
acronym Supprimé Remplacé par abbr Vu
  • tekno_lynx
  • tekno_as400
  • marche_tech_manuel
big Supprimé Révision des sources (vu)
b Supprimé Révision des sources (vu) Géré par span+CSS
i Supprimé Révision des sources (vu) Géré par span+CSS
small Supprimé Conservé pour compatibilité Révision des sources (vu) Géré par span+CSS
tt Supprimé Révision des sources (vu) Remplacé par span+CSS
h Nouveau Titre générique
nl Nouveau Navigation list
href Possible dans tout élément
img Remplacement par object Inutile Non souhaitable

Cre : 28 oct 2004 - Maj : 30 dec 2016

A propos de ces pages / about these pages : http://www.dg77.net/about.htm
Gen : 01/01/2017-11:33:33,95