jekyll - 如何将来自 github.io 站点的主题用于 Github 项目页面站点
问题描述
我已经断断续续地在我的网站上工作了几年,在这个过程中学到了很多关于 JavaScript、CSS、HTML、Bootstrap、Jekyll、Travis-CI 和 Github Pages 的知识。(长长的清单是为什么花了这么长时间的一个主要因素。)
我发现如果我推送到(或让 Travis 部署到)gh-pages
repo 的分支,它实际上会成为我网站的子域。例子:这里,这里,这里。
这非常棒,但是这些子页面最终会让人感觉它们不是同一个网站的一部分,因为它们无法返回主页。我希望他们包括我的导航栏。
有没有一种优雅的方式来做到这一点?
解决方案
我还没有实现这个,所以我会做更多的事情,但我想我已经找到了规范的解决方案,并想为自己记录下来。
所有 Github Pages 站点都有一个主题。您可以:
- 转到 Settings -> Options -> 向下滚动到 Github Pages 并从主题选择器中选择一个主题。这很糟糕,因为只有几个默认选项,而且您无法自己自定义主题以反映您网站的特质。现成的主题也不允许您使用其他站点的导航栏。
- 或者你可以
_config.yml
在你的项目中添加一个文件,当 github 生成你的 Github Pages 站点时,它会尝试阅读和遵循。您可以在其中指定 atheme
,几个白名单选项之一(有限列表),或 aremote_theme
,任何人都可以创建。这很棒,因为您可以指定自己的主题。
这意味着在用户页面站点和我的所有项目页面站点中拥有一致的导航栏和主题以及所有内容的方法是将我的主题从用户页面站点梳理到它自己的存储库中,然后从配置文件中的所有其他站点引用它.
听起来像是一件苦差事,但它肯定有助于提高可重用性。
我可能还需要index.md
在每个项目的顶层指定,以取代自述文件作为主页并确保内容<head>
和导航栏等内容进入。
推荐阅读
- javascript - 如何在 TextField 标签中居中对齐文本
- reactjs - 在一个 Swiper 中对幻灯片应用多种效果
- reactjs - DataGrid 仅返回 1 个结果而不是更多
- python - 从 Dash/Flask 保存 matplotlib 图表
- spring - 为什么我们必须在覆盖默认方法时重新定义 javax.validation.constraints?
- python - 从 ipywidget 取消 Jupyter 执行
- laravel - 验证文件扩展名
- fortran - 如何在 Fortran 中传递未知类型的参数
- javascript - 参数对象 - JavaScript
- java - 减少和打印字符串数组