jekyll-build-pages

0

Описание

Сборка GitVerse Pages с помощью Jekyll

Языки

  • JavaScript94,4%
  • Ruby4%
  • HTML1,6%
README.md

GitVerse Pages Builder

GitVerse Action для сборки Jekyll сайтов с автоматической генерацией структуры.

Возможности

  • 🚀 Автоматическая генерация
    _config.yml
    ,
    Gemfile
    и layout'ов из шаблонов
  • 📁 Настраиваемые source и destination директории
  • 🔧 Гибкая конфигурация Jekyll окружения
  • ✅ Проверка результатов сборки
  • 🧹 Автоматическое удаление BOM из файлов
  • 🛡️ Проверка системных зависимостей (Ruby, Bundler, Jekyll)

Использование

Базовое использование

Продвинутая конфигурация

С контролем времени выполнения

Входные параметры

ПараметрОписаниеОбязательныйЗначение по умолчанию
source
Директория с исходными файламиНет
./
destination
Директория для выходных файловНет
./_site
jekyll_env
Переменная окружения JEKYLL_ENVНет
production

Структура шаблонов

Создайте директорию

templates/
с файлами-шаблонами:

templates/ ├── _config.yml ├── Gemfile └── default.html

Пример
templates/_config.yml

Пример
templates/Gemfile

Пример
templates/default.html

Требования

  • Ruby 2.7 или выше
  • Bundler (устанавливается автоматически если отсутствует)
  • Jekyll (устанавливается через Gemfile)
  • Node.js 20 (для GitHub Actions)

Action автоматически проверит наличие Ruby и установит Bundler при необходимости.

Что делает action

  1. Проверяет системные зависимости

    • Наличие Ruby
    • Наличие Bundler (устанавливает если отсутствует)
    • Наличие Jekyll (информирует о статусе)
  2. Валидирует пути

    • Проверяет существование source директории
    • Проверяет корректность путей source и destination
  3. Сканирует и очищает файлы

    • Находит и удаляет BOM из файлов
      .md
      ,
      .html
      ,
      .yml
      ,
      .yaml
      ,
      .txt
    • Поддерживает UTF-8, UTF-16 BE/LE, UTF-32 BE/LE
  4. Создает файлы из шаблонов

    • _config.yml
      (если отсутствует)
    • Gemfile
      (если отсутствует)
    • _layouts/default.html
      (если отсутствует)
  5. Устанавливает зависимости

    • Запускает
      bundle install
      с retry механизмом
  6. Собирает сайт

    • Выполняет
      bundle exec jekyll build
    • Устанавливает переменную окружения
      JEKYLL_ENV
  7. Проверяет результат

    • Проверяет наличие выходной директории
    • Подсчитывает количество созданных файлов

Отладка

Если сборка не проходит:

  1. Проверьте зависимости:

    • Ruby установлен и доступен (
      ruby --version
      )
    • Bundler установлен (
      bundle --version
      )
  2. Проверьте конфигурацию:

    • Gemfile
      корректен и содержит Jekyll
    • _config.yml
      не содержит синтаксических ошибок
    • Нет конфликтующих версий gem'ов
  3. Проверьте файлы:

    • Нет BOM в текстовых файлах (action удаляет автоматически)
    • Кодировка файлов UTF-8
  4. Изучите логи GitHub Actions:

    • Action выводит информацию о каждом шаге
    • Stack trace выводится при ошибках

Контроль времени выполнения

Action не имеет встроенных таймаутов. Контролируйте время выполнения на уровне workflow:

Поддержка BOM

Action автоматически обнаруживает и удаляет следующие типы BOM:

КодировкаРазмер BOMПоддержка
UTF-83 байта
UTF-16 BE2 байта
UTF-16 LE2 байта
UTF-32 BE4 байта
UTF-32 LE4 байта

Сканируются файлы с расширениями:

.md
,
.html
,
.yml
,
.yaml
,
.txt

Технические детали

Проверка зависимостей

Нормализация путей

Action использует

path.normalize()
и
path.resolve()
для корректной работы на разных ОС (Linux, macOS, Windows).

Примеры использования

Минимальный проект

my-site/ ├── index.md └── _posts/ └── 2024-01-01-hello.md

Action автоматически создаст:

  • _config.yml
  • Gemfile
  • _layouts/default.html

Проект с собственной конфигурацией

my-site/ ├── _config.yml # Ваша конфигурация ├── Gemfile # Ваши зависимости ├── _layouts/ │ └── default.html # Ваш layout ├── index.md └── _posts/ └── 2024-01-01-hello.md

Action не перезапишет существующие файлы.

Multi-environment сборка