[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
This commit is contained in:
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") $(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_ECHO) -e "\t…création de la destination"
@$(PROG_TEST) -d $(DESTINATION) || mkdir $(DESTINATION) @$(PROG_TEST) -d $(DESTINATION) || mkdir $(DESTINATION)
@$(PROG_ECHO) -e "\t…création du dossier image" @$(PROG_ECHO) -e "\t…création du dossier '$(dest_image)'"
@$(PROG_TEST) -d $(DESTINATION)/image || mkdir $(DESTINATION)/image @$(PROG_TEST) -d $(DESTINATION)/$(dest_image) || mkdir $(DESTINATION)/$(dest_image)
@$(PROG_ECHO) -e "\t…copie des fichiers images" # @$(PROG_ECHO) -e "\t…copie des fichiers images"
@$(PROG_CP) -r img/* $(DESTINATION)/image # @$(PROG_CP) -r img/* $(DESTINATION)/image
@$(PROG_ECHO) -e " …terminé." @$(PROG_ECHO) -e " …terminé."
# création du fichier CSS # création du fichier CSS
@ -117,7 +117,7 @@ $(DESTINATION)/$(CSS_NOM): $(dependances_css)
@$(PROG_ECHO) -e " …terminée." @$(PROG_ECHO) -e " …terminée."
# création du fichier $(contenu) # 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_SED) -i "s/DEBUG=1/DEBUG=0/g" $(script_contenu)
@$(PROG_ECHO) -e "Création du contenu avec les valeurs suivantes : " @$(PROG_ECHO) -e "Création du contenu avec les valeurs suivantes : "
@$(PROG_ECHO) -e "\t\t- Dossier catégorie : $(categ)" @$(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- 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- Enqueue HTML d'une catégorie : $(categ_fin)"
@$(PROG_ECHO) -e "\t\t- Code HTML d'un élément : $(elem)" @$(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 # création de la page d'index
index: $(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 - 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 - 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'" - 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 - image : dossier contenant quelques images pour les éléments de chaque catégorie. Toutes les images ne seront pas utilisées
- 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' - dest_image : dossier dans lequel seront mises les images choisies dans chacune des catégories (fichiers décrivant les catégories)
- 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_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' - 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 Pour plus de renseignements, veuillez vous référer au chapitre 'Les
composants'. 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 !) - 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) - 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) - 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. - 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 - permettre l'ajout de plusieurs CSS dans HEAD
- faire une page "print.css" - faire une page "print.css"
@ -19,14 +15,11 @@ DESTDIR
- créer plusieurs feuilles de style (couleurs, positionnement des éléments, etc.) - créer plusieurs feuilles de style (couleurs, positionnement des éléments, etc.)
- ne copier QUE les images utilisées - ne copier QUE les images utilisées
- favicon.ico ? - 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 !) - 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 - Que donne une ligne vide dans le fichier de catégorie ? => à tester comme cas possible
>>> Pour la v0.1.1 : >>> Pour la v0.1.1 :
- compléter l'adresse des images pour l'insertion dans le contenu - Doc : donner l'astuce pour ordonner les catégories dans le fichier : mettre 00-nom_fichier.txt, puis 01-autre_categorie.txt, etc.
- vérifier l'existence de l'image avant de l'ajouter
- si pas d'image ou image inexistante, mettre une image générique
>>> Pour la v0.2 : >>> 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 ? - 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) - 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 !!!! - 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 : 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 - 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 - - 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 - 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 # Ceci est un commentaire
[[Catégorie d'exemple]]Description de ma catégorie d'exemple [[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 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##./image/apps/preferences-web-browser-shortcuts.png##Autre image##Autre description 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 # [[Nom de la catégorie]]Description
[[Éducation]]Thème sur l'éducation [[É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 # 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 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##./image/apps/okteta.png##Oketa##Logo d'Oketa 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 # [[Nom de la catégorie]]Description
[[Divers]]Quelques éléments en vrac [[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 # 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 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##./image/apps/wine.png##Wine##Logo de Wine 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##./image/devices/multimedia-player.png##Dogmazic##Lecteur multimédia Dogmazic##http://www.dogmazic.net/##Musique libre##devices/multimedia-player.png##Dogmazic##Lecteur multimédia
Vim##http://www.vim.org/##Éditeur en mode console##./image/apps/utilities-terminal.png##Vim##Console 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##./image/status/script-error.png##ChiliProject##Bug 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 contenu_fin = $(DOSSIER_HTML)/contenu_fin.html
dependances_index = $(entete) $(enqueue) $(contenu_fin) dependances_index = $(entete) $(enqueue) $(contenu_fin)
script_contenu = creation_categ.sh script_contenu = creation_categ.sh
somme_md5 = somme.md5
## utiles pour le script de parcours du dossier contenant les catégories ## utiles pour le script de parcours du dossier contenant les catégories
# résultat de la génération des catégories # résultat de la génération des catégories
contenu = categories.html contenu = categories.html
# dossier contenant le détail des catégories # dossier contenant le détail des catégories
categ = categ 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 # dossier contenant les morceaux de la page résultante
composants = ./composants composants = ./$(DOSSIER_HTML)
# entête des catégories (contenu dans dossier composants) # entête des catégories (contenu dans dossier composants)
categ_deb = categ_deb.html categ_deb = categ_deb.html
# enqueue des catégories (contenu dans dossier composants) # enqueue des catégories (contenu dans dossier composants)
categ_fin = categ_fin.html categ_fin = categ_fin.html
# code HTML de chaque élément # code HTML de chaque élément
elem = element.html 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 ## TESTS
# Test sur les paramètres # Test sur les paramètres
if [ $# -ne 7 ] if [ $# -ne 11 ]
then then
echo $# echo $#
utilisation utilisation
@ -70,12 +70,28 @@ else
categ_deb="${dossier_composants}/$5" categ_deb="${dossier_composants}/$5"
categ_fin="${dossier_composants}/$6" categ_fin="${dossier_composants}/$6"
elem="${dossier_composants}/$7" elem="${dossier_composants}/$7"
dossier_image=$8
dest_image=$9
image_defaut=${10}
destination_finale=${11}
fi fi
# Existence dossier # Existence dossier
if ! test -d "$dossier" if ! test -d "$dossier"
then then
echo "Dossier '$dossier' manquant." 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 fi
# On supprime le fichier ${destination} s'il existe. # On supprime le fichier ${destination} s'il existe.
if test -f "$destination" if test -f "$destination"
@ -85,7 +101,7 @@ then
fi fi
# Parcours du dossier # 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 do
# On met/remet la valeur de CATEG à 0 significative de l'absence # On met/remet la valeur de CATEG à 0 significative de l'absence
#+ d'une Catégorie #+ d'une Catégorie
@ -192,21 +208,32 @@ do
i=0 i=0
# Parcours des tableaux afin de récupérer toutes les informations # Parcours des tableaux afin de récupérer toutes les informations
#+ d'un élément #+ d'un élément
debimg=`echo $categ_titre|md5sum |cut -d " " -f 1`
while [ "$i" -lt "$curseur_element" ] while [ "$i" -lt "$curseur_element" ]
do do
# Assignation des valeurs à des variables afin de l'afficher # Assignation des valeurs à des variables afin de l'afficher
e_titre_tmp=$(eval echo \$elements_titre_${i}) e_titre_tmp=$(eval echo \$elements_titre_${i})
e_titre=${e_titre_tmp:-""} # titre element e_titre=${e_titre_tmp:-""} # titre element
e_desc_tmp=$(eval echo \$elements_desc_${i}) 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_tmp=$(eval echo \$elements_url_${i})
e_url=${e_url_tmp:-""} # url element e_url=${e_url_tmp:-""} # url element
e_img_addr_tmp=$(eval echo \$elements_image_addr_${i}) 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_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_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 # Affichage du résultat
debug "$i : ${e_titre} || ${e_desc} || ${e_url} || ${e_img_addr} || ${e_img_titre} || ${e_img_desc}" 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 # Ajout des informations dans le fichier de destination

BIN
generique.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB