Merge branch 'lua'

master
Olivier DOSSMANN 2013-06-05 17:10:47 +02:00
commit c53680befe
30 changed files with 266 additions and 711 deletions

1
.gitignore vendored
View File

@ -1,4 +1,3 @@
porteail/*
.gitignore
categories.html
configrc

View File

@ -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é."

133
README.md
View File

@ -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
nimporte quel système dexploitation 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

13
TACHES
View File

@ -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

View File

@ -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##

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
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

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
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

View File

@ -1,8 +0,0 @@
<!-- Catégorie ${CATEG_TITLE} -->
<h2>${CATEG_TITLE}</h2>
<p>${CATEG_DESC}</p>
<ul class="ensemble_element">
${ELEMENTS}
</ul>
<div class="espace">&nbsp;</div>

View File

@ -1,5 +0,0 @@
<!-- Catégorie @@TITRE_CATEG@@ -->
<h2>@@TITRE_CATEG@@</h2>
<p>@@DESC_CATEG@@</p>
<ul class="ensemble_element">

View File

@ -1,2 +0,0 @@
</ul>
<div class="espace">&nbsp;</div>

View File

@ -0,0 +1,9 @@
<!-- Category - ${CATEG_TITLE} -->
<h2>${CATEG_TITLE}</h2>
<p>${CATEG_DESC}</p>
<ul class="ensemble_element">
${ELEMENTS}
</ul>
<div class="espace">&nbsp;</div>

View File

@ -1 +0,0 @@
</div>

View File

@ -1,9 +1,9 @@
<li>
<a class="cadre" href="@@URL_ELEMENT@@" title="@@DESC_ELEMENT@@">
<a class="cadre" href="${ELEMENT_URL}" title="${ELEMENT_DESC}">
<span class="element">
@@TITRE_ELEMENT@@ <br />
${ELEMENT_TITLE} <br />
<img src="@@URL_IMAGE@@" alt="@@DESC_IMAGE@@" title="@@TITRE_IMAGE@@" />
<img src="${IMG_URL}" alt="${IMG_DESC}" title="${ELEMENT_DESC}" />
</span>
</a>
</li>

View File

@ -1,7 +0,0 @@
<!-- Pied de page -->
<footer>
<p>Page générée à l'aide de <a href="http://porteail.e-mergence.org/" title="Se rendre sur la page officielle du projet PorteAil">PorteAil</a></p>
</footer>
</body>
</html>

View File

@ -1,19 +0,0 @@
<!DOCTYPE html>
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<meta charset="UTF-8" />
<title>@@ACCUEIL_PORTEAIL@@</title>
<!--[if lt IE 9]>
<script src="html5.js" type="text/javascript"></script>
<![endif]-->
<link rel="stylesheet" href="@@CSS_DEFAUT@@" type="text/css" media="all" title="Défaut" />
<link rel="stylesheet" href="@@CSS_COULEUR@@" type="text/css" media="all" title="Défaut" />
</head>
<body>
<!-- Entete de page -->
<header>
<h1>@@TITRE_PORTEAIL@@</h1>
</header>
<!-- Corps de la page -->
<div id="corps">

View File

@ -9,12 +9,12 @@
<link rel="stylesheet" href="${CSS_COLOR}" type="text/css" media="all" title="${CSS_NAME}" />
</head>
<body>
<!-- Entete de page -->
<!-- Header -->
<header>
<h1>${PORTEAIL_TITLE}</h1>
</header>
<!-- Corps de la page -->
<!-- Content -->
<div id="corps">
${INTRODUCTION}
${CONTENT}
@ -22,10 +22,10 @@
${MENU}
<!-- Pied de page -->
<!-- Footer -->
<footer>
<p>Page générée à l'aide de <a href="http://porteail.e-mergence.org/" title="Se rendre sur la page officielle du projet PorteAil">PorteAil</a></p>
<p>${POWERED_BY} <a href="http://porteail.e-mergence.org/" title="${POWERED_BY_DESC}">PorteAil ${VERSION}</a></p>
</footer>
</body>
</html>

View File

@ -1,11 +1,11 @@
<!-- Introduction de la page -->
<!-- Webpage introduction -->
<p>
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.<br />
Il est modifiable dans le fichier <em>introduction.html</em> situé dans le dossier <em>composants</em> du répertoire principal de <a href="http://git.dossmann.net/scripts/porteail.git/" title="Se rendre sur le dépôt de fichier de PorteAil">PorteAil</a>.
This message permit to introduce our webpage subject and quickly explain why this website exists, why all these categories, elements, etc.<br />
This one is editable in <em>introduction.html</em> file located in <em>composants</em> directory from main <a href="http://gitorious.org/porteail/" title="Go to PorteAil repositories">PorteAil</a> directory.
</p>
<p>
Pour de plus amples renseignements sur <a href="http://git.dossmann.net/scripts/porteail.git/" title="Se rendre sur le dépôt de fichier de PorteAil">PorteAil</a>, veuillez vous référer au fichier <em>README.md</em> contenu dans le répertoire principal du projet <a href="http://git.dossmann.net/scripts/porteail.git/" title="Se rendre sur le dépôt de fichier de PorteAil">PorteAil</a>.
For more information about <a href="http://gitorious.org/porteail/" title="Go to PorteAil repositories">PorteAil</a>, please refer to <em>README.md</em> file situated in <a href="http://gitorious.org/porteail/" title="Se rendre sur le dépôt de fichier de PorteAil">PorteAil</a> main directory.
</p>
<p>
Les catégories sont renseignées dans le dossier <em>categ</em> dans lequel des fichiers d'exemples, normalement assez parlants, devraient vous permettre de construire votre première page <a href="http://git.dossmann.net/scripts/porteail.git/" title="Se rendre sur le dépôt de fichier de PorteAil">PorteAil</a>.
Categories are filled in <em>categ</em> directory in which some example file should be talkative for you. This will allow you to generate your first <a href="http://gitorious.org/porteail/" title="Go to PorteAil repositories">PorteAil</a> homepage.
</p>

View File

@ -1,11 +1,11 @@
<!-- Menu de la page -->
<!-- Webpage menu -->
<nav id="cartable">
<div class="sacoche">
<h3>Menu</h3>
<ul>
<li>Lien 1</li>
<li>Lien 2</li>
<li>Lien 3</li>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</div>
</nav>

View File

@ -1,10 +0,0 @@
<li>
<a class="cadre" href="${ELEMENT_URL}" title="${ELEMENT_DESC}">
<span class="element">
${ELEMENT_TITLE} <br />
<img src="${IMG_URL}" alt="${IMG_DESC}" title="${ELEMENT_DESC}" />
</span>
</a>
</li>

View File

@ -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

View File

@ -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('%&', '%&amp;')
-- 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 = {

View File

@ -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 <olivier@dossmann.net> ##
# 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 <http://www.gnu.org/licenses/>.
######################################################################
## 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|\&|\\&amp;|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

View File

@ -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]?"

2
lang/en 100644
View File

@ -0,0 +1,2 @@
POWERED_BY = Proudly powered by
POWERED_BY_DESC = Go to PorteAil project official webpage

2
lang/fr 100644
View File

@ -0,0 +1,2 @@
POWERED_BY = Fièrement propulsé par
POWERED_BY_DESC = Aller sur la page officielle du projet PorteAil

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 */

View File

@ -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 */