Руководство Readme: обновление экосистемы /Learn с помощью GitHub Webhooks
В этом руководстве описывается процесс управления обновлениями в экосистеме /Learn, нашего контента, с использованием GitHub Webhooks для автоматизации обновлений контента в наших полнотекстовых индексах поиска и рендеринговых файлах на JavaScript.
Обзор
Каждая папка в экосистеме /обучение представляет страницу или раздел. Эти папки содержат файлы разметки (.md), которые составляют содержимое страницы. Когда вносятся изменения в эти файлы разметки, активируется триггер GitHub, отправляя обновленный файл в предопределенный веб -крюк. Этот веб-крючок затем обновляет контент в нашем полнотекстовом индексе поиска. Наконец, обновленный контент разметки отображается в JavaScript на веб -сайте.
Предварительные условия
- Репозиторий GitHub с содержанием Marckdown, структурированным в папках.
- Доступ к вашему веб -серверу или службе хостинга для настройки прослушивателя Webhook.
- Полнотекстовый служба поиска (например, Elasticsearch), настроенная для индексации вашего контента.
- Основные знания JavaScript для рендеринга файлов разметки в Интернете.
Шаг 1: Организация вашего контента
- Структура вашего контента в папках в репозитории GitHub, где каждая папка представляет страницу или раздел в экосистеме /обучение.
- Убедитесь, что весь контент записан в файлах разметки (.md) и правильно назван, чтобы отразить их цель или содержание.
Шаг 2: Настройка GitHub WebHook
- В вашем хранилище GitHub перейдите в
Settings > Webhooks > Add webhook . - Введите URL -адрес полезной нагрузки. Этот URL должен указывать на прослушивателя Webhook на вашем сервере, где будут получены обновления.
- Выберите тип контента в качестве
application/json . - Выберите
Just the push event для которого события запустили этот веб -крючок. - Убедитесь, что
Active флажок выбран и создайте веб -крюк.
Шаг 3: Создание слушателя Webhook
- На вашем сервере создайте скрипт, который прослушивает запросы POST на URL -адресу, указанном в настройке GitHub WebHook.
- Когда получен запрос на сообщение, разрабатывайте полезную нагрузку JSON, чтобы определить обновленные файлы разметки.
- Для каждого обновленного файла обновите его соответствующий контент в вашем полнотекстовом индексе поиска.
Пример (псевдо-код):
app . post ( '/webhook-url' , ( req , res ) => {
const updatedFiles = req . body . commits . map ( commit => commit . modified ) ;
updatedFiles . forEach ( file => {
updateSearchIndex ( file ) ;
} ) ;
res . status ( 200 ) . send ( 'Update received' ) ;
} ) ; Шаг 4: Обновление полнотекстового индекса поиска
- Извлеките контент из обновленных файлов разметки.
- Обновите контент в вашем полнотекстовом индексе поиска, гарантируя, что он доступен для поиска и должным образом индексирован.
Шаг 5: рендеринг отметки в JavaScript
- Используйте библиотеку JavaScript, такую как
marked.js , чтобы преобразовать контент разметки в HTML. - Приобретите обновленный содержимое разметки из вашего полнотекстового индекса поиска или непосредственно из репозитория GitHub, если это необходимо.
- Отправить контент HTML на соответствующей странице в экосистеме /Learn.
Пример (JavaScript):
fetch ( 'path/to/markdown.md' )
. then ( response => response . text ( ) )
. then ( markdown => {
const htmlContent = marked ( markdown ) ;
document . getElementById ( 'content' ) . innerHTML = htmlContent ;
} ) ; Заключение
Это руководство предоставляет оптимизированный подход к автоматизации обновлений контента в экосистеме /Learn с использованием GitHub Webhooks, полнотекстового индекса поиска и JavaScript. Следуя этим шагам, вы можете убедиться, что ваш контент всегда актуален и легко доступен для поиска вашей аудиторией.