/*
 * ArraKISS; 🚀 Capsule;
 * tout; log; twtxt; à propos & contact;
 */

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


Drew DeVault

karolak


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


hypermail


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


archive des commentaires


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.

📫 Abonnez-vous pour recevoir les réponses

📚 Consultez les archives.

💨 Vous désinscrire