Как настроить GitHub на использование неподдерживаемых плагинов для сайтов Jekyll?

Я только что создал отличную галерею для своего блога Jekyll, которая прекрасно работает на моем локальном хосте:4000. Однако страницы GitHub не поддерживают подключаемый модуль Jekyll Gallery Generator, который я использую: https://github.com/ggreer/jekyll-gallery-generator

Я читал об альтернативном способе размещения Jekyll на традиционном хосте с использованием FTP (загрузка каталога _site) http://jekyllrb.com/docs/deployment-methods/ Однако, вместо того, чтобы перенастроить весь мой сайт и хостинг, было бы здорово можно ли использовать GitHub Pages, хотя я использую неподдерживаемый плагин.

Какой обходной путь для этого?

2 ответа

Решение

В зависимости от того, имеете ли вы дело с сайтом пользователя / организации (UO) или сайтом проекта (P), выполните:

  1. из вашей рабочей папки git init
  2. git remote add origin git@github.com:userName/userName.github.io.git (UO) или git remote add origin git@github.com:userName/repositoryName.git (P)
  3. jekyll new . создает вашу кодовую базу
  4. в _config.yml установите для параметра baseurl значение baseurl: '' (UO) или baseurl: '/repositoryName' (P)
  5. в .gitignore добавить _site, он будет версии в другой ветке
  6. jekyll build создаст папку назначения и создаст сайт.
  7. git checkout -b sources (UO) или git checkout master (P)
  8. git add -A
  9. git commit -m "jekyll base sources" передайте ваш исходный код
  10. git push origin sources (UO) или git push origin master (P) вставьте ваши источники в соответствующую ветку
  11. cd _site
  12. touch .nojekyllэтот файл сообщает gh-страницам, что нет необходимости строить
  13. git init инициировать хранилище
  14. git remote add origin git@github.com:userName/userName.github.io.git (UO) или git remote add origin git@github.com:userName/repositoryName.git (P)
  15. git checkout master (UO) или git checkout -b gh-pages (P) положить этот репозиторий на соответствующую ветку
  16. git add -A
  17. git commit -m "jekyll first build" зафиксируйте код своего сайта
  18. git push origin master (UO) или git push origin gh-pages (P)

Теперь у вас есть что-то, что делает Octopress. Посмотрите на их файл рейка, внутри есть несколько хороших комментариев.

Лучше настроить Travis для автоматизации развертывания jekyll с неподдерживаемыми плагинами. Следуйте инструкциям по началу работы Travis, чтобы включить Travis для своего репо.

Создайте script/cibuild со следующим содержанием

#!/usr/bin/env bash
set -e # halt script on error

bundle exec jekyll build
touch ./_site/.nojekyll # this file tells gh-pages that there is no need to build

Создайте .travis.yml со следующим содержанием (изменить при необходимости)

language: ruby
rvm:
- 2.3.3

before_script:
 - chmod +x ./script/cibuild # or do this locally and commit

# Assume bundler is being used, therefore
# the `install` step will run `bundle install` by default.
script: ./script/cibuild

# branch whitelist, only for GitHub Pages
branches:
  only:
  - master

env:
  global:
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer

sudo: false # route your build to the container-based infrastructure for a faster build

deploy:
  provider: pages
  skip_cleanup: true
  keep-history: true
  local_dir: _site/  # deploy this directory containing final build
  github_token: $GITHUB_API_KEY # Set in travis-ci.org dashboard
  on:
    branch: master

Этапы развертывания (после каждого нажатия):

  1. Сборка будет создана с использованием нашего собственного скрипта script/cibuild в _site каталог
  2. _site будет подталкивать к gh-pages ветка.
  3. Страницы GitHub будут обслуживать сайт без его повторного создания (из-за .nojekyll файл)

Ссылка: мой репозиторий https://github.com/armujahid/armujahid.me/ использует этот метод для непрерывной интеграции с использованием Travis CI

Другие вопросы по тегам