为什么不从此Jekyll _config.yml文件传递样式表变量?

时间:2017-02-10 20:12:55

标签: html css yaml jekyll

我希望post文件夹中的所有文件都使用posts.nest.sass.css样式表,所以我尝试将其作为默认设置放在_config.yml文件中

defaults:
-
 scope:
  path: "_posts"
 value:
  layout: "post"
  stylesheet: "css/posts.nest.sass.css"

然后在post.html中,这是这些帖子的布局文件,我将其包含在头部:

    <link rel="stylesheet" href="{{site.stylesheet}}">

在生成的页面中,href属性中没有任何内容。应如何编写以便传递样式表变量?

我猜错了,我无法找到有关如何完成此操作的文档。在Jekyll学习有关格式化的好地方的链接将不胜感激。

编辑:经过更多的摆弄,包括通过这个YAML linter运行文件,我放弃了将它放在_config.yml文件中,而是直接填写了href信息 - 这反射很好,因为它不会随着任何帖子而改变,布局文件会填充它。但是jekyll服务器说每次我保存前面都有无效的事情:

 Defaults: An invalid front-matter default set was found:
{"scope"=>{"path"=>"", "type"=>"posts"}, "value"=>{"layout"=>"post"}} 

我现在放入整个文件以防其他地方出现语法错误 问题,虽然我看不到它。

defaults:
  -
    scope:
      path: ""
      type: "pages"
    values:
      layout: "default"
      stylesheet: "css/content.nest.sass.css"
  -
    scope:
      path: ""
      type: "posts"
    value:
      layout: "post"

destination: docs
exclude:
  - archive
  - graphics
  - webplayer
  - browsergame
  - blend4web
  - details-shim-master
  - blenderstuff
  - working
  - LICENSE.txt
  - README.md
  - TODO.txt
  - basetemplate.html
markdown: kramdown
url: "https://www.moonwards.com/"

1 个答案:

答案 0 :(得分:2)

您的默认值会添加到每个帖子变量中,例如前面的内容。所以,正确的语法是:

<link rel="stylesheet" href="{{page.stylesheet}}">