第一次'jekyll'用户 - 难以理解'bootstrap'主题

时间:2014-07-18 14:39:44

标签: ruby jekyll

我是第一次jekyllruby用户 - 0经验。我正在解决它们,因为坦率地说,我只是想。

我发布了我的实际问题,因为这是很多要阅读的内容。所有细节都包括在下面;

实际问题

  1. 这里发生了什么事?
  2. 如何为 Lanyon 主题重现此内容,以便我不需要完全限定的名称?
  3. 如何在我的 Lanyon 主题中合并BASE_PATHASSET_PATH
  4. 详情

    我已按照此处的所有说明操作;的 jekyll quick start guide

    并且在很大程度上,我并没有像我想象的那样迷失。但那就结束了。我在一些事情之间存在很大的差异,其中最重要的是 global variables 的工作方式。我指的是 BASE_PATH ASSET_PATH

    如果您查看_config.yml的{​​{1}}文件,一般结构将如下所示,并删除注释;

    jekyll-bootstrap

    好的,他们说要用相对于您网站的信息替换这些值。这就是我被绊倒的地方。

    1. 如果我下载不同的 jekyll主题,这看起来有点不同。我引用了另一篇关于 Lanyon 的stackoverflow帖子,其中既没有基本信息也没有资源路径。我仍然检查过其他主题,有些人没有,有些人没有,但是一致性不存在。

    2. 如果您继续浏览JB: version: 0.3.0 BASE_PATH: false ASSET_PATH: false 主题,可以在jekyll-bootstrap中找到一个名为_includes/JB/的特殊文件。该文件的内容如下:

    3. setup

      现在请记住,我对这种语言零经验,所以我会继续纯粹的,100%的猜测,但看起来对我来说就像这样做了一些在 {% capture jbcache %} <!-- - Dynamically set liquid variables for working with URLs/paths --> {% if site.JB.setup.provider == "custom" %} {% include custom/setup %} {% else %} {% if site.safe and site.JB.BASE_PATH and site.JB.BASE_PATH != '' %} {% assign BASE_PATH = site.JB.BASE_PATH %} {% assign HOME_PATH = site.JB.BASE_PATH %} {% else %} {% assign BASE_PATH = nil %} {% assign HOME_PATH = "/" %} {% endif %} {% if site.JB.ASSET_PATH %} {% assign ASSET_PATH = site.JB.ASSET_PATH %} {% else %} {% capture ASSET_PATH %}{{ BASE_PATH }}/assets/themes/{{ page.theme.name }}{% endcapture %} {% endif %} {% endif %} {% endcapture %}{% assign jbcache = nil %} BASE_PATH 之间进行合并,以使ASSET_PATH成为一个加上额外内容。如果我是对的,这意味着如果你有......

      ASSET_PATH

      然后你试着打电话来......

      `BASE_PATH: "/myblog"`
      `ASSET_PATH: "/assets"`
      

      你会得到正确的路径,<link rel="stylesheet" href="{{ ASSET_PATH }}/css/site.css" /> , 或者在其他主题的情况下,例如我的/assets/themes/bootstrap-3/bootstrap/css/site.csslanyon

      这似乎是预期的行为,但/assets/themes/lanyon/css/site.css文件让我感到困惑,扭曲了事物。

      根据 another topic on stackoverflow ;有人告诉我,我应该用setup用限定符来调用它的主题,就像这样;

      ASSET_PATH

      或者,就原始{{ site.Lanyon.ASSET_PATH }}主题而言,我认为它将是......

      bootstrap

      现在我们回到{{ site.JB.ASSET_PATH }}文件;在setup主题中,我们可以转到jekyll-bootstrap,我们非常清楚地看到_layouts/page.html文件就像这样使用了..

      setup

1 个答案:

答案 0 :(得分:1)

这里发生了什么?

JB / setup只计算BASE_PATH,HOME_PATH和ASSET_PATH,具体取决于您在site.JB全局变量中的设置。这些是您将在模板中使用的快捷方式。

如何为Lanyon主题重现这一点,以便我不需要完全合格的名称?

如何在我的Lanyon主题中合并BASE_PATH和ASSET_PATH?

由于Lanyon是与Jekyll基础而不是Jekyll Bootstrap一起运行的,它需要一些集成才能作为主题。 Jekyll Bootstrap Theme API解释了这个过程。

因为它有点敏感,我放了example integration in my Github。第一次提交是JB base,最后一次提交是Lanyon集成。