杰基尔有很多主题,例如: https://github.com/jekyll/jekyll/wiki/Themes
在EXISTING Jekyll安装中切换到新主题的最简单方法是什么?
答案 0 :(得分:16)
当您可以迁移到现有安装时,可以通过分配新主题,然后手动复制和粘贴_includes
中的CSS,JS,HTML等资源,_layouts
和你可能需要的其他文件一样,这可能不是一个好主意,因为你最终混合了新旧资源,这些资源可能不是同一个名字,而是在他们所处的场景中(例如你没有覆盖你的帖子引用的旧样式表,它会导致混合的CSS样式,你必须调试并慢慢修复。
由于我假设您使用Git进行了Jekyll安装(如果您不是真的应该这样做),您可以创建一个名为new-theme
的分支并切换来自master
作为工作分支的那个分支。 (如果您不想处理Git分支(但实际上,您应该这样做),那么只需复制整个Jekyll安装并将其粘贴到old-Jekyll-install
其他地方即可。这帮助我学习)
_posts
以及您的自定义更改。 _config.yml
上移植。<br \>
代码用于间距而您不希望这样在新的主题)。master
合并(或将其推送到制作中)据说这一切都是相当手动和痛苦的,但至少你不必处理资源冲突。这样做的缺点是您的存储库未能与主题存储库同步。因此,您无法获得上游更新。我仍然建议你 fork 主题回购,为你的Jekyll网站定制个人定制,然后重命名该回购用于生产。 (这当然不再使用现有的&#39; Jekyll安装)
答案 1 :(得分:8)
Jekyll v3.2介绍gem-based themes(未来计划见here):
基于宝石的主题使主题开发人员可以轻松进行更新 任何拥有主题gem的人都可以使用。当有更新时, 主题开发人员将更新推送到RubyGems
基于宝石的主题的目标是让您获得所有好处 一个强大的,不断更新的主题,没有所有的主题 文件妨碍你的方式并使你的内容过于复杂 主要关注点:创建内容。
安装基于gem的主题很简单:
gem "jekyll-theme-awesome"
bundle install
。_config.yml
以激活主题:theme: jekyll-theme-awesome
bundle exec jekyll serve
要切换主题,我相信这样的事情应该有效:
gem "jekyll-theme-new"
bundle install
_config.yml
以引用新主题:theme: jekyll-theme-new
bundle exec jekyll serve
bundle show jekyll-theme-awesome
)并使用gem uninstall jekyll-theme-awesome
将其卸载。为了安全起见,请确保其文件夹确实已删除。更新基于宝石的主题很简单:
如果你有主题gem,你可以(如果你愿意)运行
bundle update
更新项目中的所有宝石。或者,您可以运行bundle update <THEME>
,替换为主题名称,例如minima
只需更新主题宝石。任何新文件或更新主题 开发者已经(如样式表或包括)将被拉 自动进入你的项目。
重要提示:在撰写本文时,GitHub页面仅支持specific set of gem-based themes:架构师, Cayman , Dinky ,黑客,闰日, Merlot ,午夜, Minima , Minimal , Modernist , Slate , Tactile 和 Time machine 。其中,似乎只有Minima是面向博客的(例如,它是唯一一个内置Disqus支持的人)。但是,如果您愿意run the Jekyll build process yourself,您应该可以使用任何主题。
另一种选择是GitLab pages(tutorial,sample site)。
答案 2 :(得分:3)
我tested this,但是我做了一个项目,我没有任何我想保存的东西,而且主题相当简单,所以这可能不会很好地复杂化。
为安全起见,请创建一个新分支
git checkout -b newtheme
然后将新主题添加为远程
git remote add new-theme-upstream https://github.com:drjekyllthemes/jekyll-minimal-theme.git
git pull new-theme-upstream HEAD
git status
发生合并冲突,希望这些冲突只能在您要覆盖的样式文件中。如果您想保留任何文件,可以使用文本编辑器编辑它们:git将标记文件中的更改推送到您的原点
git push origin newtheme
git pull new-theme-upstream
您可以将主题保存在git子模块中,作为单独的文件夹,然后将符号链接为jekyll的关键元素。 不会在gh-pages原始示例
中工作blog
|
+-- theme_1/
|
+-- theme_2/
| |
| +-- _layouts/
|
+-- _layouts ln - theme_2/_layouts
当改变主题时,主题不会发生冲突。
答案 3 :(得分:1)
在现有或新的jekyll安装中切换主题的最简单方法是使用以下插件:jekyll-remote-theme,自2017年11月起可用。
虽然它目前处于测试阶段,但它工作正常,最重要的是它已经在Github Pages上列入白名单,所以除非请求的主题包含不受支持的Gems,否则无需在本地构建。
因此,对于包含网页和博客的简单网站,您可以直接在Github基础架构上托管和编辑内容,并通过键入新远程主题的地址来切换您的网站主题。另一个好处是,您可以在提交其中一个内容之前使用several existing themes测试您的内容。
除了更容易切换之外,jekyll-remote-theme方法应该自动引入新版本的远程主题,只要您进行更改并且有新版本的主题的维护者。如果主题的维护者做了一个你不喜欢的彻底改变,那么你总是会有一些键盘远离新的主题。
我有几个jekyll装置,我已经在使用它而不打算在短期内切换,因为它是目前最优雅和未来的解决方案。
如果您现有的jekyll安装是纯粹的(即,您只编辑了页面,帖子,配置),那么切换是无缝的。如果您现有的主题具有特殊布局(例如,splash.html和新的没有它然后你的页面使用相应的布局成为孤儿(即基本的HTML没有特殊的格式)。我已经切换了一个已经过广泛编辑的现有安装,因此我获得了几个孤立页面,但是我没有得到任何与此处讨论的其他方法可能存在的git合并冲突。