Astuces Octopress

Octopress est une application en ligne de commande permettant de générer un journal (blog) et des pages statiques avec le bénéfice d'une logique interne, notamment grâce à l'utilisation du langage de templating Liquid.

Profitant d'une envie de changer son design (je voulais plus de lisibilité et moins d'éléments décoratifs), j'ai récemment migré mon blog de Wordpress à Octopress avec le plus grand bonheur : finis les délires de bases de données capricieuses, finies les mises à jour qui cassent les plugins, finies les attaques de méchants pirates, les pages qui laggent, etc. <!– more –>

Je ne vais pas vous enseigner les arcanes de Jekyll/Octopress, surtout que je ne suis pas encore un expert dans le domaine…

Pour vous initier vous pouvez lire, entre autres, cet article en français, ou encore celui-ci en anglais.

Voici les trouvailles que j'ai glanées ou créées pour faire conformer mon blog à mes besoins et envies.

Inversion de la navigation

Par défaut, Octopress génère des liens de navigation en bas de la page d'index qui vont dans ce que j'estime être le mauvais sens, en tout cas dans ma perception des choses.

En effet, pourquoi cliquer “Suivant” pour se retrouver sur une page plus ancienne ?! Encore pire, cliquer sur “Précédent” et revenir à la page plus récente : une horreur.

Il faut donc procéder à une petite permutation dans le fichier index.html :

{% if paginator.next_page %}
    <a href="{{paginator.next_page}}" class="prev">Plus vieux</a>
{% endif %}
{% if paginator.previous_page %}
    <a href="{{paginator.previous_page}}" class="next">Plus récent</a>
{% endif %}

Ne pas perdre ses images

Si votre blog est réglé avec l'option permalink: pretty, Octopress va générer un dossier pour chaque post, et placer dedans l'article dans un fichier index.html. C'est pratique et ça permet de stocker les images associées à leur post dans un endroit unique.

Sauf que la résolution des adresses relatives ne marche pas très bien si, comme dans mon cas, on souhaite que le post se retrouve à plusieurs endroits : archives, catégories, etc. Quand l'URL change, le lien est brisé.

Il vaut donc mieux stocker toutes les images dans le dossier images général et y faire référence de manière absolue en rajoutant un slash :

{% img /images/image.png %}

et modifier le permalink dans _config.yml pour ne créer les liens qu'avec le titre par exemple :

permalink: /:title/

Date

Si la date est au format anglais : “July 22nd 2007”, passez en mode jour/mois/année dans le fichier _config.yml :

date_format: "%d/%m/%y"

Markdown

Moteur de rendu

Dans _config.yml vous pouvez choisir votre moteur de rendu pour le Markdown.

Par défaut c'est Rdiscount qui est utilisé, et tant mieux : c'est de loin le plus rapide, et également un des plus stables.

Si vous avez l'habitude du rendu de Maruku, Redcloth ou autres, laissez-tomber et ne changez pas la config, la génération de votre site prendrait soudain un temps fou.

En effet, Rdiscount, écrit en C, est environ 40 fois plus rapide que les autres !

Titlecase

Par défaut, Octopress transforme la casse de vos titres de posts pour la passer en “titlecase”, c'est-à-dire avec une majuscule à chaque mot.

Autant en anglais ça peut passer, c'est dans les moeurs, autant en français c'est une horreur et rend la lecture de la phrase difficile.

Heureusement Brandon Mathis, l'auteur du frameworks, y a pensé, et vous pouvez changer la valeur à false dans le même fichier _config.yml :

titlecase: false

Description

N'oubliez pas de renseigner un champ description dans l'en-tête de vos pages ou posts, ce champ sera repris et placé dans un tag meta, utile pour le SEO.

    ---
    layout: post
    title: "De Alien à Prometheus"
    date: 2012-09-22 18:03
    description: De Alien à Prometheus, anecdote d'enfance
    comments: true
    footer: true
    categories: cinema
    ---

Terminal

ZSH

Si comme moi vous utilisez ZSH, il y a un conflit avec rake, il faut rajouter cet alias dans votre ~/.zshrc pour rétablir la situation :

alias rake="noglob rake"

Aliases

Tant qu'on y est, des alias utiles :

alias ogen="bundle exec rake generate"
alias oprev="bundle exec rake preview"
alias odep="bundle exec rake deploy"
Auteur: Eric Dejonckheere