Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 现有Jekyll安装中的切换主题_Ruby_Jekyll_Jekyll Bootstrap - Fatal编程技术网

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安装
    杰基尔发球
    
    合并您的更改 现在我们合并我们的帖子、配置等。您可以使用Git
    checkout
    从旧的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