diff --git a/docs/fr/index.rst b/docs/fr/index.rst index 9d741af2..dca85fac 100644 --- a/docs/fr/index.rst +++ b/docs/fr/index.rst @@ -50,6 +50,7 @@ Documentation installation bases configuration + themes parametres_article astuces faq diff --git a/docs/fr/themes.rst b/docs/fr/themes.rst new file mode 100644 index 00000000..53e6374e --- /dev/null +++ b/docs/fr/themes.rst @@ -0,0 +1,187 @@ +.. _theming-pelican: + +Cette page est une traduction de la documentation originale, en anglais et +disponible `ici <../themes.html>`_. + +Comment créer des thèmes pour Pelican +##################################### + +Pelican utlise le très bon moteur de template `jinja2 `_ +pour produire de l'HTML. La syntaxe de jinja2 est vraiment très simple. Si vous +voulez créer votre propre thème, soyez libre de prendre inspiration sur le theme +"simple" qui est disponible `ici +`_ + +Structure +========= + +Pour réaliser votre propre thème vous devez respecter la structure suivante :: + + ├── static + │   ├── css + │   └── images + └── templates + ├── archives.html // pour afficher les archives + ├── article.html // généré pour chaque article + ├── categories.html // doit lister toutes les catégories + ├── category.html // généré pour chaque catégorie + ├── index.html // la page d'index, affiche tous les articles + ├── page.html // généré pour chaque page + ├── tag.html // généré pour chaque tag + └── tags.html // doit lister tous les tags. Peut être un nuage de tag. + + +* `static` contient tout le contenu statique. Il sera copié dans le dossier + `theme/static`. J'ai mis un dossier css et un image, mais ce sont juste des + exemples. Mettez ce dont vous avez besoin ici. + +* `templates` contient tous les templates qui vont être utiliser pour générer les + pages. J'ai juste mis les templates obligatoires ici, vous pouvez définir les + vôtres si cela vous aide à vous organiser pendant que vous réaliser le thème. + Vous pouvez par exemple utiliser les directives {% include %} et {% extends %} + de jinja2. + +Templates et variables +====================== + +Cela utilise une syntaxe simple, que vous pouvez insérer dans vos pages HTML. +Ce document décrit les templates qui doivent exister dans un thème, et quelles +variables seront passées à chaque template, au moment de le générer. + +Tous les templates recevront les variables définies dans votre fichier de +configuration, si elles sont en capitales. Vous pouvez y accéder directement. + +Variables communes +------------------ + +Toutes ces variables seront passées à chaque template. + +============= =================================================== +Variable Description +============= =================================================== +articles C'est la liste des articles, ordonnée décroissante + par date. Tous les éléments de la liste sont des + objets `Article`, vous pouvez donc accéder à leurs + propriétés (exemple : title, summary, author, etc). +dates La même liste d'articles, ordonnée croissante par + date. +tags Un dictionnaire contenant tous les tags (clés), et + la liste des articles correspondants à chacun + d'entre eux (valeur). +categories Un dictionnaire contenant toutes les catégories + (clés), et la liste des articles correspondants à + chacune d'entre elles (valeur). +pages La liste des pages. +============= =================================================== + +index.html +---------- + +La page d'accueil de votre blog, sera générée dans output/index.html. + +Si la pagination est activée, les pages suivantes seront à l'adresse +output/index`n`.html. + +=================== =================================================== +Variable Description +=================== =================================================== +articles_paginator Un objet paginator de la liste d'articles. +articles_page La page actuelle d'articles. +dates_paginator Un objet paginator de la liste d'articles, ordonné + par date croissante. +dates_pages La page actuelle d'articles, ordonnée par date + croissante. +page_name 'index'. +=================== =================================================== + +category.html +------------- + +Ce template sera généré pour chaque catégorie existante, et se retrouvera +finalement à output/category/`nom de la catégorie`.html. + +Si la pagination est activée, les pages suivantes seront disponibles à +l'adresse output/category/`nom de la catégorie``n`.html. + +=================== =================================================== +Variable Description +=================== =================================================== +category La catégorie qui est en train d'être générée. +articles Les articles dans cette catégorie. +dates Les articles dans cette catégorie, ordonnés par + date croissante. +articles_paginator Un objet paginator de la liste d'articles. +articles_page La page actuelle d'articles. +dates_paginator Un objet paginator de la liste d'articles, ordonné + par date croissante. +dates_pages La page actuelle d'articles, ordonnée par date + croissante. +page_name 'category/`nom de la catégorie`'. +=================== =================================================== + +article.html +------------- + +Ce template sera généré pour chaque article. Les fichiers .html seront +disponibles à output/`nom de l'article`.html. + +============= =================================================== +Variable Description +============= =================================================== +article L'objet article à afficher. +category Le nom de la catégorie de l'article actuel. +============= =================================================== + +page.html +--------- + +Pour chaque page ce template sera généré à l'adresse +output/`nom de la page`.html + +============= =================================================== +Variable Description +============= =================================================== +page L'objet page à afficher. Vous pouvez accéder à son + titre (title), slug, et son contenu (content). +============= =================================================== + +tag.html +-------- + +Ce template sera généré pour chaque tag. Cela créera des fichiers .html à +l'adresse output/tag/`nom du tag`.html. + +Si la pagination est activée, les pages suivantes seront disponibles à +l'adresse output/tag/`nom du tag``n`.html + +=================== =================================================== +Variable Description +=================== =================================================== +tag Nom du tag à afficher. +articles Une liste des articles contenant ce tag. +dates Une liste des articles contenant ce tag, ordonnée + par date croissante. +articles_paginator Un objet paginator de la liste d'articles. +articles_page La page actuelle d'articles. +dates_paginator Un objet paginator de la liste d'articles, ordonné + par date croissante. +dates_pages La page actuelle d'articles, ordonnée par date + croissante. +page_name 'tag/`nom du tag`'. +=================== =================================================== + +Inclure le script skribit +========================= + +Pour pouvoir supporter les scripts skribit dans vos thèmes, vous devez +faire ceci : + + * Copier `skribit_tab_script.html` et `skribit_widget_script.html` dans + votre dossier de templates. + * Ajouter {% include 'skribit_tab_script' %} dans votre pour + ajouter le support de l'onglet de suggestions. + * Ajouter {% include 'skribit_widget_script' %} là où vous le souhaitez + pour ajouter le widget dans la sidebar. + +Vous pouvez regarder le thème par défault (notmyidea) pour voir un +exemple de thème fonctionnel.