diff --git a/.gitignore b/.gitignore index f187cdd..9304dc0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ porteail/* .gitignore -categories.html configrc diff --git a/GNUmakefile b/GNUmakefile index 81fdb4d..51d2b64 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -26,6 +26,8 @@ ## VARIABLES ## +VERSION=0.1.2-trunk + ## CONFIG PAR DEFAUT include paconfigrc @@ -35,45 +37,15 @@ include configrc ## AUTRES CONFIGS ##--[[ adresses ]]--## -INTRO_ADDR = $(COMPOSANTS)/$(INTRO) -INDEX_ADDR = $(CIBLE)/$(INDEX) -MENU_ADDR = $(COMPOSANTS)/$(MENU) -CSS_SANS_MENU_ADDR = $(CSS)/$(CSS_SANS_MENU) -CSS_AVEC_MENU_ADDR = $(CSS)/$(CSS_AVEC_MENU) -STYLE_ADDR = $(CSS)/$(STYLE) -ENTETE_ADDR = $(COMPOSANTS)/$(ENTETE) -ENQUEUE_ADDR = $(COMPOSANTS)/$(ENQUEUE) -POST_CONTENU_ADDR = $(COMPOSANTS)/$(POST_CONTENU) -ENTETE_CAT_ADDR = $(COMPOSANTS)/$(ENTETE_CAT) -ENQUEUE_CAT_ADDR = $(COMPOSANTS)/$(ENQUEUE_CAT) -ELEMENT_ADDR = $(COMPOSANTS)/$(ELEMENT) -CONTENU_ADDR = $(COMPOSANTS)/$(CONTENU) -DEFAUT_IMG_ADDR = $(IMAGES)/$(DEFAUT_IMG) - -##--[[ dépendances ]]--## -ifndef $(MENU) - CSS_DEP = $(CSS_SANS_MENU_ADDR) -else - CSS_DEP = $(CSS_AVEC_MENU_ADDR) -endif -INDEX_DEP = $(ENTETE_ADDR) $(ENQUEUE_ADDR) $(POST_CONTENU_ADDR) -CSS_TOUS = $(CIBLE)/$(STYLE) $(CIBLE)/$(CSS_NOM) -CONFIG = paconfigrc configrc - -# Éléments sources -SOURCE = $(CATEGORIES)/*.$(CATEGORIES_EXT) +INTRO_ADDR = $(COMPONENTS)/$(INTRO) +MENU_ADDR = $(COMPONENTS)/$(MENU) # programmes PROG_ECHO = `which echo` PROG_TEST = `which test` -PROG_SED = `which sed` -PROG_CAT = `which cat` -PROG_CP = `which cp` -PROG_SH = `which sh` PROG_RM = `which rm` -PROG_FIND = `which find` -PROG_SORT = `which sort` -PROG_WC = `which wc` +PROG_LUA = `which lua` +PROG_SH = `which sh` PROG_MKDIR = `which mkdir` # vérification des programmes @@ -83,37 +55,22 @@ endif ifndef PROG_TEST error_test = 1 endif -ifndef PROG_SED -error_sed = 1 -endif -ifndef PROG_CAT -error_cat = 1 -endif -ifndef PROG_CP -error_cp = 1 -endif -ifndef PROG_SH -error_sh = 1 -endif ifndef PROG_RM error_rm = 1 endif -ifndef PROG_FIND -error_find = 1 -endif -ifndef PROG_SORT -error_sort = 1 -endif -ifndef PROG_WC -error_wc = 1 -endif ifndef PROG_MKDIR error_mkdir = 1 endif +ifndef PROG_SH +error_sh = 1 +endif +ifndef PROG_LUA +error_lua = 1 +endif ## DEBUT # création de tous les fichiers -all: test index +all: test homepage ## TEST # divers tests sur l'existence des dossiers/fichiers @@ -123,21 +80,17 @@ test: @$(PROG_ECHO) -e "Lancement des tests…" @$(PROG_ECHO) -e "\t…existence des différents programmes" $(if $(error_test), @$(PROG_ECHO) -e "\t\ttest : MANQUANT." ; exit 1) - $(if $(error_sed), @$(PROG_ECHO) -e "\t\tsed : MANQUANT." ; exit 1) - $(if $(error_cat), @$(PROG_ECHO) -e "\t\tcat : MANQUANT." ; exit 1) - $(if $(error_cp), @$(PROG_ECHO) -e "\t\tcp : MANQUANT." ; exit 1) + $(if $(error_mkdir), @$(PROG_ECHO) -e "\t\tmkdir : MANQUANT." ; exit 1) $(if $(error_sh), @$(PROG_ECHO) -e "\t\tsh : MANQUANT." ; exit 1) $(if $(error_rm), @$(PROG_ECHO) -e "\t\trm : MANQUANT." ; exit 1) - $(if $(error_find), @$(PROG_ECHO) -e "\t\tfind : MANQUANT." ; exit 1) - $(if $(error_sort), @$(PROG_ECHO) -e "\t\tsort : MANQUANT." ; exit 1) - $(if $(error_wc), @$(PROG_ECHO) -e "\t\twc : MANQUANT." ; exit 1) + $(if $(error_lua), @$(PROG_ECHO) -e "\t\tlua : MANQUANT." ; exit 1) @$(PROG_ECHO) -e "\t…existence des dossiers '$(IMAGES)', '$(CATEGORIES)' et '$(CSS)'" @for i in $(IMAGES) $(CATEGORIES) $(CSS) ; \ do \ $(PROG_TEST) -d $$i || exit 1 ; \ done ; \ - $(PROG_ECHO) -e "\t…création des dossiers cibles '$(CIBLE)' et '$(CIBLE)/$(IMAGES_CIBLE)'" - @for j in $(CIBLE) $(CIBLE)/$(IMAGES_CIBLE) ; \ + $(PROG_ECHO) -e "\t…création des dossiers cibles '$(DESTINATION)' et '$(DESTINATION)/$(IMAGES_DESTINATION)'" + @for j in $(DESTINATION) $(DESTINATION)/$(IMAGES_DESTINATION) ; \ do \ $(PROG_TEST) -d $$j || $(PROG_MKDIR) $$j ; \ done @@ -149,82 +102,19 @@ test: $(if $(MENU), @$(PROG_ECHO) -e "\t\t-> activée", @$(PROG_ECHO) -e "\t\t-> désactivée") @$(PROG_ECHO) -e " …terminé." -## FICHIERS CSS -# création du fichier CSS -$(CIBLE)/$(CSS_NOM): $(CONFIG) $(CSS_DEP) - @$(PROG_ECHO) -e "Création du fichier CSS…" - $(if $(MENU), @$(PROG_CP) $(CSS_AVEC_MENU_ADDR) $(CIBLE)/$(CSS_NOM), @$(PROG_CP) $(CSS_SANS_MENU_ADDR) $(CIBLE)/$(CSS_NOM)) - @$(PROG_ECHO) -e " …terminée." - -# création du fichier CSS de couleur -$(CIBLE)/$(STYLE): $(CONFIG) $(STYLE_ADDR) - @$(PROG_ECHO) -e "Création du fichier CSS pour les couleurs…" - @$(PROG_CP) $(STYLE_ADDR) $(CIBLE)/$(STYLE) - @$(PROG_ECHO) -e " …terminée." - ## CATEGORIES -# création du fichier $(CONTENU_ADDR) -$(CONTENU_ADDR): $(CONFIG) $(GEN_CATEGORIES) $(SOURCE) $(DEFAUT_IMG_ADDR) - @$(PROG_SED) -i "s/DEBUG=1/DEBUG=0/g" $(GEN_CATEGORIES) - @$(PROG_ECHO) -e "Création du contenu avec les valeurs suivantes : " - @$(PROG_ECHO) -e "\t\t- Dossier catégorie : $(CATEGORIES)" - @$(PROG_ECHO) -e "\t\t- Destination temporaire du contenu : $(CONTENU_ADDR)" - @$(PROG_ECHO) -e "\t\t- Extension des fichiers à lire : $(CATEGORIES_EXT)" - @$(PROG_ECHO) -e "\t\t- Dossier ayant les composants de la page : $(COMPOSANTS)" - @$(PROG_ECHO) -e "\t\t- Entête HTML d'une catégorie : $(ENTETE_CAT_ADDR)" - @$(PROG_ECHO) -e "\t\t- Enqueue HTML d'une catégorie : $(ENQUEUE_ADDR)" - @$(PROG_ECHO) -e "\t\t- Code HTML d'un élément : $(ELEMENT_ADDR)" - @$(PROG_ECHO) -e "\t\t- Dossier contenant les images sources : $(IMAGES)" - @$(PROG_ECHO) -e "\t\t- Dossier de destination des images : $(IMAGES_CIBLE)" - @$(PROG_ECHO) -e "\t\t- Image par défaut : $(DEFAUT_IMG_ADDR)" - @$(PROG_ECHO) -e "\t\t- Dossier de destination global : $(CIBLE)" - @$(PROG_SH) $(GEN_CATEGORIES) $(CATEGORIES) $(CONTENU_ADDR) $(CATEGORIES_EXT) $(COMPOSANTS) $(ENTETE_CAT_ADDR) $(ENQUEUE_CAT_ADDR) $(ELEMENT_ADDR) $(IMAGES) $(IMAGES_CIBLE) $(DEFAUT_IMG_ADDR) $(CIBLE) - -## JAVASCRIPT -# création du fichier html5.js -html5.js: $(COMPOSANTS) - @$(PROG_ECHO) -e "Création du fichier html5.js…" - @$(PROG_CP) $(COMPOSANTS)/html5.js $(CIBLE)/html5.js +# création de la page d'accueil +homepage: + @$(PROG_ECHO) -e "Création de la page d'accueil…" + @VERSION=$(VERSION) $(PROG_LUA) create_homepage.lua || exit 1 @$(PROG_ECHO) -e " …terminée." -## INDEX -# création de la page d'index -index: $(CONFIG) $(INDEX_ADDR) $(CSS_TOUS) - -$(INDEX_ADDR): $(CONFIG) $(INDEX_DEP) $(CONTENU_ADDR) html5.js - @$(PROG_ECHO) -e "Création de la page de garde…" -# entete - @$(PROG_ECHO) -e "\t…insertion de l'entête" - @$(PROG_CAT) $(ENTETE_ADDR) > $(INDEX_ADDR) -# modification du contenu - @$(PROG_ECHO) -e "\t…modification du contenu" - @$(PROG_SED) -i \ - -e "s/@@TITRE_PORTEAIL@@/$(TITRE)/g" \ - -e "s/@@ACCUEIL_PORTEAIL@@/$(ACCUEIL)/g" \ - -e "s#@@CSS_DEFAUT@@#./$(CSS_NOM)#g" \ - -e "s#@@CSS_COULEUR@@#./$(STYLE)#g" \ - -e "s/^\(.*\)@@.*@@\(.*\)$$/\1\2/g" \ - $(INDEX_ADDR) - @$(PROG_ECHO) -e "\t …contenu modifié avec succès !" -# introduction (SI la variable INTRO est remplie) - $(if $(INTRO), @cat $(INTRO_ADDR) >> $(INDEX_ADDR); $(PROG_ECHO) -e "\t…insertion de l'introduction" || exit 1) -# contenu - @$(PROG_ECHO) -e "\t…insertion du contenu" - @$(PROG_CAT) $(CONTENU_ADDR) >> $(INDEX_ADDR) -# fin du contenu - @$(PROG_ECHO) -e "\t…insertion de la fin du contenu" - @$(PROG_CAT) $(POST_CONTENU_ADDR) >> $(INDEX_ADDR) -# menu - $(if $(MENU), @cat $(MENU_ADDR) >> $(INDEX_ADDR); $(PROG_ECHO) -e "\t…insertion du menu" || exit 1) -# enqueue - @$(PROG_ECHO) -e "\t…insertion de l'enqueue" - @$(PROG_CAT) $(ENQUEUE_ADDR) >> $(INDEX_ADDR) - @$(PROG_ECHO) -e " …terminée." +install: + @SRCDIR=$(DESTINATION) DESTDIR=$(INSTALLDIR) $(PROG_SH) install.sh || exit 1 ## NETTOYAGE # nettoyage des fichiers générés clean: @$(PROG_ECHO) -e "Nettoyage des fichiers en cours…" - @$(PROG_RM) -rf $(CIBLE) - @$(PROG_RM) -f $(CONTENU_ADDR) + @$(PROG_RM) -rf $(DESTINATION) @$(PROG_ECHO) -e " …terminé." diff --git a/README.md b/README.md index 3878395..cab3b80 100644 --- a/README.md +++ b/README.md @@ -48,18 +48,21 @@ commande suivante : apt-get install make +Mais également **Lua 5.1**, installable à l'aide de la commande suivante : + + apt-get install lua5.1 luarocks + +Puis de **LuaFileSystem** : + + luarocks install luafilesystem + Votre système devrais aussi détenir les commandes suivantes : -- GNU make -- cp - rm -- GNU sed - sh - echo - test -- cat -- wc -- grep +- mkdir Normalement ces éléments sont inclus de base ou disponibles dans n’importe quel système d’exploitation POSIX. @@ -128,12 +131,12 @@ Ce fichier apparaît depuis la version 0.1.1. Il vous permettra de changer, par exemple, le titre de votre page PorteAil. Ceci se fait via la ligne suivante : - TITRE= + TITLE= Par exemple pour afficher "Mon super site" sur la page PorteAil, modifiez ceci dans le fichier configrc : - TITRE = Mon super site + TITLE = Mon super site D'autres éléments peuvent être modifiés afin de personnaliser le résultat de PorteAil. Pour de plus amples renseignements à ce sujet, je vous invite à lire @@ -250,25 +253,26 @@ par Comme pour l'introduction, il suffit de supprimer le dièse **#** en début de ligne. -### Le fichier install.sh +### Publication -**install.sh** est un script qui permet de déplacer le résultat du programme -PorteAil dans un dossier de son choix. +Pour publier le résultat dans un dossier web, il vous suffit d'utiliser la +commande suivante : -Pour l'utiliser il suffit de lancer la commande suivante : + make install - sh install.sh +Ceci permet de déplacer le résultat du programme PorteAil dans un dossier +de votre choix. Par défaut le script essaie de copier le tout dans le dossier **public_html** du dossier personnel. Par exemple le dossier **/home/olivier/public_html** si votre dossier personnel se trouve dans **/home/olivier**. Pour modifier les valeurs d'origine et de destination de la copie, éditez le -script et modifiez les valeurs suivantes : +fichier de configuration *configrc* et modifiez les valeurs suivantes : -- SRCDIR : contient l'adresse relative du dossier où se situe les fichiers - à copier -- DESTDIR : contient l'adresse exacte où copier les fichiers (la destination). +- DESTINATION : contient l'adresse relative du dossier où se situe les fichiers + à copier (résultant d'une compilation de PorteAil) +- INSTALLDIR : contient l'adresse exacte où copier les fichiers (la destination). ## Pour aller plus loin @@ -321,51 +325,40 @@ plus grand sur la page de résultat. Configuration basique : -- TITRE : Cf. chapitre **Fonctionnement basique** +- TITLE : Cf. chapitre **Fonctionnement basique** - STYLE : nom de la feuille de style qui ajoutera des couleurs à PorteAil (seconde feuille de style en somme). Redéfinir l'ensemble des classes CSS de ce fichier vous permettra de reconfigurer toute l'apparence de PorteAil. - MENU : Cf. chapitre **Fonctionnement basique** - INTRO : Cf. chapitre **Fonctionnement basique** -- CIBLE : nom du dossier dans lequel sera généré le portail web. +- DESTINATION : nom du dossier dans lequel sera généré le portail web. Configuration avancée : -- ACCUEIL : Titre de la page tel qu'il s'affichera sur un navigateur -- GEN_CATEGORIES : script bash lancé au moment de la création des - catégories. C'est ce script qui génère les catégories pour la page - finale. -- INDEX : nom du fichier final. Par exemple *index.html* +- LANG : Langue utilisée pour les traductions de la page (enqueue + principalement) +- HOMEPAGE : Titre de la page tel qu'il s'affichera sur un navigateur - CATEGORIES_EXT : extension des fichiers qui seront lus pour générer les catégories - DEFAUT_IMG : nom de l'image - contenue par défaut dans le dossier img - par défaut pour un élément qui n'a pas d'image ou n'en a pas trouvé. -- ELEMENT : nom du fichier contenant le code HTML d'un élément. Se trouve -par défaut dans le dossier *COMPOSANTS*. -- CONTENU : nom du fichier contenu le résultat de la génération des -catégories. -- ENTETE_CAT : nom du fichier contenant le code HTML du début d'une -catégorie. Se trouve par défaut dans le dossier *COMPOSANT*. -- ENQUEUE_CAT : nom du fichier contenant le code HTML de la fin d'une -catégorie. Se trouve par défaut dans le dossier *COMPOSANT*. -- POST_CONTENU : nom du fichier contenant le code HTML à utiliser après -le contenu des catégories. Se trouve par défaut dans le dossier *COMPOSANT*. -- ENTETE : nom du fichier contenant le code HTML à utiliser en début de la - page finale. -- ENQUEUE = nom du fichier contenant le code HTML à utiliser en fin de la -page finale -- COMPOSANTS : dossier contenant les éléments qui constitueront la page +- TEMPLATE_ELEMENT : nom du fichier contenant le code HTML d'un élément. + Se trouve par défaut dans le dossier *COMPONENTS*. +- TEMPLATE_INDEX : nom du fichier contenant le code HTML de la page finale. + Se trouve par défaut dans le dossier *COMPONENTS*. +- TEMPLATE_CATEG : nom du fichier contenant le code HTML d'une catégorie. + Se trouve par défaut dans le dossier *COMPONENTS*. +- COMPONENTS : dossier contenant les éléments qui constitueront la page finale - CATEGORIES : dossier contenant les fichiers sources des catégories. - IMAGES : dossier par défaut contenant les images pour les éléments. - CSS : dossier par défaut des feuilles de style -- IMAGES_CIBLE : nom du dossier qui contiendra les images utilisées par la +- INSTALLDIR : dossier utilisé lors de la commande *make install* permettant + de copier le résultat final dans un dossier web. +- IMAGES_DESTINATION : nom du dossier qui contiendra les images utilisées par la page finale -- CSS_SANS_MENU : nom du fichier CSS qui s'utilise lorsque la page n'a pas - de menu -- CSS_AVEC_MENU : idem que *CSS_SANS_MENU*, mais pour une page ayant un menu -- CSS_NOM : nom du fichier CSS final +- CSS_NAME : nom du fichier CSS final Pour plus de renseignements, veuillez vous référer au chapitre **Les composants**. @@ -376,12 +369,10 @@ Les composants sont les éléments qui permettent de composer la page HTML finale. À cet effet la page a été scindés en plusieurs éléments : -- entete.html : contient le début de notre page finale -- categ_deb.html : contient le début d'une catégorie +- index.html : contient l'ensemble du HTML pour la page d'accueil. - element.html : contient l'ensemble du HTML pour UN élément donné -- categ_fin.html : contient la fin d'une catégorie -- contenu_fin.html : contient la fin du corps de la page -- enqueue.html : contient le pied de la page finale +- categories.html : contient l'ensemble du HTML pour une catégorie donnée. + (sans les éléments) - introduction.html : contient du HTML pouvant être ajouté après le titre principal de la page - menu.html : un menu à ajouter à notre page @@ -389,49 +380,17 @@ principal de la page Pour personnaliser il suffit d'éditer chacun des fichiers afin d'en modifier le code source. -### La création des catégorie à l'aide de creation_categ.sh - -Le fichier **creation_categ.sh** permet de générer le corps de la page. -À cet effet il va parcourir un dossier, générer les catégories une à une -et les éléments associés, puis il va tout déposer dans un fichier HTML -prévu à cet effet. - -Le script fonctionne avec un certain nombre de paramètres parmi : - -- dossier_cat : contient la source (dossier d'entrée) dans laquelle se trouve -les fichiers décrivant les catégories et les éléments associés. -- destination.html : contient la destination. C'est à dire le fichier dans -lequel se situera le corps, temporairement évidemment. -- extension : extension des fichiers décrivant les catégories et leurs -éléments associés -- dossier_composants : ce dossier réunit l'ensemble des composants de notre -page finale. Il est utile pour récupérer le fichier **element.html**, -disponible d'ailleurs dans la variable *elem* -- entete_cat.html : contenu HTML du début d'une catégorie -- enqueue_cat.html : contenu HTML qui marque la fin d'une catégorie -- element.html : contenu HTML qui contient UN élément -- dossier_img : dossier contenant les images dites *sources* -- destination_img : nom du dossier dans lequel seront stockées les images -finales -- image.png : nom du fichier par défaut utilisé lorsque les images ne sont pas -trouvées -- dossier_porteail : nom du dossier dans lequel sera mise la page PorteAil - -Normalement, avec toutes ces données vous devriez pouvoir tester par vous -même le résultat du script et améliorer le rendu de vos pages. - ### Le dossier style Le dossier **style** est prévu pour contenir l'ensemble des feuilles de style disponible pour l'apparence de notre page PorteAil. -Déposez donc ici vos feuille de style et changez la variable *CSS_AVEC_MENU* -, *CSS_SANS_MENU* et *STYLE* du fichier **configrc** (Cf. Chapitre -**configrc**). +Déposez donc ici vos feuille de style et changez la variable *STYLE* du +fichier **configrc** (Cf. Chapitre **configrc**). ### Le dossier img -Le dossier **img** contient, dans la version 0.1, l'ensemble des images +Le dossier **img** contient, depuis la version 0.1, l'ensemble des images utilisées pour la page finale. Déposez-y les images que vous allez utiliser. @@ -439,10 +398,10 @@ Déposez-y les images que vous allez utiliser. ## SOURCES Les sources du programme peuvent être récupérées sur - [un dépôt Git de l'auteur](http://git.dossmann.net/) ou via la commande suivante (à l'aide de l'outil - git) : + [le dépôt Gitorious](http://gitorious.org/porteail/) ou via la commande + suivante (à l'aide de l'outil git) : - git clone http://git.dossmann.net/scripts/porteail.git + git clone https://git.gitorious.org/porteail/master.git ## Contact / Bugs diff --git a/TACHES b/TACHES index 1ad6223..62615cf 100644 --- a/TACHES +++ b/TACHES @@ -2,19 +2,14 @@ ---------- - 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) -- 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. -- Que donne une ligne vide dans le fichier de catégorie ? => à tester comme cas possible - Choisir le nombre de colonne d'élément : #corps ul.ensemble_element li { width: 11em; margin: auto; } Mettre à width = auto. Si on veut 1 colonne, alors on met 11x1 + 1x1, si on veut deux colonne, alors on met 11x2 + 1x2, 3 colonnes font 11x3 + 1x3 -- Permettre d'ajouter des fichiers statiques (pour permettre par exemple de donner un lien vers une version d'un logiciel sur la page d'accueil) >>> Pour la v0.1.3 : -- aside en NAV !!! - activer menu avec une variable du genre "MENU_ACTIVE = 1" (par exemple) - favicon.ico ? - création du fichier configrc s'il n'existe pas (dans test) @@ -26,11 +21,8 @@ Mettre à width = auto. Si on veut 1 colonne, alors on met 11x1 + 1x1, si on veu - 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 -- faire une section install dans le makefile permettant d'installer dans DESTDIR >>> Pour la v0.3 : -- Transformer variables en anglais - Documentation en anglais - faire une page "print.css" - mettre en noir et blanc @@ -141,3 +133,8 @@ des éléments - ajouter les fichiers générés pour chaque section du makefile (ceci de manière intelligente… si possible !) - Bug: si une URL possède plusieurs & - HTML 5 avec header et footer +- Trouver une méthode plus fine pour trouver le nombre de catégories par fichier (autre qu'un grep par exemple)- Permettre d'ajouter des fichiers statiques (pour permettre par exemple de donner un lien vers une version d'un logiciel sur la page d'accueil) +- aside en NAV !!! +- faire une section install dans le makefile permettant d'installer dans DESTDIR +- Transformer variables en anglais +- Que donne une ligne vide dans le fichier de catégorie ? => à tester comme cas possible diff --git a/categ/categorie_exemple.txt b/categ/categorie_exemple.txt index e71f3f8..65b3736 100644 --- a/categ/categorie_exemple.txt +++ b/categ/categorie_exemple.txt @@ -1,5 +1,5 @@ -# 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##apps/preferences-system-session-services.png -Exalead##http://exalead.fr##Visiter Exalead##apps/preferences-web-browser-shortcuts.png -Recherche Google##http://www.google.com/search?q=porteail&ie=utf-8&oe=utf-8&client=ubuntu&channel=fs##Recherche de PorteAil sur Google## +# This is a comment +[[Example category]]The description of my category +Are you lost?##http://perdu.com##Go to perdu.com website##apps/preferences-system-session-services.png +Exalead##http://exalead.fr##Visit Exalead##apps/preferences-web-browser-shortcuts.png +Google PorteAil Search##http://www.google.com/search?q=porteail&ie=utf-8&oe=utf-8&client=ubuntu&channel=fs##Search PorteAil on Google## diff --git a/categ/education.txt b/categ/education.txt index ab503e7..713d2f0 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 -Seeks##http://www.seeks-project.info/search.php/websearch-hp##Méta-moteur de recherche décentralisé##apps/nepomuk.png -OOo4kids##http://wiki.ooo4kids.org/index.php/Main_Page/fr##Logiciel de bureautique libre pour les enfants de 7 à 12 ans##apps/okteta.png +# [[Category name]]Description +[[Education]]Education topic +# Link title ## HTTP website address ## Link description ## Image filename +Seeks##http://www.seeks-project.info/search.php/websearch-hp##Decentralized search meta-engine##apps/nepomuk.png +OOo4kids##http://wiki.ooo4kids.org/index.php/Main_Page/fr##Free desktop software for 7-12 year old kids##apps/okteta.png diff --git a/categ/vrac.txt b/categ/vrac.txt index a40e862..ae47ded 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 -Inkscape##http://inkscape.org/##Outil de création graphique vectorielle##apps/inkscape.png -Wine##http://www.winehq.org/##Utilisez des outils Windows sous Linux, BSD, Mac ou Solaris##apps/wine.png -Dogmazic##http://www.dogmazic.net/##Musique libre##devices/multimedia-player.png -Vim##http://www.vim.org/##Éditeur en mode console##apps/utilities-terminal.png -ChiliProject##https://www.chiliproject.org/##Outil de gestion de projet##status/script-error.png +# [[Category name]]Description +[[Miscellaneous]]Some elements +# Link title ## HTTP website address ## Link description ## Image filename +Inkscape##http://inkscape.org/##Vectorial creation software##apps/inkscape.png +Wine##http://www.winehq.org/##Use Windows tools on Linux, BSD, Mac or Solaris##apps/wine.png +Dogmazic##http://www.dogmazic.net/##Free music##devices/multimedia-player.png +Vim##http://www.vim.org/##Shell mode editor##apps/utilities-terminal.png +ChiliProject##https://www.chiliproject.org/##Project management tool##status/script-error.png diff --git a/composants/categ.html b/composants/categ.html deleted file mode 100644 index 703c10d..0000000 --- a/composants/categ.html +++ /dev/null @@ -1,8 +0,0 @@ - - -

${CATEG_TITLE}

-

${CATEG_DESC}

- -
 
diff --git a/composants/categ_deb.html b/composants/categ_deb.html deleted file mode 100644 index dde853a..0000000 --- a/composants/categ_deb.html +++ /dev/null @@ -1,5 +0,0 @@ - - -

@@TITRE_CATEG@@

-

@@DESC_CATEG@@

- -
 
diff --git a/composants/categories.html b/composants/categories.html new file mode 100644 index 0000000..8f930ca --- /dev/null +++ b/composants/categories.html @@ -0,0 +1,9 @@ + + +

${CATEG_TITLE}

+

${CATEG_DESC}

+ +
 
+ diff --git a/composants/contenu_fin.html b/composants/contenu_fin.html deleted file mode 100644 index d412e2c..0000000 --- a/composants/contenu_fin.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/composants/element.html b/composants/element.html index 733a9b3..8cc2a2e 100644 --- a/composants/element.html +++ b/composants/element.html @@ -1,9 +1,9 @@
  • - + - @@TITRE_ELEMENT@@
    + ${ELEMENT_TITLE}
    - @@DESC_IMAGE@@ + ${IMG_DESC}
  • diff --git a/composants/enqueue.html b/composants/enqueue.html deleted file mode 100644 index 8af6595..0000000 --- a/composants/enqueue.html +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/composants/entete.html b/composants/entete.html deleted file mode 100644 index cc7affd..0000000 --- a/composants/entete.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - @@ACCUEIL_PORTEAIL@@ - - - - - - -
    -

    @@TITRE_PORTEAIL@@

    -
    - - -
    diff --git a/composants/index.html b/composants/index.html index 8881867..f9eae8a 100644 --- a/composants/index.html +++ b/composants/index.html @@ -9,12 +9,12 @@ - +

    ${PORTEAIL_TITLE}

    - +
    ${INTRODUCTION} ${CONTENT} @@ -22,10 +22,10 @@ ${MENU} - + diff --git a/composants/introduction.html b/composants/introduction.html index ffcca9e..8885dba 100644 --- a/composants/introduction.html +++ b/composants/introduction.html @@ -1,11 +1,11 @@ - +

    - Ce message permet d'introduire le sujet de notre page et expliquer rapidement l'existence du site, la présence des éléments, les catégories, etc.
    - Il est modifiable dans le fichier introduction.html situé dans le dossier composants du répertoire principal de PorteAil. + This message permit to introduce our webpage subject and quickly explain why this website exists, why all these categories, elements, etc.
    + This one is editable in introduction.html file located in composants directory from main PorteAil directory.

    - Pour de plus amples renseignements sur PorteAil, veuillez vous référer au fichier README.md contenu dans le répertoire principal du projet PorteAil. + For more information about PorteAil, please refer to README.md file situated in PorteAil main directory.

    - Les catégories sont renseignées dans le dossier categ dans lequel des fichiers d'exemples, normalement assez parlants, devraient vous permettre de construire votre première page PorteAil. + Categories are filled in categ directory in which some example file should be talkative for you. This will allow you to generate your first PorteAil homepage.

    diff --git a/composants/menu.html b/composants/menu.html index 38e5ac1..5f8a6ea 100644 --- a/composants/menu.html +++ b/composants/menu.html @@ -1,11 +1,11 @@ - + diff --git a/composants/one_element.html b/composants/one_element.html deleted file mode 100644 index 8cc2a2e..0000000 --- a/composants/one_element.html +++ /dev/null @@ -1,10 +0,0 @@ -
  • - - - ${ELEMENT_TITLE}
    - - ${IMG_DESC} -
    -
    -
  • - diff --git a/configrc.exemple b/configrc.exemple index 276b01b..fe38ae2 100644 --- a/configrc.exemple +++ b/configrc.exemple @@ -1,64 +1,44 @@ ########################### -## Configuration basique ## +## Main configuration ## ########################### -# Titre de votre PorteAil -TITRE = Titre par défaut -# Feuille de style choisie -STYLE = noir.css -# Code HTML du menu (par défaut dans le dossier COMPOSANTS) +# Homepage title +TITLE = My portal +# CSS color file +STYLE = black.css +# Menu (if needed) #MENU = menu.html -# Code HTML de l'introduction (par défaut dans le dossier COMPOSANTS) +# Introduction (if needed) #INTRO = introduction.html -CIBLE = porteail +# Destination directory +DESTINATION = porteail ########################### -## Configuration avancée ## +## Additional config ## ########################### -# -###--[[ divers ]]--## -# -#ACCUEIL = Accueil - $(TITRE) -#GEN_CATEGORIES = creation_categ.sh -#INDEX = index.html -## Extension des fichiers à prendre en compte dans le dossier contenant les -##+ catégories + +##--[[ miscellaneous ]]--## + +#LANG = en +#HOMEPAGE = Homepage - My portal +## File extension to be used to read categories #CATEGORIES_EXT = txt -## Image de base si aucune mentionnée (par défaut dans le dossier IMAGES) -#DEFAUT_IMG = generique.png -## Contenu HTML d'un élément -#ELEMENT = element.html -## résultat de la génération des catégories -#CONTENU = categories.html -## Contenu HTML à utiliser en début de catégorie -#ENTETE_CAT = categ_deb.html -## Contenu HTML à utiliser en fin de catégorie -#ENQUEUE_CAT = categ_fin.html -## Contenu HTML à utiliser après le contenu principal de la page -#POST_CONTENU = contenu_fin.html -## Contenu HTML à utiliser en début de page finale -#ENTETE = entete.html -## Contenu HTML à utiliser en fin de page finale -#ENQUEUE = enqueue.html +## Default image +#DEFAULT_IMG = generique.png +## Templates +#TEMPLATE_ELEMENT = element.html +#TEMPLATE_INDEX = index.html +#TEMPLATE_CATEG = categories.html # -###--[[ dossiers ]]--## +###--[[ directories ]]--## # -### SOURCES -## Dossier contenant les éléments composants votre page -#COMPOSANTS = composants -## dossier contenant le détail des catégories +#COMPONENTS = composants #CATEGORIES = categ -## dossier contenant les images #IMAGES = img -## dossier contenant les feuilles de style +#IMAGES_DESTINATION = image #CSS = style -# -### DESTINATION (cible) -## dossier de destination des images -#IMAGES_CIBLE = image +#INSTALLDIR = ${HOME}/public_html # ###--[[ style ]]--## # -#CSS_SANS_MENU = sans_menu.css -#CSS_AVEC_MENU = avec_menu.css -#CSS_NOM = defaut.css +#CSS_NAME = defaut.css diff --git a/porteail.lua b/create_homepage.lua similarity index 74% rename from porteail.lua rename to create_homepage.lua index 90fb425..a71a3c4 100755 --- a/porteail.lua +++ b/create_homepage.lua @@ -18,19 +18,24 @@ local default_dir_destination = 'porteail' local default_dir_img_destination = 'image' local default_dir_img_source = 'img' local default_dir_css_source = 'style' +local default_dir_lang = 'lang' -- Default files values local default_img_filename = 'generique.png' local default_index_filename = 'index.html' local default_template_index_filename = 'index.html' -local default_template_categ_filename = 'categ.html' -local default_template_element_filename = 'one_element.html' -local default_css_filename = 'noir.css' -local default_css_menu_without = 'sans_menu.css' -local default_css_menu_with = 'avec_menu.css' +local default_template_categ_filename = 'categories.html' +local default_template_element_filename = 'element.html' +local default_css_filename = 'black.css' +local default_css_menu_without = 'without_menu.css' +local default_css_menu_with = 'with_menu.css' -- Other defaults values +local version = os.getenv('VERSION') or '(Unknown version)' local default_categ_extension = 'txt' local DIR_SEP = '/' -local default_css_name = 'Défaut' +local default_css_name = 'Default' +local default_title = 'My portal' +local default_homepage_title = ' - Homepage' +local default_language = 'en' --[[ Functions ]]-- @@ -128,22 +133,27 @@ end function process(filepath, template_categ, template_element, img_destination, destination, img_source, default_img) -- parse given file - local categ_page = '' local elements = {} + local categ_title = '' + local categ_description = '' + local categ_count = 0 + -- parse category file for line in io.lines(filepath) do local element = '' - -- check if this line is a comment ("# my comment"), a category ("[[My category]]Its description") or an element ("Title##Description##URL##Image") + -- check if this line is: + -- a comment ("# my comment"), + -- a category ("[[My category]]Its description") + -- or an element ("Title##Description##URL##Image") is_comment = string.find(line, '^#+.*') is_title = string.find(line, '%[%[(.*)%]%](.*)') is_element = string.find(line, '(.*)##(.*)##(.*)##(.*)') + -- processing lines to fetch data if is_comment then -- do nothing because it's a comment elseif is_title then - title = '' - for t in string.gmatch(line, '%[%[(.*)%]%].*') do title = title .. t end - description ='' - for d in string.gmatch(line, '%[%[.*%]%](.*)') do description = description .. d end - categ_page = replace(template_categ, {CATEG_TITLE=title, CATEG_DESC=description}) + for t in string.gmatch(line, '%[%[(.*)%]%].*') do categ_title = categ_title .. t end + for d in string.gmatch(line, '%[%[.*%]%](.*)') do categ_description = categ_description .. d end + categ_count = categ_count + 1 elseif is_element then title = '' description = '' @@ -154,17 +164,37 @@ function process(filepath, template_categ, template_element, img_destination, de for u in string.gmatch(line, '.*##(.*)##.*##.*') do url = url .. u end for i in string.gmatch(line, '.*##.*##.*##(.*)') do img = img .. i end img_description = " " + -- copy image and fetch result img_url = processImage(img, img_source, img_destination, destination, default_img) + -- replace some chars in URL to avoid HTML5 problems url = url:gsub('%&', '%&') + -- create element's result element = replace(template_element, {ELEMENT_URL=url, ELEMENT_DESC=description, ELEMENT_TITLE=title, IMG_URL=img_url, IMG_DESC=img_description}) + -- add it to elements table table.insert(elements, element) end end + -- check if category is ok + error_msg = ' ' .. filepath .. ' not imported: ' + if categ_count > 1 then + print (error_msg .. 'too many categories.') + return '' + elseif categ_count == 0 then + print (error_msg .. 'no category found.') + return '' + end + -- check elements + if table.getn(elements) < 1 then + print (error_msg .. 'no elements found.') + return '' + end + -- parse elements to add them to result local text_elements = '' for k, v in pairs(elements) do text_elements = text_elements .. v end - local result = replace(categ_page, {ELEMENTS=text_elements}) + -- do substitutions on result + local result = replace(template_categ, {CATEG_TITLE=categ_title, CATEG_DESC=categ_description, ELEMENTS=text_elements}) return result end @@ -175,9 +205,9 @@ config = getConfig(configFile) -- create values for directories categ = config['CATEGORIES'] or default_dir_category -component = config['COMPOSANTS'] or default_dir_component -destination = config['CIBLE'] or default_dir_destination -img_destination = config['CIBLE_IMAGE'] or default_dir_img_destination +component = config['COMPONENTS'] or default_dir_component +destination = config['DESTINATION'] or default_dir_destination +img_destination = config['IMAGE_DESTINATION'] or default_dir_img_destination img_source = config['IMAGES'] or default_dir_img_source css_source = config['CSS'] or default_dir_css_source -- create values for files @@ -185,7 +215,7 @@ index_filename = config['INDEX'] or default_index_filename main_template = config['TEMPLATE_INDEX'] or default_template_index_filename template_categ_filename = config['TEMPLATE_CATEG'] or default_template_categ_filename template_element_filename = config['TEMPLATE_ELEMENT'] or default_template_element_filename -default_img = config['DEFAUT_IMG'] or default_img_filename +default_img = config['DEFAULT_IMG'] or default_img_filename css_filename = config['STYLE'] or default_css_filename css_menu = default_css_menu_without local menu = config['MENU'] or '' @@ -235,23 +265,33 @@ else end -- Create index file in destination directory -result = assert(io.open(destination .. '/' .. main_template, 'wb')) +index_result = assert(io.open(destination .. '/' .. main_template, 'wb')) -- create substitution table substitutions = { - TITLE=config['TITRE'] .. ' - Accueil', - PORTEAIL_TITLE=config['TITRE'], + TITLE=config['HOMEPAGE'] or (config['TITLE'] and config['TITLE'] .. default_homepage_title) or (default_title .. default_homepage_title), + PORTEAIL_TITLE=config['TITLE'] or default_title, CONTENT=content, INTRODUCTION=introduction_content, MENU=menu_content, CSS_COLOR=css_filename, CSS_NAME=css_name, DEFAULT_CSS=css_menu, + VERSION=version, } + +-- Get language configuration +language = config['LANG'] or default_language +languagerc = getConfig(default_dir_lang .. '/' .. language) +-- Add language translation to replacements table +for k, v in pairs(languagerc) do + substitutions[k] = v +end + -- replace variables in result homepage = replace(index, substitutions) -assert(result:write(homepage)) +assert(index_result:write(homepage)) -- close file -assert(result:close()) +assert(index_result:close()) -- Copy miscellaneous files to destination to_be_copied = { diff --git a/creation_categ.sh b/creation_categ.sh deleted file mode 100755 index 44f9175..0000000 --- a/creation_categ.sh +++ /dev/null @@ -1,252 +0,0 @@ -#!/usr/bin/env sh -# -# creation_categ.sh -# -# Permet de naviguer dans les éléments de chaque catégorie d'un dossier suivant -#+ la syntaxe : -#+ -#+ # Commentaire dans le fichier -#+ [[Titre de la catégorie]]Description de la catégorie -#+ titre de l'élément##http://domaine.tld/##description de l'élément##nom_image - -########### -# LICENCE # -########### - -# Copyright (C) 2011 DOSSMANN Olivier ## - -# This file is part of PorteAil. -# -# PorteAil is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# PorteAil is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with PorteAil. If not, see . - -###################################################################### - -## VARIABLES -DEBUG=0 -IFS=" -" -PROGRAMME=`basename $0` - -## FONCTIONS -debug( ) -{ - if [ "$DEBUG" -eq 1 ] - then - printf "$1\n" 1>&2 - fi -} - -utilisation( ) -{ - echo "Utilisation : $PROGRAMME dossier_cat destination.html extension composants entete_cat.html enqueue_cat.html element.html dossier_img destination_img image.png dossier_porteail" - echo "" - echo "Cf. Fichier README.md pour plus d'informations." -} - -## TESTS -# Test sur les paramètres -if [ $# -ne 11 ] -then - utilisation - exit 1 -else - # $PROGRAMME dossier_cat destination.html extension composants entete_cat.html enqueue_cat.html element.html - dossier=$1 - destination=$2 #"categories.html" - extension=$3 # Extension des fichiers à prendre en compte - dossier_composants=$4 - categ_deb="$5" - categ_fin="$6" - elem="$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 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" -then - echo "Le fichier '${destination}' existe : Suppression de ce dernier." - rm -f "$destination" -fi - -# Parcours du dossier -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 - CATEG=0 - # On met/remet le tableau des elements à 0 - elements_titre="" - elements_url="" - elements_desc="" - elements_image_addr="" - curseur_element=0 - # Calcul du nombre de ligne du fichier - nbre_lignes=`cat "${fichier}" |wc -l` - # debug - debug "$fichier: $nbre_lignes" - # Vérification du nombre de lignes retourné - if [ "$nbre_lignes" -gt 0 ] - then - # Récupération du nom de la catégorie - nbre_categories=`grep -E "^\[\[.*\]\].*$" ${fichier} |wc -l` - # Si le nombre de catégorie est égal à 1, on a tout bon - if [ "$nbre_categories" -eq 0 ] - then - echo "Fichier '${fichier}' mal renseigné : Pas de nom de catégorie" - continue - elif [ "$nbre_categories" -gt 1 ] - then - echo "Fichier '${fichier}' mal renseigné : Trop de catégorie présentes." - continue - else - echo "Fichier '${fichier}' correct : Catégorie présente." - fi - # le fichier contient plusieurs lignes, on lit le contenu - for ligne in $(cat "${fichier}") - do - debug "Contenu ligne : $ligne" - # Vérifie les différents cas possibles : - #+ SI la chaîne débute par '#' - #+ exemple : # quelque chose - diese_comp=`echo "$ligne" |sed -e 's@^\(#\).*$@\1@g'` - debug "Comparaison dièse : $diese_comp" - if [ "$diese_comp" = '#' ] - then - debug "La ligne est un commentaire : Aucune action." - continue - fi - #+ SI la chaîne commence par '[[' et fini par ']]' - #+ exemple : [[Titre]]Description de ma catégorie - categ_comp=`echo "$ligne" |sed -e 's#^\(\[\[\).*\(\]\]\).*$#\1\2#g'` - debug "Comparaison '[[]]' : $categ_comp" - if [ "$categ_comp" = "[[]]" ] - then - debug "La ligne est une catégorie : Enregistrement." - categ_titre=`echo "$ligne" |sed -e 's#^\[\[\(.*\)\]\].*$#\1#g'` - categ_desc=`echo "$ligne" |sed -e 's#^\[\[.*\]\]\(.*\)$#\1#g'` - debug "$categ_titre : $categ_desc" - CATEG=1 - fi - #+ SI la chaîne contient 3 fois '##' - #+ exemple : Vous êtes perdus ?##http://perdu.com##Se rendre sur le site perdu.com##apps/image.png - element_comp=`echo $ligne |sed -e 's@^.*\(##\).*\(##\).*\(##\).*$@\1\2\3@g'` - debug "Comparaison element : $element_comp" - if [ "$element_comp" = "######" ] - then - debug "La ligne est un élément : Enregistrement." - # Recherche des informations pour l'élément - element_titre=`echo $ligne |sed -e 's@^\(.*\)##.*##.*##.*$@\1@g'` - element_url=`echo $ligne |sed -e 's@^.*##\(.*\)##.*##.*$@\1@g'` - element_desc=`echo $ligne |sed -e 's@^.*##.*##\(.*\)##.*$@\1@g'` - element_img_addr=`echo $ligne |sed -e 's@^.*##.*##.*##\(.*\)$@\1@g'` - element_img_titre="${element_desc}" - element_img_desc=" " - debug "Élément : titre=$element_titre, url=$element_url, desc=$element_desc, adresse_image=$element_img_addr, titre_image=$element_img_titre, desc_image=$element_img_desc" - # Ajout des éléments dans les tableaux appropriés - eval "elements_titre_${curseur_element}=\"${element_titre:-""}\"" - eval "elements_url_${curseur_element}=\"${element_url:-""}\"" - eval "elements_desc_${curseur_element}=\"${element_desc:-""}\"" - eval "elements_image_addr_${curseur_element}=\"${element_img_addr:-""}\"" - eval "elements_image_titre_${curseur_element}=\"${element_img_titre:-""}\"" - eval "elements_image_desc_${curseur_element}=\"${element_img_desc:-""}\"" - # Incrémentation du curseur du tableau contenant les éléments - curseur_element=$(( $curseur_element + 1 )) - fi - done - else - # le fichier ne contient pas de ligne. message d'erreur - echo "Fichier '$fichier' non pris en charge : Le fichier semble vide." - fi - # On débute la création du fichier contenant la catégorie si CATEG=1 - if [ "$CATEG" -eq 1 ] - then - echo "Création d'un bloc Catégorie…" - # Tests sur la valeur de la catégorie et de l'état du curseur - debug "Catégorie : $categ_titre : $categ_desc" - debug "État curseur : $curseur_element" - # Tests sur la valeur - debug "Fichier de début de catégorie : $categ_deb" - debug "Destination : $destination" - # Création du fichier pour les catégories (DÉBUT) - cat $categ_deb |sed -e "s|@@TITRE_CATEG@@|${categ_titre}|g" -e "s|@@DESC_CATEG@@|${categ_desc}|g" >> ${destination} - sed -i "s#^\(.*\)@@.*@@\(.*\)#\1\2#g" ${destination} - # Préparation du numéro d'index - 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_url_tmp=$(eval echo \$elements_url_${i}) - # modification de l'URL suite au bug sur les & dans SED - e_url_tmp=$(echo $e_url_tmp |sed -e 's|\&|\\&|g' |sed -e 's|\=|\\=|g') - e_url=${e_url_tmp:-""} # url element - e_img_addr_tmp=$(eval echo \$elements_image_addr_${i}) - # Test de l'existence de l'image - if ! test -f "${dossier_image}/${e_img_addr_tmp}" - then - # si elle n'existe pas, on prend l'image générique - nom_img=`basename ${image_defaut}` - source_img="$image_defaut" - else - nom_img=`basename ${e_img_addr_tmp}` - source_img="${dossier_image}/${e_img_addr_tmp}" - fi - # On ne copie que si la destination n'existe pas déjà - if ! test -f "${destination_finale}/${dest_image}/${nom_img}" - then - cp "${source_img}" "${destination_finale}/${dest_image}/${nom_img}" - fi - e_img_addr="${dest_image}/${nom_img}" # adresse image - e_img_titre_tmp=$(eval echo \$elements_image_titre_${i}) - 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 - # 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 - printf "\t…ajout de l'élément '${e_titre}'\n" - cat $elem |sed -e "s|@@TITRE_ELEMENT@@|$e_titre|g" -e "s|@@DESC_ELEMENT@@|${e_desc}|g" -e "s|@@URL_ELEMENT@@|${e_url}|g" -e "s|@@URL_IMAGE@@|${e_img_addr}|g" -e "s|@@TITRE_IMAGE@@|${e_img_titre}|g" -e "s|@@DESC_IMAGE@@|${e_img_desc}|g" -e "s|^\(.*\)@@.*@@\(.*\)$|\1\2|g" >> ${destination} - # Incrémentation de l'index - i=`expr $i + 1` #let i++ - done - # Ajout de la fin du fichier pour les catégories (FIN) - cat $categ_fin >> ${destination} - fi -done diff --git a/install.sh b/install.sh index a6cba19..94ea198 100755 --- a/install.sh +++ b/install.sh @@ -4,8 +4,8 @@ # Copy porteail directory to user's public_html -SRCDIR=./porteail -DESTDIR=${HOME}/public_html +SRCDIR=${SRCDIR:-'./porteail'} +DESTDIR=${DESTDIR:-"${HOME}/public_html"} STATICDIR=./static staticdir_content=0 @@ -37,6 +37,7 @@ fi if ! test -d ${DESTDIR} then echo "${DESTDIR} directory not found!" + exit 1 fi echo "This will delete ${DESTDIR} content and copy ${SRCDIR} into. Are you sure [y/n]?" diff --git a/lang/en b/lang/en new file mode 100644 index 0000000..741dc49 --- /dev/null +++ b/lang/en @@ -0,0 +1,2 @@ +POWERED_BY = Proudly powered by +POWERED_BY_DESC = Go to PorteAil project official webpage diff --git a/lang/fr b/lang/fr new file mode 100644 index 0000000..3f3aed3 --- /dev/null +++ b/lang/fr @@ -0,0 +1,2 @@ +POWERED_BY = Fièrement propulsé par +POWERED_BY_DESC = Aller sur la page officielle du projet PorteAil diff --git a/paconfigrc b/paconfigrc index 8ca416c..db2dc1b 100644 --- a/paconfigrc +++ b/paconfigrc @@ -1,64 +1,44 @@ ########################### -## Configuration basique ## +## Main configuration ## ########################### -# Titre de votre PorteAil -TITRE = Titre par défaut -# Feuille de style choisie -STYLE = noir.css -# Code HTML du menu (par défaut dans le dossier COMPOSANTS) +# Homepage title +TITLE = My portal +# CSS color file +STYLE = black.css +# Menu (if needed) #MENU = menu.html -# Code HTML de l'introduction (par défaut dans le dossier COMPOSANTS) +# Introduction (if needed) #INTRO = introduction.html -CIBLE = porteail +# Destination directory +DESTINATION = porteail ########################### -## Configuration avancée ## +## Additional config ## ########################### -##--[[ divers ]]--## +##--[[ miscellaneous ]]--## -ACCUEIL = Accueil - $(TITRE) -GEN_CATEGORIES = creation_categ.sh -INDEX = index.html -# Extension des fichiers à prendre en compte dans le dossier contenant les -#+ catégories +LANG = en +HOMEPAGE = Homepage +# File extension to be used to read categories CATEGORIES_EXT = txt -# Image de base si aucune mentionnée (par défaut dans le dossier IMAGES) -DEFAUT_IMG = generique.png -# Contenu HTML d'un élément -ELEMENT = element.html -# résultat de la génération des catégories -CONTENU = categories.html -# Contenu HTML à utiliser en début de catégorie -ENTETE_CAT = categ_deb.html -# Contenu HTML à utiliser en fin de catégorie -ENQUEUE_CAT = categ_fin.html -# Contenu HTML à utiliser après le contenu principal de la page -POST_CONTENU = contenu_fin.html -# Contenu HTML à utiliser en début de page finale -ENTETE = entete.html -# Contenu HTML à utiliser en fin de page finale -ENQUEUE = enqueue.html +# Default image +DEFAULT_IMG = generique.png +# Templates +TEMPLATE_ELEMENT = element.html +TEMPLATE_INDEX = index.html +TEMPLATE_CATEG = categories.html -##--[[ dossiers ]]--## +##--[[ directories ]]--## -## SOURCES -# Dossier contenant les éléments composants votre page -COMPOSANTS = composants -# dossier contenant le détail des catégories +COMPONENTS = composants CATEGORIES = categ -# dossier contenant les images IMAGES = img -# dossier contenant les feuilles de style +IMAGES_DESTINATION = image CSS = style - -## DESTINATION (cible) -# dossier de destination des images -IMAGES_CIBLE = image +INSTALLDIR = ${HOME}/public_html ##--[[ style ]]--## -CSS_SANS_MENU = sans_menu.css -CSS_AVEC_MENU = avec_menu.css -CSS_NOM = defaut.css +CSS_NAME = defaut.css diff --git a/style/noir.css b/style/black.css similarity index 87% rename from style/noir.css rename to style/black.css index bd9d7a1..1bfb268 100644 --- a/style/noir.css +++ b/style/black.css @@ -1,5 +1,5 @@ /* -Theme: PorteAil - apparence noire +Theme: PorteAil - Black appearance Version: 0.1 Author: Olivier DOSSMANN Author URI: http://olivier.dossmann.net @@ -33,14 +33,14 @@ h3 { color: #000000; } -/* ENTÊTE DE PAGE */ +/* HEADER */ header { background-color: #000000; color: #ffffff; } -/* CONTENU */ -/* survol d'un élément */ +/* CONTENT */ +/* element overview */ #corps a.cadre:hover { background-color: #000000; color: #ffffff; @@ -70,7 +70,7 @@ background-color: #aaaabb; color: #223355; } -/* ENQUEUE DE PAGE */ +/* FOOTER */ footer { color: #000000; } diff --git a/style/bleu.css b/style/blue.css similarity index 87% rename from style/bleu.css rename to style/blue.css index e7e20b6..d9a35aa 100644 --- a/style/bleu.css +++ b/style/blue.css @@ -1,5 +1,5 @@ /* -Theme: PorteAil - apparence bleue +Theme: PorteAil - Blue appearance Version: 0.1 Author: Olivier DOSSMANN Author URI: http://olivier.dossmann.net @@ -33,13 +33,13 @@ h3 { color: #555577; } -/* ENTÊTE DE PAGE */ +/* HEADER */ header { background-color: #223355; color: #ffffff; } -/* CONTENU */ -/* survol d'un élément */ +/* CONTENT */ +/* element overview */ #corps a.cadre:hover { background-color: #223355; color: #ffffff; @@ -69,7 +69,7 @@ background-color: #aaaabb; color: #223355; } -/* ENQUEUE DE PAGE */ +/* FOOTER */ footer { color: #000000; } diff --git a/style/avec_menu.css b/style/with_menu.css similarity index 94% rename from style/avec_menu.css rename to style/with_menu.css index d71b51a..2c8cf6f 100644 --- a/style/avec_menu.css +++ b/style/with_menu.css @@ -1,5 +1,5 @@ /* -Theme: PorteAil - avec menu +Theme: PorteAil - with menu Version: 0.1 Author: Olivier DOSSMANN Author URI: http://olivier.dossmann.net @@ -51,7 +51,7 @@ border-radius: 12px; -webkit-border-radius: 12px; } -/* ENTÊTE DE PAGE */ +/* HEADER */ header { position: relative; margin: 0; @@ -78,14 +78,14 @@ height: 50px; line-height: 50px; } -/* CONTENU */ +/* CONTENT */ #corps { position: relative; width: 78%; left: 2%; } -/* CATÉGORIES */ +/* CATEGORIES */ #corps ul.ensemble_element { min-height: 10em; list-style-type: none; @@ -97,7 +97,7 @@ text-align: center; display: inline-block; } -/* ÉLÉMENT */ +/* ELEMENT */ #corps a.cadre { height: 9em; width: 11em; @@ -131,7 +131,7 @@ margin-left: auto; border: 0; } -/* espace en fin de catégorie */ +/* WHITESPACE after category's end */ #corps .espace { clear: both; } @@ -172,7 +172,7 @@ nav#cartable a:visited { nav#cartable a:hover { } -/* ENQUEUE DE PAGE */ +/* FOOTER */ footer { position: relative; top: 5px; @@ -188,4 +188,4 @@ font-size: 10px; text-align: center; } -/* DIVERS */ +/* MISCELLANEOUS */ diff --git a/style/sans_menu.css b/style/without_menu.css similarity index 94% rename from style/sans_menu.css rename to style/without_menu.css index fb9e650..4428b9c 100644 --- a/style/sans_menu.css +++ b/style/without_menu.css @@ -1,5 +1,5 @@ /* -Theme: PorteAil - sans menu +Theme: PorteAil - without menu Version: 0.1 Author: Olivier DOSSMANN Author URI: http://olivier.dossmann.net @@ -51,7 +51,7 @@ border-radius: 12px; -webkit-border-radius: 12px; } -/* ENTÊTE DE PAGE */ +/* HEADER */ header { position: relative; margin: 0 auto; @@ -78,14 +78,14 @@ height: 50px; line-height: 50px; } -/* CONTENU */ +/* CONTENT */ #corps { position: relative; width: 98%; left: 2%; } -/* CATÉGORIES*/ +/* CATEGORIES*/ #corps ul.ensemble_element { min-height: 10em; list-style-type: none; @@ -97,7 +97,7 @@ text-align: center; display: inline-block; } -/* ÉLÉMENT */ +/* ELEMENT */ #corps a.cadre { height: 9em; width: 11em; @@ -131,7 +131,7 @@ margin-left: auto; border: 0; } -/* espace en fin de catégorie */ +/* WHITESPACE at category's end */ #corps .espace { clear: both; } @@ -172,7 +172,7 @@ nav#cartable a:visited { nav#cartable a:hover { } -/* ENQUEUE DE PAGE */ +/* FOOTER */ footer { position: relative; top: 5px; @@ -188,4 +188,4 @@ font-size: 10px; text-align: center; } -/* DIVERS */ +/* MISCELLANEOUS */