YAML на разборе текстиля - PullRequest
       18

YAML на разборе текстиля

2 голосов
/ 14 августа 2011

Я думаю, это мой первый вопрос здесь.Я уже давно слоняюсь по StackOverflow, и он стал для меня отличным ресурсом.

Я пишу небольшой генератор статических сайтов, который работает как jekyll (Конец-user записывает содержимое своей страницы в текстиль , а заголовок (метаинформацию) в YAML - скрипт смешивает его с шаблоном, помещает все в каталог, который сервер отображает) впитон.Я делаю это для изучения питона .

Я могу разобрать файл yaml в словарь;а также конвертировать текстиль в HTML все в Python - благодаря библиотекам 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;те, которые '---' вернулись, теперь дело за питон-текстилем.

Есть ли другие способы сделать это?

Заранее спасибо.:)

1 Ответ

1 голос
/ 15 августа 2011

Предполагая, что все ваши файлы будут иметь одинаковый формат и использовать YAML, одной из возможностей будет считывание файла в одну строку, а затем разделение строки на «---» для получения массива.

Я не парень с питоном, но я думаю, что это должно создать массив со следующим:

  • Индекс 0 - Пусто
  • Индекс 1 - Ваш YAMLЗаголовки
  • Указатель 2-N - Ваш основной контент.

Отсюда вы можете просто обработать индекс 1 для вашего YAML, а затем по отдельности работать с содержимым вашего тела.Обратите внимание, что содержимое вашего тела будет разделено на несколько элементов массива, если у вас есть другие строки "---".Итак, вы хотите присоединиться к индексу 2 с любыми другими после него (добавив строки «---» обратно во время выполнения соединения).

...