Как хранить текст статей для сайта на github?

Доброго времени суток.
Сейчас работаю над сайтом, основной упор на котором, делается на оьучающие статьи. И сейчас встал вопрос «как хранить текст статей?»
Необходимо, что бы любой пользователь мог отредактировать тест стаьи, а после проверки модератором правки применялись. Есть два важных момета:
1. Статья всегда должна быть доступна. Те вариант, когда статья становиться недоступной на время, пока изменнения не будут проверены модератором, не канает. Надо что бы пока новый вариант ожидает проверки, на сайте был доступен старый. А после подтверждения модератором менялся на новый.
2. Сайт ориентирован на программистов, причем не новичков. Поэтому можно предположить, что у большей части пользователей будет аккаунт на гитхабе.

Сначала я хотол сранить в бд текущий вариант статьи и новый. И при проверки заменять старый на новый. Но с этим способом связаннот много проблем. Главный из них — трудно сравнивать старый вариант текста с новым при проверке. Изменения нелегкот найти.

Последнее время замечаю много сайтов, которые хранят тексты статей на гитхабе. Обычно это локализированные копии иностранных сайтов. К примеру angular.ru И не странице сть кнопочка «исправить перевод», при нажатии на которую нас бросает на репозиторий на гитхабе.

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

В теории все звучит здорово, вот только я не знаю как это организовать. Как тянуть текст статей с гитхаба? Сначала думал простым инклюдом, но это будет медленнотработать. В идеале было бы, что бы при принятии pullrequest-а, на моем сервере запускался скрипт, который вытягивал бы новый текст статьи в базу. На как уведомить сервер об изменениях?

Может кто-нибудь сталкивался с подобой задачей. Пожалуйста, подскажите, как лучше реализовать данный функционал? В гугле ничего толкового не нашел. Буду очень благодарен за любые идеи и ссылки.
  • Вопрос задан
  • 4159 просмотров
Решения вопроса 1
@TyVik
В git есть такое понятие как hook — действие, которое выполняется по какому-то событию. Вот на событие одобрения pull request можно повесить вызов скрипта на сервере через GET-запрос, а этот скрипт в итоге обновит репозиторий и обновит страницу. Как-то так реализовано, по-моему, на djbook.ru (я там стараюсь с переводом помочь).
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
opium
@opium
Просто люблю качественно работать
В вики уже все давно реализованно, зачем вам это засовывать в гит?
Ответ написан
pomeo
@pomeo
В идеале было бы, что бы при принятии pullrequest-а, на моем сервере запускался скрипт, который вытягивал бы новый текст статьи в базу. На как уведомить сервер об изменениях?

у гитхаба есть webhooks
Ответ написан
Комментировать
@xave
Сначала я хотол сранить в бд текущий вариант статьи и новый. И при проверки заменять старый на новый. Но с этим способом связаннот много проблем. Главный из них — трудно сравнивать старый вариант текста с новым при проверке. Изменения нелегкот найти.

Есть же утилита diff.
Ответ написан
Комментировать
AterCattus
@AterCattus
Люблю быстрый backend
А вести две ветки master (версия на сайте) и dev/new/etc для новых версий статей? Популярный и отлаженный способ.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
В вики уже все давно реализованно, зачем вам это засовывать в гит?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы