Un site avec Pelican : #2 Saisir du contenu et générer le site

Sun 23 March 2014 | Damien Pelican

Nous avons lors du précédant tutoriel installé et configuré Pelican. Nous allons maintenant voir comment saisir du contenus.

Generation du site

Compilation simple

La manière la plus simple pour générer votre site, c’est de vous placer à la racine en ligne de commande et lancer :

$ make html

Après quelques lignes d’information de compilation la main vous seras rendus.

Votre sites est maintenant disponibles dans output .

Cependant, si vous affichez index.html dans votre navigateur internet, vous verrez que le site ne s’affiche pas correctement. Et pour cause, votre site est généré pour tourner sur un serveur pas comme un ensemble de fichiers.

Pour ça, Pelican a une solution : il embarque un serveur de développement.

Utiliser le serveur de développement

De la même manière, placez vous en ligne de commande à la racine et tappez :

$ make devserver

Et si comme moi vous avez déjà un serveur qui tourne sur le port 80 (Apache), vous pouvez le lancer sur un port spécifique :

$ make devserver PORT=8080

Une fois lancé, le serveur va regarder les modifications apportées aux fichiers sur votre poste (contenus, mais aussi templates) et regénéré les fichiers HTML automatiquement.

De plus, vous pourrez accèder à votre site avec une vrai adresse et un vrai serveur (vous vous retrouvez donc dans les mêmes circonstances d’accès qu’en production) : http://127.0.0.1:8080.

Création d’un premier article

Pour créer un premier article, il faut créer un nouveau fichier .rst avec le nom que vous voulez dans le dossier content.

Attention
Nous ne traiterons dans ce tutoriel que des fichiers au format RestructuredText. Markdown est également disponible mais comme ce n’est pas très “pythonesque” nous ne le traiterons pas ici.

Créons par exemple un fichier premier-article.rst .

Et mettons ceci à l’intérieur :

Mon premier article
###################

:date: 2014-03-23

Un premier article !

Les deux premières lignes représentent le titre de notre article :

Mon premier article
###################

La deuxième partie représente les informations de l’article. Nous avons définis la date, mais il y a de nombreuses informations disponibles [1] :

  • :date: AAAA-MM-JJ

    Définis la date de l’article (si non définis, c’est la date du fichier qui fait fois).

  • :tags: tag1, tag2, ...

    Définis les tags associés à l’article.

  • :category: categorie

    Définis la catégorie de l’article.

  • :slug: slug-de-l-article

    Définis le slug de l’article [2].

  • :author: Moi

    Définis l’auteur de l’article (si non définis, l’auteur par défaut définis dans pelicanconf.py seras utilisé.

  • :sumarry: un résumé de l'article

    Définis la description de l’article (si non définis, Pelican utiliseras le début de votre article).

  • :lang: fr

    la langue de l’article.

  • :template: template

    Force l’article / la page a utiliser un template donné.

Le restant du fichier correspond ensuite au texte de votre article.

Les pages

Les pages fonctionnent sur le même principe excepté que :

  • Elles sont stockés dans content/pages .
  • Les pages n’ont pas les informations suivantes : tags , category .

C’est quoi la différence entre articles et pages ?

Pour faire simple :

  • Les articles sont des éléments pouvants être regroupés dans des thèmes (catégories).
  • Les pages sont des éléments uniques dans le sujet traité (page “A propos” par exemple).

Pelican permet également de créer de nouveaux type de contenus via les “generators”. Il n’est donc pas impossible que d’autres types puissent arriver officiellement ou via des plugins.

C’est bien de savoir où écrire, mais j’écris quoi ?

Les éléments de base du format RestructuredText :

Titre principale
################

Titre
=====

Sous-titre
----------

Sous-sous-titre
~~~~~~~~~~~~~~~

**Un texte en gras**

*Un texte en italique*

Un lien_
Un `lien plus complexe`_

.. _lien: http://www.monlien.tld
.. _lien plus complexe: http://www.monlien.tld/omplexe

Un note de pied de page [1]_.
Et une seconde note avec numérotation automatique [#]_.

.. [1] Pour plus d'informations !
.. [#] La seconde note de pied de page.

Vous pouvez également faire des tableaux :

+--------+--------+
| Pays   | Région |
+========+========+
| France | Europe |
+--------+--------+
| Japon  | Asie   |
+--------+--------+

Pour aller plus loins, vous pouvez regarder cette page qui regroupe la majoritées des fonctionnalités du format : http://docutils.sourceforge.net/docs/user/rst/quickref.html.


[1]Vous pouvez voir ici les informations de base utilisées dans les templates par défaut de Pelican, mais vous pouvez créer vos propres informations en utilisant la syntaxe :meta: valeur .
[2]

Le slug est un identifiant qui est utilisé pour faire le lien entre les différentes versions d’un article (français, anglais, …). Dans ce cas, le fait d’avoir le même slug fait que les articles sont associés et que vous pourez avoir un lien vers les autres langues de cet article.

De plus, le slug seras utilisé comme modèle pour le nom du fichier .html qui seras généré.