echo -e "---\n..." for jekyll headers 生成 YAML 异常
echo -e "---\n..." for jekyll headers generates YAML exception
我编写了一个自动将 ipython 笔记本转换为 markdown 的脚本,在将输出保存到文件之前,我通过在 bash 中执行以下操作添加了一个 Jekyll header:
echo -e "---\ntitle: $title\n---\n\n$(cat $destfile)" > "$destfile"
问题是每当我添加 Jekyll header 时,它都会生成一个 YAML 异常:
Error: YAML Exception reading notebook.md: (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1
用 sublime 查看时的输出看起来像这样,看起来完全像预期的 Jekyll header:
---
title: Built-in Data Iterators
---
### Note
Please view the README
只要我删除 header,Jekyll 就可以正常编译。如果我用完全相同的 headers 手动创建另一个 Jekyll 文件,它工作得很好。这里发生了什么?这是某种字符编码问题吗?
更新
尝试使用 printf
:
时也会发生同样的情况
{
printf "%s\n" "---"
printf "%s\n" "title: ${title}"
printf "%s\n" "---"
printf "%s\n" "${output}"
} > "$destfile"
更新2
使用 file
命令,输出文件似乎(无论出于何种原因)正在使用 ASCII text, with CRLF, LF line terminators
错误消息没有指向正确的行,但在我的 headers 之一(上面未显示)中,我输出了一个 Jekyll 变量,例如 {{url}}
。看起来他们在前面的问题中不受支持。删除它解决了这个问题。
我编写了一个自动将 ipython 笔记本转换为 markdown 的脚本,在将输出保存到文件之前,我通过在 bash 中执行以下操作添加了一个 Jekyll header:
echo -e "---\ntitle: $title\n---\n\n$(cat $destfile)" > "$destfile"
问题是每当我添加 Jekyll header 时,它都会生成一个 YAML 异常:
Error: YAML Exception reading notebook.md: (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1
用 sublime 查看时的输出看起来像这样,看起来完全像预期的 Jekyll header:
---
title: Built-in Data Iterators
---
### Note
Please view the README
只要我删除 header,Jekyll 就可以正常编译。如果我用完全相同的 headers 手动创建另一个 Jekyll 文件,它工作得很好。这里发生了什么?这是某种字符编码问题吗?
更新
尝试使用 printf
:
{
printf "%s\n" "---"
printf "%s\n" "title: ${title}"
printf "%s\n" "---"
printf "%s\n" "${output}"
} > "$destfile"
更新2
使用 file
命令,输出文件似乎(无论出于何种原因)正在使用 ASCII text, with CRLF, LF line terminators
错误消息没有指向正确的行,但在我的 headers 之一(上面未显示)中,我输出了一个 Jekyll 变量,例如 {{url}}
。看起来他们在前面的问题中不受支持。删除它解决了这个问题。