[AJ] Optimisation de la place occupée par les images

* Vérification de l'existence des images
  * Si non existence, utilisation d'une image générique
  * Ajout de chaque image dans le dossier image de destination, ce qui
 permet une libération conséquente de place vis à vis de la copie
 précédente de tout le dossier
  * Adaptation du fichier de configuration configrc.exemple
  * Ajout des éléments dans le fichier LISMOI
  * Mise à jour du fichier TACHES
  * Adaptation des exemples de catégories
  * Choix d'une image générique par défaut
master
Olivier DOSSMANN 2012-02-16 22:02:30 +01:00
parent f2715301a3
commit ba0ea6ea95
9 changed files with 80 additions and 40 deletions

View File

@ -103,10 +103,10 @@ test:
$(if $(MENU), @$(PROG_ECHO) -e "\t\t-> activée", @$(PROG_ECHO) -e "\t\t-> désactivée")
@$(PROG_ECHO) -e "\t…création de la destination"
@$(PROG_TEST) -d $(DESTINATION) || mkdir $(DESTINATION)
@$(PROG_ECHO) -e "\t…création du dossier image"
@$(PROG_TEST) -d $(DESTINATION)/image || mkdir $(DESTINATION)/image
@$(PROG_ECHO) -e "\t…copie des fichiers images"
@$(PROG_CP) -r img/* $(DESTINATION)/image
@$(PROG_ECHO) -e "\t…création du dossier '$(dest_image)'"
@$(PROG_TEST) -d $(DESTINATION)/$(dest_image) || mkdir $(DESTINATION)/$(dest_image)
# @$(PROG_ECHO) -e "\t…copie des fichiers images"
# @$(PROG_CP) -r img/* $(DESTINATION)/image
@$(PROG_ECHO) -e " …terminé."
# création du fichier CSS
@ -117,7 +117,7 @@ $(DESTINATION)/$(CSS_NOM): $(dependances_css)
@$(PROG_ECHO) -e " …terminée."
# création du fichier $(contenu)
$(contenu): $(script_contenu) $(SOURCE)
$(contenu): $(script_contenu) $(SOURCE) $(image_defaut)
@$(PROG_SED) -i "s/DEBUG=1/DEBUG=0/g" $(script_contenu)
@$(PROG_ECHO) -e "Création du contenu avec les valeurs suivantes : "
@$(PROG_ECHO) -e "\t\t- Dossier catégorie : $(categ)"
@ -127,7 +127,11 @@ $(contenu): $(script_contenu) $(SOURCE)
@$(PROG_ECHO) -e "\t\t- Entête HTML d'une catégorie : $(categ_deb)"
@$(PROG_ECHO) -e "\t\t- Enqueue HTML d'une catégorie : $(categ_fin)"
@$(PROG_ECHO) -e "\t\t- Code HTML d'un élément : $(elem)"
@$(PROG_SH) $(script_contenu) $(categ) $(contenu) $(ext) $(composants) $(categ_deb) $(categ_fin) $(elem)
@$(PROG_ECHO) -e "\t\t- Dossier contenant les images sources : $(image)"
@$(PROG_ECHO) -e "\t\t- Dossier de destination des images : $(dest_image)"
@$(PROG_ECHO) -e "\t\t- Image par défaut : $(image_defaut)"
@$(PROG_ECHO) -e "\t\t- Dossier de destination global : $(DESTINATION)"
@$(PROG_SH) $(script_contenu) $(categ) $(contenu) $(ext) $(composants) $(categ_deb) $(categ_fin) $(elem) $(image) $(dest_image) $(image_defaut) $(DESTINATION)
# création de la page d'index
index: $(INDEX)

11
LISMOI
View File

@ -307,13 +307,14 @@ attachées à ces composants sont les suivantes :
- contenu : fichier temporaire possédant le contenu à insérer dans la page
- categ : désigne le dossier dans lequel se trouve l'ensemble des descriptions des catégories et des éléments se trouvant à l'intérieur de chacune d'elle
- ext : extension des fichiers contenus dans le dossier 'categ' (précédemment renseigné) qui contiendra la description de base de chacune des catégories et de ses éléments. Cf. Chapitre "Le dossier 'categ'"
- composants : dossier dans lequel se trouve l'ensemble des éléments permettant de construire le contenu de la page PorteAil. C'est à dire l'entête et l'enqueue de chaque rubrique ainsi que le code HTML de chaque élément
- categ_deb : nom du fichier contenant le code HTML d'un début de rubrique. Le fichier doit se trouver dans le dossier renseigné par la variable 'composants'
- categ_fin : nom du fichier contenant le code HTML d'une fin de rubrique. Le fichier doit se trouver dans le dossier renseigné par la variable 'composants'
- image : dossier contenant quelques images pour les éléments de chaque catégorie. Toutes les images ne seront pas utilisées
- dest_image : dossier dans lequel seront mises les images choisies dans chacune des catégories (fichiers décrivant les catégories)
- image_defaut : image par défaut utilisée si aucune autre image n'est trouvée
- composants : dossier dans lequel se trouve l'ensemble des éléments permettant de construire le contenu de la page PorteAil. C'est à dire l'entête et l'enqueue de chaque catégorie ainsi que le code HTML de chaque élément
- categ_deb : nom du fichier contenant le code HTML d'un début de catégorie. Le fichier doit se trouver dans le dossier renseigné par la variable 'composants'
- categ_fin : nom du fichier contenant le code HTML d'une fin de catégorie. Le fichier doit se trouver dans le dossier renseigné par la variable 'composants'
- elem : nom du fichier contenant le code HTML d'un élément. Le fichier doit se trouver dans le dossier renseigné par la variable 'composants'
Pour plus de renseignements, veuillez vous référer au chapitre 'Les
composants'.

21
TACHES
View File

@ -7,10 +7,6 @@ DESTDIR
- ajouter les fichiers générés pour chaque section du makefile (ceci de manière intelligente… si possible !)
- Valider la page à l'aide de TIDY (doit être facultatif)
- Trouver une méthode plus fine pour trouver le nombre de catégories par fichier (autre qu'un grep par exemple)
- Transformer le fichier GNUmakefile en makefile pour bmake
- changer les sed -i en "sed -e 's/chaine/autrechaine/g' > file.new && mv file.new file" (avec ou sans -e, c'est selon)
- changer les VAR= en VAR:=
- changer l'utilisation du shell par TXTs = $(shell ls $(dossier)/*$(ext)), par exemple.
- Vérifier la présence des /, [ et ] dans les variables avant qu'elles soient mises dans un SED. Ceci à l'aide de ${var//a/b} pour modifier les chaînes A par B dans VAR.
- permettre l'ajout de plusieurs CSS dans HEAD
- faire une page "print.css"
@ -19,14 +15,11 @@ DESTDIR
- créer plusieurs feuilles de style (couleurs, positionnement des éléments, etc.)
- ne copier QUE les images utilisées
- favicon.ico ?
- Doc : donner l'astuce pour ordonner les catégories dans le fichier : mettre 00-nom_fichier.txt, puis 01-autre_categorie.txt, etc.
- Tenter d'utiliser la description de l'élément pour faire une fenêtre qui s'affiche quand on passe sur le cadre de l'élément (tout en CSS si possible !)
- Que donne une ligne vide dans le fichier de catégorie ? => à tester comme cas possible
>>> Pour la v0.1.1 :
- compléter l'adresse des images pour l'insertion dans le contenu
- vérifier l'existence de l'image avant de l'ajouter
- si pas d'image ou image inexistante, mettre une image générique
- Doc : donner l'astuce pour ordonner les catégories dans le fichier : mettre 00-nom_fichier.txt, puis 01-autre_categorie.txt, etc.
>>> Pour la v0.2 :
- imaginer un système d'héritage des feuilles de style pour ne modifier que les couleurs de la page, en dehors de la structure ?
@ -40,6 +33,14 @@ DESTDIR
- Changer les DIV en une liste d'éléments puis mettre display: inline-block; pour l'affichage. Si liste, alors mettre des point-virgules à la fin de chaque ligne (et les cacher en css)
- Réorganiser les variables du GNUmakefile pour rendre plus simple le choix des variables par l'utilisateur. Afin qu'il n'ai JAMAIS à mettre d'autre variables dans le contenu. Par exemple jamais écrire cela : $(DOSSIER)/fichier.html !!!!
>>> Pour la v0.3 :
- Transformer le fichier GNUmakefile en makefile pour bmake
- changer les sed -i en "sed -e 's/chaine/autrechaine/g' > file.new && mv file.new file" (avec ou sans -e, c'est selon)
- changer les VAR= en VAR:=
- changer l'utilisation du shell par TXTs = $(shell ls $(dossier)/*$(ext)), par exemple.
- Intégrer le script .sh dans le Makefile
FAITES :
---------
@ -103,4 +104,6 @@ des éléments
- Tenter un ls categ |md5sum ou bien for i in `ls categ`; do md5sum categ/$i; done > somme.md5
- Utiliser ça pour vérifier sommes de contrôle : md5 * | diff /path/to/md5.checksum -
- find categ -type f -name *.txt -exec md5sum {} + | awk '{print $1}' |sort |diff somme.md5 -|wc -l
- compléter l'adresse des images pour l'insertion dans le contenu
- vérifier l'existence de l'image avant de l'ajouter
- si pas d'image ou image inexistante, mettre une image générique

View File

@ -1,4 +1,4 @@
# Ceci est un commentaire
[[Catégorie d'exemple]]Description de ma catégorie d'exemple
Vous êtes perdus ?##http://perdu.com##Se rendre sur le site perdu.com##./image/apps/preferences-system-session-services.png##Mon image##Description de mon image
Exalead##http://exalead.fr##Visiter Exalead##./image/apps/preferences-web-browser-shortcuts.png##Autre image##Autre description
Vous êtes perdus ?##http://perdu.com##Se rendre sur le site perdu.com##apps/preferences-system-session-services.png##Mon image##Description de mon image
Exalead##http://exalead.fr##Visiter Exalead##apps/preferences-web-browser-shortcuts.png##Autre image##Autre description

View File

@ -1,5 +1,5 @@
# [[Nom de la catégorie]]Description
[[Éducation]]Thème sur l'éducation
# Titre du lien##Adresse web en HTTP##Description du lien##Nom du fichier image##Titre de l'image##Description de l'image
Seeks##http://www.seeks-project.info/search.php/websearch-hp##Méta-moteur de recherche décentralisé##./image/apps/nepomuk.png##Seeks##Logo de Nepomuk
OOo4kids##http://wiki.ooo4kids.org/index.php/Main_Page/fr##Logiciel de bureautique libre pour les enfants de 7 à 12 ans##./image/apps/okteta.png##Oketa##Logo d'Oketa
Seeks##http://www.seeks-project.info/search.php/websearch-hp##Méta-moteur de recherche décentralisé##apps/nepomuk.png##Seeks##Logo de Nepomuk
OOo4kids##http://wiki.ooo4kids.org/index.php/Main_Page/fr##Logiciel de bureautique libre pour les enfants de 7 à 12 ans##apps/okteta.png##Oketa##Logo d'Oketa

View File

@ -1,8 +1,8 @@
# [[Nom de la catégorie]]Description
[[Divers]]Quelques éléments en vrac
# Titre du lien##Adresse web en HTTP##Description du lien##Nom du fichier image##Titre de l'image##Description de l'image
Inkscape##http://inkscape.org/##Outil de création graphique vectorielle##./image/apps/inkscape.png##Inkscape##Logo d'Inkscape
Wine##http://www.winehq.org/##Utilisez des outils Windows sous Linux, BSD, Mac ou Solaris##./image/apps/wine.png##Wine##Logo de Wine
Dogmazic##http://www.dogmazic.net/##Musique libre##./image/devices/multimedia-player.png##Dogmazic##Lecteur multimédia
Vim##http://www.vim.org/##Éditeur en mode console##./image/apps/utilities-terminal.png##Vim##Console
ChiliProject##https://www.chiliproject.org/##Outil de gestion de projet##./image/status/script-error.png##ChiliProject##Bug
Inkscape##http://inkscape.org/##Outil de création graphique vectorielle##apps/inkscape.png##Inkscape##Logo d'Inkscape
Wine##http://www.winehq.org/##Utilisez des outils Windows sous Linux, BSD, Mac ou Solaris##apps/wine.png##Wine##Logo de Wine
Dogmazic##http://www.dogmazic.net/##Musique libre##devices/multimedia-player.png##Dogmazic##Lecteur multimédia
Vim##http://www.vim.org/##Éditeur en mode console##apps/utilities-terminal.png##Vim##Console
ChiliProject##https://www.chiliproject.org/##Outil de gestion de projet##status/script-error.png##ChiliProject##Bug

View File

@ -21,19 +21,24 @@ enqueue = $(DOSSIER_HTML)/enqueue.html
contenu_fin = $(DOSSIER_HTML)/contenu_fin.html
dependances_index = $(entete) $(enqueue) $(contenu_fin)
script_contenu = creation_categ.sh
somme_md5 = somme.md5
## utiles pour le script de parcours du dossier contenant les catégories
# résultat de la génération des catégories
contenu = categories.html
# dossier contenant le détail des catégories
categ = categ
# Extension des fichiers à prendre en compte dans le dossier contenant les catégories
ext = txt
# dossier contenant les images
image = img
# dossier de destination des images
dest_image = image
# image par défaut (au cas où aucune ne serait trouvée)
image_defaut = generique.png
# dossier contenant les morceaux de la page résultante
composants = ./composants
composants = ./$(DOSSIER_HTML)
# entête des catégories (contenu dans dossier composants)
categ_deb = categ_deb.html
# enqueue des catégories (contenu dans dossier composants)
categ_fin = categ_fin.html
# code HTML de chaque élément
elem = element.html
# Extension des fichiers à prendre en compte dans le dossier contenant les catégories
ext = txt

View File

@ -56,7 +56,7 @@ utilisation( )
## TESTS
# Test sur les paramètres
if [ $# -ne 7 ]
if [ $# -ne 11 ]
then
echo $#
utilisation
@ -70,12 +70,28 @@ else
categ_deb="${dossier_composants}/$5"
categ_fin="${dossier_composants}/$6"
elem="${dossier_composants}/$7"
dossier_image=$8
dest_image=$9
image_defaut=${10}
destination_finale=${11}
fi
# Existence dossier
if ! test -d "$dossier"
then
echo "Dossier '$dossier' manquant."
exit 0
exit 1
fi
# Existence dossier image
if ! test -d "$dossier_image"
then
echo "Dossier '$dossier_image' manquant."
exit 1
fi
# Existence de l'image par défaut
if ! test -f "$image_defaut"
then
echo "Fichier '$image_defaut' manquant."
exit 1
fi
# On supprime le fichier ${destination} s'il existe.
if test -f "$destination"
@ -85,7 +101,7 @@ then
fi
# Parcours du dossier
for fichier in `find categ/ -iname "*.${extension}" -print -type f|sort`
for fichier in `find $dossier/ -iname "*.${extension}" -print -type f|sort`
do
# On met/remet la valeur de CATEG à 0 significative de l'absence
#+ d'une Catégorie
@ -192,21 +208,32 @@ do
i=0
# Parcours des tableaux afin de récupérer toutes les informations
#+ d'un élément
debimg=`echo $categ_titre|md5sum |cut -d " " -f 1`
while [ "$i" -lt "$curseur_element" ]
do
# Assignation des valeurs à des variables afin de l'afficher
e_titre_tmp=$(eval echo \$elements_titre_${i})
e_titre=${e_titre_tmp:-""} # titre element
e_desc_tmp=$(eval echo \$elements_desc_${i})
e_desc=${e_desc_tmp:-""} # description element
e_desc=${e_desc_tmp:-""} # description element
e_url_tmp=$(eval echo \$elements_url_${i})
e_url=${e_url_tmp:-""} # url element
e_img_addr_tmp=$(eval echo \$elements_image_addr_${i})
e_img_addr=${e_img_addr_tmp:-""} # adresse image
# Test de l'existence de l'image
# On prend le numéro de curseur comme nom d'image
if ! test -f "${dossier_image}/${e_img_addr_tmp}"
then
# si elle n'existe pas, on prend l'image générique
cp "$image_defaut" "${destination_finale}/${dest_image}/${debimg}${i}"
else
# si elle existe, on la copie dans le répertoire image de destination
cp "${dossier_image}/${e_img_addr_tmp}" "${destination_finale}/${dest_image}/${debimg}${i}"
fi
e_img_addr="${dest_image}/${debimg}${i}" # adresse image
e_img_titre_tmp=$(eval echo \$elements_image_titre_${i})
e_img_titre=${e_img_titre_tmp:-""} # titre image
e_img_titre=${e_img_titre_tmp:-""} # titre image
e_img_desc_tmp=$(eval echo \$elements_image_desc_${i})
e_img_desc=${e_img_desc_tmp:-""} # description image
e_img_desc=${e_img_desc_tmp:-""} # description image
# Affichage du résultat
debug "$i : ${e_titre} || ${e_desc} || ${e_url} || ${e_img_addr} || ${e_img_titre} || ${e_img_desc}"
# Ajout des informations dans le fichier de destination

BIN
generique.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB