我是第一次在jekyll和ruby用户-0的任何一个体验。我之所以处理这些问题,是因为坦率地说,我只是想。
我把我的实际问题放在最上面,因为这是很多值得阅读的地方。然而,所有细节都包括在下面;
实际问题
BASE_PATH和ASSET_PATH合并到我的Lanyon主题中呢?详细信息
我遵守了这里的所有说明;快速启动指南
而且在大多数情况下,我并没有像我想的那样迷失方向。但到此为止。我在一些事情上有很大的差距,尤其是这些global variables是如何工作的。我指的是BASE_PATH和ASSET_PATH.
如果您查看_config.yml文件的jekyll-bootstrap,一般结构将如下所示,并删除注释;
JB:版本: 0.3.0 BASE_PATH: false ASSET_PATH: false
好的,所以他们说用相对于你的站点的信息来替换这些值。这就是我被绊倒的地方。
jekyll-bootstrap主题,您可以在_includes/JB/中找到一个名为setup的特殊文件。该文件的内容如下;{%捕获jbcache %} {%如果site.JB.setup.provider ==“自定义”%} {%包括自定义/安装%} {%其他%} {%如果site.safe和site.JB.BASE_PATH以及site.JB.BASE_PATH!‘%} {指定BASE_PATH = site.JB.BASE_PATH %} {%分配HOME_PATH = site.JB.BASE_PATH %} {% %} {%分配BASE_PATH = nil %} {%分配HOME_PATH = "/“%} {% endif %} {% %} { site.JB.ASSET_PATH %} { ASSET_PATH = site.JB.ASSET_PATH %} {% themes%} {% capture ASSET_PATH %}{ BASE_PATH }/资产/主题/{ page.theme.name }{page.theme.name}% endcapture %}{% endif %} {% endif %} {% endcapture %} {%分配jbcache =0 %}
现在请记住,我在这门语言中拥有零经验,所以我正在进行纯粹的、100%的推测,但在我看来,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.css,或者在另一个主题的情况下,比如我的lanyon one,/assets/themes/lanyon/css/site.css。
这似乎是所期望的行为,但正是这个setup文件让我感到困惑,并且扭曲了周围的事情。
根据关于堆栈溢出的另一个主题,我被告知我应该用一个限定符来调用ASSET_PATH的主题,如下所示;
{{ site.Lanyon.ASSET_PATH }}。
或者,在最初的bootstrap主题中,我想应该是.
{{ site.JB.ASSET_PATH }}
现在我们回到setup文件;在jekyll-bootstrap主题中,我们可以转到_layouts/page.html,我们非常清楚地看到setup文件是这样使用的。
{% include JB/setup %}
发布于 2014-07-18 20:56:47
这是怎么回事?
JB/setup只计算BASE_PATH、HOME_PATH和ASSET_PATH,这取决于您在site.JB全局vars中的设置。这些都是您将在模板中使用的快捷方式。
如何为我的Lanyon主题复制这个主题,这样我就不需要完全限定的名称了?
我怎样才能让BASE_PATH和ASSET_PATH也融入我的Lanyon主题呢?
因为Lanyon是用来运行基本的Jekyll而不是Jekyll Bootstrap的,所以它需要一些集成才能作为一个主题。Jekyll Bootstrap主题API解释了这个过程。
因为它有点敏感,我把它和示例集成在我的Github中放在一起了。首先提交是JB基,最后提交是Lanyon集成。
https://stackoverflow.com/questions/24827657
复制相似问题