#python #pelican #static-site-generation
#python #pelican #статическое создание сайта
Вопрос:
Вопрос Noob Pelican здесь:
Я хочу включить на главную страницу моего сайта pelican контент, который не является сообщениями, связанными с блогом, но который просто считывает первый файл и помещает результаты на главную страницу. Я мог бы собрать один пост вместе, но это действительно не то, что я хочу.
Я, конечно, могу взломать index.html шаблон и поместите текст прямо туда. Но то, что я хотел бы сделать, это поместить туда некоторый код, который проанализировал бы файл и поместил туда тот же текст.
Ответ №1:
Одним из преимуществ использования Python в качестве формата файла настроек является то, что Pelican может делать то, что вы хотите, без необходимости писать плагин или изменять сам Pelican.
Допустим, у вас есть некоторый вводный контент, intro.rst
который вы хотите отобразить в своем index.html
шаблоне. Следующие дополнения к вашему файлу настроек Pelican приведут к созданию новой INTRO
переменной, которая содержит отображаемое содержимое intro.rst
файла.
from pelican.settings import DEFAULT_CONFIG
from pelican.readers import RstReader
config = DEFAULT_CONFIG.copy()
# If you need to override default settings (e.g., DOCUTILS_SETTINGS / DEFAULT_LANG):
# config["DEFAULT_LANG"] = "de"
# .read() returns (content, metadata). Keep content only; we don’t need the metadata.
# Assign content to an ALL-CAPS variable to access from template:
INTRO, _ = RstReader(config).read("path/to/intro.rst")
С приведенными выше настройками вы должны иметь возможность вставлять отображаемое содержимое, помещая {{ INTRO }}
переменную в нужное место в вашем шаблоне индекса.
Комментарии:
1. Это очевидно, когда вы ставите это так. Но спасибо!