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