Dynastie 0.1

Thursday, 07 February 2013
|
Écrit par
Grégory Soutadé

Logo Dynastie

Après 7 mois de développement, la version 0.1 de Dynastie est en ligne. Dynastie est un générateur de blog statique, c'est-à-dire qu'il va générer un ensemble de pages HTML statiques à partir de modèles (template) et d'articles. Contrairement à l'ensemble des moteurs de site web dynamiques où les pages sont regénérées à chaque connexion. L'avantage d'un tel procédé est qu'on ne fait le travail qu'une seule fois. Il suffit ensuite de servir les pages qui existent déjà avec nginx (qui est très bon pour ça). On optimise ainsi le temps de réponse et la charge serveur (qui n'est pas très puissant).

C'est tellement simple à réaliser qu'il y a une multitude de générateur disponibles sur le net. J'aurais pu utiliser un de ceux là, mais il manquait plusieurs fonctionnalités :

  • Un éditeur WYSIWYG accessible via une interface web
  • Écrit en Python
  • La compression gzip des pages générées
  • Qui accepte le HTML en entrée
  • Qui n'utilise pas Disqus
  • Qui n'utilise pas Mako/Jinja/Cheetah (des moteurs Python)
  • Qui est simple

Au début, j'ai commencé par un site en PHP, mais j'ai rapidement abandonné au profit de Python et surtout du framework Django. J'ai tout de suite été conquis par sa simplicité. Bref, Dynastie supporte toutes les fonctions traditionnelles d'un blog et même plus :

  • Index dans l'ordre anti chronologique
  • Categories
  • Tags
  • Flux RSS/Atom
  • Commentaires (dynamiques et sans Disqus)
  • Recherche (dynamique)
  • éditeur WYSIWYG en ligne
  • Coloration syntaxique (avec Pygments)
  • Prévisualisation
  • Multi blogs
  • Multi utilisateurs
  • On ne regénère que ce qui est nécessaire

Les principes de Dynastie sont simples :

  • Les articles sont stockés dans des fichiers HTML séparés
  • Les méta informations (titres, tags, commentaires, ...) sont stockées dans une base de données SQLite ce qui permet une manipulation aisée
  • Les modèles sont stockés sous le dossier "sites/<nom du site>", ils sont constitués de pages HTML avec des directives en XML (contrairement à la plupart des générateurs) pour interagir avec le moteur

Lors de la génération, Dynastie mélange tous ces éléments dans le dossier "sites/<nom du site>_output". Il copie aussi tous les fichiers ne commençant pas par "_" (qui sont les fichiers de modèle en général). Mais ça ne s'arrête pas là : il est possible d'ajouter "à la volée" des commentaires ainsi que de faire des recherches dans les pages du site généré. C'est cet aspect à la fois DYNAmique et StaTIquE qui a donné son nom au générateur.

Tous ces éléments d'architecture justifient sa création, qui est plus qu'une simple copie. Bien sûr, le design général du site fait pitié, mais c'est simple et efficace !

Dynastie process

#
1
De
Denis Bernard (deber)
, le
07 February 2013 22:02
J'avoue avoir eu un peu de mal à comprendre qu'il y avait une possibilité de commentaire : ce serait bien d'avoir un pied de page au bas de chaque post avec un lien "commentaires". Si je n'avais pas lu et relu la description de dynastie, je n'y aurais même pas pensé !

De même, ce serait bien de souligner le titre de chaque post afin de montrer qu'il existe un permalien. (il pourrait y avoir aussi un lien "permalien" au bas des posts).

Je m'étonne aussi de l'absence du HTML5 qui est taillé sur mesure pour les blogs (balises 'article', 'header', 'footer, 'nav' et 'aside'). Sinon, félicitations pour le job !
Répondre
Auteur :


e-mail* :


Le commentaire :


#
2
De
Greg
, le
09 February 2013 08:02
Merci de ton retour Denis !

J'ai pris en compte toutes tes suggestions, ça rend mieux maintenant.

J'en ai profité pour mettre une version 0.2 qui corrige quelques bugs.
Répondre
Auteur :


e-mail* :


Le commentaire :


#
3
De
Denis BERNARD
, le
09 February 2013 08:02
BUG : j'ai bien été notifié par mail de ta réponse ; mais le lien qui a été mis dans la réponse a un bug : il y a un slash devant le croisillon de l'url suivante :"http://blog.soutade.fr/post/2013/02/dynastie-01.html/#comment_2".
Bien cordialement.
Répondre
Auteur :


e-mail* :


Le commentaire :


#
4
De
Greg
, le
09 February 2013 09:02
Corrigé, merci !
Répondre
Auteur :


e-mail* :


Le commentaire :


Auteur :


e-mail* :


Le commentaire :




* Seulement pour être notifié d'une réponse à cet article
* Only for email notification