10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YAMLで複数行を記述するときに使うブロックスカラーのサンプル

Last updated at Posted at 2022-07-13

YAMLの書き方にブロックスカラーというのがある。
|(パイプ記号、縦棒記号) または >(大なり記号) に、 +- を組み合わせた、複数行に渡った値の書き方だ。1

毎回書き方のサンプルをGoogle先生に聞いているような気がするので、ここにメモります。2

|

|は複数行を改行コードで繋げる。

単純な複数行
- |
  hoge
  fuga
# ["hoge\nfuga\n"]
途中のインデント(段下げ)のスペースは反映される
- |
   hoge
   fuga
     boo
     poo
   piyo
   piyo
# ["hoge\nfuga\n  boo\n  poo\npiyo\npiyo\n"]
ブロックの最後の複数改行は1つの改行にまとめられる
- |
  hoge
  fuga

# ["hoge\nfuga\n"]

|+

単純な複数行は"|"と同じ
- |+
  hoge
  fuga
# ["hoge\nfuga\n"]
ブロックの最後の複数改行は保持される
- |+
  hoge
  fuga

# ["hoge\nfuga\n\n"]

|-

単純な複数行ではブロック最後の改行は削除される
- |-
  hoge
  fuga
# ["hoge\nfuga"]
ブロックの最後に複数改行がある場合も全て削除される
- |-
  hoge
  fuga

# ["hoge\nfuga"]

>

> は改行をスペースに変換する。

単純な複数行では改行はスペースに置き換わり、ブロックの最後の改行は残る
- >
  hoge
  fuga
# ["hoge fuga\n"]
ただしインデント(段下げ)が変わると改行で分けられ、段下げ分のスペースも活かされる
- >
  hoge
  fuga
    boo
    poo
  piyo
  piyo
# ["hoge fuga\n  boo\n  poo\npiyo piyo\n"]
ブロックの最後の複数改行は1つの改行にまとめられる
- >
  hoge
  fuga

# ["hoge fuga\n"]

>+

単純な複数行は">"と同じ
- >+
  hoge
  fuga
# ["hoge fuga\n"]
ブロックの最後の複数改行は保持される
- >+
  hoge
  fuga

# ["hoge fuga\n\n"]

>-

単純な複数行では改行はスペースに置き換わり、ブロック最後の改行は削除される
- >-
  hoge
  fuga
# ["hoge fuga"]
改行はスペースに置き換わり、ブロックの最後の複数改行も削除される
- >-
  hoge
  fuga

# ["hoge fuga"]

その他

YAMLのブロックスカラーの動作確認をできるページがあるようなので共有です。

  1. |>ブロックスタイルインジケータ(Block Style Indicator)+-ブロックチョンピングインジケータ(Block Chomping Indicator)というらしい。日本語だとなんだろう、ブロック型指定子、ブロック末改行指定子、といったところか。

  2. パーサにはRubyのYAMLライブラリを使いました。

10
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?