Stéphane Arguin

Nouvel engin pour gérer mon site : org-page

org-page est un outils de génération de site web statique dans la même ligné que Jekyll, Hugo, Pelican, ... mais basé sur org-mode (Emacs). À partir de maintenant, je peux donc gérer et générer mon site dans le confort de mon éditeur préféré.

Fonctionalités

org-page, créé par Kevin Hu, permet de maintenir un blogue et des pages web de façon simple. Voici les plus importantes fonctionnalités (traduction libre du readme original sur GitHub) :

  • Gestion des fichiers .org et HTML avec Git
  • Publication incrémentale (en utilisant git diff)
  • Catégories
  • Étiquettes (tags)
  • RSS
  • Google Search
  • Thème par défaut pas piqué des vers
  • Support de thèmes personnalisés
  • Commentaires (Disqus/Duoshuo)
  • Analyses de traffic (Google Analytics)
  • Pages Index et À propos
  • Prévisualisation du site
  • Très configurable

Évidemment, le thème par défaut est en anglais. J’ai donc créé un thème personnalisé en français basé sur le thème par défaut (mdo).

Catégories

Je n’entrerai pas en détails dans toutes les fonctionnalités car il y a une belle documentation pour ça ;). Cependant voici les petits tracas que j’ai eu avec les catégories (et la correction apportée).

La façon dont les catégories sont gérées est très simple : un répertoire = une catégorie. Par défaut, le nom de la catégorie est donc le nom du répertoire capitalisé. Ça me cause un problème car le répertoire « blog » est nécessaire au fonctionnement de l’outils et donc la catégorie correspondante est « Blog ». En français, selon l’OQLF, on doit plutôt utiliser le terme « Blogue ».

J’ai créé une demande dans le projet org-page de Kevin dans GitHub expliquant la nature du problème (#163 - Need a way to change category name (I18N)). Kevin m’a proposé une solution mais ça ne fonctionnait pas. J’ai donc fait un fork du projet dans GitHub et ajouté la propriété :label (optionnelle) à la configuration des catégories. Voici un exemple :

(setq op/category-config-alist
      '(("reference"
         :label "Référence"  ;; <-- French label
         :show-meta t
         ;; [autres paramètres]))

J’ai créé un pull request dans GitHub pour demander à Kevin d’ajouter la nouvelle propriété au projet officiel. S’il accepte, tant mieux. Sinon ce n’est pas plus grave que ça, j’ai mon fork personnel. ;)

Processus

Création du repository

Premièrement, il faut créer le repository qui hébergera les fichiers .org du site. org-page fourni une commande pour le créer :

(op/new-repository)

Il suffit de l’exécuter directement dans Emacs (M-x op/new-repository) et de répondre aux questions posées. Évidemment, cette étape ne doit être exécutée qu’une seule fois.

Écriture d’un article

Une nouvelle idée d’article? Il suffit de lancer la commande suivante et de répondre aux questions :

(op/new-post)

Voici un exemple de fichier .org produit avec la commande précédente :

#+TITLE: Mon nouvel article
#+AUTHOR: Homer Simpson
#+EMAIL: foo@domain.com
#+DATE: 2016-01-22 Fri
#+URI: /blog/%y/%m/%d/mon-nouvel-article
#+KEYWORDS: keyword-1, keyword-n
#+TAGS: tag-1, tag-n
#+LANGUAGE: fr
#+OPTIONS: H:6 num:nil toc:nil \n:nil ::t |:t ^:nil -:nil f:t *:t <:t
#+DESCRIPTION: Article qui parle de ...

[contenu...]

Maintenant, c’est le temps de produire cet article...

Prévisualisation et publication

L’article est terminé. Tout est bien structuré. Il n’y a plus de fautes. Reste à le publier.

Git add/commit

Il faut commencer par ajouter l’article à Git :

$ git add article.org 
$ git commit

Prévisualisation du site

Avant de publier l’article, il est possible de prévisualiser le site avec la commande suivante :

(op/do-publication-and-preview-site)

Publication

La méthode que j’utilise pour publier mon site se fait en 2 étapes :

  • Générer le site
  • Le copier sur le serveur

Certaines personnes utilisent GitHub pour publier leur site. Moi j’ai déjà un hébergeur et un nom de domaine.

La génération du site se fait avec la commande :

(op/do-publication)

Il suffit de répondre aux questions (ou exécuter la fonction en passant en paramètres les options).

Ensuite, il faut simplement transférer le tout par FTP, rsync, ... Dans mon cas, c’est rsync.

--

Voilà la fin d’un survol rapide de l’outils que j’utilise maintenant pour maintenir mon site. Ma configuration est disponible sur GitHub à l’adresse suivante : https://github.com/StephaneArguin/emacs-config.

-SA-


Publicité

Comments

comments powered by Disqus