Последнее время, в свете бесчитств Конфликтной Комисси и недовольства “Супом”, у серьезных пацанов усилилась тенденция переезжать на отдельностоящие блоги. Поскольку я серьезный пацан, я тоже решил переехать. Нет-нет, не надо радостно хлопать в ладоши, товарищи! Творчестно (прости, господи!) будет транслироваться в ЖЖ, так что подписчики нечего не потеряют. В этом посте я суммирую технические аспекты своего опыта переезда. Авось еще кому сгодится.

В ходе сборки конструктора под названием “отдельностоящий блоr” из запчастей, любезно предоставленных целой оравой прекрасных кулибиных, пришлось решить следующие задачи:

1. Выбор платформы. Тут как-то довольно четко оформился лидер и я не стал сильно грести против течения, избрав WordPress в качестве движка.

2. Произовдительность платформы. Поскольку WordPress не славится своей шустростью, перед ним заблаговременно был установлен механизм кэширования в виде WP Super Cache. Последний сохраняет на диске странички в виде гольного HTML и выдает их в чистом виде всем последующим посетителям. Быстрее просто не бывает.

3. Трансляция в ЖЖ. Разумеется мне совсем не сложно и вручную продублировать запись в ЖЖ, но зачем же утруждаться? Люди уже решили эту проблему. Существует замечательный плагин LiveJournal Cross-Poster, который автоматически копирует записи. Написан грамотными людьми и очень хорошо работает. Запись в основном блоге является первичной, ее копия в ЖЖ — отражением; все изменения в основной записи, включая удаление, отображаются в ЖЖ.

4. Импорт старых записей. Конечно, я бы мог и по одной записи все перенести из ЖЖ на свой новый основной блог. Но мне иногда еще надо кушать и спать, поэтому такой вариант не катит. К счастью WordPress понимает XML-ки, которые генерит на экспорте ЖЖ и ест их за милую душу.
Правда программисты ЖЖ тут устроили нам подлянку — записи из ЖЖ можно экспортировать только помесячно, полностью повторяя процедуру каждый раз. Для журнала с пятилетней историей это означает шестьдесят итераций. Жестоко.
Но не стоит отчаиваться! Добрые умельцы написали приблуду под названием ljArchive, которая позволяет выкачать весь журнал за один чих. За второй чих она генерит XML-ки, идентичные натуральным. То есть такие же, как создает ЖЖ при экспорте. В качестве бонуса — в эти XML-ки добрый ljArchive включает и комментарии.

5. Отложенные записи. Будучи серьезным пацаном, я всеми фибрами души полюбил делать отложенные записи. Эта функциональность, любезно предоставленная нам сайтом LJ Plus, позволяет автоматически публиковать заранее приготовленный креатив. В результатае серьезный пацан может не подходить к электронному болвану хоть целую неделю. Творчество будет исправно появляться на просторах. Это кстати может привести к казусу — если серьезного пацана переедет панелевозом, его журнал будет продолжать жить своей жизнью еще какое-то время.
У WordPress есть свой механизм публикации отложенных записей. Но для того, чтобы он работал, сайт должен кто-то периодически дергать. Тогда WordPress проснется и, пробежав по цепочке умозаключений, покажет отложенную запись. Одновременно с этим произойдет и трансляция в ЖЖ. Но что если поток посетителей у вас не такой стабильный? Есть два пути. Если ваш хостер позволяет исполнять cron jobs — задача становится тривиальной. Конфигурим задание и дергаем свой сайт с нужной периодичностью.
Если хостер вам не дает создавать cron job, можно выкрутится следующим образом: к каждой своей записи в ЖЖ добавлять невидимую картинку, с параметром src, указывающим на ваш отдельностоящий блог. Кто-нибудь из ваших друзей посмотрит на вашу запись у себя в ленте, и тогда бабка за дедку, дедка за репку, через WordPress и LiveJournal Cross-Poster вытянется ваша новая запись в ЖЖ.

6. Ну и на десерт — неожиданная проблема, подкинутая создателями LiveJournal Cross-Poster. Стоило мне заимпортировать свои записи из ЖЖ и активировать LiveJournal Cross-Poster, он тут же послушно оттранслировал все импортированные записи обратно в ЖЖ. Вот сука! Фильтровать трансляции он умеет только по тегам, а мне это не подходит. Пришлось вооружиться напильником и подвергнуть плагин доработке. Теперь он будет транслировать только записи, появившиеся после определенной даты “М”.

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

[Оригинал записи на «Кьюбикле»].

Июнь 30, 2008 | 7 комментариев | Без рубрики

Rss Commenti

7 комментариев

  1. nisius

    А как в этой модели обстоят дела с контролем доступа — в смысле, если я хочу friends-only запись создать? Этот твой кубикл понимает что-нибудь вроде OpenID?

  2. belloff

    Для OperID — есть плагин. Насчет френд-онли записей — не разбирался, кажется нет. На интерфейсе есть только два положения приватности: «приватно» и «публично». Впрочем, учитывая насколько популярна платформа думаю, что погуглив можно найти готовые рецепты решения.

  3. belloff

    Поставил у себя по твоей наводке openID плагин, спасибо за идею. Приходи тестить. 😉

    Насчет приватности пока нашел только http://wordpress.org/extend/plugins/members-only/

    Но он не селективно прячет, а все гуртом. Ищу дальше.

  4. belloff

    Обнаружил встроенную фичу у WordPress — можно отдельные посты паролем защищать. С одной стороны решение косолопое для твоих нужд — пароль один на всех. С другой стороны — друзьям нет нужды регистрироваться.

  5. belloff

    А вот, нашел, как раз тот самый плагин, который тебе бы подошел: http://weblogtoolscollection.com/pluginblog/2008/07/08/wp-sentry-private-posting-plugin/

  6. belloff

    Я только что понял, что ниже отвечал все время сам себе, а ЖЖ кажется при этом не отсылает нотификации первому комментатору в треде. Просто если ты вдруг не видел результатов моих исследований. 😉

  7. nisius

    Ага, глупый жж. Я этого до сих пор не видел. Надо попробовать, спасибо за research.

Оставить комментарий