Information de compilation

This commit is contained in:
Vincent Calame 2022-07-30 12:11:04 +02:00
parent 235532169e
commit a893f767b1
2 changed files with 24 additions and 9 deletions

View File

@ -4,7 +4,7 @@
*
* Lancer la compilation avec jake build[$version] $version est le numéro de version.
*
* Si $version commence par v, le répertoire de destination est dist, sinon c'est build.
* Un deuxième paramètre peut être passé : jake build[$version,$destination]. Si $destination est égal à "dist", le fichier est placé dans dist/ et non dir/
*
*
*/
@ -12,10 +12,12 @@
var fs = require('fs')
, exec = require('child_process').exec;
task('build', function (version) {
task('build', function (version,destination) {
var destinationDir = 'build';
if (version.startsWith("v")) {
destinationDir = 'dist';
switch(destination) {
case 'dist';
destinationDir = 'dist';
break;
}
jake.rmRf(destinationDir);
jake.mkdirP(destinationDir);

View File

@ -2,11 +2,23 @@
Conversion d'un tableau HTML en fichier ODS disponible en téléchargement.
Le principe de cette bibliothèque est de pouvoir écrire un lien proposant une version ODS (en fait au format .fods) d'un tableau HTML existant. L'exportation est opérationnelle sans aucune modification du tableau mais l'aspect du fichier résultant peut être substantiellement amélioré en ajoutant des attributs spéciaux (`data-od-*`) aux éléments du tableau et en proposant des styles suivant la syntaxe CSS.
Le principe de cette bibliothèque est de pouvoir écrire un lien proposant une version ODS (en fait au format .fods) d'un tableau HTML existant. L'exportation est opérationnelle sans aucune modification du tableau mais l'aspect du fichier résultant peut être substantiellement amélioré en ajoutant des attributs spéciaux (`data-od-*`) aux éléments du tableau et en proposant des styles suivant la syntaxe CSS.
## Attributs
## Développement et compilation
L'exporation peut être configurée à l'aide d'attributs nommés `data-od-*`. Ils sont tous facultatifs et sont placés au niveau des différents éléments composants le tableau.
Le code Javascript est décomposé en plusieurs fichiers contenus dans *src/js/*, l'exemple *dev.html* du répertoire *demos/* charge ces fichiers séparément.
Ces fichiers sont compilés dans un fichier unique via l'outil *jake* et le fichier *JakeFile.js* via la commande `jake build[version]`. Par défaut, ce fichier nommé *html2ods.js* est placé dans *build/* et est utilisé par l'exemple *build.html* du répertoire *demos/*.
Le répertoire *dist/* contient la dernière compilation avec numéro de version.
En mode développement, les fichiers de *src/js/currency*, *src/js/xmlwriter* et *src/js/opendocument* sont des bibliothèques séparées avec leur propre « espace de nom ». À la compilation, ils sont placés dans `Html2Ods` pour n'avoir qu'un seul « espace de nom », c'est pourquoi il ne faut pas supprimer la ligne `//compile target` dans le fichier *src/js/Html2Ods.js*
## Attributs spéciaux des éléments HTML
L'exporation peut être configurée à l'aide d'attributs nommés `data-od-*`. Ils sont tous facultatifs et sont placés au niveau des différents éléments composants le tableau.
Il est à noter que les attributs `colspan` et `rowspan` sont reconnus et appliqués ainsi que l'attribut `span` pour les éléments `<col>` ou `<colgroup>`.
### Élément `<table>`
@ -20,6 +32,7 @@ L'exporation peut être configurée à l'aide d'attributs nommés `data-od-*`. I
- `data-od-style` : style de la colonne
- `data-od-width` : largeur de la colonne (avec l'unité, par exemple « 6cm »), prend le pas sur la largeur définie dans le style, permet de définir la largeur sans avoir à définir le style
### Élément `<tr>`
- `data-od-style` : style de la ligne
@ -68,7 +81,7 @@ Le nombre de propriétés acceptées est limitée et dépend du type d'élément
### Propriétés de `cell`
- `background-color` : couleur de fond de la cellule
- `border` : bordure suivant la syntaxe *0.75pt solid \#333* (les déclinaisons en `border-top`, `border-left`, etc. sont possibles)
- `border` : bordure suivant la syntaxe *0.75pt solid \#333 # 333* (les déclinaisons en `border-top`, `border-left`, etc. sont possibles)
- `color` : couleur du texte
- `font-size` : taille de la police
- `font-style` : style de la police (*italic*)
@ -95,6 +108,6 @@ Le seul lien possible entre les styles est celui de la parenté, le style enfant
### Correspondance avec les classes CSS
Il est fort probable que les éléments du tableau disposent de classes CSS pour la mise en forme de la version HTML. Pour éviter d'utiliser l'attribut `data-od-text` pour ces éléments, il est possible d'établir une correspondance entre un style et une classe CSS. Pour cela, on utilisera l'opérateur CSS `~` (qui est donc détourné de sa signification habituelle en CSS) sous la forme `cell.NomDuStyleEnfant ~ .ClasseHtml`.
Il est fort probable que certaines éléments du tableau disposent déjà de classes CSS pour la mise en forme de la version HTML. Pour éviter d'utiliser l'attribut `data-od-styles` pour ces éléments, il est possible d'établir une correspondance entre un style et une classe CSS. Pour cela, on utilisera l'opérateur CSS `~` (qui est donc détourné de sa signification habituelle en CSS) sous la forme `cell.NomDuStyle ~ .ClasseHtml`.
Pour le moment, la correspondance n'est possible que vers une classe unique, tout autre sélecteur ne fonctionnera pas : les sélecteur d'identifiant (`#Id`) ou de plusieurs classes (`.Classe1.Classe2`), notamment, ne sont pas reconnus.