ruby - 在 markdown 文件中编辑 YAML Frontmatter

标签 ruby yaml jekyll middleman yaml-front-matter

在 ruby​​ 中是否有某种方法可以编辑 markdown 文件顶部的 YAML Frontmatter,就像 Jekyll 和 Middleman 中使用的那样?

类似于:

def update_yaml
  #magic that changes A: 1 to A: 2 in Frontmatter block
end

然后我的 Markdown 文件将从

---
A: 1
---
# Title
Words. More words. This is the words part of the file.

---
A: 2
---
# Title
Words. More words. This is the words part of the file.

似乎唯一的选择是解析整个文件,然后重写整个文件,只更改所需的部分,但我希望有更好的东西。

最佳答案

最近我遇到了同样的问题,作为替代方案,您可以使用python-frontmatter。它很容易使用。下面是更改 yaml 变量值的代码:

    import frontmatter
    import io
    with io.open('File.md', 'r') as f:
        post = frontmatter.load(f)
        post['A'] = 2

        # Save the file.
        newfile = io.open(fname, 'w', encoding='utf8')
        frontmatter.dump(post, newfile)
        newfile.close()

更多示例可以访问this page

关于ruby - 在 markdown 文件中编辑 YAML Frontmatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948807/

相关文章:

javascript - 使用 mechanize 和 ruby​​ 单击 javascript 选项卡

ruby-on-rails - 布局渲染不正确

escaping - 如何在 YAML 中转义指示符(冒号和连字符)

json - 简单的结构化数据(INI、YAML、JSON 等)编辑器应用程序

jekyll - Jekyll 中如何将时间转换为 UTC?

ruby - Jekyll:尽管安装了最新版本,但命令未发现问题

mysql - 如何在 Mutex.synchronize 中获取局部变量值?

python,生成器迭代一个或多个项目

ruby - 尝试使用 jekyll 时如何解决此捆绑更新错误?

ruby - Object#method 和 Object#methods 之间似乎不一致