Prehtml

Qu'est-ce que prehtml?

Cliquez ici pour lire l'aide de prehtml.

C'est un programme que j'ai écrit. Qui ça moi? Eh bien moi.

Traditionnellement, il y a plusieurs façons de créer des pages web:

J'ai écrit pour mon propre usage (mais également pour qui veut) un programme qui permet à chacun d'automatiser l'écriture des pages web (index automatiques, liens qui se mettent à jour tout seuls, ou encore bien d'autres choses), que l'on écrive ses pages web à la main ou avec un éditeur HTML. Il n'y a que deux conditions pour utiliser prehtml: être sous Unix (par exemple Linux), et ne pas être allergique au Shell. Il est sans doute possible d'adapter le système sous Windows (bash existe pour MS-DOS dans la distribution DJGPP), mais je n'ai aucune motivation pour le faire. De plus, la plupart des gens qui connaissent le shell sont probablement déjà sous Unix, donc quel intérêt?
Cliquez ici pour télécharger tout prehtml version courante (sources, exécutable pour linux, et aide): c'est un fichier de 70 Ko qu'il faut décompresser en tapant "tar -zxf prehtml-current.tar.gz".
Version actuelle: 2.7
Historique: 2.6, 2.5, 2.4, 2.3, 2.2, 2.1, 2.0, 1.9, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3,1.2 (non archivée), 1.1, 1.0, initiale (sans numéro).

Cliquez ici pour lire l'aide de prehtml.

Quelques exemples

Vous comprendrez immédiatement l'intérêt de la chose si vous avez déjà créé des pages web et si vous connaissez le shell d'Unix (c'est l'équivalent du prompt MS-DOS, mais en infiniment plus puissant). Jetez aussi un coup d'oeil à mes pages collectiftramway.free.fr et montpellier.fubicy.org pour avoir une idée de ce qu'on peut en faire.
NB: ma page personnelle mjulier.free.fr utilise également prehtml.
Vous pouvez juger des fonctionnalités en regardant le site du Collectif Tramway, car j'ai mis les fichiers source sur le serveur:


Code source
Résultat obtenu
Page d'accueil
http://collectiftramway.free.fr/index.prehtml
http://collectiftramway.free.fr/index.html
Page d'actualités
http://collectiftramway.free.fr/actualites-source.prehtml http://collectiftramway.free.fr/actualites.html
http://collectiftramway.free.fr/actualites-2004.html
...
Fil RSS
http://collectiftramway.free.fr/rss.prehtml http://collectiftramway.free.fr/rss.xml
Une info (Transdev, Connex et Kéolis se sont entendues sur le dos des contribuables des communes de France)
http://collectiftramway.free.fr/actu/20050903.prehtml
http://collectiftramway.free.fr/actu/20050903.html
La liste des associations adhérentes au Collectif
http://collectiftramway.free.fr/quidonc.prehtml http://collectiftramway.free.fr/quidonc.html
Recueil des dernières infos;
Recueil des nouveautés sur la revue de presse
http://collectiftramway.free.fr/whatsnew-actu.htm
http://collectiftramway.free.fr/whatsnew-revue.htm
Inclus dans sur la page d'accueil:
http://collectiftramway.free.fr/index.html
Le Makefile
http://collectiftramway.free.fr/Makefile ... eh bien je tape "make" et j'ai tout ce site:
http://collectiftramway.free.fr

Quelques exemples simples en vrac:

