jekyll标头的echo -e“ --- \ n ...”会生成YAML异常

时间:2018-08-16 01:38:20

标签: bash echo jekyll

我编写了一个脚本,该脚本会自动将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"

Update2

使用file命令,它会显示(无论出于何种原因)输出文件正在使用ASCII text, with CRLF, LF line terminators

1 个答案:

答案 0 :(得分:0)

错误消息没有指向正确的行,但是在我的标头之一(上面未显示)中,我正在输出Jekyll变量,例如{{url}}。看起来它们在前端问题中不受支持。删除它可以解决问题。