Dans le cas où vous souhaiteriez faire interagir votre blog Jekyll avec le monde extérieur (application mobile, widget “dernier post”, etc.) ; il se peut que vous soyez amené à chercher le moyen de créer une API.

Certes, le flux RSS généré au jekyll build peut accomplir cette tâche ; mais en ce qui me concerne, je ne jure que par le JSON.

L’astuce

Ce qui suit tient plus de l’astuce que d’autre chose, puisque cela consiste à créer un nouveau template que l’on nomme api et respectant le schéma suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
---
layout: none
permalink: api.json
---
[
{% raw %}{% for post in site.posts %}{% endraw %}
{
"title": "{% raw %}{{ post.title | replace: '"', '\"' }}{% endraw %}",
"date": "{% raw %}{{ post.date }}{% endraw %}",
"excerpt": "{% raw %}{{ post.excerpt | replace: '"', '\"' | strip_newlines | strip_html }}{% endraw %}",
"url": "{% raw %}{{ post.url | prepend: site.url }}{% endraw %}",
}{% raw %}{% if forloop.last != true %},{% endif %}{% endraw %}
{% raw %}{% endfor %}{% endraw %}
]

Un fichier api.json apparaitra dans votre dossier _site et vous serez libre de le consommer comme vous l’auriez fait avec n’importe quelle autre API.

À bientôt,