Code Monkey home page Code Monkey logo

github2wp's Introduction

Система публикации из GitHub в WordPress

Данная система была создана для совмещения системы блог-публикации WordPress и системы хранения кода GitHub.

А именно для процесса подготовки и совместной работы над текстом в GitHub - где можно сохранять изменения.

Но для просмотра, и комментирования - удобно использовать WordPress.

Данная система позволяет произвести обновление содержимого поста, полностью на базе содержимого файла с GitHub.

Пока для системы не используется БД - данные берутся из config.yml файла, где указано сопоставление поста в ВордПрессе с УРЛ из GitHub.

Последовательность действий такая:

  1. Имеется страница с публикацией на github

  2. Добавляю публикацию в WP - при это указываю реальное название, и оставляю статус как "Черновик", и нажимаю "Сохранить" (а не "Опубликовать"), в этом случае публикация не будет отображена на главной (указывается необходимая категория и тэги).

  3. Получаю ID записи что была создана в WP - это видно в URL строке, "post=770" - здесь 770 это идентификатор.

  4. Открываю на редактирование файл "config.yml" - добавляю:

    • url: RAW_URL wp_id: 770 title: raspberry-pi-ruby-web-server

Здесь RAW_URL - это прямая ссылка на исходник текста в GitHub.

Для примера, ссылка на просмотр в GitHub:

https://github.com/robotclass/robotclass/blob/master/articles/raspberry-pi-ruby-web-server/raspberry-pi-ruby-web-server.md

надо нажать на "Raw" кнопке - и откроется прямая ссылка на исходный код (в формате MarkDown):

https://raw.github.com/robotclass/robotclass/master/articles/raspberry-pi-ruby-web-server/raspberry-pi-ruby-web-server.md

эту ссылку надо и указать в config.yml файлике вместо "RAW_URL".

wp_id - это идентификатор статьи в WordPress

title - это просто заголовок, с которым страница будет отображена в списке

  1. Стартуем приложение

    ruby app.rb

  2. Открываем браузером 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

Heroku

Выкачиваем приложение

Создаём приложение из 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

Откроется страничка с нашим приложением.

И вводим пароль, что мы указали в переменной окружения для приложения Хероку.

github2wp's People

Contributors

nemilya avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.