如何配置GitHub以使用不受支持的Jekyll站点插件?

时间:2015-01-31 07:18:20

标签: github jekyll github-pages jekyll-extensions

我刚为我的Jekyll博客创建了一个很棒的画廊,它完全建立在我的localhost:4000上。但是,GitHub页面不支持我使用的Jekyll Gallery Generator插件:https://github.com/ggreer/jekyll-gallery-generator

我读到了使用FTP在传统主机上托管Jekyll的替代方法(上传_site目录)http://jekyllrb.com/docs/deployment-methods/但是,如果可以使用GitHub页面,那将是很好的,而不是重新配置我的整个网站和托管。不知何故,即使我使用的是不受支持的插件。

这是一种解决方法?

2 个答案:

答案 0 :(得分:36)

取决于您是否处理用户/组织( 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-pages不需要构建
  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
  19. 您现在有类似Octopress的内容。看看他们的rake文件,里面有一些不错的评论。

答案 1 :(得分:1)

更好的方法是将Travis配置为使用不受支持的插件自动部署jekyll。请按照Travis getting started指南为您的仓库启用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进行持续集成