diff --git a/GNUmakefile b/GNUmakefile index 3ed24fd..9cd758e 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -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) diff --git a/LISMOI b/LISMOI index 1e1a0b1..54bb863 100644 --- a/LISMOI +++ b/LISMOI @@ -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'. diff --git a/TACHES b/TACHES index 3cbbdb2..8aee7d6 100644 --- a/TACHES +++ b/TACHES @@ -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 diff --git a/categ/categorie_exemple.txt b/categ/categorie_exemple.txt index a147374..dd320b8 100644 --- a/categ/categorie_exemple.txt +++ b/categ/categorie_exemple.txt @@ -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 diff --git a/categ/education.txt b/categ/education.txt index f17eaed..58aecc8 100644 --- a/categ/education.txt +++ b/categ/education.txt @@ -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 diff --git a/categ/vrac.txt b/categ/vrac.txt index b355723..78a0908 100644 --- a/categ/vrac.txt +++ b/categ/vrac.txt @@ -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 diff --git a/configrc.exemple b/configrc.exemple index af6d382..cd2238f 100644 --- a/configrc.exemple +++ b/configrc.exemple @@ -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 diff --git a/creation_categ.sh b/creation_categ.sh index e77ff05..41668d0 100755 --- a/creation_categ.sh +++ b/creation_categ.sh @@ -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 diff --git a/generique.png b/generique.png new file mode 100644 index 0000000..1489526 Binary files /dev/null and b/generique.png differ