Taille: 1543
Commentaire:
|
Taille: 6076
Commentaire: On commence la doc
|
Texte supprimé. | Texte ajouté. |
Ligne 4: | Ligne 4: |
[[TableOfContents]] | <<TableOfContents>> = Le making of du wiki = Ce wiki est basé sur le moteur MoinMoin, un moteur de wiki écrit en python. Sans s'intéresser davantage aux motivations de ce choix, détaillons le fonctionnement du wiki. == Où == Ce wiki est installé et est servi par un domU nommé {{{niomniom.crans.org}}}. Il est servi par le module python d'apache2. Il devrait également être possible de le servir par un fastCGI (donc en utilisant un serveur web plus léger que apache2), mais l'installation avec le module python d'apache est tellement aisé. Il ne s'agit pas exactement de la version upstream de MoinMoin, mais de la version debian légèrement modifiée. Le moteur est installé au moyen d'un paquet debian customisé, basé sur le paquet python-moinmoin. (On pourrait détailler davantage ici la conf d'apache2 qui va notamment: * rediriger vers une url fully-qualified * servir le vieux site web en priorité * forcer le SSL pour les envois de données "sensibles" * logger là où il faut * distribuer les ressources statiques de là où elles sont installées * enfin, il envoie les requêtes au module python) Apache2 envoie toutes les requêtes à {{{/usr/share/moin/server/moinmodpy.py}}}. moinmodpy va donc charger sa configuration {{{/etc/moin/farmconfig.py}}}, qui est la conf de base fournie par debian (dans {{{/usr/share/moin/config/wikifarm}}}) MoinMoin étant correctement installé, {{{moinmodpy.py}}} n'aura aucun mal à trouver le moteur. Ainsi la configuration du wiki du crans, {{{/etc/moin/mywiki.py}}} est chargée par {{{wikifarm.py}}}. C'est donc dans ce fichier que se trouvent les détails de configuration du wiki du Crans, dans laquelle sont modifiés les paramètres dont les valeurs par défaut définies dans {{{/usr/share/python-support/python-moinmoin/MoinMoin/config/multiconfig.py}}} ne nous conviennent pas. Notamment, c'est dans ce fichier qu'est détaillé là où se trouvent les données du wiki, à savoir {{{/var/local/wiki/data}}}. Notons néanmoins que là se trouve installé (en fait linké) des ressources, la documentation (linkée depuis là où elle a été installée par le paquet debian, {{{/usr/share/moin/htdocs/underlay}}}), ainsi que quelques-uns des plugins (qui sont des scripts) depuis {{{/usr/scripts}}}. On remarquera également que les ressources statiques sont configurés pour être dans les urls en {{{wiki/}}}. Apache sait donc qu'il doit rediriger ces requêtes vers les ressources statiques qui sont dans {{{/usr/share/moin/htdocs}}}, installées par notre paquet debian custom. C'est là que se trouvent donc les icônes ainsi que les css, et les scripts javascript. |
Ligne 7: | Ligne 53: |
On retrouve dans {{{/usr/scripts/wiki}}} des liens symboliques vers des fichiers de MoinMoin. Cela nous permet d'identifier les fichiers modifiés et de les ajouter au CVS. | On retrouve dans {{{/usr/scripts/wiki-lenny/share}}} les fichiers de moinmoins que nous avons modifiés nous-mêmes. Pour qu'ils soient utilisés on supprime les originaux dans {{{/usr/share/python-support/python-moinmoin/MoinMoin}}} et on les remplaces par des liens symboliques pointant vers les fichiers correspondant dans {{{/usr/script/wiki-lenny/share}}}. Pour différencier quels fichiers il faut mettre et ne pas mettre on créé un fichier portant l'extension {{{.orig.py}}} pour ceux qu'on utiliser. |
Ligne 9: | Ligne 55: |
Les fichiers qui s'y trouvent sont commités en version 1.1 avec la source originale correspondant à la version {{{1.3.4-3}}} . Les diffs suivants correspondent à nos modifications propres. Les lignes modifiées sont repérables avec les balises {{{#### HACK SAUVAGE |
Les fichiers qui s'y trouvent sont commités avec la source originale correspondant à la version du paquet debian installé. Les diffs suivants correspondent à nos modifications propres. Les lignes modifiées sont repérables avec les balises {{{ #### HACK SAUVAGE }}} |
Ligne 12: | Ligne 59: |
#### FIN DU HACK }}} |
{{{ #### FIN DU HACK }}} |
Ligne 15: | Ligne 62: |
Les patchs sont regroupés sur [/LesPatchs cette page] | Les patchs sont regroupés sur [[/LesPatchs|cette page]] |
Ligne 18: | Ligne 65: |
Ces éléments sont stockées dans dans leur répertoire respectif dans {{{/usr/scripts/wiki}}} | Parce qu'on aime pimper le wiki, on a rajouter quelques autres formatters et des macros, qui sont stockés dans {{{/usr/scripts/wiki-lenny/local}}} et qu'il faut installer dans {{{/var/local/wiki/data/plugins}}} |
Ligne 20: | Ligne 67: |
[[Include(/CréationDeMacro,"Création de macros", 2, from="[[[TableOfContents]]]", to="Exemple")]] | ## <<Include(/CréationDeMacro,"Création de macros", 2, from="[[[TableOfContents]]]", to="Exemple")>> |
Ligne 25: | Ligne 72: |
/CréationDeFormatter | |
Ligne 27: | Ligne 75: |
La partie en python s'occupant de la mise en forme est stockée dans {{{/usr/scripts/wiki/theme}}} | La partie en python s'occupant de la mise en forme est stockée dans {{{/usr/scripts/wiki-lenny/plugins/theme}}}, en effet nos themes persos sont bien des plugins du wiki. |
Ligne 29: | Ligne 77: |
Les éléments graphiques (css et images) sont eux stockés dans {{{/usr/share/moin/htdocs/le_nom_du_theme}}} * D'ailleurs on pourrait aussi les déplacer ailleurs et mettre des liens symboliques. Mais où ? Dans {{{/usr/scripts/wiki/theme}}} ou ailleurs ? ils y sont déjà -- GregoireDetrez [[DateTime(2006-04-25T21:10:21Z)]] |
Les éléments graphiques (css et images) sont eux stockés (enfin, c'est vite dit vu le bordel que c'est) dans {{{/usr/scripts/wiki-lenny/static}}} = Comment dumper le wiki = Il est possible de publier des pages du wiki sous forme /statique/ comme on en trouve [[https://wifi.crans.org/wiki/WiFi.html|ici]].<<BR>> Lorsqu'une modification est faite sur les pages du wiki, il faut mettre à jour les pages statiques correspondantes.<<BR>> Cette manipulation se fait facilement grâce aux scripts fournis avec moinmoin: * On commence par se logguer sur le serveur sur lequel il y le wiki * On crée un répertoire temporaire destiné à accueillir les futures pages statiques générées (par exemple dans son home {{{~/dump_temp}}}). * On peut ensuite lancer le script (en temps que www-data, parce qu'on est pas un gros porc) en lui passant comme arguments, le nom des pages sous forme d'expression régulière et le répertoire de destination des pages statiques. Ex : {{{ sudo -u www-data moin \ --config-dir=/etc/moin --wiki-url=http://wiki.crans.org/ \ export dump \ --page "WiFi(/PositionnementDesBornes|/AvoirLeWifi.*)?" \ --target-dir=/home/myname/outputdir }}} Les pages générées seront dans le répertoire {{{~/outputdir}}} et les pièces jointes correspondantes seront dans le répertoire {{{~/outputdir/attachment}}}. Penser à donner les droits en écriture à {{{www-data}}}.<<BR>> Ne pas oublier de linker les images (bien souvent dans {{{./crans/img}}}). La dernière étape consiste à mettre les fichiers générés : {{{/var/www/wifi}}} |
Ligne 33: | Ligne 101: |
CatégoriePagePublique | * CatégoriePagePublique * CatégorieCrans |
Certaines modifications sont faites sur le wiki de MoinMoin pour nos besoins
Sommaire
Le making of du wiki
Ce wiki est basé sur le moteur MoinMoin, un moteur de wiki écrit en python. Sans s'intéresser davantage aux motivations de ce choix, détaillons le fonctionnement du wiki.
Où
Ce wiki est installé et est servi par un domU nommé niomniom.crans.org. Il est servi par le module python d'apache2. Il devrait également être possible de le servir par un fastCGI (donc en utilisant un serveur web plus léger que apache2), mais l'installation avec le module python d'apache est tellement aisé.
Il ne s'agit pas exactement de la version upstream de MoinMoin, mais de la version debian légèrement modifiée. Le moteur est installé au moyen d'un paquet debian customisé, basé sur le paquet python-moinmoin.
(On pourrait détailler davantage ici la conf d'apache2 qui va notamment:
- rediriger vers une url fully-qualified
- servir le vieux site web en priorité
- forcer le SSL pour les envois de données "sensibles"
- logger là où il faut
- distribuer les ressources statiques de là où elles sont installées
- enfin, il envoie les requêtes au module python)
Apache2 envoie toutes les requêtes à /usr/share/moin/server/moinmodpy.py. moinmodpy va donc charger sa configuration /etc/moin/farmconfig.py, qui est la conf de base fournie par debian (dans /usr/share/moin/config/wikifarm) MoinMoin étant correctement installé, moinmodpy.py n'aura aucun mal à trouver le moteur.
Ainsi la configuration du wiki du crans, /etc/moin/mywiki.py est chargée par wikifarm.py. C'est donc dans ce fichier que se trouvent les détails de configuration du wiki du Crans, dans laquelle sont modifiés les paramètres dont les valeurs par défaut définies dans /usr/share/python-support/python-moinmoin/MoinMoin/config/multiconfig.py ne nous conviennent pas.
Notamment, c'est dans ce fichier qu'est détaillé là où se trouvent les données du wiki, à savoir /var/local/wiki/data. Notons néanmoins que là se trouve installé (en fait linké) des ressources, la documentation (linkée depuis là où elle a été installée par le paquet debian, /usr/share/moin/htdocs/underlay), ainsi que quelques-uns des plugins (qui sont des scripts) depuis /usr/scripts.
On remarquera également que les ressources statiques sont configurés pour être dans les urls en wiki/. Apache sait donc qu'il doit rediriger ces requêtes vers les ressources statiques qui sont dans /usr/share/moin/htdocs, installées par notre paquet debian custom. C'est là que se trouvent donc les icônes ainsi que les css, et les scripts javascript.
Modification de fichiers du paquet de MoinMoin
On retrouve dans /usr/scripts/wiki-lenny/share les fichiers de moinmoins que nous avons modifiés nous-mêmes. Pour qu'ils soient utilisés on supprime les originaux dans /usr/share/python-support/python-moinmoin/MoinMoin et on les remplaces par des liens symboliques pointant vers les fichiers correspondant dans /usr/script/wiki-lenny/share. Pour différencier quels fichiers il faut mettre et ne pas mettre on créé un fichier portant l'extension .orig.py pour ceux qu'on utiliser.
Les fichiers qui s'y trouvent sont commités avec la source originale correspondant à la version du paquet debian installé. Les diffs suivants correspondent à nos modifications propres. Les lignes modifiées sont repérables avec les balises
#### HACK SAUVAGE
et
#### FIN DU HACK
Les patchs sont regroupés sur cette page
Ajout de macro/parser/formatter
Parce qu'on aime pimper le wiki, on a rajouter quelques autres formatters et des macros, qui sont stockés dans /usr/scripts/wiki-lenny/local et qu'il faut installer dans /var/local/wiki/data/plugins
Création de parseur
Création de formatter
Ajout de thème
La partie en python s'occupant de la mise en forme est stockée dans /usr/scripts/wiki-lenny/plugins/theme, en effet nos themes persos sont bien des plugins du wiki.
Les éléments graphiques (css et images) sont eux stockés (enfin, c'est vite dit vu le bordel que c'est) dans /usr/scripts/wiki-lenny/static
Comment dumper le wiki
Il est possible de publier des pages du wiki sous forme /statique/ comme on en trouve ici.
Lorsqu'une modification est faite sur les pages du wiki, il faut mettre à jour les pages statiques correspondantes.
Cette manipulation se fait facilement grâce aux scripts fournis avec moinmoin:
- On commence par se logguer sur le serveur sur lequel il y le wiki
On crée un répertoire temporaire destiné à accueillir les futures pages statiques générées (par exemple dans son home ~/dump_temp).
- On peut ensuite lancer le script (en temps que www-data, parce qu'on est pas un gros porc) en lui passant comme arguments, le nom des pages sous forme d'expression régulière et le répertoire de destination des pages statiques. Ex :
sudo -u www-data moin \ --config-dir=/etc/moin --wiki-url=http://wiki.crans.org/ \ export dump \ --page "WiFi(/PositionnementDesBornes|/AvoirLeWifi.*)?" \ --target-dir=/home/myname/outputdir
Les pages générées seront dans le répertoire ~/outputdir et les pièces jointes correspondantes seront dans le répertoire ~/outputdir/attachment. Penser à donner les droits en écriture à www-data.
Ne pas oublier de linker les images (bien souvent dans ./crans/img).
La dernière étape consiste à mettre les fichiers générés : /var/www/wifi