NOM
freetable - outil de generation automatique de tableaux HTML
VERSION
Cette documentation decrit l’utilisation de freetable version 2.3.
Si vous utilisez une autre version, certaines differences peuvent
apparaitre.
SYNOPSIS
freetable [options] fichier
ou
freetable [options]
Options:
-h, --help Affiche cette aide et stoppe
-V, --version Affiche seulement le numero de version
-c, --comment Affiche un commentaire avant chaque
cellule pour indiquer son emplacement
-b, --no-nbsp N’ajoute pas dans les cellules
vides pour modifier le rendu 3D
-w, --warning Affiche un commentaire avant chaque
tableau, indiquant que le tableau est
genere automatiquement et ne doit pas
etre edite
-l, --location Remplace les indicateurs "<row>" (ligne)
et "<col>" (colonne) a l’interieur des
tableaux par la position de la cellule
courante.
-m, --macro [program]
Avec cette option, le contenu des
cellules est passe a un pre-processeur,
qui est m4 par defaut
AVERTISSEMENT SUR LA SECURITE
N'UTILISEZ PAS DE MACRO-PROCESSEUR SUR UN
FICHIER SOURCE DONT VOUS N'ETES PAS SUR.
CELA POURRAIT COMPROMETTRE LA SECURITE DE
VOTRE SYSTEME
Plus d’informations dans la documentation de m4, en particulier la
commande syscmd.
Ce programme est un logiciel libre qui remplace wwwtable.
HTML est un langage agreable, mais avec un enorme defaut : les
tableaux. J’ai passe de nombreuses heures a lire le code source que
j’avais tout juste ecrit pour essayer de comprendre quelle cellule dans
le code source correspond a ce qui est affiche dans le navigateur.
Si cela vous rappelle une experience similaire, alors lisez cette
documentation et votre peine ne sera plus qu’un mauvais souvenir.
Le programme recoit en entree du code HTML provenant soit de l’entree
standard (stdin), soit d’un fichier. Il recherche alors les caracteres
suivants, qui annoncent l’ouverture d’un tableau:
<wwwtable [options]>
Il analyse le contenu jusqu’a detecter la fin du tableau, affiche le
code HTML correspondant puis continue le traitement avec les tableaux
suivants.
SYNTAXE
La syntaxe est tres simple:
wwwtable:
<wwwtable [wwwtable_options]>
[preambule]
[cellule]
[cellule]
...
</wwwtable>
La chaine optionnelle wwwtable_options est passee telle quelle comme
attribut de la balise "<table>". Le preambule n’est pas traite, il peux
contenir n’importe quel code HTML, il sera insere au debut du tableau.
Les cellules sont soit des cellules normales (balise "<td>"), soit des
cellules d’en-tete (balise "<th>"). Il en etait ainsi jusqu’aux
versions 1.x, voyez la prochaine section pour une autre methode
d’adressage des colonnes.
cellule normale:
(ligne,colonne) options_cellule
contenu_cellule
cellule en-tete:
((ligne,colonne)) options_cellule
contenu_cellule
Le texte contenu dans options_cellule est passe comme attribut de la
balise de la cellule. Les mots-cles colspan et rowspan sont interpretes
pour generer des tableaux corrects.
Le contenu des cellules (contenu_cellule) est quelconque, il peut meme
contenir d’autres wwwtables !
Si vous utilisez l’option -m (ou son synonyme --macro), le contenu des
cellules sera passe comme entree standard de la commande m4(1), apres
avoir remplace les chaines de caracteres <row> (resp. <col>) par le
numero de ligne (resp. colonne) de la cellule.
Les indices de ligne et colonne sont soit des nombres, soit un
adressage relatif, soit une expression reguliere qui designe un
ensemble de cellules. A la difference de wwwtable, freetable peut aussi
utiliser des expressions regulieres dans les cellules d’en-tete. Un
autre ajout est la possiblite d’utiliser * a la place de .*.
L’adressage relatif est de la forme :
= ou vide : meme indice que la cellule precedente
+ ou +X : incremente l’indice de X (defaut: 1)
- ou -X : decremente l’indice de X (defaut: 1)
Lorsqu’une cellule est designee par plusieurs expressions, a la fois
les options et le contenu de chaque cellule sont ajoutes.
Si vous n’utilisez que des expressions regulieres, il faut indiquer au
programme la position de la derniere cellule.
<wwwtable>
(*,1)
cellules de la colonne 1
(1,*)
cellules de la ligne 1
(4,4)
</wwwtable>
AUTRE SYNTAXE D’ADRESSAGE
Il n’est pas tres pratique de specifier les numeros de cellules avec
des expressions regulieres. Freetable 2.0 a introduit deux nouvelles
methodes d’adressage, qui peuvent etre utilisees sur les cellules
normales et les cellules d’en-tete.
Une compatibilite totale avec les versions anterieures est assuree.
Pour cette raison, il n’etait pas question de modifier la syntaxe
actuelle. Malheureusement, vous ne pouvez pas specifier les lignes en
utilisant une syntaxe d’adressage, et les colonnes avec une autre
syntaxe. Pour remedier a ce probleme, les deux methodes sont tres
souples, si bien que vous ne devriez jamais avoir a les melanger, et
elles vous permettent d’utiliser =, +, -, +X, -X et la chaine vide de
la meme facon qu’avec freetable 1.x.
De plus, ces nouvelles methodes determinent automatiquement la derniere
cellule, contrairement a l’adressage par des expressions regulieres.
BORNES EXPLICITES
(bornes_ligne;bornes_colonne) options_cellule
contenu_cellule
La syntaxe pour bornes_ligne et bornes_colonne est de la forme:
1-2,4-7,9,12. Les doublons sont elimines. Pour les besoins de
l’adressage relatif, le dernier nombre est utilisee. Ainsi, quand vous
ecrivez
(1-100,32;1)
foo
(+,)
bar
la cellule (33,1) contiendra X foo bar X et toutes les autres seulement
X foo X.
CODE PERL QUELCONQUE
({code pour les lignes},{code pour les colonnes}) options_cellule
contenu_cellule
Vous pouvez utiliser n’importe quel code Perl qui tient sur une seule
ligne du moment qu’il est repere oar notre expression reguliere (pas
tres futee) et renvoie une liste. Il n’est malheureusement pas possible
de detecter n’importe quel code de Perl grace a une expression
reguliere, mais du moment qu’il ne contient pas les sequences },{ et
}), cela devrait marcher. Exemple :
<wwwtable>
({grep {$_%3 == 1} 1..100},{1..2,4})
foo
</wwwtable>
va creer un tableau de 100 lignes par 4 colonnes avec X foo X dans les
premieres, deuxieme et quatrieme colonnes de chaque ligne dont le
numero vaut 1 modulo 3.
Si vous voulez melanger cet adressage avec le precedent, il suffit de
remplacer - par .. dans la definition des bornes, et l’entourer par des
accolades { et }.
Si vous voulez melanger cet adressage avec une expression reguliere,
vous pouvez remplacer cette derniere par {grep {/expression/}
min..max}. Il est malheureusement obligatoire de specifier
explicitement la dimension du tableau.
INCOMPATIBILITES AVEC WWWTABLE
Les utilisateurs de wwwtable qui decident de passer a freetable
devraient lire cette section. La majorite des incompatibilites
proviennent du traitement des expressions regulieres. Il faut aussi
noter que wwwtable ne permettait ni le remplacement automatiques des
numeros de lignes et de colonnes, ni l’utilisation d’un pre-processeur.
L’option -w a le comportement oppose. Nous n’ecrivons aucun commentaire
par defaut, et -w ou --warning est utilisee pour les ajouter.
Les cellules d’en-tete peuvent etre definies avec des expressions
regulieres, par exemple
((1,*))
ce qui etait impossible avec wwwtable.
Les indices des axes sont 100% orthogonaux, ce qui signifie qu’avec le
code suivant
(*,1) width=30
(*,2) width=35
(*,3) width=40
(=,=)
Foo
Foo va apparaitre en 3e colonne, et si vous vouliez qu’il soit en 1e
position, il faut ecrire
(*,1) width=30
(*,2) width=35
(*,3) width=40
(=,1)
Foo
ou
(*,) width=30
(*,+) width=35
(*,+) width=40
(=,1)
Foo
Avec freetable 2.0, deux methodes completement nouvelles d’adressage
des cellules ont ete introduites. Elles sont totalement incompatibles
avec wwwtable.
BUGS
L’utilisation de X code Perl quelconque X echouera avec du code
complexe.
VOIR AUSSI
m4(1)
AUTEUR
Tomasz Wegrzanowski <taw@users.sourceforge.net>
Traduction francaise de la documentation: Denis Barbier
<barbier@debian.org>