Je tape ceci dans mon éditeur HTML (l'éditeur de Mozilla Seamonkey par exemple) J'obtiens cela dans le fichier créé
<SHELL titre="Des pistes cyclables sur le trottoir";lien="pistes.html">
<SHELL numero_info=`expr $numero_info + 1`>
(rien dans le fichier créé, mais j'ai affecté des valeurs à des variables)
Dernière info: <echo $titre>
(notez que ce lien pointe vers "<echo $lien>")
Dernière info: Des pistes cyclables sur le trottoir
(notez que ce lien pointe vers "pistes.html")
Dernière mise à jour le <SHELLECHO date "+%A %e %B %Y à %Hh%M"> Dernière mise à jour le samedi 6 octobre 2001 à 19h22
<INCLUDE bandeau_haut.htm> (le contenu de "bandeau_haut.htm" apparaît à la place de cette commande. Ce fichier peut contenir des commandes prehtml, en particulier pour que le bandeau s'adapte à chaque page)
Voici les messages échangés:

<INCLUDE `ls -rt messages/*.htm`>
Voici les messages échangés:

<Contenu du premier fichier>
<Contenu du deuxième fichier>...
(ordre chronologique grâce à "-rt")
<SHELL numero=1>
<NOTINCLUDE info_$numero.htm>

Info n°<echo $numero>: <echo $titre>

<INCLUDE info_$numero.htm>
(et le fichier info_1.htm contient ceci:)
<shell titre="Vive le vélo
c'est le transport de l'avenir">Tout le monde est pour le vélo!

Info n°1: Vive le vélo
c'est le transport de l'avenir

Tout le monde est pour le vélo!

(notez donc que les balises HTML permettant la couleur rouge du texte, le saut de ligne, et le changement de taille de police, ont été mises elles aussi dans la variable "titre"; la seule difficulté est qu'il ne faut pas de déséquilibre entre les balises de début et de fin: par exemple la commande <shell titre="Vive le vélo"> laisserait le texte suivant lui aussi en rouge)
<IF [ $dest == index.html ]>ACCUEIL<ELSE>Accueil<FI>
(cette ligne sera dans le fichier "bandeau_haut.htm")
ACCUEIL (si fichier inclu depuis index.html)
Accueil (si fichier inclu depuis une autre page)
Liste des infos:
<FOR fichier IN depeches/depeche*.htm>
<notinclude $fichier>- <echo $titre><DONE>

(depeches/depeche[...].htm contient des informations, mais également la commande <shell titre="titre de cette info">)

Liste des infos:
- titre de la première info
- titre de la deuxième info
- titre de la troisième info...
<shell nb=1>
<WHILE [ -f depeche_${nb}.htm ]> 
<include depeche_${nb}.htm>
<shell nb=`expr $nb + 1`>
<DONE>
Le contenu de depeche_1.htm
Le contenu de depeche_2.htm
Le contenu de depeche_3.htm
(tant qu'il existe un fichier dans la série)
Début de la page
<for annee in 19?? 20??>
<GENERATE archives_${annee}.html>Archives de l'année
<for depeche in ${annee}/depeche*.htm>
<include $depeche>
</GENERATE><done>
Fin de la page
(plusieurs fichiers créés: par exemple le fichier "archive_2000.html" contiendra ceci:)

Début de la page
Archives de l'année 2000
Le contenu du fichier 2000/depecheA.htm
Le contenu du fichier 2000/depecheB.htm...
Fin de la page
<chut>
blablabla</chut>
(rien)
(très utile: voir l'exemple suivant)
(le tableau est un objet qui contient un début, des lignes, et une fin)
<shell liste="un deux trois quatre">

Liste des valeurs

     
    Titre d'une colonne Titre de l'autre colonne<CHUT>
(NB: ce tableau a un fond jaune, mais le fond de son unique ligne est défini en bleu clair)

<FOR variable IN $liste>
     

    </CHUT>
    Ma variable vaut... ...<echo $variable> à cet endroit.<CHUT>
<DONE>
     
           
    </CHUT>

Liste des valeurs

     
    Titre d'une colonne Titre de l'autre colonne
    Ma variable vaut... ...un à cet endroit.
    Ma variable vaut... ...deux à cet endroit.
    Ma variable vaut... ...trois à cet endroit.
    Ma variable vaut... ...quatre à cet endroit.
(Étonnant, non? il faut comprendre comment sont faits les tableaux HTML, mais inutile même de savoir quelles sont les balises à utiliser pour créer un tableau! Et ça vaut tout aussi bien pour les listes ou quoi que ce soit).

Inutile d'en dire plus, ce ne sont que quelques exemples. L'aide donne la liste des commandes utilisables, et il suffit ensuite à chacun de créer ses pages comme il l'entend. Et des programmes tels que "sed" ou "awk" seront certainement très profitables pour certaines opérations trop compliquées pour le shell seul.


Aucun logiciel de Microsoft n'a été utilisé pour la réalisation, le transfert, ou l'hébergement de cette page.
Adresse de cette page: http://mjulier.free.fr/prehtml/
Fait à l'aide du programme prehtml - Hébergement et statistiques: