2

我想这是我在这里的第一个问题。我在 StackOverflow 上潜伏了很长一段时间,现在它对我来说是一个很好的资源。

我正在编写一个像jekyll一样工作的小型静态站点生成器(最终用户在纺织品中编写他的页面内容,在YAML中编写标题(元信息)- 一个脚本将它与模板混合在一起,将所有内容放在一个目录中服务器渲染)在python中。我这样做是为了学习 python

我能够将 yaml 文件解析为字典;以及在 python 中将纺织品转换为 html - 感谢 python 库。问题是:如何解析纺织品文件中的 yaml 和同一文件中的纺织品?

现在,想法是在 yaml 和纺织品内容之间放置一个行分隔符:例如。

---
someyaml: someyamlcontent
anothervariable: somevalue
andsoon:
- something
- somestuff
---

_all the textile content goes here_ as well as all the **osm** here.

我的想法是手动读取这些行并询问当前行是否为 == '---' 然后 python-yaml 进入;'---' 回来了,python-textile 开始工作了。

有没有其他方法可以做到这一点?

提前致谢。:)

4

1 回答 1

1

假设您的所有文件都将具有相同的格式并使用 YAML,一种可能性是将文件读入单个字符串,然后在“---”上进行字符串拆分以得到一个数组。

我不是 python 人,但我认为这应该创建一个包含以下内容的数组:

  • 索引 0 - 空
  • 索引 1 - 您的 YAML 标头
  • 索引 2-N - 您的主体内容。

从这里,您可以为您的 YAML 处理索引 1,然后单独处理您的正文内容。请注意,如果您有任何其他“---”字符串,您的正文内容将被拆分为多个数组元素。因此,您希望将索引 2 与它之后的任何其他索引连接起来(在执行连接时添加“---”字符串)。

于 2011-08-15T14:57:29.853 回答