Pelican или легкий блог без БД и PHP
Tue 24 January 2023Наверное, каждый и нас, особенно те, кто связан с программированием, DevOps или SysOps задумывался над созданием либо блога, либо того места, где можно хранить заметки о своей работе или о текущих задачах. И, пожалуй, самым главным критерием являются следующие факторы:
- Независимость от базы данных
- Доступность с любой точки земного шара
- Легкость форматирования текста
- Легкость переноса информации на другую систему.
Лучше всего для технических заметок, пожалуй, использовать какую-то wiki систему, их большое множество, но все они, как правило, требуют либо базу данных, либо хранят данные в каком-то контейнере. Опять-таки, wiki системы не совсем удобны как блоги для читателя. Но любая система блогов это уж совершенно точно, снова база данных, скорее всего PHP и что-нибудь ещё, снова записи и прочее хранятся где-то в базе, с которой периодически надо снимать резервные копии. А если не дай бог, обновить её и потерять при этом данные из-за несовместимости не учтенной разработчиками…. Одни вопросы. Пожалуй, самой распространённой системой является WordPress, но для его работы так же нужен весь вышеперечисленный набор, а поэтому ваш хостинг должен отвечать этим требованиям. Но, как было бы здорово, если для всего этого нужно было бы иметь только чистый Linux и ничего более.
И сегодня, я хочу рассказать вам о Pelican, что же это? Это так называемый генератор статических сайтов, написанный на языке Python и использующий в том числе шаблонизатор Jinja. Для тех, кто знаком с фрейворками Python думаю вообще не возникнет вопросов, но для остальных… По сути, это программа, которая берет написанный вами Markdown файл и генерирует из него обычный, чистый HTML, который потом мы можем отдавать в мир через любой веб-сервер. Звучит здорово. То есть все что мне нужно, это написать какую-то статью используя Markdown? Да! И все мои статьи будут хранится в виде обычных текстовых файлов, которые без труда можно скопировать или разместить на git, или же в тех же wiki системах которые поддерживают эту разметку? Да! И это просто замечательно! К слову, сейчас вы читаете эту статью, которая работает под Pelican!
Pelican был разработан в 2010 году, с тех пор прошло не мало лет, о проекте особо не было информации в сети, ведь генераторов статических сайтов достаточно много, по крайней мере, google говорит о том что их действительно много! Но так как я работаю с Python, частенько пишу на Flask или Django, то это именно то, что я хочу! Это быстро, легко и это удобно! Устанавливаем!
Для начала нам нужно убедиться и установить менеджер пакетов pip для python.
sudo apt install python3-pip
sudo python3 -m pip install --upgrade pip
Далее нужно создать рабочий каталог, пусть это будет /opt/blog, создайте и перейдите в него, что бы не создавать путаницы в пакетах, создадим виртуальную среду для python и активируем её:
sudo mkdir /opt/blog
cd /opt/blog
sudo python3 -m venv /opt/blog/venv
source /opt/blog/venv/bin/activate
В документации не описан один существенный момент, для работы make после установки pelican вам необходима сама программа, установить её можно выполнив sudo apt install make
после чего можно устанавливать сам pelican и запускать его:
pip install pelican markdown
pelican-quickstart
После того как вы запустите pelican-quickstart
программа запросит у вас ряд вопросов, где размещать файлы, как назвать ваш сайт и прочее, они понятны и хорошо описаны, пройдите весь опрос до конца, после чего можно запустить сервер разработчика командой:
make devserver
Out:
-> Modified: settings, content, theme, images. re-generating...
Serving site at: http://127.0.0.1:8000 - Tap CTRL-C to stop
Done: Processed 1 article, 0 drafts, 0 hidden articles, 0 pages, 0 hidden pages and 0 draft pages in 0.08 seconds.
Так же, есть отличная документация: https://docs.getpelican.com/en/3.6.3/quickstart.html
Вот собственно и все, теперь ваш сайт доступен по адресу http://127.0.0.1:8000, конечно зайдя на эту страничку вряд ли вам понравится его внешний вид, по этому для него создано не мало тем на разные вкусы, найти их можно тут: https://github.com/getpelican/pelican-themes
Установка тем, так же очень проста, для этого скачиваем тему что пришлась по вкусу, в рабочем каталоге создайте папку themes
, куда поместите скаченную тему, в файл pelicanconf.py
, нужно будет добавить следующую строку с указанием пути до темы:
THEME = 'themes/theme_name_folder'
Но есть и ряд недостатков. К таким недостаткам можно отнести то, что, получая голый HTML у нас нет возможности поиска по сайту, или же возможности оставлять комментарии, или любые другие которые дают нам полноценные системы блогов или wiki. Но это не значит, что этого нельзя сделать!
А настроить поиск, комментирование и многое другое, можно с помощью плагинов, которые можно найти тут:
https://github.com/getpelican/pelican-plugins
Эта статья была написана для ознакомления с работой этого генератора сайтов, более подробно про установку и опыт использования, будет написано в тот момент, когда большинство статей из моего блога будет перенесено сюда, ровно как и тогда, когда будет подключен поиск и возможность комментариев.
Home »