Переезд с Blogger на Movable type

Ваш блог, вместе с вами, стал уже достаточно "взрослым" что бы отказаться от услуг блог провайдеров типа Live Journal, Blogger, TypePad. Эта статья для тех кто хочет "съехать" с Blogger. Сделать это не сложно если у вас немного постов в блоге и не очень оживленые дискуссии к этим постам. Тупой но надёжный как AK74M "copy-paste метод" для трудолюбивых и усидчивых товарищей ещё никто не отменял. Но меня лично от такой работы клонит в сон, уж "лучше день потерять, потом за час долететь", чем переть против своей натуры.

Итак пока адепты "copy-paste метода" пишут гневные комментарии к этому посту, мы продолжим. Да, сторонники "день потерять" тоже могут дальше не читать, а вот этим путем идти жечь время и набираться скилсов. "Все остальные пруца" © ;)

Я переносил свой блог на Movable Type engine (MT). Причины, по которым был выбран именно этот движок, а не, настоятельно рекомендуемый, WordPress (WP), пока не важны. Но если кто то выберет WP, то ему этот пост будет тоже интересен, потому что WP умеет делать импорт из MT, поддерживая MoveableType import/export format. А создание файла именно в этом формате и есть наша конечная цель.

UPD: Думаю что сторонникам WP имеет смысл посмотреть плугин для импорта с blogger.

Начать нам надо с изменения настроек blogger-блога:

  • Settings -> Formatting -> Show - 100 (число, больше общего количества ваших постов в блоге)
  • Settings -> Formatting -> Date Header Format - mm/dd/yyyy (в таком формате будет записана текущая дата в выпадающем списке)
  • Settings -> Formatting -> Timestamp Format - mm/dd/yyyy hh:mm:ss PM|AM

Добрый совет: перед любыми изменениями в настройках запоминайте (записывайте) старые значения. За ваши затупы автор ответственности не несёт ;)

Если на вашем блоге используется New Blogger Layouts, вам необходимо переключиться к старым templates. Для этого нажмите линк "Revert to Classic Template" на странице Template -> Edit HTML. Далее, на этой же странице, вам необходимо изменить темплит вывода на такой:

<xmp>
<Blogger><BlogItemTitle>
TITLE: <$BlogItemTitle$></BlogItemTitle>
AUTHOR: <$BlogItemAuthor$><BlogItemCommentsEnabled>
ALLOW COMMENTS: 1</BlogItemCommentsEnabled>
PRIMARY CATEGORY: BloggerImport
CATEGORY: BloggerImport
DATE: <$BlogItemDateTime$>
-----
BODY:
<$BlogItemBody$>
-----<BlogItemComments>
COMMENT:
AUTHOR: <$BlogCommentAuthor$>
DATE: <$BlogCommentDateTime$>
<$BlogCommentBody$>
-----</BlogItemComments>
--------</Blogger>
</xmp>

после чего нажать кнопку "Preview". Текст из открывшегося окна скопируйте в какой нить текстовый редактор и сохраните в кодировке UTF-8. Все переводы строк в этом файле должны быть "Unix style", т.е. не два символа как в Windows \r\n, a один символ - \n. Это важно, файлы в Win формате MT не понимает (по крайней мере на Unix хостинге).

Наш файл для импорта в MT практически готов. Но в нем есть такие проблемы:

  • У всех дат отсутствует ведущий ноль для месяцев.
    Cгенерировало "DATE: 5/04/2007 5/04/2007 02:19:00 PM"
    а надо "DATE: 05/04/2007 5/04/2007 02:19:00 PM".
  • В комментариях "AUTHOR:" пишется с тегами, которые надо удалить.
    Cгенерировало "AUTHOR: <a href="/" rel="nofollow">Gansik</a>" а надо "AUTHOR: Gansik".
  • В тексте поста присутствуют "левые" конструкции типа "<div style="clear:both;"></div>". Их надо удалить.
  • В конце текста поста ещё записаны "labels" - <p class="blogger-labels">Labels: ... </p>. Я бы рекомендовал это удалить. В MT есть довольно удобный способ массового назначения тегов для постов, так что тут как раз тот случай когда можно и руками поработать, пусть голова отдохнёт.

Все эти проблемы можно решить нехитрыми регулярными выражениями. Они такие нехитрые, что приводить их смысла нету.

После того как файл для импорта будет готов - импортируйте его.

Учтите что Blogger не поддерживает категории, и поэтому вы должны будете для каждого импортированного поста указать к какой категории он принадлежит. К сожалению такого удобного способа массового назначения категорий как это сделано для labels, в MT нету, и это очень большая проблема. Мне лично удобнее всего было перед импортом файла, написать там для каждого поста его категорию (вместо BloggerImport). При импорте, MT сам создаст все новые категории которые вы там напишете.

Это всё. Удачи!