В статье приведен один способ организации проекта Pelican, упрощающий его сопровождение (добавление контента на сайт, изменение дизайна, добавление плагинов и пр.). Есть и другие способы, какой будете использовать Вы - дело вкуса.
Структура проекта
В каталоге проекта myProject создадим два подкаталога
- myProject/pelican - здесь будет развернут проект Pelican со всеми настройками и контентом
- myProject/output - сюда будут сохраняться сгенерированные страницы сайта.
В директории pelican разворачиваем новый проект
cd pelican
pelican-quickstart
Создаем каталоги - myProject/pelican/pelican-plugins - здесь будут храниться нужные для проекты плагина - myProject/pelican/pelican-themes - каталог для хранения тем сайта
В каталоге проекта создаем два командных файла
1. myProject/pelican/gen.bat
pelican -r -o ../output
для отслеживания изменений контента в my_project/pelican/content в фоновом режиме. Если Вы изменили статью и сохранили изменения, выполнится автоматическая генерация обновленных страниц сайта, котореы сохранятся в каталоге myProject/output
2. myProject/pelican/local_server.bat
cd ../output
python -m CGIHTTPServer
данный файл запустит локальный http-сервер. Сгенерированный сайт будет доступен в браузере по адресу http://localhost:8000
- Чего добились:
- приведенная структура разделила проект Pelican и сгенерированный сайт. Git репозитории, созданные отдельно в каталогах output и pelican упростят публикацию сайта и хранение проекта.
- запуск командных файлов упрощает просмотр обновлений на сайте после изменения контента.
Конфигурация проекта
Существует основной файл конфигурации - myProject/pelican/pelicanconf.py. В нем размещены параметры, касающиеся всего проекта. Назовем их условно "глобальными" параметрами проекта. К таким, например относится место расположения статических файлов (css, js, изображений), формат генерации ссылок на страницы сайта и т.д. Ниже приведены некоторые "глобальные" параметры конфигурации, которые полезно будет задать для большинства проектов Pelican
THEME='pelican-themes\\gym'
ARTICLE_URL = 'articles/{slug}'
ARTICLE_SAVE_AS = 'articles/{slug}/index.html'
STATIC_PATHS = ['images', 'static']
PLUGIN_PATH = 'pelican-plugins'
PLUGINS = ['sitemap', 'extract_toc', 'tipue_search']
SITEURL="http://localhost:8000"
DELETE_OUTPUT_DIRECTORY = True
DEFAULT_METADATA = {
'date': u'2016-05-24',
'status': 'published'
}
Параметры, зависящие от выбранной темы сайта, или влияющие на работу конкретного js скрипта (назовем их "локальными" параметрами проекта) лучше разместить в отдельном файле конфигурации. Для этого в каталоге проекта создаем файл myProject/pelican/myconf.py и задаем в нем локальные параметры.
Чтобы генератор сайта "подхватывал" параметры конфигурации из обоих файлов, в pelicanconf.py добавим строки
from __future__ import unicode_literals
import os, sys
sys.path.append(os.getcwd())
from myconf import *
- Чего добились:
- упростили код файла конфигурации