在解析块映射时,Jekyll config.yml没有找到预期的键

时间:2015-10-11 14:15:07

标签: yaml jekyll

我在命令行终端中收到此错误:

  

在解析第18行第7行的块映射时未找到预期的键

我的jekyll _config.yml YAML文件如下所示:

title: Oliver Williams - Portfolio
url: "http://yourdomain.com" # the base hostname & protocol for your site

# Build settings
markdown: kramdown
permalink: /:title

defaults:
  -
    scope:
      path: "" # an empty string here means all files in the project
      type: "posts" # previously `post` in Jekyll 2.2.
    values:
      layout: "post"

       -
    scope:
      path: "" # an empty string here means all files in the project
      type: "pages" 
    values:
      layout: "page"

3 个答案:

答案 0 :(得分:5)

我不确定_config.yml的格式化/缩进。

这是正确的:

title: Oliver Williams - Portfolio
url: "http://yourdomain.com"
markdown: kramdown 
permalink: /:title

defaults: 
  - 
    scope: 
      path: "" 
      type: "posts" 
    values: 
      layout: "post"
  -
    scope:
      path: ""
      type: "pages" 
    values:
      layout: "page"

答案 1 :(得分:3)

问题在于您的第二个默认值列表元素。标记缩进太多,因为您使用了制表符而不是两个空格。

没有理由将作为这些列表元素的映射放在单独的行上。如果列表是映射值,则也不必缩进列表元素。也没有必要引用简单的标量,例如"posts""page"等。(您的title值也没有。)

所以你可以这样做:

title: Oliver Williams - Portfolio
url: http://yourdomain.com   # the base hostname & protocol for your site

# Build settings
markdown: kramdown
permalink: /:title

defaults:
- scope:
    path: ''         # an empty string here means all files in the project
    type: posts      # previously `post` in Jekyll 2.2.
  values:
    layout: post
- scope:
    path: ''         # an empty string here means all files in the project
    type: pages
  values:
    layout: page

相当于您的输入(针对过度缩进的-进行了更正)

答案 2 :(得分:0)

在YAML中的某个地方,键值之前有多余的空格(或没有足够的空格)。

此YAML短毛绒可能会有所帮助,因为它告诉您正确的行(如果有):https://jsonformatter.org/yaml-formatter