В Pelican, как создать страницу, посвященную размещению всех статей блога?
в pelican, по умолчанию, статьи блога перечислены в индексе.HTML-файл.
вместо этого я хочу использовать статическую страницу в качестве домашней страницы и поместить все статьи блога на специальную страницу "блог".
Как я могу это сделать?
4 ответов
Хотя существует несколько возможных способов достижения желаемых целей, я бы начал со следующих изменений в файле настроек:
SITEURL = '/blog'
OUTPUT_PATH = 'output/blog'
PAGE_URL = '../{slug}.html'
PAGE_SAVE_AS = '../{slug}.html'
DISPLAY_PAGES_ON_MENU = False
DISPLAY_CATEGORIES_ON_MENU = False
MENUITEMS = [('Home', '/'), ('Blog', '/blog/')]
Поместите свои сообщения в блог content/
как обычно, а затем создайте свою домашнюю страницу со следующими заголовками и сохраните как content/pages/home.md
:
Title: Home
URL: ../
Save_as: ../index.html
This is the home page.
предостережения:
динамическая генерация меню навигации была эффективно отключена, так как она не работает хорошо с этой конфигурацией. Подсветка для текущего активного пункта меню - функция, которую вы обычно получаете из коробки - не будет присутствовать в этой конфигурации и, при желании, должна быть реализована отдельно в своей теме.
если ваша тема
base.html
шаблон имеет ссылку на ваш сайт дома зависит от тогоSITEURL
(например, как тема notmyidea делает), вам нужно будет изменить ссылку на пункт .
установите следующее в pelicanconf
DIRECT_TEMPLATES = ['blog']
PAGINATED_DIRECT_TEMPLATES = ['blog']
1-я строка установит блог.html для статей 2-я строка позволит разбить блог на страницы.html файл
для страницы индекса создайте папку pages в каталоге содержимого и создайте.md файл там и установить save_as:index.html
это сохранит файл md как индекс.HTML-код
об этом говорится в FAQ Pelican - " как я могу переопределить сгенерированный URL определенной страницы или статьи?"
в основном, в своем создайте две подпапки:
-
/contents/blogs
, который будет хранить все ваши записи в блоге -
/content/pages
, который будет хранить ваши другие статичные страницы (включая главную страницу)
на pages
папку, создать файл (например, home.rst
) с параметром :save_as: index.html
, что сделает этот файл вашей домашней страницей. Например:
Home
####
:date: 2015-05-22 12:30
:url:
:save_as: index.html
This is my home page
в своем pelicanconf.py
file, укажите следующие параметры:
DISPLAY_PAGES_ON_MENU = False
DISPLAY_CATEGORIES_ON_MENU = True
USE_FOLDER_AS_CATEGORY = True
PATH = 'content'
ARTICLE_PATHS = ['articles',]
PAGE_PATHS = ['pages',]
MENUITEMS = ()
теперь у вас должна быть домашняя страница и панель содержимого с блоги.
если вы хотите добавить больше меню в панель содержимого (например,о или CV меню), создайте соответствующие файлы в вашем pages
папка и добавьте их в MENUITEMS
:
MENUITEMS = (
('About', '/pages/about.html'),
('CV', '/pages/cv.html'),
)
вы можете использовать следующие настройки, чтобы поместить файл индекса, например, в /blog / index.формат html.
INDEX_SAVE_AS = 'blog/index.html'
INDEX_URL = 'blog/'
затем вы создали дом.страница md и используйте " save_as: index.html " директива для фактической домашней страницы.