SHP Home Page


Introduction


Qu'est ce que SHP

SHP est un préprocesseur pour HTML écrit en Perl. Il permet de remplacer des tags prédéfinis par du texte et d'appeller des fonctions Perl. Toute la configuration se fait en Perl. Un exemple tout simple :

# Fichier de configuration ecrit en Perl
$tag{"<deb>"}='<meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1">';

sub stitre {
    print '<br><font size="+1" color="#0088AA"><b>';
    print @_[0];
    print '</b></font><br>';
}


<!-- fichier source -->
<deb>
<HTML>
...
<%stitle "exemple de titre">
Quelques fonctions sont données en exemple (date de modification d'un fichier, taille d'un fichier, inclusion de fichier...).

Pourquoi utiliser SHP ?

Il est idéniable que l'utilisation d'un préprocesseur simplifie grandement la tâche d'écriture d'un site ouèbe. Un préprocesseur qui permet le rajout de fonction de façon aussi simple est également un atout. Ensuite il en existe certainement d'autres beaucoup plus aboutit... La réalisation de ce préprocesseur était donc plus un excercice qu'autre chose.


Installation de SHP


Téléchargement

shp-0.3.tgz (4Ko)

Principe d'utilisation

SHP crée un fichier html à partir d'un fichier source (ici, l'extension .htm a été choisit).
ex : SHP < toto.htm > toto.html

Installation,

Avant tout, il faut éditer le fichier SHP et remplacer la première ligne si nécessaire (Cette ligne indique où se trouve Perl sur votre système). Ensuite copier le fichier SHP dans un répertoire du PATH (Par exemple /usr/bin ou /usr/local/bin).

Ensuite, créer un répertoire de travail et un Makefile...


Manuel d'utilisation


Utilisation

Dans chaque fichier .htm, le debut du texte est du script Perl. Le délimiteur utilisé pour repérer la fin du script et donc le début du HTML est <doc> (en miniscule !).
Un exemple :

--------- expl.htm -----------

<doc>

------------------------------

Les tags

Un nouveau tag est défini par :
$tag{'<nouveau_tag>'}='Texte'; Tout les tags "<nouveau_tag>" seront remplacés par "Texte".
Exemple:

$tag{"<nouveau_tag>"}="<IMG SRC="toto.gif">";

Les fonctions

Les fonctions appelées sont des fonctions Perl. Elles peuvent bien sûr avoir des arguments.
Exemple:

sub equiv_tag {
  print "Cette fonction est équivalente à un bête tag";
}
Attention à ne pas utiliser de mot réservés pour le nom des fonctions !
Appel de la fonction:
<%equiv_tag>

Un autre exemple

Un autre exemple tout simple :
$tag{"<deb>"}="<HTML>";

$tag{"<fin>"}="</HTML>";

sub toto {
  print "Un petit test...",@_[0],@_[1];
}

sub toto2 {
  print "Un gros test...",@_[0];
}

<doc>


<deb>
<title>Ceci est un test</title>
AAA<%toto "aaaa","bbbb">BBB
AAA<%toto2>BBB
<fin>

Définitions locales

Pour créer des définitions locales à un répertoire, il suffit de les placer dans un fichier "local.pl". Ces définitions ne seront effectives que dans ce répertoire. Attention, le fichier "local.pl" est un module Perl et doit obligatoirement se terminer par "1;" (vrai).

Définitions globales

Pour créer des définitions communes à tous les fichiers, il suffit de les placer dans le fichier "~/.SHP" (). Attention, ce fichier est un module Perl et doit obligatoirement se terminer par "1;" (vrai).

Fonctions disponibles en exemple

  • Date de modification du fichier (en français)
  • Taille d'un fichier


Evolution


Ce présent document correspond à la version 0.1 et devrait être mis à jour...


Autres préprocesseurs


  • m4, livré avec tout UNIX digne de ce nom (man m4)
  • Artho Informatik - HTML PLAIN : un préprocesseur en Perl très puissant.
  • d'autres processeur HTML en Perl : faire une recherche "HTML Perl preprocessor" sur freshmeat
  • wml, certainement le meilleur outil actuellement.
© 2001 ArSuniK. Tous droits réservés.
Contenu revu le 16 mars 2006