В 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.

предостережения:

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

  2. если ваша тема 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 " директива для фактической домашней страницы.