
Grubby генерує статичні сайти з голих Git-репозиторіїв
Grubby — це генератор статичних сайтів для голих Git-репозиторіїв, написаний на Ruby. Він використовує Kramdown, підтримує оновлення на основі хуків і створює головний індекс та окремий сайт для кожного репозиторію.
Статичні сайти з голих Git-репозиторіїв
Grubby — це генератор статичних сайтів для Git-репозиторіїв, написаний на Ruby. Він був форкнутий з RepoRat і значною мірою натхнений ним. Grubby створює вебсайт для кожного голого Git-репозиторію та генерує головний індекс репозиторіїв.
Проєкт потребує Git, Ruby 3.0 або новішу версію та Kramdown. Він створений як рішення з власним баченням з мінімальною конфігурацією. Kramdown — це Markdown-парсер за замовчуванням, однак його можна замінити, але немає гарантії, що альтернативні парсери працюватимуть без помилок.
Конфігурація та виведення
Grubby припускає, що теки голих Git-репозиторіїв закінчуються розширенням .git. Генерація його головного індексу репозиторіїв може не працювати належним чином без цього правила іменування. Головним файлом конфігурації є _config.yml, який використовується для встановлення основного домену та шляхів.
За замовчуванням індекс репозиторіїв розташований у корені головної директорії і називається index.html. Назву його виведеного файлу можна змінити у _config.yml. Користувачі, які хочуть змінити вигляд або навігацію згенерованих сайтів, можуть змінити style.css, _header.html та _footer.html.
Генерація сайтів за допомогою Git-хуків
Посібник з використання припускає, що справа має спільний хостинг NearlyFreeSpeech.NET, однак процес описаний подібно до особистого VPS. У його прикладі голі репозиторії зберігаються у /home/public/git.sitename.org. Сам Grubby клонується в особисту директорію, а процес запускається зсередини голого репозиторію.
У теці hooks репозиторію створюється post-update хук і надається права на виконання. Скрипт скасовує GIT_DIR, запускає git update-server-info, клонує поточний репозиторій у тимчасову директорію, копіює його файл description і запускає Ruby-генератор у тимчасовому checkout. Після цього тимчасова директорія видаляється.
Запуск хука для кожного репозиторію створює окремий сайт у відповідній директорії та оновлює index.html у корені. Той самий виклик можна розмістити і в post-receive хуку. Глобальний post-update хук можна використовувати для запуску процесу без необхідності додавати його до кожного репозиторію.
Поточні обмеження
Grubby не створює окремих сторінок для окремих commit, branch або інших окремих змін репозиторію. Його згенерований результат орієнтований на сайти репозиторіїв та головний індекс репозиторіїв.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.