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

#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. Это очевидно, когда вы ставите это так. Но спасибо!