如何配置 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),请执行以下操作:
- 来自您的工作文件夹
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-pages不需要build
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 的东西。看看他们的 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
部署步骤(每次推送后):
- 构建将使用我们的自定义脚本
script/cibuild
在 _site
目录 中创建
_site
将被推送到 gh-pages
分支。
- github 页面将按原样提供网站,无需重新构建(因为
.nojekyll
文件)
参考:我的存储库https://github.com/armujahid/armujahid.me/正在使用此方法使用Travis进行持续集成CI
我刚刚为我的 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),请执行以下操作:
- 来自您的工作文件夹
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-pages不需要buildgit 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 的东西。看看他们的 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
部署步骤(每次推送后):
- 构建将使用我们的自定义脚本
script/cibuild
在_site
目录 中创建
_site
将被推送到gh-pages
分支。- github 页面将按原样提供网站,无需重新构建(因为
.nojekyll
文件)
参考:我的存储库https://github.com/armujahid/armujahid.me/正在使用此方法使用Travis进行持续集成CI