Journal éClaircie : un moteur de blog et de site personnel statique et sans nuage

31
13
juin
2014

éClaircie est un moteur de blog et de site personnel 100% statique et sans nuage (cloud-less). En effet, les moteurs statiques reposent souvent sur l'utilisation de services externes en ligne pour la gestion des commentaires (ex Disqus), des recherches (ex barre de recherche Google) ou des vidéo (Youtube). Ces services externes posent cependant des problèmes liés à la protection de la vie privée. Par exemple, ils peuvent être utilisés pour tracer les utilisateurs d'un site à l'autre, y compris sans connexion. De plus, les données étant stockées par le service externe, vous n'avez plus la maîtrise totale de vos données car celles-ci peuvent disparaître du jour au lendemain.

Le moteur éClaircie essaie de répondre à ces problèmes ; il s'agit en quelque sorte d'un moteur de site oueb 2.0 avec les technologies du 1.0. éClaircie est basé sur le générateur de documentation Sphinx. Voici ses principales fonctionnalités :

  • syntaxe Restructured Text (ReST)
  • multilingue, avec possibilité de langue "par défaut" (par exemple, un site avec les articles traduits en français et les autres en anglais)
  • commentaires par mail
  • moteur de recherche intégré (celui de Sphinx)
  • thèmes multiples (sélection du thème par catégorie)
  • support multimédia complet :
    • galerie d'images avec miniatures
    • lecteur audio (HTML5)
    • intégration de vidéos Youtube (avec protection anti-pistage, Youtube n'est pas contacté tant que la vidéo n'est pas lue)
  • flux RSS
  • génération de contenu possible à l'aide de scripts Python
  • dissimulation des emails
  • logiciel libre (licence GNU GPL v3)

Comparé à d'autres moteurs de blog statiques, tel que Pélican, éClaircie est basé sur Sphinx, ce qui permet de réutiliser le moteur de recherche de Sphinx, et aussi de n'avoir qu'un seul moteur ReST à apprendre (si vous utilisez déjà Sphinx pour écrire de la documentation, chaque moteur ayant ses subtilités propres). éClaircie permet aussi les commentaires par mail.

Comparé à d'autres moteurs de blog basés sur Sphinx, tel que Tinkerer, éClaircie agit à la fois comme préprocesseur et comme extension de Sphinx. Cette architecture particulière permet le support multilingue. De plus, éClaircie ne recontruit que les pages modifiées du blog, alors que Tinkerer reconstruit tout de zéro à chaque fois, ce qui peut être long pour des sites volumineux.

La première version d'éClaircie (0.1) est disponible ici : https://pypi.python.org/pypi/eClaircie

Site oueb d'éClaircie : http://www.lesfleursdunormal.fr/static/informatique/eclaircie/index_fr.html

