2011-08-14 16 views
2

私はこれが私の最初の質問だと思います。私はかなり長い間StackOverflowに潜んでいました。今は私にとって大きなリソースでした。YAML on Textile Parsing

私は(エンドユーザーが自分のページテキスタイルのコンテンツとYAMLのヘッダ(メタ情報)を書き込んジキルのように動作し、小さな静的サイトジェネレータを書いている - スクリプトは、それをマッシュアップテンプレートはPythonでサーバがレンダリングするディレクトリにすべてを置きます)。私は酒を学んでいます。です。

yamlファイルを辞書に解析することができます。ファイアウォールをhtmlに変換することができます。これはPythonライブラリのおかげです。質問は、どのように私は繊維ファイルと繊維内のyamlを同じファイル内で解析するのですか?

ここでは、yamlとtextile content:exの間に行区切り記号を挿入することを考えています。

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

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

アイデアの私の一種のpython-YAMLが入って来ていることの後に、その後「---」を手動ラインを読み、現在の行がある場合==お願いしました。 1つは '---'が戻ってきて、それはPython-Textileの作業に変わります。

これを行う方法は他にありますか?

ありがとうございます。 :)

+0

これはうまくいくと思われますが、読んでいる別の例を見るにはhttp://stackoverflow.com/questions/6816236/loading-document-as-raw-string-in-yaml-with-pyyaml YAML文書からの任意のデータほぼこれを答えとして掲示しましたが、それは本当に別の方法ではなく、あなたがすでに話していることを達成する方法です。 – agf

+0

あなたの最初の質問にご歓迎ありがとうございます。 @agfが指すリンクは1つのパスです。私はもう少し高いレベルの詳細で答えを掲載しました。がんばろう。 –

+0

ありがとうございました!ポストされたリンクは私にとってうまくいった。 – jpanganiban

答えて

1

すべてのファイルが同じフォーマットでYAMLを使用すると仮定すると、そのファイルを単一の文字列に読み込んだ後、 "---"で文字列分割を行い、配列。

私はPythonの男ではないんだけど、私は、これは次の配列を作成すべきだと思う:

  • インデックス0 - 空
  • インデックス1 - あなたのYAMLヘッダ
  • インデックス2-Nを - あなたの本体内容。

ここから、YAMLのインデックス1を処理してから、身体の内容を個別に処理できます。他の "---"文字列がある場合、あなたのボディコンテンツは複数の配列要素に分割されることに注意してください。だから、インデックス2を後にある他のものと結合したいと思うでしょう(結合をしている間に "---"文字列を追加する)。