RSS ленты для Poole
Плагин feeds.py для генератора сайтов Poole формирует произвольные RSS-ленты со страницами сайта. Пример подключения и настройки (файл macros.py
):
from plugins.feeds import *
BASE_URL = "http://example.com"
STOP_LABELS = ["draft", "hidden"]
RSS-ленты описываются с помощью файлов с расширением .feed
с таким содержимым:
title: My podcast
description: A podcast about a static website developer's life.
language: ru-RU
link: /podcast/
labels: podcast, audio
limit: 1000
Файл input/podcast.feed
с таким содержимым создаст файл output/podcast.xml
с валидной RSS-лентой. Если у страницы есть свойство image
, то его содержимое будет выдано в качестве вложения, например:
title: Фотография слона
image: files/elephant.jpg
---
Купил слона, фотография во вложении.
Настройка
Используемые глобальные константы:
BASE_URL
, содержит адрес главной страницы сайта. При отсутствии этой константы ленты не создаются.STOP_LABELS
, содержит список меток для исключения страниц из лент. Сюда можно добавить, например, «draft» и «hidden».DEFAULT_LANGUAGE
, содержит код языка для лент, не содержащих явного указания на него.
Используемые свойства страниц:
title
: заголовок записи.date
: дата публикации.image
: если содержит имя существующего файла, то этот файл становится вложением.
Свойства лент (из файлов с расширением .feed
):
title
: заголовок ленты.description
: описание ленты.link
: ссылка на главную страницу ленты (обычно это архив записей).with_bodies
: значение «no» отключает вывод содержимого записи (description).labels
: метки, которые должны содержать записи для попадания в ленту.limit
: количество выводимых записей (по умолчанию равно 100).language
: язык записей ленты. В ленту попадут только записи на этом языке.hub
: может содержать URL хаба PuSH.
Для произвольного изменения заголовков эпизодов можно в файле macros.md
использовать специальную функцию:
def format_feed_item_title(page):
return page["title"] + u"!"
Важные особенности
- Встроенные в код страницы объекты (embed, iframe) удаляются, в соответствии с рекомендацией валидатора.
- Ссылки на картинки становятся полными и абсолютными, так что они работают даже в самых тупых агрегаторах.
- В свойство
lastBuildDate
ленты уходит дата публикации самой свежей записи из этой ленты. - Ко всем ссылкам на записи добавляется «?from=rss» для удобства отслеживания источников захода.