RAW HTWL
 
Les macros de RAW HTWL

sommaire général


1. Qu'est-ce qu'une macro ?

Les macros sont là pour « automatiser des tâches répétitives ». Imaginons que vous souhaitiez répéter un même lien plusieurs fois dans une page, par exemple un lien vers votre adresse e-mail : « pour m'écrire, cliquez ici, ou ou encore juste ici ! » Pour coder cela en HTML il faudra écrire :

pour m'écrire, cliquez
<A HREF="mailto:andriana@mail.dotcom.fr">ici</A> ou
<A HREF="mailto:andriana@mail.dotcom.fr">là</A>, ou encore
<A HREF="mailto:andriana@mail.dotcom.fr">juste ici</A>&nbsp;!

On peut bien sûr s'en sortir avec des copier/coller judicieux. Mais RAW HTWL permet tout simplement d'écrire ceci :

\def \mail #texte
{
    <A HREF="mailto:andriana@mail.dotcom.fr">#texte</A>
}

pour m'écrire, cliquez \mail{ici} ou \mail{là}, ou encore \mail{juste ici}~!

Pour que ce bout de code produise le fichier HTML désiré, il suffit de le faire glisser sur RAW HTWL. Quand il rencontre la séquence \def \mail, RAW HTWL sait que lorsqu'il rencontrera de nouveau la séquence \mail ..., il devra lui substituer la séquence <A HREF="mailto:andriana@mail.dotcom.fr> ... </A>.
Dans cet exemple, #texte est un argument de la macro \mail. On peut définir autant d'arguments qu'on veut quand on définit une macro.

Outre la macro \mail, remarquez la possibilité d'utiliser les accents dans RAW HTWL, ainsi que l'accès simplifié à l'espace insécable.


2. À quoi peuvent servir les macros ?

2.1. Propagation sur tout un site

L'exemple ci-dessus n'est pas innocent : il évoque un cas de figure qu'on rencontre souvent… Quand on change d'adresse e-mail, par exemple, si on avait défini son ancienne adresse à l'intérieur d'une macro, il suffit de changer une fois cette macro pour que toutes les références à l'adresse e-mail dans tout le site soient modifiées.

En pratique, ce cas de figure se règle ainsi :

Mettre ceci dans un fichier « mon mail.h » :

\def \mail #texte
{
    <A HREF="mailto:andriana@mail.dotcom.fr">#texte</A>
}

Contenu du fichier « index.html » :

\include { mon mail.h }

...

Pour m'écrire, cliquez \mail{ici}.

Contenu du fichier « mes vacances.html » :

\include { mon mail.h }

...

Si vous avez des commentaires, \mail{écrivez-moi}~!

On voit que l'adresse e-mail est stockée à un seul endroit, le fichier « mon mail.h », et est accessible dans tous les autres fichiers grâce à la primitive \include.


2.2. Liens

À l'instar des adresses e-mail, les liens couramment référencés devraient être stockés dans des macros, afin de limiter les fautes de frappe.

Quand il s'agit de liens locaux, le principe des macros est tout aussi utile. En effet, lorsqu'on doit réorganiser son site en profondeur, il est agréable d'avoir dans un seul fichier « mes liens.h » tous les liens utilisés, pour pouvoir facilement les modifier.


2.3. Textes pré-enregistrés

L'utilité la plus évidente des macros est de pouvoir répéter un texte donné.

Ainsi, si on souhaite avoir dans chacune des pages du site la date de mise à jour, il suffira de définir dans un fichier « .h » une macro \date_de_mise_a_jour :

Contenu du fichier « mes premières macros.h » :

\def \date_de_mise_a_jour
{
    24 février 2000
}

puis d'utiliser la macro \date_de_mise_a_jour à bon escient.

Cela ressemble au « champ de date » qu'on peut rencontrer dans des logiciels bien connus, comme Microsoft Word.


On peut évidemment aller plus loin, en rajoutant par exemple un lien à un texte pré-enregistré :

\def \apple
{
    <A HREF="http://www.apple.com/">Apple</A>
}

Avec comme utilisation possible :

Comme prévu, \apple a présenté mercredi ses nouveaux modèles cadencés à ...~MHz. Rappelons que \apple est le seul fabricant d'ordinateurs Macintosh, ce qui constitue un cas éhonté de monopole à l'excellence~!

Le lien sera répété à chaque fois qu'on parlera d'Apple.


2.4. Styles

On peut tout à fait se passer du HTML 4.0 et utiliser en HTML 3.2 les fonctions basiques des feuilles de styles (css) ; il suffit d'utiliser des macros…

\def \couleur_exergue {#ff0000}

\def \police_exergue {helvetica, arial}

\def \exergue #texte
{
    <FONT COLOR="\couleur_exergue" FACE="\police_exergue">
        #texte
    </FONT>
}

On peut sans problème \exergue{s'amuser} avec RAW HT\exergue{W}L.


Avec l'utilisation idoine de fichiers « .h » et de la primitive \include, ces macros pourront être utilisées dans tous le site.


2.5. Mise en page

Quand on a décidé d'une charte graphique pour un site, et que les pages sont composées d'éléments qui reviennent souvent (menus, logos, bandeaux, cadres pour le contenu…), on a plusieurs façons de régler le problème : copier/coller d'une page de base, utilisation des frames, modèles de pages (templates)…
Les macros de RAW HTWL permettent de coder assez facilement des pages templates.

Se reporter aux exemples.

L'intérêt des templates est de séparer la mise en page des contenus. On définira les macros de mise en page dans des fichiers « .h », et les fichiers « .html » ne contiendront quasiment que du contenu.


2.6. Catalogues d'images

RAW HTWL permet de parcourir un dossier entier (primitive \foreachfile), et de répéter une action donnée pour chaque élément rencontré dans le dossier. Cela offre la possibilité par exemple de dresser la liste des images contenues dans le dossier, de créer une page HTML par image, de regrouper les images quatre par quatre, etc.

Se reporter aux exemples.


2.7. Bases de données

Ce qu'on fait avec RAW HTWL pour les listes d'images, on peut aussi le faire pour des bases de données.

On s'arrangera pour séparer les champs par des tokens identifiables comme ci-dessous. On peut garder toutes les fiches dans un seul fichier, ou faire un fichier par fiche :

Contenu du fichier « fiche 1.h » :

\nom Raymon Patachon
\date_de_naissance 05/08/1987
\adresse 41, place Guronsan
\code_postal 31000
\ville Toulouse

On peut ensuite traiter cette base de données, en extraire toutes les listes imaginables en HTML, faire un sommaire HTML, des classements, etc.

Se reporter aux exemples.


3. En savoir plus sur les macros


RAW HTWL a des macros prédéfinies pour aider à la création de sites.

 
Les primitives de RAW HTWL ne sont pas à proprement parler des macros, même si elles s'utilisent de la même façon ; elles offrent en effet plus qu'une simple substitution de texte ! (manipulation de fichiers, calculs, branchements conditionnels…)


4. Poursuivre la navigation

retour au sommaire général