Как настроить 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), выполните:
- из вашей рабочей папки
git init
git remote add origin git@github.com:userName/userName.github.io.git
(UO) илиgit remote add origin git@github.com:userName/repositoryName.git
(P)jekyll new .
создает вашу кодовую базу- в _config.yml установите для параметра baseurl значение
baseurl: ''
(UO) илиbaseurl: '/repositoryName'
(P) - в .gitignore добавить _site, он будет версии в другой ветке
jekyll build
создаст папку назначения и создаст сайт.git checkout -b sources
(UO) илиgit checkout master
(P)git add -A
git commit -m "jekyll base sources"
передайте ваш исходный кодgit push origin sources
(UO) илиgit push origin master
(P) вставьте ваши источники в соответствующую веткуcd _site
touch .nojekyll
этот файл сообщает gh-страницам, что нет необходимости строитьgit init
инициировать хранилищеgit remote add origin git@github.com:userName/userName.github.io.git
(UO) илиgit remote add origin git@github.com:userName/repositoryName.git
(P)git checkout master
(UO) илиgit checkout -b gh-pages
(P) положить этот репозиторий на соответствующую веткуgit add -A
git commit -m "jekyll first build"
зафиксируйте код своего сайта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
Этапы развертывания (после каждого нажатия):
- Сборка будет создана с использованием нашего собственного скрипта
script/cibuild
в_site
каталог _site
будет подталкивать кgh-pages
ветка.- Страницы GitHub будут обслуживать сайт без его повторного создания (из-за
.nojekyll
файл)
Ссылка: мой репозиторий https://github.com/armujahid/armujahid.me/ использует этот метод для непрерывной интеграции с использованием Travis CI