开发者

YAML on Textile Parsing

开发者 https://www.devze.com 2023-03-27 19:57 出处:网络
I think this is my first question here. I\'ve been lurking around on StackOverflow for quite some time now it has been a great resource to me.

I think this is my first question here. I've been lurking around on StackOverflow for quite some time now it has been a great resource to me.

I'm writing a small static site generator that works like jekyll (The end-user writes his page content in textile and the header(meta-info) in YAML - a script mashes it up with the template places everything in a directory which the server renders) in python. I'm doing this for the sake learning python.

I'm able to parse a yaml file into a dictionary; as well as convert textile into html all in python - thanks to the python libraries. The question is: how do I parse the yaml in a textile file and the textile within the same file?

Right now, the idea is to put a line separator between the yaml and the textile content: ex.

---
someyaml: someyamlcont开发者_运维知识库ent
anothervariable: somevalue
andsoon:
- something
- somestuff
---

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

My sort of idea was to read the lines manually and ask if the current line is == '---' then after that the python-yaml comes in; ones the '---' is back, it's python-textile turn to work.

Are there any other ways of doing this?

Thanks in advance. :)


Assuming all your file will have the same format and use YAML, one possibility would be to read the file into a single string and then do a string split on "---" to end up up with an array.

I'm not a python guy, but I think this should create an array with the following:

  • Index 0 - Empty
  • Index 1 - Your YAML Headers
  • Index 2-N - Your main body content.

From here, you could just process Index 1 for your YAML and then deal with your body content separately. Note that your body content would be split into multiple array elements if you have any other "---" strings. So, you'd want to join index 2 with any others that are after it (adding the "---" strings back in while you do the join).

0

精彩评论

暂无评论...
验证码 换一张
取 消