- 2010-02-22 (月) 18:40
- MovableType


- YAMLの書き方について
某案件で悩んでいたら、藤本さんが教えてくれました。
テーマのインポーターでウェブページの要素を記述していたんですが、理解している範囲のYAMLの書き方だと、そもそも複数行にわたる「本文」や「続き」を書く事が出来ない。改行すると、それは別な要素(?という言い方が正しいかは別にして)として扱われるので、今までは改行抜きで記述していたんです。
text: <p> <strong>サンプルテキスト</strong>サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。 </p>
上だとNGだから、下のこういう具合に。
text: <p><strong>サンプルテキスト</strong>サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。</p>
こうすると、エラーにはならないんですが、一つも改行が含まれないので、Javascriptのコードとか入れたい時には、とんでもなく見にくい状態になります。
でも、藤本さんが教えてくれたの見ると
text: | <p> <strong>サンプルテキスト</strong>サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。サンプルテキスト。 </p>
よく見ないと解らないですが、text:の後に「|」が入ってます。これがそういう動きに必要なものらしいです。
これは良いこと覚えました。
それにしても、藤本さんがサラッとこういう書き方しちゃうのみて、「もしかしたら・・・」と気づきました。
ようは「YAMLの書き方でそういうのがあって、藤本さんが知っていたって事じゃないのか」と言う事に。
早速ぐぐると・・・
インデントを使って構造を表す書き方を「ブロックスタイル」といいます。ブロックスタイルではデータを複数行にわたって記述します。
[Rubyist Magazine - プログラマーのための YAML 入門 (初級編):(2010年2月22日 18:29:08)]
文字列も、フロースタイルとブロックスタイルがあります。今まで見てきたのはフロースタイルであり、 1 行に収まる文字列の場合に適しています。 ブロックスタイルは複数行にわたる文字列に適しており、次のようになります。
[Rubyist Magazine - プログラマーのための YAML 入門 (初級編):(2010年2月22日 18:29:54)]
## 各行の改行を保存する text1: | aaa bbb ccc
となってました。うぉ、ちゃんと勉強しとくんだったな・・・YAML。
他にもいろいろあるみたいなので、YAML使う前に一度読んどいた方が良いですね。
と言う訳で、こんなことしている場合ではないので、某案件に戻ります。ごめんなさい、ごめんなさい、もうしません。集中集中!
- Newer >: モディファイアについて
- < Older: ハッカソンって名前が悪い?
ping a Trackback
- TrackBack URL for this entry.(1)
Comments:(2)
-
said
February 23, 2010 1:11 AM
|
ReplyThis!
「イイね」
すごく勉強になりました~
-
said
February 23, 2010 10:06 PM
|
ReplyThis!
「イイね」
わたしも勉強になりました




スクリプトの読み込みが完了していません。
メールフォーム(Javascriptを使用していません)や、
Twitter経由のCommentでもReplyいたします。ただし返信はブログのコメントとして行う事もあります。