github - Jekyll 可以使用来自不同 repo 的配置文件吗

标签 github documentation jekyll github-pages

我正在使用 Jekyll 和 GitHub Pages 为位于单独存储库中的项目创建文档,这些存储库是 GitHub 中组织帐户的一部分。我的团队已经决定将文档与代码一起放在每个 repo 中是最有意义的,因此我们将在每个 repo 中使用一个 gh-pages 分支。

我还将在组织帐户中设置一个单独的 gh-pages 存储库作为登录页面。我想让我所有的 jekyll 配置项都存在于这个 repo 中。我需要在每个 repos 的配置文件中放入什么才能从这个中心位置成功提取所有布局、css/scss 等?这可能吗?

Here's a visual representation

简而言之,我正在尝试有一个地方可以更改网站格式文件而不是 6 个。

最佳答案

在 Github 页面上,您可以使用 git submodules 使用来自另一个存储库的资源。 .

这适用于 _layouts_sass,但遗憾的是不适用于 _includes。这是因为在 Jekyll 2.x 中,you cannot configure _includes folder path .这已经在当前的 master 中提交,一旦 Jekyll 3 出来并被 github 页面使用,就可以使用。

编辑:使用 Jekyll 3,您现在可以配置 includes_dir: _mydir。参见 documentation for Jekyll configuration .

临时解决方案可以是合并布局中的包含,直到您能够配置 _includes 路径。不是很干净,但是,由于您的模板是集中的,因此很容易重构。

如何

1 - 创建资源库

将您的组织存储库添加为子模块将拉取资源、帖子和页面。这不是一个好方法,因为帖子和页面将出现在您的项目博客中。

更好的方法是将资源(_includes_layouts_sasscss)放在一个位于 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 文件中的更改不会自动反射(reflect)在您的博客中。

为了刷新您的博客,您必须对所有博客执行此操作。

git submodule update --remote
git commit -a -m 'resources update'
git push origin gh-pages

关于github - Jekyll 可以使用来自不同 repo 的配置文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113945/

相关文章:

asp.net-mvc - 具有基于命名空间的 ApiController 的自定义 ApiExplorer

html - 自定义 jekyll frontpage,使用 post 变量生成的元素。高度问题

github - Terraform Git Clone 似乎不适用于 GITHUB_TOKEN,但在使用 PAT 时可以使用

github - 如何在Github中获得更多上下文

python - 什么是 Ruby 中的 Python 文档字符串?

ruby - Sinatra 构建 REST API 文档

ruby - 在 Jekyll 驱动的站点上创建类别

jekyll - 如何分隔液体标记中的列表项?

git - 如何将文件从 GitHub 移动到 Web 服务器

git - git 中的远程和集中存储库是一回事吗?