Пеликан: включить содержимое файла на главную страницу

Нуб Пеликан вопрос здесь:

Я хочу включить на главную страницу моего сайта-пеликана контент, который не является постами, связанными с блогами, а просто считывает первый файл и помещает результаты на главную страницу. Я мог бы собрать один пост вместе, но это действительно не то, что я хочу.

Я, конечно, могу взломать шаблон index.html и поместить текст прямо туда. Но что я хотел бы сделать, так это поместить туда какой-то код, который будет анализировать файл и помещать туда тот же текст.


person Rick    schedule 01.11.2020    source источник


Ответы (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 }} в нужное место в шаблоне индекса.

person Justin Mayer    schedule 07.11.2020
comment
Это очевидно, когда ты так формулируешь. Но спасибо! - person Rick; 08.11.2020