Archives des commentaires
Après avoir choisi de recevoir les commentaires faits sur ce blog sur une mailing list, on m'a suggéré quelques améliorations, notamment une archive des commentaires déjà envoyés pour qui veut suivre et participer à la discussion.
En passant, il semble que je ne sois pas le premier à avoir cette idée : Drew DeVault et karolak le font déjà.
Contrairement à ces derniers, j'auto-héberge les commentaires. Il me faut donc trouver une façon de générer des archives au format html. Il existe déjà hypermail. Ce dernier fonctionne bien, mais est malheureusement très vieux. Quelques ajustements sont donc nécessaires, surtout pour éviter l'apparition de mauvais encodages...
Installation d'hypermail
J'ai installé le paquet hypermail-2.3.0-gdbm. Il permet d'utiliser le flag -g accélérant la création des archives.
Génération des archives
J'utilise le script mltohtml pour mettre à jour les archives. Ce dernier n'ajoute que les messages les plus récents:
#!/bin/sh # stolen from : http://www.leopold.dk/~martin/stuff/update-archive.sh # add support for configuration file # require hypermail if [ $# -lt 3 ]; then echo "Grrr.." echo "\$1 - list dir" echo "\$2 - www dir" echo "\$3 - configuration file" exit 0 fi HYPERMAIL="/usr/local/bin/hypermail" LISTDIR="$1" WWWDIR="$2" test ! -d "${WWWDIR}" && mkdir -p "${WWWDIR}" NEWINDEX=$(cat $LISTDIR/index) LASTINDEXFILE=${WWWDIR}/last if [ ! -f $LASTINDEXFILE ]; then LASTINDEX=1 else LASTINDEX=$(cat $LASTINDEXFILE) fi # -g flag add gdbm support : faster for IT in $(jot - $LASTINDEX $NEWINDEX); do $HYPERMAIL -c "${3}" -g -i -u -d "${WWWDIR}" < $LISTDIR/archive/$IT done chown -R www:daemon ${WWWDIR} echo $NEWINDEX > $LASTINDEXFILE
Comme vous le voyez, il fait appel à un fichier de configuration.
Fichier de configuration d'hypermail
Voici le contenu du fichier de configuration après avoir épluché les docs restantes d'hypermail :
language = fr mbox = none eurodate = 1 label = Liste de diffusion du blog de prx i18n = 1 i18n-body = 1 showhtml = 0 ihtmlheaderfile = /home/pi/bla.ybad.name/bla-index.hyp mhtmlheaderfile = /home/pi/bla.ybad.name/bla-mindex.hyp attachmentsindex = 0 defaultindex = subject avoid_indices = author, thread spamprotect_id = 1
Outre les options "i18n" et language qui permettent un meilleur support de notre langue, je désactive carrément les vues par auteur et par fil de discussion. Pour ce dernier, la raison est simple : hypermail se mélange avec l'échappement de certains caractères. Autrement, dit, au lieu de lire "thème", on lit "theagraveme"... J'en profite en même temps pour proposer une interface moins chargée de trucs inutiles, même si on doit pouvoir faire mieux.
Les 2 options les plus importantes restent celles-ci :
ihtmlheaderfile = mhtmlheaderfile =
Je peux préciser des templates, et donc améliorer un peu l'affichage.
Templates
Dans les templates, je précise où trouver le bon CSS et précise l'encodage :
<!doctype html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" href="/favicon.svg" type="image/svg+xml"> <link rel="icon" href="/favicon.png" type="image/png"> <link rel="stylesheet" type="text/css" href="/style.css"> <title>%l</title> <style type="text/css"> dfn {font-weight: bold;} #mid { font-size:0.9em;} #received { float:right;} address { font-style:inherit;} .quotelev1 {color : #990099} .quotelev2 {color : #ff7700} .quotelev3 {color : #007799} .quotelev4 {color : #95c500} .period {font-weight: bold} body {background:#2e3440; margin: auto; padding: 0 2%;} </style> </head> <body> <h1>%l</h1> <div>
Pour le template des messages, c'est identique avec le "" en moins.
Génération
Tous les jours, les archives sont générées. J'ai juste ajouté dans :/etc/daily.local (ou un crontab si vous préférez...) :
/home/pi/bin/mltohtml \ /var/spool/mlmmj/bla/ \ /var/www/htdocs/prx.ybad.name/commentaires/ \ /home/pi/bla.ybad.name/bla-hypermail.cfg
Et c'est par où ?
Et après ?
Il est clair qu'un remplaçant à hypermail serait le bienvenu... Des volontaires? :D
Plus sérieusement, si vous connaissez mieux qu'hypermail, ça me tente bien :)
Titre
Une réaction?
📧 Envoyez votre commentaire par mail.