Redmine as a wiki engine
ATTENTION ! Cet article n'est plus adapté à partir de Redmine 2.0.
Ce post fait suite à celui-ci.
Tout d’abord, on installe Redmine classiquement ; je passe volontairement les aspects DNS (création d’un sous-domaine, en l’occurence wiki.jbbarth.com), Apache (création du vhost), et “système” (script de démarrage de Mongrel, user et port adéquats, ce genre de choses) :
cd /home/app/jbbarth/ svn co http://redmine.rubyforge.org/svn/trunk _redmine-0.8-wiki ln -s _redmine-0.8-wiki wiki cd wiki/ rake db:migrate rake redmine:load_default_data rake config/initializers/session_store.rb
Après démarrage, on procède à une configuration basique de Redmine :
- modification du user/pass admin
- configuration générale dans Administration > Settings
- création d’un projet public “wiki”, identifiant “wiki” ; tous les trackers décochés, et tous les modules sauf le module “wiki”
- dans ce projet, on configurera la “Start page”, et surtout on la créera/remplira (sous peine d’avoir des erreurs 404 dans la suite)
Là commencent les choses “sérieuses”. Que voulons-nous ?
1) que l’accueil de Redmine se fasse sur la page de démarrage du wiki du projet “wiki”
Pour cela, nous allons éditer config/routes.rb, et remplacer l’accueil défini à la ligne “map.home” par :
#map.home '', :controller => 'welcome' map.home '', :controller => 'wiki', :id => 'wiki'
Après redémarrage de l’instance, ça fonctionne !
2) suppression des liens inutiles pour un wiki ; en particulier la première tab “Overview/Aperçu”, et “Projects/Projets”, “My page/Ma page” et
“Help/Aide” dans le menu en haut à gauche (nous n’aurons qu’un seul projet “wiki”)
Pour cela nous allons créer un thème à nous et cacher ces liens via du CSS, ce qui me parait bien suffisant : ils ne représentent
aucun “danger”, c’est juste qu’ils perturbent la navigation dans le cadre d’une utilisation wiki-only. Voir donc ici pour la création d’un nouveau thème, et éventuellement ici pour des exemples de thèmes.
Nous créons donc un thème “wiki”, puis quelques lignes suffisent à la fin de public/themes/wiki/stylesheets/application.css :
/* Specific to wiki */ #top-menu .my-page, #top-menu .projects, #top-menu .help { display:none; } #main-menu .overview { display:none; }
3) passage des patches cités dans l’article précédent
cd /home/app/jbbarth/wiki/ mkdir patches
a) passage de CodeRay à UltraViolet :
wget -P patches http://www.redmine.org/attachments/download/1698/syntax_highlighting.diff patch -p0 < patches/syntax_highlighting.diff wget -P patches http://www.redmine.org/attachments/download/1699/redcloth.diff patch -p0 < patches/redcloth.diff wget -P patches http://www.redmine.org/attachments/1700/ultraviolet_highlighter.zip cd patches/ unzip ultraviolet_highlighter.zip cat ultraviolet_highlighter/README.txt apt-get install libonig-dev gem install ultraviolet cp -a ultraviolet_highlighter ../vendor/plugins/ cd ..
Les traductions ne sont pas bien passées, donc on édite à la main config/locales/en.yml et fr.yml, et on supprime les fichiers “.rej” correspondants.
b) pages parent automatiques :
wget -P patches http://www.redmine.org/attachments/download/2082/3108_automatic_parent_with_tests.diff patch -p0 < patches/3108_automatic_parent_with_tests.diff
c) correction d’un petit bug de Redcloth :
wget -P patches http://www.redmine.org/attachments/download/1728/redcloth_arobas.diff patch -p0 < patches/redcloth_arobas.diff
d) système de tagging :
Il y avait un patch proposé ici, mais il ne correspond pas vraiment à ce que je veux. Voici quand même une
méthode pour l’appliquer sur une copie de travail SVN :
wget -P patches http://www.redmine.org/attachments/download/2060/wiki_page_categories_20090520.patch sed -i -e 's#- redmine.orig/#- #g' -e 's#\+ redmine/#+ #g' -e 's#diff.*\.orig/\([^ ]*\).*#Index \1\n===============================================#g' patches/wiki_page_categories_20090520.patch patch -p0 < patches/wiki_page_categories_20090520.patch rake db:migrate
Après toutes ces modifs, on se rend compte que certains patches ne sont pas bien passés :
find . -iname "*.rej"
Normalement avec cet ordre de passage des patches, il n’y a que lib/redcloth3.rb dont on résoud les conflits à la main.
Voilà, hormis le système de tagging on a un wiki fonctionnel. Je ferai un nouveau post si je trouve quelque chose pour le support des tags. Il ne reste plus qu’à le remplir maintenant !
EDIT
- pour que l’activité du projet prenne en compte les changements du wiki par défaut : éditer lib/redmine.rb, et modifier autour de la ligne 155/156:
- activity.register :wiki_edits, :class_name => 'WikiContent::Version', :default => false + activity.register :wiki_edits, :class_name => 'WikiContent::Version', :default => true
- la même option permet que les recherches prennent en compte les entrées du wiki sur le projet courant
- pour cacher la liste déroulante de sélection des projets dans la recherche : édition de public/themes/wiki/stylesheets/application.css, ajout de :
select#scope { display:none; }
EDIT2
J’ai changé l’ordre de passage des patches pour avoir le moins de choses possibles à résoudre à la main.