Данная система была создана для совмещения системы блог-публикации WordPress и системы хранения кода GitHub.
А именно для процесса подготовки и совместной работы над текстом в GitHub - где можно сохранять изменения.
Но для просмотра, и комментирования - удобно использовать WordPress.
Данная система позволяет произвести обновление содержимого поста, полностью на базе содержимого файла с GitHub.
Пока для системы не используется БД - данные берутся из config.yml файла, где указано сопоставление поста в ВордПрессе с УРЛ из GitHub.
Последовательность действий такая:
-
Имеется страница с публикацией на github
-
Добавляю публикацию в WP - при это указываю реальное название, и оставляю статус как "Черновик", и нажимаю "Сохранить" (а не "Опубликовать"), в этом случае публикация не будет отображена на главной (указывается необходимая категория и тэги).
-
Получаю ID записи что была создана в WP - это видно в URL строке, "post=770" - здесь 770 это идентификатор.
-
Открываю на редактирование файл "config.yml" - добавляю:
- url: RAW_URL wp_id: 770 title: raspberry-pi-ruby-web-server
Здесь RAW_URL - это прямая ссылка на исходник текста в GitHub.
Для примера, ссылка на просмотр в GitHub:
надо нажать на "Raw" кнопке - и откроется прямая ссылка на исходный код (в формате MarkDown):
эту ссылку надо и указать в config.yml файлике вместо "RAW_URL".
wp_id - это идентификатор статьи в WordPress
title - это просто заголовок, с которым страница будет отображена в списке
-
Стартуем приложение
ruby app.rb
-
Открываем браузером http://localhost:4567
Видим список, что был загружен из 'config.yml' файла.
Видим строчку "raspberry-pi-ruby-web-server [#770] Update"
Нажимаем на ссылку "Update", переходим на диалог ввода логина и пароля для блога.
После подтверждения - система скачает с GitHub страничку, преобразует её из формата MarkDown в html, и обновить содержимое поста в WordPress блоге.
Плюсом к этому - пост опубликуется (из состояния Черновик).
Стенд стартован на Heroku: http://github2wp.herokuapp.com/
Пароль: demo
Пока предусмотрена обработка статей из формата MarkDown.
Разделитель "Читать далее", формируется из "---" указанного в отдельной строке файла MarkDown.
Устанавливаем Ruby 1.9.3 (работает и под 1.8.7)
Скачиваем архив данного репозитория
В корне проекта запускаем, для установки требуемых гемов:
bundle intall
Редактируем config.yml
- клонируем из config.yml.template
Делаем записи в конфиг файле:
- Указываем домен блога,
- указываем пароль,
- указываем массив статей: источник статей на github и ид соответствующие страницам в WordPress.
Стартуем сервер:
bundle exec ruby app.rb
Открываем браузером http://localhost:4567
Выкачиваем приложение
Создаём приложение из CLI:
heroku apps:create APP_NAME
Где APP_NAME - название вашего приложения для Хероку.
Будет выведено что-то вроде:
Creating APP_NAME... done, stack is cedar
http://APP_NAME.herokuapp.com/ | [email protected]:APP_NAME
Git remote heroku added
В текущий гит добавлен внешний репозиторий Хероку.
Необходимо выставить переменные окружения:
github2wp-pwd
- для пароля
github2wp-config
- для URL на конфиг файл (не обязательно - если не будет высталена
то будет TRY страница отображаться с формой.
Для этого в консоли в папке приложения вводим:
heroku config:set github2wp-pwd=...
heroku config:set github2wp-config=http://...yml
Например, сам конфиг хранится в формате YAML в Git репозитории на GitHub:
heroku config:set github2wp-config=https://raw.github.com/robotclass/robotclass/master/articles/github2wp-config.yml
В случае внешнего конфига в футере будет соответствующая информация, для перехода на просмотр конфига, и перегрузку (в случае изменения конфига)
Теперь необходимо залить приложение на Хероку, это делается командой git push
,
а точнее мы укажем внешний бранч heroku
:
git push heroku master
Если всё ок - то будет детектировано Ruby приложение, согласно Gemfile
файлу
будут установлены требуемые гемы (и инициирован Руби версии 1.9.3), после
этого приложение будет стартовано (согласно строке запуска указанной
в файле Procfile
).
Для перехода на приложение, указываем в браузере:
http://APP_NAME.herokuapp.com/
Или находясь в папке приложения в косоли вводим:
heroku apps:open
Откроется страничка с нашим приложением.
И вводим пароль, что мы указали в переменной окружения для приложения Хероку.