Frage

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: someyamlcontent
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. :)

War es hilfreich?

Lösung

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top