Journal Plstblog, un générateur de blog statique écrit en Perl

Posté par (page perso) .
9
17
mai
2011

Les pages github c'est pratique pour héberger le site de votre/vos projet(s), mais pour un blog c'est une autre histoire.

En effet, vous ne pouvez mettre que du HTML, il vous faut donc un générateur de blog statique. En gros vous écrivez vos articles sur votre machine, générez les pages HTML et envoyez ça sur le dépôt git.

J'en avais besoin d'un simple : un header, l'article, un footer. J'ai donc profité de ce besoin pour apprendre le perl et ainsi né : Perl Static Blog (soit: plstblog).

  • La configuration est simple (réduite au minimum) :

    blogurl=http://example.com/blog
    datefmt=%T %D
    localpath=/path/to/your/blog
    localposts=/path/to/your/articles.markdown
    
    tmpl.top=/path/to/your/header.template
    tmpl.bot=/path/to/your/footer.template
    
    tmpl.idx.top=/path/to/your/index/header.template
    tmpl.idx.bot=/path/to/your/index/footer.template
    
  • Les articles sont écrits dans la syntaxe Markdown

  • La gestion des index est faites par vous même (la date de la dernière modification de l'article est affiché en page d'index).

  • Vous avez 4 templates :

    • tmpl.top : Le code HTML du header d'un article.
    • tmpl.bot : Le code HTML du footer d'un article.
    • Ces deux dernières templates peuvent contenir les variables suivantes :
      • {%title%} : Titre de l'article.
      • {%idx%} : Index de l'article.
      • {%ohidden} : Si l'article précédent n'existe pas, cela vaut "hidden" (vous pouvez par exemple le mettre dans l'attribut de balise class=).
      • {%nhidden} : Pareil qu'au dessus mais pour l'article suivant.
      • {%otitle%} : Titre de l'article précédent.
      • {%oidx%} : Index de l'article précédent.
      • {%ntitle%} : Titre de l'article suivant.
      • {%nidx%} : Index de l'article suivant.
    • tmpl.idx.top : Le code HTML du header de la page d'index.
    • tmpl.idx.bot : Le code HTML du footer de la page d'index.

La page d'index est juste une liste de la forme :

<ul>
    <li><span class="link"><a href="@blogurl@/post/{%idx%}.html">{%title%}</a></span><span class="date">Last edition: @date according to datefmt@</span></li>
    <li>...</li>
</ul>

Projet à voir sur github. ;)

  • # Github en Perl

    Posté par . Évalué à 3.

    github ça pue c'est pas libre.

    • [^] # Re: Github en Perl

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

      Github, bien que malheureusement non libre, offre une forge bien pratique, je cite :

      • dépôt git facile à mettre en place.
      • navigateur de sources/commits, la fork queue etc...
      • bug tracker et roadmap performante et simple à mettre en place
      • wiki qu'on peut éditer en différent langages (Textile, Mardown, le reste je sais plus) et que l'on peut gérer via git également
      • mise en ligne de pages HTML pour gérer le site du projet (ou un simple page de présentation).

      Bref, c'est powerful et malheureusement non-libre.

      Après, je ne connais pas les alternatives (gitorious ne propose pas autant de fonctionnalités à ma connaissance, il me semble que c'est juste un dépôt git en fait).

      • [^] # Re: Github en Perl

        Posté par . Évalué à 5.

        Gitorious, c'est un peu plus qu'un dépôt Git quand même. Le navigateur de source, le wiki, la file de "merges", tout ça est dedans aussi.

        • [^] # Re: Github en Perl

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

          Il manque quand même le bugtracker. Ce serait vraiment pratique.

          « 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: Github en Perl

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

        c'est powerful

        JCVD aussi

    • [^] # Re: Github en Perl

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

      github, sourceforge & co, ça pue, c'est du minitel 2.0.

      Si vous pouvez vous autohéberger, je recommande fortement fossil ( http://fossil-scm.org ), un gestionnaire de version avec wiki et bug tracker intégré.

      C'est très pratique pour les petits projets pour lesquels on n'a pas envie de monter toute une infrastructure.

      http://devnewton.bci.im

  • # ikiwiki

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

    Ikiwiki est aussi un générateur de page web statique qui sais aussi faire les blog et qui est lui aussi écrit en perl et qui gère aussi le markdown...

  • # Comparaison avec Jekyll ?

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

    Par curiosité, ça fait quoi de plus/mieux que Jekyll ?

  • # Flux RSS

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

    Ce qui serait pas mal est d'ajouter un flux RSS, si ce n'est pas déjà fait.

    En tout cas j'aime bien le concept. Ça a l'air très facile à mettre en place.

    Si on n'a pas besoin que les visiteurs puissent écrire des commentaires, c'est suffisant comme outil.

    « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

  • # Ton avatar.

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

    Me fait peur.

    Je sais pas pourquoi, mais avec le découpage de l'image et la tête que le mec fait sur la photo ben ça me fait l'impression qu'il a la tête complètement retourner vers l'arrière.

    (Ha c'est toi ? Bah pardon mais tu fais peur.)

  • # mod_autoindex ftw

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

    Sinon mod_autoindex, markdown, 20 lignes de sh, 7 lignes de Makefile pour faire complet et le tour est joué : http://bl0rg.krunch.be/
    Je vous laisse le soin de trouver le Makefile qui vous indiquera l'autre fichier utile.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: mod_autoindex ftw

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

      Le mercredi 18 mai 2011 à 01:11 +0200, Krunch a écrit :
      > Sinon mod_autoindex, markdown, 20 lignes de sh, 7 lignes de Makefile
      > pour
      > faire complet et le tour est joué : [http://bl0rg.krunch.be/][1]

      ouais c'est pas mal mais t'a pas de rss/atom

      • [^] # Re: mod_autoindex ftw

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

        T'es pas le premier à demander mais j'ai tendance à pas implémenter ce que j'utilise pas.

        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

        • [^] # Re: mod_autoindex ftw

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

          Le mercredi 18 mai 2011 à 22:11 +0200, Krunch a écrit :
          > j'ai tendance à pas implémenter ce que
          > j'utilise pas.

          C'est tes visiteurs qui l'utiliseront pas toi.

          • [^] # Re: mod_autoindex ftw

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

            Si un visiteur l'implémente, j'envisagerai de l'intégrer.

            pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # pas de solution clé en main?

    Posté par . Évalué à 3.

    Apparemment, tu as codé plus pour le plaisir que parce que tu n'as rien trouvé d'adapté à tes besoins.

    Juste par curiosité: tu as regardé les solutions existantes (pour l'inspiration, tout ça?).

    Je me suis toujours dit que si je devais faire un nouveau blog (le mien est hébergé chez over-blog... enfin, un peu à l'abandon), je chercherais un truc léger et compatible avec un des standards existants (Blogger, Metaweblog, ou autre) pour pouvoir utiliser des clients genre Blogilo.

    • [^] # Re: pas de solution clé en main?

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

      J'ai regardé très vite fait quelques logiciels du genre (shblog notamment). Mais ne trouvant rien au bout de 10min j'ai fait le mien :)

      De plus ici, comme je l'utilise pour Cream-Browser (donc sur github) tout est géré via git : j'édite, je génère, je commit/push et hop.

      Au niveau standard, la encore une fois je l'ai développé selon mes besoins (donc selon les contraintes de github: 100% (x)HTML), après peut-être qu'il y avait quelque chose de plus standard et adapté je ne sais pas :)

      plstblog c'est juste le strict minimum :

      • poster des articles.
      • un ptit index.
      • bientôt un flux Atom.
  • # RSS disponible

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

    J'ai ajouté aujourd'hui la génération du flux RSS 2.0, voici ce qu'il faut ajouter dans la config :

    rss=yes
    rss.title=Your RSS title
    rss.link=http://example.com/
    rss.lang=en
    rss.description=Example of RSS summary
    rss.author=author@example.com
    

    Il y a encore quelques détails à peaufiner (création d'une variable pour ajouter le lien du flux à la page (x)HTML par exemple) mais cela marche niquel pour l'instant :)

Suivre le flux des commentaires

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