我正在使用Jekyll和GitHub Pages为生活在GitHub中组织帐户中的单独存储库中的项目创建文档。我的团队决定,将文档与代码一起放在每个存储库中是最有意义的,因此我们将在每个存储库中使用gh-pages分支。
我还将与该组织帐户建立单独的gh页回购,以用作目标网页。我想让我所有的jekyll配置项都保存在此仓库中。为了从该中心位置成功提取所有布局,css / scss等,我需要在每个存储库中的配置文件中放入什么?这有可能吗?
Here's a visual representation
简而言之,我试图在一个地方可以更改网站格式文件,而不是6。
最佳答案
在Github页面上,您可以使用git submodules来使用其他存储库中的资源。
这对于_layouts
和_sass
效果很好,但是对于_includes
却很遗憾。这是因为在Jekyll 2.x中,you cannot configure _includes folder path。这已在当前的母版中提交,并将在Jekyll 3退出并由github页面使用后立即可用。
编辑:使用Jekyll 3,您现在可以配置includes_dir: _mydir
。参见documentation for Jekyll configuration。
临时解决方案可以是合并布局中的包含项,直到您能够配置_includes
路径。并不是那么干净,但是,由于模板是集中式的,因此很容易重构。
如何
1-创建资源库
将组织存储库添加为子模块将同时拉动资源,帖子和页面。这不是一个好方法,因为帖子和页面将出现在您的项目博客中。
更好的方法是将资源(_includes
,_layouts
,_sass
,css
)托管在github.com/userName/resources
的专用存储库中。
在您的_layouts/default.html
中,不要忘记使用以下命令调用CSS:
<link rel="stylesheet" href="{{ "/resources/css/main.css" | prepend: site.baseurl }}">
2-项目博客设置
创建一个没有资源文件的项目博客,并添加资源子模块。
git submodule add https://github.com/userName/resources.git
这将在您的存储库中创建一个
resources
文件夹。编辑您的
_config.yml
并添加:layouts: /resources/_layouts
sass:
sass_dir: /resources/_sass
现在,您可以
jekyll serve
,它可以工作。3-资源工作流程
由于您的资源位于子模块中,因此模板或sass文件中的更改将不会自动反映在您的博客中。
为了刷新您的博客,您将必须对所有博客进行此操作。
git submodule update --remote
git commit -a -m 'resources update'
git push origin gh-pages
关于github - Jekyll可以使用其他仓库中的配置文件吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33113945/