Миграция с Wordpress на Pelican
Оглавление
- Введение
- Импорт старого wordpress-блога
- Хранение изображений
- Вставка изображений
- Настройки
- Кастомизация темы
- Синхронизация с Github
- использованнае ресурсы
Введение
Когда я задумал перевести этот сайт с Wordpress-а на другой движок, я преследовал три цели:
- Платформа, которая будет для меня понятна изнутри
- Скорость
- Удобство, в первую очередь в наборе и редактировании постов
- Прозрачность средств настройки внешнего вида. Сделать тему для WP - это сильно круто для меня.
Ко всему этому хотелось чего-то простого и минималистичного. Мне нужна система преимужественно для публикации простых тесктов, с минимумом картинок. Рюшечки ни к чему. Так же я ни на грамм не интересуюсь SEO, и не собираюсь превращать страницы блога в портал, обвешенный со всех сторон яркими картинками.
До этого мой блог некоторое время работал на Blogger, потом года три на Wordpress. Долгое время я присматривался в различным системам, успев сделать кое-что на Django и подучить Питон. В эту сторону я и начал копать, были мысли даже написать свой движок, благо на Django это не так сложно, - это стандартный пример из Django-учебников. Но изобретать велосипед не хотелось, тем более, было ясно, что велосипед этот получится кривой и косой.
Изначально мои мысли все же были нацелены на Django-блог, таких движком превеликое множество. Но все время что-то не складывалось.
Так я в своих поисках наткнулся на слова "static html blog". Еще не зная толком, что это такое, интуитивно чуствовал - вот оно! И так, в двух словах, чем же отличается блог на static-html от всем привычных систем типа Wordpress или Joomla? В "старой" школе мы пишем пост сразу в html, или используем html-редактор типа TinyMCE, затем когда пользователь запрашивает страницу, она на лету генерируется движком, - пост вытягивается из базы данных, из другой базы вытягиваются комментарии, все это обрабатывается движком, чтобы применить нужную тему, и наконец-то пользователь получает готовый html. Это занимает время и ресурсы сервера.
В статик системах юзер получает статический, заранее подготовленный html. Сами статьи пишутся не на html, а с использованием облегченного языка разметки, например Markdown или RestructuredText. Мой выбор пал на markdown как на более популярный, и с моей точки зрения, более читаемый.
Для сравнения, внешний вид статьи в Вордпресс-редакторе и на Маркдаун: Разница видна невооруженным взглядом, не правда ли? :)
Огромное преимущество статик-систем в том, что контент хранится в простых тестовых файлах, а не в базе данных, поэтому мы можем использовать версионные системы типа github для хранения и бекапа нашего блога. Просто и надежно.
Так же статик-контент значительно лучше с точки зрения безопасности. Ломать там просто нечего - ни скриптов, ни php.
Выбор статик-движков достаточно велик, вот небольшой список:
- Jekyll/Octopress (хорош, но работает на Ruby)
- Pelican (Питон)
- Blosxom (Питон, развивается с 2002, проект показался мне заброшенным)
- Second Crack (PHP)
- Blacksmith (Node.js)
- Acrylamid (был очень близко к тому, чтобы выбрать его)
- Nikola (узнал о нем, когда уже все было на Пеликане. На питоне, много фич, часто обновляется.)
Так мой выбор пал на Pelican. Это движок на Питоне, темы настраиваются простыми шаблонами J inja2, есть импорт контента Wordpress, поддержа Google anlytics и Disqus. Документация Пеликана ясна и подробна, что является немаловажным плюсом.
Перенос блога является довольно сложной и комплексной задачей. Установку движка на Ubuntu server я описал в предыдущей статье. Еще предстоит много работы по доведению блога до рабочего состояния. Здесь я буду делать заметки о проделанной работе.
Импорт контента с Wordpress
Процедура импорта подробно описана в статье. Для начала сделаем экспорт данных из Wordpress в файл, и зальем этот файл на наш сервер. Pelican поддерживает импорт таких форматов:
- WordPress XML export
- Dotclear export
- RSS/Atom fee
Возможно, прийдется установить зависимости:
$ pip install BeautifulSoup
$ apt-get install pandoc
Запускаем конвертацию такой командой
$ pelican-import --wpfile -o ~/blog/convert -m markdown WP-backup.xml
где указываем, что используем разметку Markdown (-m markdown) и конвентируем из Wordpress
(--wpfile). В директории convert образуется куча файлов .md
, которые теперь предстоит
долго и нудно править руками. После правки файлы буду перемещать в директорию ~/blog/content
Хранение изображений
Как говорится, век живи - век учись. Недавно я сделал для себя небольшое открытие. Оказывается, картинки с picasa-web можно ссылаться напрямую, причем Google умеет динамически ресайзить ширину картинки. Вкратце, как это работает:
- Заходим в PicasaWeb, выбираем картинку, жмем на ней второй кнопкой - Скопировать URL
- Получаем URL вида
https://lh3.googleusercontent.com/-t9x0LzrYPiw/T_NToKSX2BI/AAAAAAAADd4/xLie_pUmPaA/s720/IMG_0674.CR2.jpg
- Его уже можно вставлять в текст и радоваться жизни. Но нас интересует размер - он указывается
прямо в линке -
s720
. Меняя эти цифры, получаем нужный нам размер изображений по ширине в пикселях.
Так что картинки для блога я буду хранить в PicasaWeb
Настройки
Настройки Пеликана находятся в кофигурационном файле pelican.conf.py. Конфиг будет меняться по мере разработки блога, так что пока нечего писать. Позже он будет выложен целиком.
Comments !