<> Nouvelle Série de placo <> 2004/06/14 <> 2004/10/11
La dénomination placo vient de planche de
contacts.
Disposer d'une boite à outils adaptée pour créer rapidement et efficacement des présentations de photos au travers de pages html.
Après les premières expériences qui finalement n'ont jamais été jusqu'au bout, je révise ma philosophie et au lieu d'avoir des scripts super-compliqués, je tente la stratégie d'une série de scripts plus ou moins simples calqués sur une pratique manuelle. C'est admettre que l'on peut rentrer facilement dans le script pour changer un paramètre d'exécution ou meme ajouter une nouvelle petite fonctionnalité. Mais encore plus :
Pour l'instant, placo peut aider à la mise en oeuvre de trois réalisations indépendantes.
Pour etre précis dans une description, il est capital de préciser les termes utilisés, c'est le pourquoi de cette petite section préalable.
--- à faire ---
Voici la suite typique des opérations à réaliser lors de l'utilisation de placo.
placo.debute).placo.prepare).placo.extrait).*.convert) qui avait
été préparé au moment de l'extraction et qui confectionne les images
réduites pour les vignettes et les affichages dans une page. Ce
lancement doit se faire dans le répertoire pro.placo.construit qui à partir des
structures crées réalise les pages html finales.Evidemment en standardisant l'organisation, on perd un peu de liberté mais on gagne en automatisation et simplicité.
Tous les fichiers d'un ensemble sont répartis dans un certain nombre de
répertoires de nom obligatoires qui se trouve dans un meme
répertoire dit central que choisit l'utilisateur. A sa racine ne se trouvent
normalement que les fichiers d'accueil index.html et
welcome.html qui sont générés par placo (encore à faire) et qui
permettent d'accèder à toutes les présentations utilisant la banque
d'images.
Il est pertinent de classer ces répértoires en trois catégories
Gérés par placo dans le sens, où ce ne sont normalement que les scripts qui interviennent pour créer ou lire des fichiers dans ces répertoires.
Ces répertoires sont dit gérés par placo et l'utilisateur car en général, les fichiers bruts sont générés par placo, et améliorés, complétés par l'utilisateur (retouche pour les images, informations supplémentaires pour les commentaires).
Ces répertoires ne sont pas utiles à placo mais il apparait judicieux de les suggérer à l'utilisateur. Si celui-ci le désire, il peut bien entendu en créer d'autres mais il ne seront pas pris en compte par les procédures placo de sauvegarde et recopie...
--- à faire ---
Il s'agit d'un tableau dont les lignes sont les différents
répertoires et les colonnes différentes caractériques, du genre :
qui les créequi les modifiequi les litinformation contenue...Normalement, il y a correspondance stricte entre les séries des fichiers
des trois répertoires : vig, pag et
com. Les images correspondantes devraient se trouver dans
ima (au moins au moment de l'utilisation de
placo.extrait. Les fichiers contenus dans
iht (presentation.nom.###.html) peuvent référer
la meme image dans plusieurs présentations et ne pas appeler toutes les
images.
Là aussi, on peut classer les fichiers en quelques catégories assez tranchées :
contexte.nom.code.ext
000 n'est
pas utilisé) qui permet de distinguer les images de meme
nom.jpg, mais cela peut changer ;
html pour les pages html...Normalement, tous les caractères sont/doivent être en minuscules, les blancs et plus généralement les caractères spéciaux sont proscrits de toutes ces composantes.
Leur format est de deux composantes :
contexte.type
En général, le contexte est lié à la présentation concernée. Parmi les types on peut relever :
L'annotation se fait en 2 temps :
placo.extrait, il s'agit en fait de compléter par des infos
des fichiers préparés par placo.prepare. Cette opération est
quasiment indispensable car la plupart des placo traitant des images ont
besoin des trois répertoires remplis en parallèle.Trois fichiers sont donc en cause : (1) pour les dates, (2) pour les
lieux, (3) pour les séries & titres & commentaires. Les trois
fichiers ont même première composante et des extensions obligatoires,
respectivement : sed, sel et ses.
Le premier ( annotation.sed) est
le plus simple, il indique la date de la prise de photo. En fait dans le cas
de la dénomination des fichiers par Camedia
placo.extrait a déjà fait tout le travail, mais on peut corriger
la donne. Il n'est pas nécessaire de dater toutes les photos, le même
principe que décrit juste après pour les lieux s'applique.
Le second ( annotation.sel) est
aussi assez simple, il indique le lieu de la prise de photo. Le principe est
basé sur le fait que les photos sont triées, et qu'il suffit d'indiquer le
lieu pour la première photo de changement de lieu.
Le troisième ( annotation.ses)
est le plus riche et le plus long à constituer, c'est le seul qui soit
indispensable. Il indique :
Le format est assez simple :
" d'autres mots
clef supplémentaires,/" un titre,/". D'une certaine manière, on
peut dire que le titre est le premier paragraphe.Remarque : on fera attention que pour l'instant, il n'est pas prévu d'échappement pour le slasch séparateur et que donc il n'est pas possible (pour l'instant) de l'introduire en tant que tel !
On aura sans doute noté la possibilité d'introduire des lignes de commentaires ignorées par les programmes, en apposant en première position un "#". Ceci est valable pour les trois fichiers.
Cette première annotation se conclut par le lancement de
placo.extrait qui place dans le répertoire com
les fichiers nom.###.txt pour chaque image.
Remarque : la distinction entre les dates, les lieux et les mots clefs additionnel sera fictive dans l'utilisation. Seule le premier clef joue vraiment un rôle différents.
A tout moment, il est possible de reprendre les fichiers contenant les annotations et les modifier/compléter en respectant le format adopté qui est assez simple et parlant de lui même.
Des liens sont placés sur les différents titres pour une consultation aisée du code.
Ce n'est pas un script au sens strict, puisque c'est le module qui contient les constantes et fonctions générales aux différents scripts.
Ce script crée une arborescence avec tous les répertoires vides suivant la normalisation des noms adoptés. Il n'a besoin que d'un argument le nom du répertoire central qui les contiendra et qui ne doit pas préexister. Il y place les répertoires normalisés. Un second argument peut donner le chemin où placer le premier répertoire, sinon par défaut il sera placé dans le répertoire courant. Bien entendu, ces répertoires sont complètement vides.
Ce script explore les différents répertoires et rend compte du bilan de son investigation. En particulier, il vérifie la bonne correspondance des fichiers images des répertoires associés de la banque d'image : ima - vig - pag - iht.
Si la cohérence n'est pas bonne, il sort les fichiers qui différent (l'algorithme serait certainement à améliorer... sans doute assez facile en pratiquant un tri astucieux : plus tard, et toutes les comparaisons ne sont pas en place et/ou à jour avec les nouvelles normes : à reprendre).
La préparation est celle de la définition d'une extraction à partir d'un
répertoire extérieur pour éviter d'avoir à retaper à la main le nom des
fichiers images extérieures. Plus précisément, en explorant un répertoire
donné placo.prepare place dans un autre répertoire donné, trois
fichiers contenant la liste alphabétique des fichiers images qu'il a
identifié dans le premiere répertoire. Ce sont bien sur les fichiers qui vont
guider l'annotation et que l'on suffixe par (sed, sel et ses). C'est un peu
un dir ou un ls spécialisé. Les noms sont mis par ordre
alphabétique, ce qui permet d'utiliser simplement les visualisateurs (comme
Kuickshow) pour pratiquer l'annotation sans avoir à retaper les noms des
fichiers initiaux. Pour plus de détails voir la section décrivant le processus d'annotation.
A partir du (ou des) fichiers *.se? résultant du processus
d'annotation, placo.extrait réalise l'extraction en copiant des
fichiers dans les répertoires ima et com.
Remarque importante: c'est lui qui pose les codes (3 valeurs numériques du
nom des fichiers) en tenant compte des fichiers déjà présent de manière à ne
pas réécraser en cas de lancement répété d'icelui ; cependant, c'est la porte
ouverte aux répétitions. Il prépare dans le même temps le fichier script
*.convert de conversion par
image_magick::convert qui sera à lancer une fois que les
modifications manuelles (retailler, retravailler... et surtout retourner pour
les images verticales) sur les images contenues dans ima
seront réalisées. A ce moment, on doit avoir des collections de fichiers
cohérentes que placo.inspecte peut vérifier.
Ce script crée les pages *.html nécessaires en fonction
d'instruction définies dans le fichier *.shi dans les
répertoires htm et iht. Il faudra
l'enrichir pour permettre des jonctions entre différents mini-ouèbes et
surtout des présentations plus personnalisées que les tableaux de
vignettes.
Dans la version actuelle, il ne fait la hiérarchie des tables de présentation que sur les mots clefs principaux... Il faudra trouver des commodités pour employer aussi les autres mots clefs (cf. Idées à garder en fin de cette note).
Principe actuel : les instructions se trouvent dans le fichier d'extension
shi, en voici un exemple : exemple.shi. Chaque ligne correspond à
une table de vignette finale. Le premier mot donne le nom
des images à rassembler (dans une table finale, toutes les images sont donc
de même nom), les autres donnent les codes des images dans
l'ordre où elles seront disposées par ligne. La première image servira aussi
dans la table de vignettes de premier niveau qui permet d'accèder aux tables
de niveau final. Il serait bon de permettre à ce que cette image ne soit
pas obligatoirement présente dans la table finale, puisqu'elle représente
plus un titre qu'autre chose.
Ce script reprend simplement un texte en html dans lequel il
introduit des vignettes avec lien sur les images correspondantes aux endroits
indiqués par un codage simple. Ce codage est simplement l'emploi d'un triple
parenthésage comme (((nam.123))). La vignette est placée dans le texte sans
autre précaution.
ATTENTION : pour l'instant, placo.texte est très sensible. Si vous mettez une 4ème parenthèse collée parce qu'elle correspond à votre texte, cela semble le faire tourner en boucle...
Tout dépend des gouts, mais l'insertion de vignettes en plein milieu du texte produit un interlignage très gros, irrégulier et disgracieux... Il est plus agréable de mettre les vignettes dans une colonne de droite ou de gauche ; chaque ligne du tableau correspond à un paragraphe du texte. Mais, il faut le plus souvent régler à la main la largeur de la colonne contenant les vignettes, ce qui n'est pas immédiat (car dépend du nombre de vignette par paragraphe). On peut aussi utiliser alternativement la 1ère ou la 2ème colonne pour les vignettes... En fait le mieux est d'alterner paragraphes de texte et paragraphes de vignettes séparées par un espace.
identify. En
voici, une bonne nouvelle. Ce pourrait etre utile pour stocker les
dimensions de l'image qui seraient bien utiles au moment de la
construction des pages html. Par exemple pour diminuer la taille des
vignettes.com.placo.prepare pour proposer un
fichier *.shi à améliorer à l'utilisateur.index et welcome l'une liée à
l'autre pour le renvoiextrait n'ait plus besoin d'un espace
devant "/" (je ne comprends plus ce que cela veut dire) !debute n'a pas l'air de marcher sous dos !Pour obtenir de tels possibilités à partir de l'organisation actuelle, il me semble que les dispositions suivantes devraient suffirre :
Cette proposition présente l'inconvénient d'impliquer des contradictions entre cette table nouvelle et les fichiers de commentaires créés par l'utilisateur... Faut-il proposer des mises à jour automatiques, respectant les autres champs modifiés évenuellement par l'usager ? A réfléchir !