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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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.

  • # Commentaires

    Posté par  (site Web personnel) . É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  (site Web personnel) . Évalué à 2.

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

    Incubez l'excellence sur https://linuxfr.org/board/

    • [^] # Re: Tuto?

      Posté par  (site Web personnel) . É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  (site Web personnel) . É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.

        Incubez l'excellence sur https://linuxfr.org/board/

        • [^] # Re: Tuto?

          Posté par  (site Web personnel) . É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  (site Web personnel) . Évalué à 2.

            Ah oui tiens c'est ça!

            Incubez l'excellence sur https://linuxfr.org/board/

            • [^] # Re: Tuto?

              Posté par  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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  (site Web personnel) . É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 ?)

Suivre le flux des commentaires

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