Le web de Dominique Guebey – Bazar informatique

Page web  : http://www.dg77.net/tekno/sitedoc.htm


   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

Le site dg77.net

Présence sur la Toile.

Un historique succinct des débuts se trouve à la fin de la page Log du Site. [http://www.dg77.net/archives/index.htm#histo]

Format

Les pages sont au format HTML5.

Évolution :

Implantation générale

Racine

Le répertoire racine contient :

Répertoire design

Ce répertoire regroupe des fichiers utiles à la création et à la présentation du site.

Répertoire script

Ce répertoire est destiné aux modules javascript ou autres.

Répertoires thématiques

Il s’agit des répertoires correspondant aux différentes rubriques traîtées sur le site.

Bilan carbone minimum

Le site est statique : à un moment donné, tout le monde verra les mêmes contenus avec la même présentation. Les boutons et liens de navigations sont affichés, au lieu d’images, à l’aide de caractères inclus dans le balisage. Aucune icône ou autre élément décoratif n’est à télécharger.

Outre la sécurité et la rapidité d’affichage, cette conception a plusieurs conséquences favorables :

Divers raffinements

Galerie d’images

Un jeu d’éléments spécifiques permet de créer rapidement une suite de pages constituant un portfolio d’illustrations à partir d’un index composé d’un tableau de petites images. Cf les spécifications galerie d’images.

Sommaire automatique

Un élément unique permet de sortir un sommaire constitué à partir des sous-titres de la page. Cf les spécifications.

Notes de bas de page

Une balise particulière permet de créer automatiquement des notes. Cf les spécifications.

Version imprimable

La version imprimable est gérée par une feuille de style CSS spécifique. À noter :

Version affichable

Le style s’adapte à la taille de l’écran. En particulier la taille des images s’adapte finement. Sur les plus petits terminaux (smartphone), la couleur de fond est noire, pour économiser la batterie.

Support multilingue

Le code langue est paramétrable à plusieurs niveaux :

Génération, enregistrement des pages, namespace.

Stockage des données à publier dans le Web

Les données sont écrites dans des fichiers XML, dits fichiers sources. Un fichier XML peut contenir les données de plusieurs pages html. Le système se charge d’ajouter automatiquement des header, en-têtes et pieds de pages standardisés.

Méthode de production des pages Web

Les fichiers HTML sont créés par des transformations XSL, contenues dans des fichiers .xsl – également au format xml. Des informations détaillées se trouvent plus bas (sections Processeur XSLT et Liste des modules).

La transformation XSL peut être lancée pour l’ensemble des pages html contenues dans le fichier xml, ou pour une seule d’entre elles.

La description d’une page peut se limiter à indiquer en référence (balise d:docu) un autre fichier xml (fichier externe) qui sera inclu à la génération.

Namespaces (espaces de nommage)

Les données html contenues dans les fichiers source XML sont associées à l’espace de nommage défini par http://ns.dg77.net/XML/. Les balises spécifiques au présent système, par convention distinguées par le raccourci (xmlns) d:, sont associées à http://ns.dg77.net/XML/d/.

Confection du site

On se positionne dans le répertoire racine du site (commande cd). C’est à partir de là que le processeur XSLT mettra les données qu’il génère.

Arguments à transmettre au module XSLT :

Distribution libre, licence, Changelog

Distribution

On peut récupérer les outils qui produisent le présent site sous la forme d’un fichier compressé (format zip). On y trouvera le nécessaire pour produire ses propres pages web. Il s’agit pour l’essentiel de modules XSLT de génération, de fichiers de configuration, feuilles de style CSS, et des exemples de fichiers sources XML.

Licence

Licence : les modules XSL ainsi que tout objet de programmation accessibles par un lien sur le présent site Internet sont, sauf mention particulière, placés sous le régime de la licence MIT Expat1.

Changelog

Un fichier Changelog.txt permet de connaître les éléments qui ont fait l’objet de corrections ou améliorations, ainsi que les évolutions depuis la dernière version.

Téléchargements

En cours / Current

Dernière version : #21, du 6 octobre 2024.

Exemples, page témoin et structure XML

Une page témoin [http://www.dg77.net/demo/index.html] est disponible. Son source XML [http://www.dg77.net/demo/demo_temoin.txt] permet de comprendre comment s’affichent les différents éléments qu’on peut trouver dans une page web.

Schéma simplifié.

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

<d:page nomfic="chemin/nompage.htm">
<d:description>
    <d:cre>2004-10-28</d:cre>
    <d:upd></d:upd>
    <d:titre>Documentation technique</d:titre>
    <description>(Texte descriptif)<description>
</d:description>

<h2>Documentation technique du site</h2><
    …
    
</page>

<page nomfic="autrepage.html">
<description>
    …
</d:page>

</d:www>

Illustration plus complête :

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

…

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

<d:page nomfic="tekno/sitedoc.htm" retour="tekno/index.html" e="">
<d:description>
    <d:cre>2004-10-28</d:cre>
    <d:upd></d:upd>
    <d:titre>Documentation technique</d:titre>
    <description>Documentation technique sur ce site</description>
    <keywords>html,xhtml,xml,xslt</keywords>
    <d:style></d:style>
    <d:docu></d:docu>
</d:description>

<h2>Documentation technique du site</h2><
    …

[contenu à afficher de la page web]
    
</d:page>
<!-- *************************************************** -->

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

[balisage html]

</d:page>

</d:www>

La partie préliminaire, contenue au sein de l’élément d: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 d:titre est obligatoire. d:cre et d: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.

Fichiers de configuration, paramétrages, entêtes

Configuration générale

Le fichier de configuration générale était nommé à l’origine Config.xml. Il peut se trouver ici encore désigné par ce nom, quoique sa dénomination soit maintenant libre. Ce fichier permet d’initialiser des variables essentielles, telles que l’encodage (cf notre page [http://www.dg77.net/tekno/xhtml/codage.htm]), la langue par défaut, le protocole, le nom de domaine, la désignation de la page d’accueil, etc.

<config xmlns="http://ns.dg77.net/XML/d/">
  <!-- Encodage -->
  <encodage>utf-8</encodage>
  <!-- Langue par defaut -->
  <dglang>fr</dglang>
  <!-- Dictionnaire des libelles -->
  <dgdic>../../design/dico.xml</dgdic>
  <!-- Protocole (http, https...) -->
  <protoc>http</protoc>
  <!-- noms de domaine et sous-domaine -->
  <domaine>xxxxxx.com</domaine>
  <ssdomaine>www</ssdomaine>
  <!-- Nom de la page d'accueil 
       (par défaut : index.html) -->
  <homepage>/index.php</homepage>
  <!-- Module javascript general. -->
  <fjscript>script/dg77.js</fjscript>
  <!-- Liste d'exclusion du bouton de retour    -->
  <!-- javascript. Si '*' : exclusion générale. -->
  <pretour_js>../../design/ret_js.xml</pretour_js>
  <!-- Fichier index des sections du site -->
  <dgindex>../../design/root_index.xml</dgindex>
  <!-- feuille de style (CSS) generale -->
  <pcss_gen>/design/monstyl.css</pcss_gen>
  <!-- feuille de style d'affichage (screen) -->
  <pcss_scr>/design/monstylecran.css</pcss_scr>
  <!--  feuille de style d'impression (print) -->
  <pcss_prt>/design/monstylimpr.css</pcss_prt>
  <!-- Classe par defaut du contenu -->
  <class_main>contenu</class_main>
  <!-- Classe par defaut des sous-titres -->
  <class_titr>demo</class_titr>

  <!--  GALERIE D'IMAGES -->
  <!--  feuille de style (CSS) galerie d'image -->
  <pcss_gal>/design/galerie.css</pcss_gal>
  <!-- Classe pour galerie d'images -->
  <class_gal>image</class_gal>
  <!--  pref/suffixe pour noms des icônes -->
  <gal_prefix>_t</gal_prefix>
  <!--  Cf précédent : si gal_preftop vide, c'est 
  un préfixe (mis avant le nom du fichier), si non 
  vide, c'est un suffixe (ajouté après le nom) -->
  <gal_preftop>x</gal_preftop>

  <!-- Auteur du site -->
  <dgauteur>Alfred Jarry</dgauteur>
  <!-- Page sur l'auteur -->
  <dgautpag>/auteur.htm</dgautpag>
  <!-- Page "plan du site" (sitemap) -->
  <sitemap>/sitemap.htm</sitemap>
  <!-- page informations globales sur le site -->
  <pinfo>/info.htm</pinfo>
  <!-- URL à utiliser pour CONTACT -->
  <!-- Par defaut, l'URL est fourni par le module javascript -->
  <pcontact>http://www.xxxxxx.com/email/</pcontact>
  <!-- URL de la page ABOUT -->
  <pabout>/about.htm</pabout>
  <!-- Emplacement et nom "favicon" -->
  <favicon>/design/favic.ico</favicon>
  <!-- Emplacement et nom image QRCode du site -->
  <qrcode>/monQRcode.png</qrcode>
  <!-- Nom de cette machine XSLT -->
  <pgenerateur>net.dg77.xslengin</pgenerateur>
</config>

Feuille de style de service

Un fichier de type CSS a été créé pour permettre l’affichage convivial dans un navigateur de Config.xml, ainsi que root_index.xml (cf infra). Dans le présent site il se dénomme design/config_xml.css. Son utilisation suppose deux conditions :

Exemple :

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="config_xml.css"?>
<config xmlns="http://ns.dg77.net/XML/">
  <encodage nom="Encodage">utf-8</encodage>
  <dglang nom="Langue">etc.

Afficher la codification pour le présent site internet : Suivre ce lien [http://www.dg77.net/design/Config.xml].

Bandeau général d’entête (exemple)

Il s’agit de ce qui est souvent nommé la « bannière » du site. Les coordonnées de ce fichier sont trouvées dans l’index décrit ci-dessous (cf Fichier index d’entête, élément bando).

Exemple de bandeau.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE div SYSTEM "../XSL/listent.ent">
<span xmlns="http://ns.dg77.net/XML/" 
         xmlns:d="http://ns.dg77.net/XML/d/">
  <img src="£dg77 £/design/images/emblem.jpg" class="navg" alt="Logo"/>
  <xsl:text disable-output-escaping="yes">&nbsp;XXX&nbsp;</xsl:text>
  <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
</span>

Fichier index d’entête

Ce fichier sert à définir où seront trouvés le bandeau d’entête et les barres de menu utilisées sur le site Web.

Emplacement et nom : voir dgindex dans le fichier de configuration. Auparavant ce fichier se nommait impérativement design/root_index.xml.

Fonction : fournir un index du site et des libellés automatisables dans le bandeau. Il permet entre autres d’avoir une barre de menu variable en fonction du répertoire où on se situe.

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

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Liste des sections :
- cle   : nom du repertoire
- bando : fichier bandeau en tete de page
- lib   : titre a afficher
- menu  : fichier contenant la barre de menu
- descr : élément (pour version imprimable), ne
          doit exister qu'en un seul exemplaire.
-->
<index xmlns="http://exe.dg77.net/XML/d/">
 <entree>
   <cle></cle>
   <bando>../SRC/bandeau.xml</bando>
   <lib>Exemple</lib>
   <lib lng="en">Sample</lib>
   <menu>../SRC/menu_root.xml</menu>
   <descr>Le web d’Alfred</descr>
 </entree>
 <entree>
   <cle>marche</cle>
   <lib>La marche athlétique</lib>
   <lib lng="en">Racewalking</lib>
   <menu>../src/menu_marche.xml</menu>
 </entree>
 <entree>
   <cle>tekno</cle>
   <lib>Encyclopedie informatique</lib>
 </entree>
 <entree>
   <cle>tekno/as400</cle>
   <lib>AS/400 - iSeries</lib>
 </entree>
</index>
 index 
Racine.
 entree 
Enregistrement.
 cle 
Nom de répertoire, suivi éventuellement d’un sous-répertoire. Il doit exister un enregistrement <entree> pour lequel cette valeur est nulle. Elle donnera des valeurs par défaut valables le cas échéant pour toute page html. Cela peut arriver si la page est dans un répertoire qui n’a pas son propre enregistrement (balise cle=nom du répertoire).
 bando 
Bandeau d’en-tête.
 lib 
Libellé qui s’affichera dans la bannière d’entête.
 lib/@lng 
Support multilingue : l’attribut lng de l’élément lib permet d’avoir un libellé différent suivant le code langue en cours.
 menu 
Nom d’un fichier contenant une "barre de menu" (classe/id "menubar") affichable en tête de page.
 descr 
Texte destiné à la version imprimable. Cet élément est unique dans tout le fichier root_index.xml.

Barres de menu

Les barres de menu de l’entête sont dans des fichiers xml, désignés par le fichier index présenté ci-dessus. Il est possible de stocker plusieurs barres de menu dans un unique fichier. Cela s’obtient en utilisant un attribut id qui sera le même dans l’index et le fichier des barres de menu. Exemple :

Fichier index, enregistrement minimum avec sélection par id.
<entree>
    <cle nom="Cle"></cle>
    <bando nom="Bandeau">../../design/root_bando.xml</bando>
    <lib nom="Lib"></lib>
    <menu nom="Menu" id="menugen">../SRC/menu_gen.xml</menu>
    <descr nom="Descr">My Website</descr>
</entree>

Remarque : les attributs nom servent de l’égende pour l’affichage direct par feuille de style CSS.

Exemple de fichier barre de menu.
<?xml version="1.0" encoding="utf-8"?>
<www xmlns="http://ns.dg77.net/XML/">

<ul  id="menugen" class="listline">
  <li><a href="/istoriko/">Ιστορικό</a></li>
  <li><a href="/eas-te-segas/">ΕΑΣ/ΤΕ ΣΕΓΑΣ</a></li>
  <li>Σωματεία
    <ul>
      <li><a href="/wp-content/uploads/2022/07/ΚΑΤΑΣΤΑΤΙΚΟ-ΣΕΓΑΣ.pdf">Καταστατικό</a></li>
      <li><a href="/dioikitiko-symvoylio/">Διοικητικό Συμβούλιο</a></li>
      <li><a href="/proedroi-genikoi-grammateis/">Πρόεδροι – Γενικοί Γραμματείς</a></li>
      <li><a href="/organogramma-technikis-diarthrosis/">Οργανόγραμμα ΣΕΓΑΣ</a></li>
    </ul>
  </li>
  <li><a href="/axiologisi-somateion/">Αξιολόγηση Σωματείων</a></li>
</ul>

</www>

Dictionnaire (support multilingue)

La donnée de configuration dgdic pointe un fichier qui donne certains textes en fonction du code langue.

Extrait du dictionnaire
<?xml version="1.0" encoding="utf-8"?>
<dic xmlns="http://ns.dg77.net/XML/d/">
  <l r="R000fr">Aller au principal</l>
  <l r="R000en">Skip to main</l>
  <l r="R001fr">Accueil</l>
  <l r="R001en">Home page</l>

  <l r="R011fr">À propos, RGPD, historique</l>
  <l r="R011en">Disclaimer, GDPR, log</l>

</dic>

Les codes contenus dans l’attribut @r correspondent à ceux utilisés dans certains modules XSLT (cf le template trad). Affichage du dictionnaire en cours : suivre ce lien [http://www.dg77.net/design/dico.xml].

Les langues prévues dans le dictionnaire du site dg77.net sont : fr, en, de, es, it, pt, ar, ru, zh, ko, ja, tr, nl, hi. Il s’agit des codes de la table ISO 639 [https://www.iso.org/fr/iso-639-language-code.html] .

Eléments et attributs

Obligatoire

 <d:www> 
Elément racine de chaque fichier XML.
 <d:page> 
Elément qui englobe les données de chaque page Web.
 <d:description> 
Contient les informations de base pour une page Web.
 <d:titre> 
Titre de la page Web (élément title de la partie head.

Facultatif

d:www/@dglang
Attribut commun à toutes les pages contenues dans le fichier XML. Il permet d’avoir un code langue différent de celui qui est paramétré pour tout le site. Exemple :
<?xml version="1.0" encoding="iso-8859-1"?>
<d:www xmlns="http://ns.dg77.net/XML/" xmlns:d="http://ns.dg77.net/XML/d/"
  dglang="en">
d:page/@dglang
Attribut propre à la page en cours qui permet d’avoir un code langue différent du celui qui est paramétré pour tout le site ou le fichier xml.
d: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.
d:page/@retour
Cet attribut indique la page de retour. Facultatif.
d:page/d:description/d:cre
Date de création.
d:page/d:description/d:upd
Date de dernière modification.
d:page/d:description/class
Facultatif : possibilité d’avoir une classe particulière pour le contenu principal de la page.
d:page/d:description/keywords
Mots clefs, utilisés dans la balise keywords de la partie head dans la page Web.
d:page/d:description/meta
Balises meta, utilisés dans les balise meta de la partie head dans la page Web.
d:page/d:description/link
Balises link, utilisés dans la balise link de la partie head dans la page Web.
d:page/d:description/d:style
Nom de la « feuille de style » CSS d’affichage propre à la page. Cette CSS se substitue à celle qui est spécifiée dans le fichier Config.xml (paramètre pcss_scr).
d:page/d:description/d:style_print
Nom de la « feuille de style » CSS d’impression propre à la page. Cette CSS se substitue à celle qui est spécifiée dans le fichier Config.xml (paramètre pcss_prt).
d:lexi
Insertion de textes prédéfinis en fonction d’une référence et d’un code langue. Cf les spécifications.
d:somm
Sommaire automatique : voir la section ad-hoc.
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

 <d: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.

Dans le corps de la page

 <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 complets 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.
 <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.
 <d:protoc/> 
(08 novembre 2019) Protocole (http, https…) défini en paramètre. La balise protoc fait référence à un simple template qui récupère la variable.
 <d: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.
 <d: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. Remarque : le sous-domaine peut être nul.
 <d:homepage/> 
(28 septembre 2022) Nom de la page d’accueil défini en paramètre. Même fonctionnement que les précédents. Balise : homepage.
Exemple complet pour afficher l’URL de la page d’accueil du site :
<span> [<d:protoc/>://<d:ssdomaine/>.<d:domaine/>/<d:homepage/>]</span>

d:docu : données stockées dans un fichier xml externe

Mettre le contenu html d’une page dans un document séparé permet de réduire les dimensions du fichier xml et d’en faciliter la lecture. Le fichier externe est pris en compte en le mentionnant par une balise d:docu dans la partie d:description de la page. Exemple :

<page nomfic="marche/news/maj.htm" retour="marche/news/index.htm">
  <d:description>
    <d:cre>2015-06-03</d:cre>
    <d:upd>2017-01-04</d:upd>
    <d:titre>Historique des modifications</d:titre>
    <description></description>
    <keywords></keywords>
    <d:style></d:style>
    <d:docu>marche_news_maj.xml</d:docu>
  </d:description>

</d:page>

Le fichier indiqué par "d:docu" peut être de type “liens” (cf la section Liste de liens), RSS2 (voir la section flux rss), ou XHTML / HTML.

Ce fichier xml ne doit pas contenir de balise <d:page>.

Dans ce document externe on peut mentionner, dans une partie d:description, certains éléments qui auront priorité sur les mêmes qui existeraient éventuellement dans la description d’origine. Il s’agit de :

Les autres éléments d’entête (meta, link, style, script) doivent figurer dans la description (d:description) de la partie appelante (contenant d:docu).

Exemple de fichier externe
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE www SYSTEM "../XSL/listent.ent">
<d:www xmlns="http://ns.dg77.net/XML/"
     xmlns:d="http://ns.dg77.net/XML/d/">
  <d:description>
    <d:cre>2004-10-28</d:cre>
    <d:upd>2024-09-16</d:upd>
    <description>Document technique.</description>
    <keywords>html,xml,xslt,webmaster</keywords>
  </d:description>
  
  <header><h2>Documentation technique du site</h2></header>
  <d:somm niv="h3"/>
  
  … [contenu html]
    
  <d:dgdim xmlns:d="http://ns.dg77.net/XML/d/"> 
  …
  </d:dgdim> 
</d:www>

Le fichier ainsi codifié sera inséré au début de la page html. Il est possible de spécifier d’autres éléments html dans le corps du fichier xml de départ (en dehors de la partie d:description). Ils s’ajouteront à la suite. Cela n’est pas conseillé car certaines fonctions ne seront plus assurées (sommaire automatique…).

d:inclure : inclusion de données html

Insertion d’un autre fichier

La balise d:inclure permet d’insérer un fichier xml (ou une partie de ce fichier) dans le corps des données. L’attribut source spécifie le nom de l’objet à inclure. Attention : il s’agit d’une copie du fichier tel-quel, les templates ne sont pas appliqués. En particulier les notes de bas de page (cf section des spécifications) ne fonctionneront pas. Par conséquent, ces données doivent appartenir au namespace de la page html résultante.

Exemple :

Spécification dans le fichier xml
<h6>Balance des blancs (BdB / WB)</h6>
<d:inclure source="balbla.xml" />
Fichier balbla.xml
<?xml version="1.0" encoding="utf-8"?>
<article "http://ns.dg77.net/XML/">
<p>La balance des blancs correspond à l’équilibre entre les différentes 
couleurs enregistrées par le capteur ; sa fonction est de permettre une reproduction 
fidèle des teintes.</p>
</article>

Noter la mention xmlns. Résultat :

Balance des blancs (BdB / WB)

La balance des blancs correspond à l’équilibre entre les différentes couleurs enregistrées par le capteur ; sa fonction est de permettre une reproduction fidèle des teintes.

Inclusion limitée à un fragment de fichier xml

Au lieu d’insérer le fichier xml entier, il est possible d’en sélectionner une partie pour inclusion.

La partie qu’on veut copier doit correspondre à un élément doté d’un attribut id. Exemple (Code d’instruction criminelle, édition 1828) :

<?xml version="1.0" encoding="utf-8"?>
<div>
 <div id="cic072">
  <h6>Art. 72</h6>
  <p>Les témoins seront cités par un huissier ou 
  par un agent de la force publique, à la requête 
  du procureur du Roi.</p>
 </div>
 <div id="cic073">
  <h6>Art. 73</h6>
  <p>Ils seront entendus  séparément, et hors de 
  la présence du prévenu, par le juge d’instruction, 
  assisté de son greffier.</p>
 </div>
 <div id="cic074">
  <h6>Art. 74</h6>
  <p>Il représenteront, avant d’être entendus, 
  la citation qui leur aura été donnée pour 
  déposer ;  et il en sera fait mention dans le 
  procès-verbal.</p>
 </div>
</div>

Dans l’élément d:inclure, on ajoute l’attribut idref, qui mentionne l’id correspondant au membre qu’on veut copier. Exemple :

<d:inclure source="sixcodes.xml" idref="cic073"/>

Résultat après génération :

Art. 73

Ils seront entendus séparément, et hors de la présence du prévenu, par le juge d’instruction, assisté de son greffier.

Inclusion d’une autre partie prise dans le même fichier source xml

Si l’attribut source est vide ou inexistant, alors on ira chercher les données désignées par l’attribut idref dans le fichier en cours.

Support multilingue : sélection d’un fragment en fonction du code langue

En ajoutant le code langue après l’id, on peut sélectionner les données à sortir.

<?xml version="1.0" encoding="utf-8"?>
<div>
 <span id="enco_">En/Under construction</span> 
 <span id="enco_fr">En construction</span> 
 <span id="enco_en">Under construction</span> 
 <span id="enco_de">Baustelle</span> 
 <span id="enco_es">En Construcción</span> 
 <span id="enco_it">In costruzione</span> 
 <span id="enco_pt">Em desenvolvimento</span>
 <span id="enco_ne">Onder constructie</span>
 <span id="enco_ru">в разработке</span>
 <span id="enco_sw">Inte färdig</span>
 <span id="enco_fi">Sivuja päivitetään</span>
 <span id="enco_ar-sa">قيد التطوير</span>
</div>

Insertion de textes en langue paramétrée

d:lexi (dans un élément)

Support multilingue. Cet élément permet d’inclure directement une chaîne de caractères figurant dans le dictionnaire.

Exemple : <d:lexi r="R001" nlang="ru" def="R001?" />.

Attributs :

£dg77: (dans un attribut @title)

Exemple  title="£dg77:R001£" . L’attribut title contiendra le texte prévu dans le dictionnaire pour le code qui suit le caractère ":" et précède le second "£". Application implicite du code langue en cours.

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 HTML5 (XHTML avant le 4 novembre 2014).
Format RSS 2. Utilisé pour la publication de certaines informations, (cf infra).
Obsolète / deprecated balisage Docbook, désactivé le 2015-12-08
Obsolète / deprecated balisage WML / WAP (Wap, pour téléphones mobiles). Désactivé le 2015-12-08
Formats spécifiques
Définition des variables paramétrées.
Balises « système ». qui contiennent les données des pages web.
Liste de liens.
Galerie d’images. Ements qui entrainent, outre une page index, la création d’autant de pages html qu’il y a d’images définies.
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, cf infra la section Utilisation de fichiers externes.

Flux RSS

Généralités

Des donées au format RSS peuvent être introduites dans les pages html.

Dans title, sous-élément de l’élément channel, on peut insérer un attribut @niv de h1 à h6 pour spécifier le niveau de titre.

Dans le résultat; il est possible d’afficher (mais pas imprimer) un sommaire en début de page html. Il est conditionné par un attribut sommaire dans la balise channel, qui doit alors être non vide.

Attribut rel

Les liens, provenant de la balise link, sont assortis par défaut de l’attribut rel="noindex,nofollow". On peut empêcher cela en insérant dans la balise link un attribut rel, qui peut d’ailleurs être vide (rel="").

Flux intégré au fichier XML

Exemple

Attention aux namespaces (xmlns)
<rss xmlns="http://blogs.law.harvard.edu/tech/rss"
        xmlns:dg="http://ns.dg77.net/XML/">
<channel>
  <title niv="h3" class="">Titre du fil RSS</title>
  <link>xxx/yyy.htm</link>
  <description>Texte descriptif</description>
  <language>fr</language>

  <!-- Exemple d’article -->
  <item>
    <title>Titre</title>
    <guid isPermaLink="false">Référence</guid>
    <link>[URL]</link>
    <description>Texte de l’article</description>
  </item>
 
</channel>
</rss>

Flux dans un fichier externe

La balise d:docu dans la partie description d’une page peut appeler un fichier xml au format rss2 au lieu du format standard.

Exemple
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss SYSTEM "../../../XML/XSL/listent.ent">
<rss version="2.0" xmlns="http://blogs.law.harvard.edu/tech/rss"
xmlns:dg="http://exe.dg77.net/XML/" xmlns:atom="http://www.w3.org/2005/Atom">
<d:description>
  <d:cre>2017-09-02</d:cre>
  <d:upd>2019-05-17</d:upd>
</d:description>
<atom:link href="http://twotwo.dog/ficx.xml" rel="self" 
  type="application/rss+xml" />
<channel sommaire="x">
 <title niv="h3">Racewalking NEWS de la marche France 1925</title>
 <description>Resultats marche athletique France 1925</description>
 <link>http://exe.dg77.net/marche/news/newsf925.htm</link>
 <lastBuildDate>Fri, 17 May 2019 15:20:00 GMT</lastBuildDate>
 <language>fr</language>
…

</channel>
</rss>

Le fichier suivant :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss SYSTEM "../../../XSL/ent.ent">
<rss version="2.0" 
 xmlns="http://blogs.law.harvard.edu/tech/rss"
 xmlns:dg="http://exe.dg77.net/XML/" 
 xmlns:atom="http://www.w3.org/2005/Atom"
 xmlns:d="http://ns.dg77.net/XML/d/">
<d:description>
  <d:cre>2003-01-15</d:cre>
  <d:upd>2017-05-13</d:upd>
</d:description>
<channel sommaire="x">
  <title>Marche NEWS</title>
  <description>Hot racewalking News</description>
  <link>http://exe.dg77.net/marche/news.htm</link>
  <lastBuildDate>Wed, 17 May 2017 11:20:00 GMT</lastBuildDate>
  <language>fr</language>
<item>
  <guid isPermaLink="false">frarg-08914</guid>
  <title>ARA OYONNAX - 14/05/17 - Champ. déptx BE/MI</title>
  <description dg:format="pre">
** 2000m | F
  1 12'55"47   PICOD Laura      Us Oyonnax       
  2 13'24"15   GHIDELLI Emma    Eab - S/l Athle  
  3 14'15"79   JOUVE Lucie      Eab - S/l Athle  
  </description>
<link>http://bases.athle.com/suite&qsdf</link
<pubDate>Wed, 17 May 2017 11:20:00 GMT</pubDate></item>

</channel>
</rss>

S’affichera ainsi :

On peut par ailleurs afficher une liste des titres de chaque item, le nombre de lignes affichables étant Paramétrable. Cf infra les Spécifications liste RSS.

Feuilles de style (CSS), classes et id

CSS = Cascading Style Sheets

Fichiers CSS de base

Depuis le 11 mars 2020, trois fichiers CSS sont prévus. Ces CSS principales, obligatoires, sont définies dans Config.xml. Valeurs standard :

Vers le 2012-03-02, il y avait eu plusieurs évolutions (cf le Changelog).

CSS3 – compatibilité avec terminaux mobiles

La feuille de style fournie pour écrans permet une différenciation selon la largeur du terminal utilisé. Pour cela, on utilise la clause @media. Ce fut implémenté le 17 juin 2012.

Il est possible, pour chaque page html, de spécifier un fichier CSS particulier. Cf style dans les éléments facultatifs.

CSS facultatives.

Á ajouter dans l’entête du fichier xml pour chaque page concernée.

ecranvert.css
Pour les pages contenant notamment des « écrans verts » (terminaux 5250) IBM.
marche_calend.css
Pour affichage d’un calendrier avec couleurs de fond variées.

Classes et id

Attention : un id. ne peut apparaître qu’une fois dans une page.

Id. standards

Ces id sont générés automatiquement.

Id menutab

Une présentation particulière est affectée aux éléments div concernés. Ce cas ne peut se présenter qu’une seule fois dans une page. Exemple :

<div id="menutab">
  <div><div><a href="truc1/index.html">Page 1</a></div></div>
  <div><div><a href="truc2/index.html">Page 2</a></div></div>
</div>

Les liens sont dans deux balises DIV emboîtées car il est permis d’en mettre deux (ou plus) sur une ligne de menu.

Classes standard

Classes

.bouton
Cette classe est particulièrement destinée à des liens de navigation. Noter que le résultat est flottant (à gauche). Exemple avec <div class="bouton"><a href="#clstd">Clic!</a></div> :

Classes paramétrées, cf Config.xml
class_main
Classe par défaut, présentation standard sur écran.
pcss_gal
Présentation pour les galeries d’images.

URL, paramétrage, chaîne £dg77£

Buts et moyens

Pour des raisons évidentes, on ne veut pas que l’URL du site figure tel-quel dans les fichiers sources XML, et encore moins dans les transformations XSLT. En effet, l’URL peut évoluer (par exemple le passage du protocole http à https est un sujet non négligeable), et la moindre rigueur informatique impose que les modules .xsl soient réutilisables sans retouche pour tout autre site web que l’on souhaite.

Utilisation des variables paramétrées dans un texte

Il s’agit des données paramétrées (protoc / ssdomaine / domaine) dans le fichier Config.xml (cf supra). Exemple source xml :

<p>Voici un texte contenant la chaine : 
&lt;d:protoc/>://&lt;d:ssdomaine/>.&lt;d:domaine/> : 
<d:protoc/>://<d:ssdomaine/>.<d:domaine/>.</p>
Résultat :

Voici un texte contenant la chaine <d:protoc/>://<d:ssdomaine/>.<d:domaine/> : http://www.dg77.net.

Ce Procédé fonctionne au sein des balises <p>, <div>, <li>, <dt>, <dd>, <pre>, <td>, <a>, <span>, <figcaption> comme pour les titres <h1> à <h6>.

Chaîne spéciale £dg77£

Substitution automatique

Dans les attributs spécifiant un URL, c’est à dire les liens vers un autre document (attribut href ou URL, ou autre spécifique), ainsi que pour les images (attribut src) et les textes préformatés, si la transformation XSL rencontre l’expression £dg77£, celle-ci sera automatiquement remplacée par l’URL tel que défini dans le Config.xml précédemment décrit (variables protoc, ssdomaine, domaine). Cela permet de ne modifier aucun fichier source XML, par exemple en cas de changement de protocole ou domaine.

Nota : la chaîne £dg77£ doit être suivie de la barre oblique ("/") si elle précède une indication de chemin.

Utilisation dans une balise préformatée

Autorisé dans une balise <pre>, mais pas le texte des autres, spécifiées précédemment.

Utilisation pour une image

Avec £dg77£, la génération de l’attribut src qui contient l’adresse du fichier image inscrira l’URL comme un lien relatif, donc avec un chemin variable suivant l’emplacement de la page en cours. Cette fonctionnalité est utile dans un membre de fichier xml commun à différentes pages. Exemple pour une image incluse dans le bandeau d’entête :

<img src="http://www.dg77.net/design/images/bulhome.png" class="navg" alt="Logo"/>
Utilisation dans une balise d’entête
<d:page nomfic="trav/azerty.htm">
<d:description>
 <d:titre>Redirection azerty</d:titre>
 <meta http-equiv="Refresh" content="5; URL=£dg77£/travzone/azerty.htm"/>
 <link rel="alternate" type="application/rss+xml" title="RSS feed"
     href="£dg77£/infodiv/news2024.xml" />
 ...
</d:description>
<h1>Titre de la page</h1>

Charte de couleurs

Voir aussi la page Historique des chartes de couleur [http://www.dg77.net/tekno/sitedoclr.htm].

Version du 12 janvier 2024

bgcolor color Fonction
e0e0e0 body .ctitre - galerie.css:contenu
e0e0e0338888.bando2
ffffff323232#main .contenu
a0a0a0ffffff#menubar
666666ffff00#menubar+a:hover
338888ffffff#menutab+a:hover
50505066ff66.demo (color pour lien)
909090 .demo sur petit écran
007878a:link
69696966ff66a:link GALERIE.css
d8d8ff Listes à fond alterné (.bgalt_a)
ffffff6060ff#ynavig/#znavig
808080ffffff#ynavig/#znavig/#ypied.bouton
b0b0b0 #ypied
303080ffffff.bout2
ff00ffffffff.bouton/.bout2+a:hover
c8c8c8000000.listing
Exemple

Images (dimensions, licence)

Auteur et licence

On peut ajouter un lien vers la licence de la même façon que pour les galeries (Voir la section sur les galeries d’images). Pour cela on utilise d:galaut, comme dans l’exemple ci-dessous. Ceci s’obtient avec l’attribut dglicence dans la balise figure ou figcaption. La mention de la licence sera ajoutée après l’indication de l’auteur.

Source XML :

<figure>
  <img src="histoire/photo.jpg" alt="" />
  <figcaption dglicence="/lic_exemple.htm"
    Le peintre A.G. Decamps (1803-1860)
    <d:galaut>Eug&egrave;ne Disd&eacute;ri</d:galaut>
  </figcaption>
</figure>

Résultat :

Le peintre A.G. Decamps (1803-1860) Auteur : Eugène Disdéri - Licence [http://www.dg77.net/tekno/lic_exemple.htm]

Nota : s’il s’agit d’un URL local, il doit être indiqué suivant une des méthodes suivantes :

Insertion des dimensions des images

Il est possible d’inscrire automatiquement dans les éléments <img> les attributs width (largeur) et height (hauteur) à partir de données enregistrées à part. Il suffira d’insérer des balises spécifiques à un endroit quelconque du fichier XML source. Exemple :

<d:dgdim>
 <d:dgima dgwid="400" dghei="293" dgsiz="43792" dgfor="JPEG">MD050/o50_2277.jpg</d:dgima>
 <d:dgima dgwid="150" dghei="132" dgsiz="8856" dgfor="JPEG">MD050/md50_17.jpg</d:dgima>
 <d:dgima dgwid="400" dghei="591" dgsiz="114617" dgfor="JPEG">MD050/d2278.jpg</d:dgima>
 <d:dgima dgwid="400" dghei="600" dgsiz="230390" dgfor="JPEG">MD050/d4730.jpg</d:dgima>
 <d:dgima dgwid="400" dghei="267" dgsiz="113974" dgfor="JPEG">MD050/d4731.jpg</d:dgima>
 <d:dgima dgwid="400" dghei="597" dgsiz="335953" dgfor="JPEG">MD050/d4733.jpg</d:dgima>
</d:dgdim>

dgdim est impératif. La valeur de l’élément dgima correspond à l’adresse donnée par l’attribut src d’une image. Les attributs dgwid (largeur) et dghei (hauteur) contiennent les dimensions en pixels de cette image.

Les attributs dgsiz et dgfor fournissent la taille (en octet) et le format.

Pour que le mécanisme s’applique à un élément img, il faut que celui-ci ne comporte ni attribut width ni attribut height. Cette règle s’applique même si ces derniers sont vides.

Quand les données sont dans un fichier externe (Cf fichiers inclus supra), les données xml (<dgdim>) concernées doivent être ajoutées à ce fichier.

Un traîtement a été conçu pour créer automatiquement ces éléments. Voir la documentation de cet outil dans la page ad-hoc [http://www.dg77.net/tekno/sitedoc_i.htm].

Spécifications « liste de liens »

Nomenclature des éléments :

 <d:liens> 
Elément racine, obligatoire.
 @titre 
Attribut facultatif.
 @class 
Attribut facultatif. Noter qu’en cas d’utilisation de l’élément “categorie”, la classe "demo" est automatiquement appliquée à ce dernier.
 <d:categorie> 
Elément qui permet d’établir des subdivisions en sections (facultatif).
 @id 
Attribut facultatif. Contient un identificateur ; par défaut, pour “categorie”, un id alphabétique sera automatiquement généré.
 @niv 
Attribut qui spécifie le niveau du titre. Valeur : de h1 à h5. A défaut, utilisation de h4 (h5 pour les sous-titres). Implémenté (enfin) le 20 février 2011.
 <d:lien> 
Lien internet et texte. Contenu : deux possibilités :
  • Un libellé simple. Le balisage HTML y est autorisé, à l’exclusion de tout lien (<a href=…).
  • Utilisation d’une balise dt, suivie d’une ou plusieurs dd.
 @uri 
Attribut de la balise lien. Il contient l’URL ; exemple :  uri="http://www.w3.org" 

Exemple :

<d:liens titre="Exemples de signets" niv="h5">

<d:categorie titre="Droit des gens et humanitaire" id="droit">
 <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" id="amnesty">Arrestations arbitraires, 
    tortures, exécutions : attention, ça n’arrive pas qu’aux autres.
 </d:lien>
</d:categorie>

<d:categorie  titre="Fédérations nationales et autres" id="federations">
 <d:lien uri="http://www.taf.org.tr"><span class="monosp">TUR</span> 
   – Türkiye Atletizm Federasyonu.
 </d:lien>
 <d:lien uri="http://www.uka.org.uk/" id="uka">
   <dt><span class="monosp">UKA</span> – United Kingdom Athletics.</dt>
   <dd><a href="https://www.thpwrf.info/resultslookup.aspx">
     <span class="monosp">UKA</span> – Results</a>
   </dd>
 </d:lien>
</d:categorie>

</d:liens>

Résultat :

Exemples de signets

Sommaire

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. Du balisage peut être inclu dans le corps de la note.
d:note/@ref
Attribut facultatif : indique un id de retour. Permet de revenir plus haut que la ligne de l’appel de note.
d:note/@id
Attribut facultatif : indique l’id de la note. A défaut, ce sera un numéro. Permet de naviguer vers la note depuis n’importe-quel autre emplacement (y compris une autre page web) sans être à la merci d’un changement de numéro de note.

(Amélioration du 29 nov 2016) Au passage du curseur sur l’appel de note, une infobulle affiche le contenu de la note (dans la limite de 1600 caractères). Ceci est obtenu 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

<p id="neef1">&laquo;&nbsp;&hellip;mais dans ces cas il me semble 
que le po&egrave;te a voulu plut&ocirc;t nous faire sentir son penchant 
in&eacute;vitable, quelque idiote qu&rsquo;elle soit, pour la jouissance des 
plaisirs sexuels.&nbsp;&raquo;<d:note ref="neef1" id="dneef">Theodore Lee Neef, 
La Satire Des Femmes Dans la Poesie Lyrique Francaise Du Moyen Age &ndash; 
Giard &amp; Bri&egrave;re, Paris 1900</d:note> &hellip;</p>

Noter que, pour une bonne typographie, l’élément <d:note> suit le caractère précédent sans espace entre eux.

Résultat
« …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. »3

Restrictions

Numérotage

Le numérotage des notes peut être numérique en chiffres arabes ou latins, ou alphabétiques (en majuscules ou minuscules pour les deux derniers choix). Pour modifier le code format (1, i, I, a, A), il convient d’adapter l’initialisation de la variable formnotes dans le module xslt dg8_3.xsl.

Spécifications « sommaire automatique »

Description

Un sommaire peut être généré automatiquement dans une page. Il consiste en une liste de liens, qui peuvent être de deux types :

Un sommaire peut contenir les deux types de liens.

Il est possible d’indiquer les éventuels sous-titres en dessous de chaque titre. Cela ne fonctionne que pour la présentation normale (en liste).

Le sommaire est inclu automatiquement dans une section qui porte l'id “sompag”.

Apparence

Trois présentations sont possibles :

  1. Liste normale, en lignes superposées.
  2. Liste compacte, chaque titre est aligné à la suite du précédent.
  3. Présentation Menu, avec id="menutab" (cf in Classes et id).

Déclencheur

Il s’obtient en insérant un élément d:somm à l’emplacement que l’on veut.

<d:somm niv="h4" dgstyp="" tit="x" />

Attributs

Conditions de fonctionnement

Affichage des sous-titres : le titre et l’ensemble des sous-titres doivent être directement compris dans un bloc commun (section, div ou article).

Spécifications « galerie d’image »

Principe

Le traîtement des éléments décrits ici aura deux effets :

  1. Index des images : dans le document en cours, création d’un index des images qu’on veut montrer. Le lien vers chaque image est donné avec une image réduite (icône).
  2. Pour chaque image, génération d’une page HTML.

Présentation de l’index :

Formats d’images

Le système traîte automatiquement les noms de fichiers images dotés des extensions suivantes : .jpg, .JPG, .jpeg, .JPEG, .png, .PNG, .apng, .APNG, .gif, .GIF, .avi, .AVI, .avif, .AVIF, .svg, .SVG, .webp, .WEBP.

Implantation

Les fichiers images et leurs pages html individuelles doivent se trouver dans le même répertoire. La page index principale peut se trouver au même endroit, ou au niveau supérieur. Exemple : si on place les images dans un répertoire « portrait », la page index pourrait être portrait/index.htm(l) ou bien portrait.htm(l).

Paramètres

Voir fichier Config.xml supra. On y indique une feuille de style CSS et une classe spécifiques.

L’icône porte obligatoirement le nom du fichier image précédé ou suivi par un préfixe ou suffixe défini dans Config.xml.

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

<d:galerie>
  <d:galimage>
    <d:galtit>titre 1</d:galtit>
    <d:galfic alt="texte libre">nom_de_fichier_1</d:galfic>
  </d:galimage>
  <d:galimage>
    <d:galtit>titre 2</d:galtit>
    <d:galfic>nom_de_fichier_2</d:galfic>
    <d:galupd></d:galupd>
  </d:galimage>
</d:galerie>

Nomenclature des éléments et leurs attributs

 <d:galerie>  élément racine.
Obligatoire.
Attributs facultatifs :
@dglicence
Chemin et nom du fichier html où est spécifiée la licence d’utilisation des images.
Remarques : le lien ne s’affiche que si un auteur est indiqué (balise galaut).
@sorhtml
Sert à indiquer un emplacement particulier (chemin seul) pour les pages sorties, qui sera distinct de ceux des fichiers images qui seront affichés. Cela permet d’utiliser des images préexistantes sans avoir à les copier dans l’emplacement de la galerie. Exemple :
<d:galerie sorhtml="marche/photo/icones/">
…
<d:galfic>marche/photo/fran835/fr50_19830508</d:galfic>
@dggalist
Si non vide, provoque la sortie de l’index sous forme « liste ».
@class
Classe du titre des pages images unitaires. Si @class existe mais est vide, il n’y a pas de classe spécifiée. Par défaut, ce sera la classe des sous-titres prévue dans Config.xml ($class_titr).
 <d:galimage>  informations d’une image.
Doit contenir au moins les éléments galtit (titre) et galfic (nom du fichier).
Peut contenir l’attribut dglicence si la licence propre à l’image est différente de celle qui est spécifiée dans la balise galerie.
 <d:galtit>  titre de l’image.
 <d:galfic>  nom du fichier image.
Si le nom est indiqué sans extension, cette dernière sera par défaut .jpg. La page qui affichera l’image aura le même nom sauf l’extension qui sera .htm. Le nom du fichier icône est le même mais précédé ou suivi d’un pré/suf-fixe, paramétré dans Config.xml (cf gal_prefix et gal_preftop). L’extension (.jpg ou autre) doit être la même que pour l’image principale.
Attributs facultatifs :
@alt
Attribut standard xhtml, contient un texte de remplacement à l’image.
L’extension par défaut de l’image comme de l’icône est .jpg. Le fichier icône est par défaut 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 monimg.jpg, on devra avoir une image réduite (icône) nommée t_monimg.jpg et le système générera une page monimg.htm.
 <d:galupd> 
Date de dernière modification : élément vide obligatoire en pratique. Si cet élément est absent et qu’ultérieurement une image est ajoutée à la planche, alors on verra apparaître pour les images préexistantes la date de modification de cette planche, indication inexacte.
Informations facultatives associées aux images
 <d:galaut>  auteur.
 <d:galcop>  copyright.
 <d:galtxte>  et  <d: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
 <d: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 dglicence="../licgen.htm">
    <d:galaut>Nom de l’auteur affiché par defaut sous toutes les images</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:galcre>2005-01-01</d:galcre>
    <d:galupd>2006-07-31</d:galupd>

    <d:galimage>
        <d:galtit>titre 1</d:galtit>
        <d:galfic alt="XXXXXX" >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<
        <d:description> <!-- sera reportee dans la balise META Description de l’entete -->
          <description>xxxxx texte descriptif particulier xxxxxxx</description>
          <keywords>Liste de mots clefs.</keywords>
        </d:description>
    </d:galimage>
    <d:galimage dglicence="../licdupont.htm">
        <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>

Aide à la création de galerie

Un outil en langage REXX permet de mettre automatiquement les données dans leur balisage à partir d’un fichier simple texte. Voir la documentation [http://www.dg77.net/tekno/manuel/rexxgal.htm].

Spécifications sommaire par icônes

Cette présentation d’une liste de liens reprend le mécanisme de création d’index des galeries d’images, comme spécifié ci-dessus. En revanche, aucune page n’est générée individuellement pour chaque image.

Particularités :

<d:som_ix>
  <d:galimage>
    <d:galtit>Pages TEKNO</d:galtit>
    <d:galfic>galerie/fourbis/FURB080977</d:galfic>
    <d:fichtm>tekno/index.html</d:fichtm>
  </d:galimage>
  <d:galimage>
    <d:galtit>Versailles, #10</d:galtit>
    <d:galfic>galerie/versailles/N090516_10</d:galfic>
  </d:galimage>
</d:som_ix>

Remarque : dans la seconde image, on a omis la balise fichtm. Dans ce cas, le fonctionnement reste celui de la galerie d’images : le lien sera défini en utilisant l’adresse de l’image.

Résultat
Pages TEKNO
Versailles, #10

Spécifications « calendrier »

Exemple

<d:calend titre="" niv="6">
<d:cal_sec titre="2022" id="d2022" class="">

<d:cal_eve title="All japan 1er jan 2022" class="cal_">
 <d:cal_dat>1 jan</d:cal_dat>
 <d:cal_loc>Tokyo, JPN</d:cal_loc>
 <d:cal_tit>LXX festival Nouvel An, LXXXIV ch. Tokyo</d:cal_tit>
 <d:cal_com>
   <a href="https://jaaf.or.jp" rel="nofollow">
    jaaf.or.jp
   </a>
 </d:cal_com>
 <d:cal_res href="news/2022/newswdiv22.htm#jpnme-13586" />
</d:cal_eve>

</d:cal_sec>
</d:calend>

Éléments

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

Résultat

2022
DateLieuNomRef/Org.R
1 jan Tokyo, JPN LXX festival Nouvel An, LXXXIV ch. Tokyo jaaf.or.jp A

Spécifications « liste RSS »

Fonctionnalité

(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).

Sur l’utilisation de fichiers RSS, cf la section Flux RSS.

Limitation du nombre d’items affichés

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

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

Pointage direct depuis le sommaire

(2017-11-19) Amélioration concernant le sommaire : possibilité de faire pointer le lien directement vers la page concernée au lieu du détail à la suite. Pour cela, dans l’attribut isPermalink de l’élément guid, on utilisera la valeur réservée “direct”. C’est intéressant pour les indications du type « Autres informations ».

<item>
  <guid isPermaLink="false">direct</guid>
  <title>…

Bouton de retour arrière générique

Ce bouton comporte un lien activé par du code javascript. Voir sous la section Programmation web.

Exclusion de certaines pages : un fichier, dont le nom est indiqué dans Config.xml (paramètre pretour_js), donne la liste des exceptions (pages qui n’ont pas ce bouton). La structure en est des plus simples. Élément racine : liste, le contenu est mis dans la balise item. Exemple :

<?xml version="1.0" encoding="utf-8"?>
<!-- Pages n'ayant pas le bouton de retour arrière par javascript -->
<liste xmlns="http://ns.dg77.net/XML/d/">
 <item>index.html</item>
</liste>

Possibilité d’exclusion générale : si le paramètre pretour_js contient “*”, alors le bouton en question ne s’affichera nulle part.

Processeur XSLT, trace

Générateur et xsl:result-document

Processeurs utilisés :

Voir le site Web de Saxonica [https://www.saxonica.com/] . Attention : il faut aussi avoir xmlresolver-4.2.0.jar à côté du « .jar » de Saxon.

<xsl:stylesheet version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        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>

Traîtement par le processeur SAXON (versions 11 et 12)

Batch Windows

Exemple simple :

:: Parametres :
:: 1 : nom du fichier XML source lu en entrée.
:: 2 : nom de la page html a generer avec le chemin 
::     en format UNIX ("slash" - tel qu'il se trouve 
::     dans l'attribut nomfic).
::     Si "x", alors toutes les pages définies 
::     dans le xml source sont sorties.
:: 3 : option de mise en ligne ou toute autre, à 
::     la discrétion de l'utilisateur
:: %div% : destiné à un horodatage, mais en 
::     fait à la discrétion de l'utilisateur.
java -cp bin\xmlresolver-4.2.0.jar;bin\saxon.jar  ^
    net.sf.saxon.Transform ^
    -s:%1 -xsl:XML/XSL/dg8.xsl ^
    dateheure=%div% page=%2 fxml=%1 ^
    option=%3 fconfig=../../design/Config.xml ^
    | findstr /B ":" > tmp\log_html.txt

À noter :

Script Shell UNIX/LINUX

Ci-dessous, exemple créé et testé sous Cygwin (ce qui explique l’utilitaire cygpath).

export MAINCLASS=net.sf.saxon.Transform
export RSRC=../SRC
export RXSL=../XSL
export DATHEUR=$(date +%d/%m/%Y_%T)
export FCONFIG=design/Config.xml
java -cp `cygpath -wp bin/xmlresolver.jar:bin/saxon.jar` \
    $MAINCLASS \
    -s:$RSRC/$1 -xsl:$RXSL/dg8.xsl \
    dateheure=$DATHEUR page=$2 fxml=$RSRC/$1 \
    option=test fconfig=$FCONFIG \
    | findstr /B ":" > tmp/trace.txt

Fichier trace et mise en ligne

Le programme java sort des informations dans un fichier annexe (“log”). Ces sorties sont prévues dans dg8_h.xsl (prologue) et dg8_out.xsl (indication du ou des pages html et document externe éventuel). Voir ci-dessus la sortie dirigée vers tmp\log_html.txt.

Ce log donne des informations telles que les noms de pages html et fichiers externes (balise d:docu). On peut utiliser ce fichier pour créer les commandes de transfert (ftp ou tout autre moyen) sur un serveur distant.

Les lignes de prologue général commencent par "::". Les principales indications sont identifiées par une lettre (h=horodatage ou autre, e=fichier lu en entrée, s=fichier html en sortie si un seul traîté, o=option). En détail (un seul ":"), les fichiers concernés sont ensuite mentionnés (p=page html, d=document externe, i=image, g=image de galerie, c=copy-of – données html inséréres par d:inclure).

Exemple pour la génération de la page “témoin” :

:: h : 09/04/2024-11:17:02,42
:: e : XML\SRC\demo.xml
:: s : demo/index.html
:: o : t
: p demo/index.html
: d XML/SRC/demo_temoin.xml
: i demo/disderi.jpg
: i demo/C24011436.jpg
: g demo/galerie/G80133.jpg
: g demo/galerie/t_G80133.jpg
: g demo/galerie/C23080213.jpg
: g demo/galerie/t_C23080213.jpg
: g demo/galerie/C23080214.jpg
: g demo/galerie/t_C23080214.jpg
: c XML/SRC/demo_sixcodes.xml#cic073
: p demo/galerie/G80133.htm
: p demo/galerie/C23080213.htm
: p demo/galerie/C23080214.htm

Noter l’indication du fichier source externe tekno_sitedoc.xml. Attention : le chemin est indiqué relativement au source xml.

Liste des modules XSLT

Génération standard des pages

Fichiers Templates Commentaires
Match / Apply Name / Mode Call
dg8.xsl
  • Spécifie le type de sortie : xsl:output (html version 5, encodage utf-8) Mention saxon:character-representation nécessaire au processeur utilisé : à adapter si on utilise un autre processeur XSLT.
  • Entrée des paramètres : horodatage, page à sortir ("x" = toutes).
  • Inclusion de dg8_3.xsl, et dg8_spec.xsl pour d’éventuelles spécificités (cf infra).
dg8_3.xsl
  • Initialise les variables générales à partir du fichier Config.xml.
  • Inclusion de tous les fichiers modules (dg8_h.xsl, dg8_head.xsl, dg_entete.xsl, dg_p.xsl, etc.) et spécifiques éventuels (via dg8_spec dans /XML/XSL_spec).
dg8_h.xsl d:www, d:page, d:inclure, d:protoc, d:domaine, d:ssdomaine, d:homepage, d:somm, d:lexi. (apply-templates) sorsom, tattrib, "no_ns". xchemin, outhtml, sorsom, url_prt, trad. Module principal. Envoie le template outhtml pour chaque page à créer. traîtement des attributs html (sauf href).
dg_out.xsl (apply-templates) chlang, outhtml, loopimg, envpage, ref_icone, outh, sortcorps. chlang, tchemin, envpage, loopimg, extrnom, outh, xchemin, ref_icone, extrnom, thead, tentete, sortcorps, tpied, sornotes, gal_img, htmgal. Initialise la sortie d'une page (result-document). Syntaxe du processeur Saxon, à adapter pour un autre processeur XSLT. Charge les variables VCH, ZNOM, NLANG. Dans le cas d'une galerie d'images : loopimg, boucle pour générer chaque page image.
dg8_head.xsl (apply-templates) thead, w_href, w_descr, w_keywr. tattrib, w_descr, w_keywr, w_href, trad, xchem. Génère la partie HEAD (title, description, meta, link…).
dg_entete.xsl (apply-templates) tentete, sorbando. tnavig, tcont, w_href, sorbando, trad. Partie haute de l’affichage (bannière, barre de menus, barre de navigation).
dg_p.xsl tpied, tmois. tnavig, tcont, tmois, trad. Sortie du pied de page html. Fonctionne comme l’entête mais sort aussi les informations relatives à la page (dates de création-mise à jour, informations générales etc.).
dg77_navig.xsl tnavig, soretour, tprec, tsuiv, trad. extrnom, tprec, tsuiv, trad. Module utilisé par tentete et pied : gère les liens de navigation en avant et en arrière. "trad" est la routine générale du support linguistique.
dg_match.xsl abbr, action, br, button, comment, div, dd, dl, dt, form, h1, h2, h3, h4, h5, h6, hr, input, li, object, ol, p, table, tr, td, caption, thead, tbody, tfoot, th, param, pre, script, span, textarea, ul, main, figure, figcaption, header, footer, nav, section, article, audio, code, source, time, blockquote, cite, q, sup, sub, strong, em, mark, video, address, del, ins, dfn, kbd, progress. (apply-templates) wpref,selng. tattrib, licence, wpref, trad, selng. Traîtement des balises html. Les attributs sont traîtés par tattrib (cf dg8_h).
dg_contact.xsl tcont w_href, trad Sortie des boutons “Contact”, “À propos” et “Plan du site”.
dg_img.xsl img. tattrib, dimlar, dimhau, dimsiz, dimfor. Traîtement pour une image.
dg_lien.xsl a. (apply-templates) tattrib, w_href. Gestion des liens html.
dg_signets.xsl d:liens. (apply-templates) titre, lienstit, litlien, sort_a, tsommaire, classtit. sort_a, titre, tsommaire, lienstit, litlien, classtit, trad. Traîtement pour listes de liens.
dg_hl.xsl d:hl. (apply-templates) url_prt. url_prt, compt_ch, sup_ret, xchemin, comptx, ote_ch, w_href. Template de traîtement de l’élément hl (sortie de l’URL complet dans la version imprimable).
dg_notes.xsl d:note. (apply-templates) sornotes, notsort, sortitnot. tattrib, notsort, sortitnot, trad. Notes de bas de pages.
dg_gal_index.xsl d:galerie, d:som_ix. (apply-templates) soricone, htmgal, extens, nomseul. extrnom, xchemin, soricone, ficgal, htmgal, nomseul, extens, dimlar, dimhau, dimsiz, dimfor. Création de la page planche d’images.
dg_gal_img.xsl (apply-templates) gal_img, licence, ficgal, divtexte, dimlar, dimhau, dimsiz, dimfor. extrnom, licence, url_prt, trad, ficgal, divtexte, dimlar, dimhau, dimsiz, dimfor, w_href. Sortie des pages images individuelles.
dg_rss.xsl rss2:rss, rss2:channel, rss2:item, d:listrss. (apply-templates) datrss, sorstring, sortitr, edtit, exlistrss, sorligtit. sortitr, sorstring, edtit, datrss, exlistrss, sorligtit, w_href, trad. Sortie d’une page à partir d’un fichier RSS.
dg_tchemin.xsl tchemin, xchemin, extrnom, comptx, compt_ch, sup_ret, ote_ch. tchemin, xchemin, extrnom, comptx, compt_ch, sup_ret, ote_ch. Modules de traîtement des chemins d’accès.
dg_calend.xsl d:calend, d:cal_sec, d:cal_dat, d:cal_loc, d:cal_tit, d:cal_com. (apply-templates) calendtit, cal_eve. calendtit, cal_eve, tattrib, trad. Module spécifique “calendrier”.

Insertion de traîtements spécifique

Un répertoire XSL_spec est prévu à cette fin. Il contient obligatoirement le module dg8_spec.xsl.

Dans dg8_spec.xsl, ajouter une ligne pour chaque .xsl nouveau. Exemple : <xsl:include href="monmodule.xsl" />

Outils particuliers

Cf Memento XPATH + XSLT [http://www.dg77.net/tekno/xpath.htm] :

Procédure pour un nouveau fichier xml

  1. Ajouter une entrée dans root_index.xml
  2. Ajouter un fichier menu_[nom].xml si l’on en a spécifié un dans le root_index.xml (cf balise menu).
  3. Créer un .bat du type xgen_[nom].bat
  4. Ajouter l’entrée nouvelle dans xgen.bat

Programmation Web – côté serveur

Côté serveur

PHP

Du 1er juin 2005 au 4 février 2009, PHP fut utilisé pour la page Contact. Interruption en raison de la fin de l’hébergeur Club-Internet.

Wordpress

Du 19 novembre 2012 au 21 septembre 2024, utilisation de Wordpress pour avoir un formulaire de contact, via un sous-domaine "photo" non prévu pour cela à l’origine. Interruption en raison de la non évolution du support php due à l’option d’hébergement.

Programmation Web – côté client

Retour à l’affichage précédent

Cf spécifications supra. Code correspondant :

<div class="bouton">
 <a title="Retour/Back" 
       onmouseover="self.status=document.referrer;return true" 
  href="javascript:history.go(-1)">
  <=
 </a>
</div>

Ce code est conforme mais inexploitable sans le support javascript (Unsuppported URL scheme pour le navigateur Lynx).

Exemple (cliquer sur « Code pays ») :

Code correspondant (sortie d’une fenêtre de 400x600 pixels modifiable) :

<a href="../marche/rules/cpays.htm#deblist" 
    onclick="popUp(this.href,'elastic',400,600);return false;" 
    rel="external">Codes pays</a>

Suivre ce lien pour afficher le script, dans lequel la fonction “popUp” est définie.

Appel de l’URL « mailto »

Utilisation de la fonction contact du module javascript.

function contact() { return "mailto:toto@laposte.net?subject=Contact"; }

Exemple :

<div class="bouton">
  <a href="#" 
     onclick="document.location.href=contact();" 
     title="eMail" 
     rel="noindex,nofollow">Contact</a>
</div>

En cas de changement d’adresse mail, il suffira de modifier le script, au lieu de régénérer toutes les pages html.

Todo


Notes