Ruby 现有Jekyll安装中的切换主题
杰基尔有很多主题,例如Ruby 现有Jekyll安装中的切换主题,ruby,jekyll,jekyll-bootstrap,Ruby,Jekyll,Jekyll Bootstrap,杰基尔有很多主题,例如 在现有的Jekyll安装中切换到新主题的最简单方法是什么?而您可以通过分叉一个新主题,然后手动复制和粘贴\u包含的、\u布局和您可能需要的其他文件中的CSS、JS、HTML等资源,从而迁移到现有的安装中,这可能不是一个好主意,因为您最终会有一个新旧资源的混搭,它们可能不是同名的,但在这样的情况下(例如,您没有覆盖您的帖子引用的旧样式表),这将导致混合的CSS样式,您将不得不调试并慢慢修复 因为我假设您有一个使用Git的Jekyll安装(如果您没有,那么您真的应该这样做),
在现有的Jekyll安装中切换到新主题的最简单方法是什么?而您可以通过分叉一个新主题,然后手动复制和粘贴
\u包含的、\u布局
和您可能需要的其他文件中的CSS、JS、HTML等资源,从而迁移到现有的安装中,这可能不是一个好主意,因为您最终会有一个新旧资源的混搭,它们可能不是同名的,但在这样的情况下(例如,您没有覆盖您的帖子引用的旧样式表),这将导致混合的CSS样式,您将不得不调试并慢慢修复
因为我假设您有一个使用Git的Jekyll安装(如果您没有,那么您真的应该这样做),您可以创建一个名为新主题
的分支,并从主
切换到该分支作为工作分支。(如果你不想处理Git分支,一个简单的方法就是复制整个Jekyll安装并将其粘贴到其他地方作为旧的Jekyll安装
(但实际上,你应该这么做。这帮助了我学习)
下拉新主题的文件
手动复制\u帖子
和自定义更改
手动比较并移动所需内容,在\u config.yml
上移植
构建站点,看看您缺少了什么,什么可能会弄糟(例如,在过去,您可能添加了一些
间隔标记,而您不希望在新主题中添加这些标记)
与母版
合并(或将其推向生产)
话虽如此,所有这些都是相当手工的,也是一件痛苦的事情,但至少你不必处理资源冲突。这样做的缺点是你的存储库不会与主题回购同步。因此你不会得到上游更新。我仍然建议你分叉主题回购,端口在y上我们为您的Jekyll站点进行个人定制,然后将该回购重命名为生产。(当然,这将不再使用“现有”Jekyll安装)和GH页面
是的,但我是在一个项目中完成的,我没有任何想要保存的东西,而且主题相当简单,所以在复杂度增加的情况下,这可能无法很好地工作
为了安全起见,请创建一个新分支
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
转到github上的项目页面,您会注意到如下内容:
创建拉取请求并合并中的新更改
您的项目仍将显示为第一个主题的分支,您将无法为新主题的上游创建拉入请求。但您可以使用git pull new theme upstream
为新主题合并新更新
如果您没有使用gh页面,或者在推到github之前在本地构建jekyll(我想)
您可以将主题作为单独的文件夹保存在git子模块中,然后将jekyll的关键元素进行符号链接
blog
|
+-- theme_1/
|
+-- theme_2/
| |
| +-- _layouts/
|
+-- _layouts ln - theme_2/_layouts
这样,在更改主题时,主题不会发生冲突。这就是我更改现有Jekyll安装的主题所做的。调整这些说明以满足您的需要
拉动新主题
我们创建一个新的孤立分支newtheme
,并确保它为空
git签出——孤立的新主题
吉特rm-rf。
git-clean-dfx
然后,我们通过将主题添加为上游遥控器,将主题文件拉入其中。在本例中,我拉入John Otander的Pixyl主题的master
分支
git远程添加上游https://github.com/johnotander/pixyll.git
git取上游
git向上拉主控器
构建主题并测试它
bundler安装
杰基尔发球
合并您的更改
现在我们合并我们的帖子、配置等。您可以使用Gitcheckout
从旧的Jekyll站点复制文件或文件夹。请注意,这将覆盖主题文件(如果存在)
git签出主机--\u posts
或者,您可以使用新名称复制文件,例如手动合并文件
git show master:\u config.yml>\u config.yml.old
如果您意外地重写了一个主题文件,您可以恢复它
git签出上游/master--about.md
这些是我必须复制、合并、调整或删除的文件:
- 在根文件夹中标记文件
- 在
\u Posts
文件夹中发布
- “草稿”文件夹中的草稿
\u config.yml
配置文件
gem文件
gem文件
CNAME
文件(用于GitHub页面)
Rakefile
(如果有)
- favicon文件(如有)
- 手动更改主题,如谷歌分析、搜索引擎优化、搜索引擎优化字段(如有)
提交您的更改,不要忘记再次测试主题
更换主分支
最后,我们用新的newtheme
分支替换现有的master
分支。假设我们在newtheme
分支上:
git签出新主题
git合并-我们的主
切换到主分支
git合并新词
推动改变
git推送
并清理本地newtheme
分支
git分支-d新主题
Th