Миграция с Wordpress на Pelican

Оглавление

  1. Введение
  2. Импорт старого wordpress-блога
  3. Хранение изображений
  4. Вставка изображений
  5. Настройки
  6. Кастомизация темы
  7. Синхронизация с Github
  8. использованнае ресурсы

Введение

Когда я задумал перевести этот сайт с 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.

Выбор статик-движков достаточно велик, вот небольшой список:

  1. Jekyll/Octopress (хорош, но работает на Ruby)
  2. Pelican (Питон)
  3. Blosxom (Питон, развивается с 2002, проект показался мне заброшенным)
  4. Second Crack (PHP)
  5. Blacksmith (Node.js)
  6. Acrylamid (был очень близко к тому, чтобы выбрать его)
  7. 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 !

blogroll

social