Sur cette page
Publier un flux RSS ou JSON
Cecil génère les flux grâce aux formats de sortie : par défaut, la page d’accueil, les sections et les termes de taxonomie sont déjà publiés en HTML et en Atom (par exemple /atom.xml, /blog/atom.xml). Ajoutez les formats rss ou jsonfeed pour publier aussi des fichiers RSS 2.0 ou JSON Feed.
Activer les flux pour toutes les pages de liste
Définissez les formats appliqués à chaque type de page avec output.pagetypeformats :
output:
pagetypeformats:
homepage: [html, atom, rss, jsonfeed]
section: [html, atom, rss, jsonfeed]
Cecil génère alors rss.xml et feed.json à côté de chaque index.html de la page d’accueil et des sections (par exemple /blog/rss.xml, /blog/feed.json).
La liste remplace les formats par défaut : conservez-y html et atom. Pour seulement ajouter des formats à ceux par défaut, utilisez plutôt une table de booléens :
output:
pagetypeformats:
homepage: {rss: true, jsonfeed: true}
section: {rss: true, jsonfeed: true}
Activer un flux pour une seule section
Pour publier un flux pour une seule section, utilisez la variable output dans le front matter de la page d’index de la section. Comme elle remplace les formats par défaut de la section, conservez atom dans la liste pour garder le flux Atom :
---
title: Blog
output: [html, atom, rss]
---
Signaler le flux
Si vos templates incluent le partial metatags (voir la configuration metatags), les balises <link rel="alternate"> pointant vers les flux de la page courante sont ajoutées automatiquement dans le <head>.
Sinon, ajoutez le lien vous-même avec la fonction url() et son option format :
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ url(page, {canonical: true, format: 'rss'}) }}">
Personnaliser le template du flux
Les flux sont générés par les templates intégrés _default/list.rss.twig, _default/list.atom.twig et _default/list.jsonfeed.twig. Selon les règles de recherche, créez layouts/list.rss.twig (page d’accueil et sections) ou layouts/blog/list.rss.twig (section blog uniquement) pour les surcharger.
Vous pouvez étendre le template intégré et redéfinir uniquement le bloc item, par exemple pour publier un extrait plutôt que le contenu complet :
{% extends '_default/list.rss.twig' %}
{% block item %}
<guid>{{ url(item, {canonical: true}) }}</guid>
<title>{{ item.title|e }}</title>
<pubDate>{{ item.date|date('r') }}</pubDate>
<link>{{ url(item, {canonical: true}) }}</link>
<description><![CDATA[{{ item.content|excerpt_html }}]]></description>
{% endblock %}