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

How do I configure GitHub to use non-supported Jekyll site plugins?

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

我了解了使用 FTP 在传统主机上托管 Jekyll 的替代方法(上传 _site 目录)http://jekyllrb.com/docs/deployment-methods/ 但是,与其重新配置我的整个站点和托管,这会很棒if GitHub 即使我使用的是不受支持的插件,也可以以某种方式使用页面。

有什么解决方法?

根据您处理的是 User/Organization (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. 进行版本控制
  7. jekyll build 将创建目标文件夹和构建站点。
  8. git checkout -b sources (UO) 或 git checkout master (P)
  9. git add -A
  10. git commit -m "jekyll base sources" 提交您的源代码
  11. git push origin sources (UO) 或 git push origin master (P) 将您的资源推送到适当的分支
  12. cd _site
  13. touch .nojekyll,这个文件告诉gh-pages不需要build
  14. git init 初始化存储库
  15. git remote add origin git@github.com:userName/userName.github.io.git (UO) 或 git remote add origin git@github.com:userName/repositoryName.git (P)
  16. git checkout master (UO) 或 git checkout -b gh-pages (P) 将此存储库放在适当的分支上
  17. git add -A
  18. git commit -m "jekyll first build" 提交您的站点代码
  19. git push origin master (UO) 或 git push origin gh-pages (P)

您现在拥有类似于 Octopress 的东西。看看他们的 rake 文件,里面有一些不错的评论。

更好的方法是将 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. 中创建
  3. _site 将被推送到 gh-pages 分支。
  4. github 页面将按原样提供网站,无需重新构建(因为 .nojekyll 文件)

参考:我的存储库https://github.com/armujahid/armujahid.me/正在使用此方法使用Travis进行持续集成CI