freetable

Autres langues

Langue: fr

Autres versions - même langue

Version: 2008-05-05 (ubuntu - 07/07/09)

Section: 1 (Commandes utilisateur)

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.

DESCRIPTION

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>