Доброго времени суток.
Сейчас работаю над сайтом, основной упор на котором, делается на оьучающие статьи. И сейчас встал вопрос «как хранить текст статей?»
Необходимо, что бы любой пользователь мог отредактировать тест стаьи, а после проверки модератором правки применялись. Есть два важных момета:
1. Статья всегда должна быть доступна. Те вариант, когда статья становиться недоступной на время, пока изменнения не будут проверены модератором, не канает. Надо что бы пока новый вариант ожидает проверки, на сайте был доступен старый. А после подтверждения модератором менялся на новый.
2. Сайт ориентирован на программистов, причем не новичков. Поэтому можно предположить, что у большей части пользователей будет аккаунт на гитхабе.
Сначала я хотол сранить в бд текущий вариант статьи и новый. И при проверки заменять старый на новый. Но с этим способом связаннот много проблем. Главный из них — трудно сравнивать старый вариант текста с новым при проверке. Изменения нелегкот найти.
Последнее время замечаю много сайтов, которые хранят тексты статей на гитхабе. Обычно это локализированные копии иностранных сайтов. К примеру angular.ru И не странице сть кнопочка «исправить перевод», при нажатии на которую нас бросает на репозиторий на гитхабе.
Вот я хочу так де организовать статьи на своем сайте. Пользователь захотел поправить статью, сделал pullrequest в репозиторий, модератор проверил и влил, статья на сайте обновилась.
В теории все звучит здорово, вот только я не знаю как это организовать. Как тянуть текст статей с гитхаба? Сначала думал простым инклюдом, но это будет медленнотработать. В идеале было бы, что бы при принятии pullrequest-а, на моем сервере запускался скрипт, который вытягивал бы новый текст статьи в базу. На как уведомить сервер об изменениях?
Может кто-нибудь сталкивался с подобой задачей. Пожалуйста, подскажите, как лучше реализовать данный функционал? В гугле ничего толкового не нашел. Буду очень благодарен за любые идеи и ссылки.
В git есть такое понятие как hook — действие, которое выполняется по какому-то событию. Вот на событие одобрения pull request можно повесить вызов скрипта на сервере через GET-запрос, а этот скрипт в итоге обновит репозиторий и обновит страницу. Как-то так реализовано, по-моему, на djbook.ru (я там стараюсь с переводом помочь).
А не подскажете, есть ли возможность интеграции части вики-движка в движок сайта.
На сколько я знаю, вики предоставляет целостную систему со своимпоиском и урлами. А вот это уже лишнее. Кажется мне, что слишком много придется городить, что бы его встроить.
В идеале было бы, что бы при принятии pullrequest-а, на моем сервере запускался скрипт, который вытягивал бы новый текст статьи в базу. На как уведомить сервер об изменениях?
Сначала я хотол сранить в бд текущий вариант статьи и новый. И при проверки заменять старый на новый. Но с этим способом связаннот много проблем. Главный из них — трудно сравнивать старый вариант текста с новым при проверке. Изменения нелегкот найти.