Я уже писал про автоматизацию публикации в блог с hazel. Сегодня я немного доработал этот workflow и хочу поделиться. Возможно кому-то понравится такая идея, а реализация может быть и другой (т.к. я ещё не достаточно хорошо её отработал).
Покажу процесс от создания черновика до публикации на github за пять шагов:
Шаг 1
С помощью простого workflow для Alfred2 я открываю на редактирование черновик или создаю новый. Черновику я даю сразу правильное имя (без даты), например: jekyll-blog-automation. Пост на стадии черновика выглядит как обыкновенный markdown документ с одной оговоркой — только один заголовок первого уровня, который затем и станет заголовком поста.
Шаг 2
Когда пост готов к публикации, я проставляю у него теги, которые затем станут тегами для публикации в блоге. И ещё проставляю специальный тег done. В OS X теперь это делается множеством способов, вот один из них:
Шаг 3
Если у черновика появляется тег done, то в дело вступает Hazel. Сначала он запускает скрипт, который создает в посте yaml метаданные, проставляет в них теги, заголовок, дату и время и снимает с него тег done. Затем он перемещает черновик в папку _posts блога, переименовывает файл, добавляя к нему дату, и открывает его снова на редактирование.
Скрипт tagpost.sh:
Шаг 4
Теперь у меня есть готовый к публикации пост, в котором я могу сделать необходимые мне правки метаданных:
Шаг 5
Я снова проставляю у него тег done и на этот раз hazel запускает скрипт, который отправляет пост на github:
В общем, в этот workflow можно ещё много разных вещей подключить, например, предпросмотр с локально установленным jekyll. Выглядит всё это, возможно, слишком сложно, но на самом деле это довольно просто. На деле получается вот так: пишем текст, ставим теги, правим метаданные, отправляем в блог. Кроме того, прописанные у постов теги позволяют удобно ориентироваться среди них в Finder.
На самом деле jekyll + github может быть довольно удобной платформой для блога. Одно время я уже предпринимал попытки отказаться от неё в пользу удобного мобильного постинга. Но вопрос с мобильными публикациями уже решен, как-нибудь напишу и об этом в блог.