【问题标题】:Using common Jekyll code for multiple github pages websites对多个 github 页面网站使用通用 Jekyll 代码
【发布时间】:2016-04-17 21:47:39
【问题描述】:
我希望在 Github 页面上同时托管一个用户网站和多个项目网站,即
- 用户名.github.io
- 用户名.github.io/project1
- 用户名.github.io/project2
我希望他们共享一组通用的 jekyll 文件,以便更轻松地更改主题、信息等。有人设法做到这一点吗?使用 subtree / submodule 并没有太大帮助,因为您无法覆盖 source 配置选项来更改 jekyll 源文件的位置。 Github Pages 总是强制 source 位于根目录中。您可以更改 _includes 和 _layouts 所在的位置,但这并不太有用。有什么建议或例子吗?
【问题讨论】:
标签:
github
jekyll
github-pages
【解决方案1】:
使用username.github.ui/base 作为您的基础模板的存储库。这不应该是 gh 页面。
此存储库应包含一个带有基本模板的分支。目前,我说您正在使用 master 分支。分支并在此 repo 中创建 project1 和 project2 分支。
每次更改基本模板时,请在 master 分支中更改它们,然后将主分支合并到 project1 和 project2。
在本地克隆base repo,并将project1 和project2 添加为远程。
然后只需执行 git push project1 project1:gh-pages 将您的本地 project1 分支推送到第一个项目 gh-pages 分支。
这仍然会使文件成倍增加,但这意味着您可以轻松地使它们保持同步。更改基本模板如下所示:
-
git pull project1 的 gh-pages 分支到基础 repos project1 分支。对项目 2 重复此操作。
- 在
base repo 的相应分支中更改基本模板。
- 将分支合并到
project1 和project2 分支中
-
git pushproject1 的分支进入 project1sgh-pages` 分支。重复 #2。
如果你设置了一些钩子,这可以很容易地自动化。