Introduction aux principes d'Achille

Introduction

Le W3C

Le World Wide Web Consortium (W3C) publie des recommandations sur tous les sujets relatifs à la navigation sur le web. Ces normes, lorsqu'elles sont correctement suivies, permettent une plus grande facilité pour les utilisateurs sur la toile, et un meilleur confort pour les programmeurs qui implémentent des outils tels les navigateurs.

Achille a été écrit avec ces normes comme objectif. Toutes les pages générées par Achille, qu'elles soient issues de transformation ou totalement générées, sont (ou devraient être) conformes aux recommandations du W3C.

Docbook

Le second principe essentiel d'Achille est qu'il ne se préocupe que de l'étape de mise en page à destination du web. Son rôle est de traduire des documents existants vers le format XHTML, et de générer toutes les pages utiles à la navigation mais qui n'apportent rien au contenu (index, listes de fichiers, carte du site, etc.).

Actuellement, les seuls documents interprétés par Achille sont les articles écrits selon la DTD Docbook XML.

La rédaction de documents Docbook

Docbook définit une structure de document permettant de produire des ouvrages plus ou moins complexes (articles, livres, etc.) à partir d'un fichier structuré écrit en XML ou SGML.

XML et SGML sont des langages de description. Ils ne sont rien d'autre qu'un moyen de structurer un document à l'aide de balises insérées dans le texte. Par exemple, une portion de cet article - rédigé en XML - est ainsi définie :

    <section>
      <title>Docbook</title>
      <para>
        Le second principe essentiel d'<emphasis>Achille</emphasis>
        est qu'il ne se préocupe que de l'étape de mise en page à
        destination du <foreignphrase>web</foreignphrase>. Son rôle
        est de traduire des documents existants vers le format XHTML, et de
        générer toutes les pages utiles à la navigation mais qui
        n'apportent rien au contenu (index, listes de fichiers, carte
        du site, etc.).
      </para>
      <para>
        Actuellement, les seuls documents interprétés par
        <emphasis>Achille</emphasis> sont les articles écrits selon la
        DTD <ulink url="http://www.docbook.org">Docbook</ulink> XML.
      </para>
    </section>

Cette structure contient uniquement la logique du texte. Elle ne spécifie en rien la manière dont le texte doit être présenté au lecteur. Ainsi, ce même texte peut être formatté afin d'être correctement lu au travers de différents media tels une page web, un document électronique, un ouvrage imprimé, etc.

Transformation

Lors de cette phase de traitement, ou génération, l'information contenue dans chacun des articles présents sur le site est extraite selon le besoin, recoupée, croisée avec d'autres pour composer l'ensemble du site, c'est à dire toutes les pages HTML présentes ici. Ainsi, cette page-ci se base sur le document XML de l'article, mais nécessite aussi le titre et l'adresse de chaque section du site pour construire le menu incorporé en haut de page.

Dans le même temps, de nouvelles pages (les index en particulier) sont crées afin créer un site complet. Les index sont créés selon les mêmes principes de transformation, mais s'appuient sur plusieurs documents.

Visualisation

Une fois transformé par Achille, cet article apparait à peu près comme ceci dans n'importe quel navigateur :

Si vous disposez d'un navigateur moderne comprenant correctement la norme CSS 2 (tels Opera ou Mozilla), une dernière étape dans le traitement de l'information se produit au moment de la visualisation. En effet, le code HTML généré est en fait très simple. Son rôle est de contenir la structure de ces pages afin qu'elles soient correctement interprétées par un navigateur. Mais qu'est-ce qui fait que le bord est si large ou étroit, que les liens soient en gras, que le menu est disposé ainsi ? Il s'agit de l'application d'une feuille de style CSS.

Une feuille de style est constituée d'une liste d'identifiant HTML, et pour chacun d'eux, d'une liste d'attributs. Voici un extrait d'une feuille de style valide :

h1 {
	color: #ffffff;
	font-weight: normal;
	margin: 0px 0px 0px 0px;
	padding: 2px 8px 2px 8px;
	margin-top: 15px;
	font-size: 20px
}

pre {
	border-right: 2px dashed #d0d0d0;
	border-left: 2px dashed #d0d0d0;
	background-color: #444444;
	padding: 8px;
}

a {
	text-decoration: none;
	font-weight: bold;
	color: #ffffff
}

Chaque fichier HTML précédemment généré contient une instruction signalant au navigateur qu'il doit utiliser une feuille de style pour l'affichage de la page. C'est le navigateur qui, avant d'afficher la page, doit aussi télécharger la feuille de style et l'appliquer à la volée.

Avantages

Deux aspects des principes vus ici présentent un indéniable avantage : l'utilisation de normes et de documents structurés, et la génération automatique des pages.

La séparation entre le contenu du site et sa présentation apporte une confortable indépendance par rapport à tout outil et toute machine. Il permet d'écrire des articles à l'aide de n'importe quel éditeur (tel emacs) en ne se préoccupant que d'une chose : le texte doit être correctement structuré. Le texte ainsi produit peut être lu et modifié depuis n'importe quel système, avant d'être transformé. L'utilisation de standards lui permet d'être ensuite consulté depuis n'importe quel outil comprenant ces standards.

Les pages connexes telles les index ne sont là bien souvent que pour présenter les différentes pages du site, et constituent donc un dédoublement de l'information. La génération de ces pages permet d'économiser beaucoup de temps en maintenance.

Pour faire de même

Voici quelques liens permettant d'approfondir le sujet.

Modifié le 12/08/2003 et généré par Achille 2.0 le Sunday 04 July 2004 11:18