首页 文章

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

提问于
浏览
0

我希望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 回答

  • 2

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

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

相关问题