Un exemple de site avec éClaircie : http://www.lesfleursdunormal.fr

  • # nimage

    Posté par (page perso) . Évalué à 1.

    Salut,

    J'utilise Pelican mais ceci a l'air très chouette.

    Y'a t il moyen de voir à quoi ressemble les thèmes inclus ou doit on s'attendre à devoir triturer la bête ?

    ++

    • [^] # Re: nimage

      Posté par (page perso) . Évalué à 3.

      Pour l'instant il n'y a que 2 thèmes disponibles, que l'on peut voir ici et là :

      http://www.lesfleursdunormal.fr/static/informatique/index_fr.html

      http://www.lesfleursdunormal.fr/static/poesies/index_fr.html

      • [^] # Re: nimage

        Posté par (page perso) . Évalué à 2.

        Je lis dans la page de présentation que les commentaires sont gérés au moyen du courriel. Comment est-ce que cela se passe pour les utilisateurs et modérateurs ?

        • [^] # Re: nimage

          Posté par (page perso) . Évalué à 6.

          En fait c'est très simple : les commentaires arrivent dans la boîte mail, avec un code particulier dans le champ "To" qui permet de les identifier (et typiquement de les trier dans un dossier à part). Ensuite, lors de la prochaine mise à jour du site, les nouveaux messages dans ce dossier sont analysés pour mettre à jour les commentaires. Il est possible de modérer les commentaires en supprimant les mails correspondant.

          Après, si l'on veut que la publication soit automatique, il faut automatiser la réception des mails et la mise à jour du site par exemple dans le cron.

          • [^] # Re: nimage

            Posté par (page perso) . Évalué à 2.

            L'auteur (Bernhard Scheirle) me signale son greffon pelican qui fonctionne de la même façon, d'ailleurs.

            Author Website Github
            Bernhard Scheirle http://blog.scheirle.de https://github.com/Scheirle
          • [^] # Re: nimage

            Posté par (page perso) . Évalué à 3.

            Ou par exemple en lançant la génération du site à la réception d'un message. Pour éviter des problèmes liés au temps de génération du site (s'il est généré trop vite, le message ne sera peut-être pas encore complètement écrit dans la boîte aux lettres correspondante), l'idéal serait d'avoir une commande de génération capable de prendre un nouveau commentaire en entrée standard : à la réception d'un nouveau message avec tel sujet, on le livrerait à la commande de génération.

            • [^] # Re: nimage

              Posté par (page perso) . Évalué à 2.

              Avec inotify tu peux attendre que le descripteur de fichiers soit fermé. J'utilise incron en production depuis un an, ça fonctionne b

      • [^] # Re: nimage

        Posté par . Évalué à 2. Dernière modification le 16/06/14 à 15:19.

        Salut,

        Est-ce que ton projet supporte les formules TeX et la coloration syntaxique pour le code ?

        Sinon pour les autres moteurs j'en étais resté à :

        • Hakyll → Markdown, TeX, coloration syntaxique
        • Jekyll → Markdown, Textile, Liquid, HTML, CSS
        • Nanoc → Markdown, Textile, Haml
        • Microbe → Dérivé de Pelican, gère les commentaires, nécessite python sur le serveur.
        • [^] # Re: nimage

          Posté par (page perso) . Évalué à 3.

          Pour la coloration syntaxique, oui (c'est basé sur Sphinx qui sert normalement à faire de la doc de logiciel et de librairie de code). Et pour les formules TeX, on peut utiliser le plugin "mathbase" de Sphinx. C'est aussi l'intérêt d'avoir réutiliser Sphinx !

  • # installation sous windows

    Posté par . Évalué à 1.

    Hello,

    Bravo pour ton projet. J'aime assez l'idée que ça soit statique. Je l'installerais bien sur mon PC du boulot, est-ce que ça peut s'installer sur du windows ?

    • [^] # Re: installation sous windows

      Posté par (page perso) . Évalué à 2.

      A priori non : j'ai utilisé des liens symboliques à plusieurs reprises pour éviter d'avoir à recopier des fichiers. Il y a aussi le problème des / et des \, que j'ai laissé de côté car pas facile à gérer avec Sphinx, qui je crois attends des / mêmes sous windows…

      • [^] # Re: installation sous windows

        Posté par (page perso) . Évalué à 3.

        On peut faire des liens symboliques sous windows (commande mklink). C'est un peu galère au niveau des permissions : l'utilisateur doit posséder la permission adéquate et ne pas être admin (pas réussi à comprendre pourquoi).

        Et pour les / au lieu de \ ça doit pouvoir se régler aussi.

        • [^] # Re: installation sous windows

          Posté par (page perso) . Évalué à 1.

          Ça fait un moment que j'ai arrêté windows :), donc pour les liens je ne savais pas… Les /, ça peut effectivement se régler (mais sans machine windows, difficile de tester).

  • # Commentaires

    Posté par (page perso) . Évalué à 7.

    J'aime bien l'idée des commentaires par courrier électronique, ça me fait penser au fonctionnement du BTS Debian. Belle idée !

  • # Tuto?

    Posté par (page perso) . Évalué à 2.

    éClaircie a l'air vraiment bien, mais ça manque un peu de documentation. Un petit tutorial aiderait beaucoup à se démarrer.

    http://devnewton.bci.im

    • [^] # Re: Tuto?

      Posté par (page perso) . Évalué à 1.

      Merci :)
      Pour l'instant il n'y a pas beaucoup de doc ; en fait les seul éléments disponibles (hormis le code source !), c'est un site d'exemple qui est inclut avec les sources et qui montre les principales directives (celle qui sont ajoutées à ReST pour gérer les vidéos, les galleries photos, les langues, etc).

      Une peut trouver une version en ligne de ce mini site ici : http://www.lesfleursdunormal.fr/static/informatique/eclaircie/example_site/index_fr.html

      • [^] # Re: Tuto?

        Posté par (page perso) . Évalué à 2.

        J'ai trouvé un petit bug sur les galeries avec firefox: quand je clique sur l'un des boutons pour voir l'image suivante ou précédente, cela ferme la galerie.

        http://devnewton.bci.im

        • [^] # Re: Tuto?

          Posté par (page perso) . Évalué à 1.

          C'est bizarre car j'ai justement testé ça sur Firefox… Est-ce que tu es sûr qu'il y a bien une image suivante ou précédente ? Lorsqu'il n'y a plus d'image à afficher, la galerie se termine quand on clique sur l'un des boutons "<" ou ">" (peut-être que ça serait mieux de cacher les boutons dans ces cas-là !).

          • [^] # Re: Tuto?

            Posté par (page perso) . Évalué à 2.

            Ah oui tiens c'est ça!

            http://devnewton.bci.im

            • [^] # Re: Tuto?

              Posté par (page perso) . Évalué à 1.

              Je viens de corriger ça : désormais les flèches sont cachées lorsqu'il n'y a pas d'image précédente / suivante.
              Merci pour m'avoir permis d'identifier ce problème :)

  • # question sur le moteur de recherche

    Posté par . Évalué à 3.

    moteur de recherche intégré (celui de Sphinx)

    Comment fonctionne ce moteur de recherche ? en javascript uniquement ?
    Est-ce qu'il utilise un index statique ?
    Si c'est dynamique comment ça fonctionne ? Le javascript va faire une recherche parmi une liste statique de pages ?

    • [^] # Re: question sur le moteur de recherche

      Posté par (page perso) . Évalué à 3.

      Si c'est dynamique comment ça fonctionne ? Le javascript va faire une recherche parmi une liste statique de pages ?

      Il faudrait pouvoir charger les données dans une base de sql en mémoire (par exemple via sqlite recompilée en javascript) et faire les recherches à travers cette base…

      ----> []

    • [^] # Re: question sur le moteur de recherche

      Posté par (page perso) . Évalué à 3.

      D'après ce que j'ai pu voir, tout est en javascript. Sphinx indexe les pages lors de leur compilation, et génère l'index (qui est donc statique). Il y a aussi un répertoire avec les sources (au format ReST) des pages qui servent pour afficher des extraits.
      Ce moteur de recherche est entre autre utilisé pour la doc de Python et c'est assez pratique : ça permet de rechercher dans la doc même quand on n'a pas accès à Internet.

      • [^] # Re: question sur le moteur de recherche

        Posté par . Évalué à 3.

        Pour aller voir dans les entrailles, en prenant l'exemple de la doc de python :

        https://docs.python.org/2/searchindex.js

        (attention, ce JS est très gros puisqu'il contient tous les mots de la doc python avec les endroits de leur(s) occurrence(s))

        C'est effectivement plutôt bien fait, même si j'ai souvenir d'avoir vu un « bug » qui fait que le contenu des titres n'est pas indexé, il me semble.

  • # Performances ?

    Posté par (page perso) . Évalué à 2.

    De plus, éClaircie ne reconstruit que les pages modifiées du blog, alors que Tinkerer reconstruit tout de zéro à chaque fois, ce qui peut être long pour des sites volumineux.

    Je me suis penché aussi sur la question des moteurs de blog statiques et mon blog est propulsé par fBlog, un logiciel de mon cru. J'ai actuellement 319 billets et leur régénération prend moins d'une seconde.

    J'ai conçu mon moteur pour qu'il puisse satisfaire un blogueur intensif qui posterait un billet par jour pendant 50 ans. Au départ, j'avais envisagé moi aussi une routine pour ne régénérer que le strict nécessaire. Mais quand j'ai vu que ma machine (5 ans d'âge, avec HDD ordinaire) tenait la charge (moins d'une minute de traitement pour ce blogueur fou), je ne me suis pas embêté… Surtout, qu'avec un peu plus d'effort sur l'algorithmique, je devrais pouvoir aller encore plus vite. En fait, la limitation en vitesse est le système de fichier (au niveau de l'option de la journalisation choisie) et le type mémoire de masse (SSD vs HDD).

    je vois que les moteurs de blog statiques intéressent encore un peu de monde ! Ça me motive donc pour que j'active le codage de ma bestiole.

    • [^] # Re: Performances ?

      Posté par (page perso) . Évalué à 2.

      Pour ce qui est des performances, l'essentiel du temps de compilation avec eClaircie est en fait pris par Sphinx. Je n'ai pas creusé plus pour savoir à quoi il correspond, peut-être que l'indexation pour le moteur de recherche est coûteuse en temps ?

      Les blogs statiques restent la meilleure manière de garder un contrôle total sur ses données… donc ça m'intéresse !

  • # "Youtube n'est pas contacté tant que la vidéo n'est pas lue"

    Posté par (page perso) . Évalué à 4.

    Salut,

    je me demandais comment cette fonctionnalité était rendue possible et si ça pouvait être repris sur n'importe quel CMS (j'utilise PluXml)

    Merci

  • # merci pour la gallery!

    Posté par . Évalué à 1.

    J'ai pas besoin du moteur de blog, je fais tout à la main, mais merci pour la gallery d'image en JS tout simple !
    Je cherchais ça depuis longtemps passivement et cela remplit son boulot.

    Merci!

  • # Plus d'information sur la gestion des commentaires ?

    Posté par . Évalué à 2.

    Je gère un site web statique et j'utilise effectivement Disqus pour les commentaires. Je regrette les problèmes de vie privée (et le fait que ce ne soit pas du logiciel libre), mais je n'ai pas trouvé de solution qui:

    • ne me demande pas de maintenance de mon côté
    • filtre efficacement le spam pour moi
    • permette à mes lecteurs de poster un commentaire facilement (genre le login qu'ils ont l'habitude d'utiliser va marcher, et pas leur demander de s'inscrire d'abord à Twitter ou Wordpress)

    Je suis intéressé par l'approche "par commentaires" que tu proposes, mais sur ton blog montré en exemple… personne n'a posté de commentaire. Je me pose donc un peu des questions sur comment ça fonctionne, et qu'est-ce que ça donne en pratique pour les utilisateurs.

    Je me pose aussi des questions sur l'utilisabilité du "lien mail" pour les personnes qui n'utilisent pas de client mail, mais un webmail. Est-ce qu'ils peuvent être envoyés vers leur webmail quand ils cliquent sur le lien ? (J'imagine que sur les téléphones ça marche ?)

    • [^] # Re: Plus d'information sur la gestion des commentaires ?

      Posté par (page perso) . Évalué à 3.

      Je me pose aussi des questions sur l'utilisabilité du "lien mail" pour les personnes qui n'utilisent pas de client mail, mais un webmail.

      Il existe des extensions pour ça mais rien de natif je crois.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Plus d'information sur la gestion des commentaires ?

      Posté par (page perso) . Évalué à 3.

      Je suis intéressé par l'approche "par commentaires" que tu proposes, mais sur ton blog montré en exemple… personne n'a posté de commentaire.

      Si, moi il me semble. S'il n'apparaît pas, c'est que ça ne marche pas, ou que la génération n'a pas été faite.

    • [^] # Re: Plus d'information sur la gestion des commentaires ?

      Posté par . Évalué à 2. Dernière modification le 16/06/14 à 14:11.

      Je me pose aussi des questions sur l'utilisabilité du "lien mail" pour les personnes qui n'utilisent pas de client mail, mais un webmail. Est-ce qu'ils peuvent être envoyés vers leur webmail quand ils cliquent sur le lien ? (J'imagine que sur les téléphones ça marche ?)

      C'est un point tellement capital que les bons navigateurs intègrent par défaut la gestion des liens mailto: par un webmail

      Exemple avec Chrome et son gestionnaire de protocoles

    • [^] # Re: Plus d'information sur la gestion des commentaires ?

      Posté par (page perso) . Évalué à 1.

      Pour ce qui est de la maintenance, les commentaires par emails demandent généralement de recompiler le site en cas de nouveaux commentaires. C'est un inconvénients ou un avantage (pour modérer), selon. On peut le contourner en automatisant la récupération des emails et la recompilation, à intervalle régulier (mais ça demande une machine toujours allumé, donc presque un serveur… on s'éloigne du blog statique).

      Pour le spam, si les commentaires arrivent par mails, ils peuvent être filtrés par spamassassin et compagnie. De plus, les emails peuvent être protégées dans la page web. Dans éClaircie, il y a une triple protection des emails : utilisation d'entités XML dans l'adresse, découpage de l'adresse en plusieurs morceaux qui sont recollés par du javascript, et affichage de l'email seulement si la page est visualisée à partir de son adresse d'origine (si la page est téléchargée, les adresses sont cachées !).

      Pour le lien mail, les navigateurs peuvent prendre en charge certains fournisseurs de boîtes aux lettres (en tout cas Firefox le fait, je crois qu'il y a Yahoo et GMail qui sont proposés par défaut entre autres).

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.