Htmlc: expansion de variables. Fichier créé le 3 mars 2003.
Ce fichier se compile à l'aide de la commande:
htmlc -I ../../doc_src/Includes/ -env env0 -c example-fra.html
Les fichiers d'environnement sont des listes de liaisons. Une liaison
définit un nom (un identificateur) et le lie à une valeur
constante. Une constante est soit un entier, un flottant, un caractère, une
chaîne de caractères, un booléen (soit true
soit
false
), ou encore un identificatuer préalablement défini.
Les conventions lexicales pour les constantes et les identificateurs suivent celles du langage Caml.
Les définitions doivent suivre l'une des deux syntaxes suivantes:
let nom = valeur;;
nom = valeurou
nom valeur
#
et se terminent
à la fin de la ligne.Le fichier env0
est en style libre:
Le fichier d'environnement env1.ml
est, lui, en style Caml:
Ainsi, la variable d'environnement HTMLC \$X
est remplacée par
$X et la variable \$Y
devient ($Y).
De même, la variable système <\$HOME>
devient la valeur
de la variable \$HOME
obtenue dans l'environnement système de
l'utilisateur.
Notez que les alias sont possibles: \$long_def
est lié à la
valeur de \$a_long_definition_can_spread_on_more_than_one_line
,
c'est-à-dire:
$long_defDans le fichier d'environnement, nous avons choisi d'appeler
\$last_variable
la dernière variable définie et de la lier au booléen true
:
nous pouvons vérifier que sa valeur est effectivement ``$last_variable
''.
Notez que \$adresse_hotel vaut :
\$adresse_hotel.
ce qui signifie que la valeur liée à une variable peut faire référence à la
valeur d'une autre variable.
Comme d'habitude, l'hôtel est $hotel. Il est situé au $hotel_address.
Ici on inclut un fichier, le fichier included-fra.html
.
Debut de l'inclusion du fichier included-fra.html
...
Fin de l'inclusion du fichier included-fra.html
.
exec
Si command name
est le nom d'une commande Unix accessible
à l'utilisateur du compilateur, alors on écrit
<!--#exec cmd="command name"-->pour inclure le résultat de la commande
command name
dans le
document produit. Par exemple, avec "ls *.ml", on obtient la liste des
fichiers ml
du répertoire test des sources du compilateur htmlc:
De même, on produit la date de compilation avec la ligne:
<!--#exec cmd="date"-->
fsize
Un moyen facile d'obtenir la taille d'un fichier est d'interroger le système
de fichiers sous-jacent à l'aide de la commande prédéfinie fsize
:
<!--#fsize file="example-fra.html"-->par exemple, (le fichier source de ce) fichier comporte octets.
echo
La commande echo
vous permet d'imprimer la valeur liée à un nom:
<!--#echo var="\$myvar"-->
set
et define
On peut définir des variables directement dans le fichier source avec la
commande define
:
<!--#define myvar="myvalue"-->
<!--#define myvar="Pierre Weis, INRIA researcher"-->
<!--#echo var="\$myvar"-->
produit le texte:
<!--#define myvar_with_quotes="«\$myvar»"-->
<!--#echo var="\$myvar_with_quotes"-->
produit:
set
, on peut lier des noms à des valeurs
arbitraires calculées au moment de l'expansion du fichierexec
, on calcule la valeur qu'on
désire attribuer à une variable à l'aide de set
:
<!--#set thefiles="<!--#exec cmd=\"ls *[eng,fra].html\"-->"-->"-->
\$thefiles
est la liste des
noms de fichiers du répertoire courant qui contiennent
eng
ou fra
dans leur nom et ont le suffixe
.html
, au moment de la compilation de ce fichier. La valeur
attribuée à \$thefiles
est encore obtenue avec la commande
echo
:
<!--#echo var="\$thefiles"-->