【问题标题】:YAML on Textile ParsingYAML 关于纺织品解析
【发布时间】:2011-10-26 18:48:09
【问题描述】:

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

我正在编写一个类似于 jekyll 的小型静态站点生成器(最终用户将其页面内容写入 textile 并将页眉(元信息)写入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 开始工作了。

还有其他方法吗?

提前致谢。 :)

【问题讨论】:

  • 这听起来可行,可能想查看stackoverflow.com/questions/6816236/… 以查看另一个从 YAML 文档中读取任意数据的示例。几乎将其发布为答案,但这并不是真正的另一种方式,只是如何完成您已经在谈论的事情。
  • 欢迎并祝贺您的​​第一个问题。 @agf 指向的链接是一条路径。我在这里发布了一个答案,其中包含更多高级细节。祝你好运。
  • 谢谢大家! agf 发布的链接对我来说效果很好。

标签: python parsing yaml jekyll textile


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2014-02-15
    相关资源
    最近更新 更多