我在命令行终端中收到此错误:
在解析第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"
答案 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。