我是第一次jekyll
和ruby
用户 - 0经验。我正在解决它们,因为坦率地说,我只是想。
我发布了我的实际问题,因为这是很多要阅读的内容。所有细节都包括在下面;
BASE_PATH
和ASSET_PATH
?我已按照此处的所有说明操作;的 jekyll quick start guide
并且在很大程度上,我并没有像我想象的那样迷失。但那就结束了。我在一些事情之间存在很大的差异,其中最重要的是 global variables
的工作方式。我指的是 BASE_PATH
和 ASSET_PATH
。
如果您查看_config.yml
的{{1}}文件,一般结构将如下所示,并删除注释;
jekyll-bootstrap
好的,他们说要用相对于您网站的信息替换这些值。这就是我被绊倒的地方。
如果我下载不同的 jekyll主题,这看起来有点不同。我引用了另一篇关于 Lanyon 的stackoverflow帖子,其中既没有基本信息也没有资源路径。我仍然检查过其他主题,有些人没有,有些人没有,但是一致性不存在。
如果您继续浏览JB:
version: 0.3.0
BASE_PATH: false
ASSET_PATH: false
主题,可以在jekyll-bootstrap
中找到一个名为_includes/JB/
的特殊文件。该文件的内容如下:
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.css
,lanyon
。
这似乎是预期的行为,但/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
答案 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集成。