From 4f46d262e6967c9c638b40f3b0246d21b7a9b9dc Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 9 Apr 2025 20:29:15 +0900 Subject: feat(blog/nuldoc): rebuild --- .../index.html | 41 +++++++++------------- 1 file changed, 17 insertions(+), 24 deletions(-) (limited to 'vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2') diff --git a/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html b/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html index 87efea12..37cb8206 100644 --- a/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html +++ b/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html @@ -65,43 +65,39 @@ NOTE
- この記事は、2021-06-30 にデジタルサーカス株式会社 の社内 Qiita Team に公開された記事をベースに、加筆修正して一般公開したものです。 +

+ この記事は、2021-06-30 に デジタルサーカス株式会社 の社内 Qiita Team に公開された記事をベースに、加筆修正して一般公開したものです。 +

-
-

はじめに

+

はじめに

- データ記述言語の一つ YAML には 1.0、1.1、1.2 のバージョンがある。これらのうち、1.1 と 1.2 の間には無視できない非互換の変更が多く、1.2 に対応していないライブラリもある (Ruby 同梱の yaml など)。この記事では、YAML 1.1 と YAML 1.2 の主な破壊的変更を紹介する (影響範囲が広いものを抜粋しており、すべての非互換を網羅してはいない)。 + データ記述言語の一つ YAML には 1.0、1.1、1.2 のバージョンがある。 これらのうち、1.1 と 1.2 の間には無視できない非互換の変更が多く、1.2 に対応していないライブラリもある (Ruby 同梱の yaml など)。 この記事では、YAML 1.1 と YAML 1.2 の主な破壊的変更を紹介する (影響範囲が広いものを抜粋しており、すべての非互換を網羅してはいない)。

-

- 参照した仕様書はこちら: https://yaml.org/spec/1.2.2/ext/changes/ + 参照した仕様書はこちら: https://yaml.org/spec/1.2.2/ext/changes/

-
-

主な破壊的変更

+

主な破壊的変更

-

Boolean としてパースされるトークンが true / false とその亜種のみに

+

Boolean としてパースされるトークンが true / false とその亜種のみに

- この変更の影響が最も大きいと思われる。YAML 1.1 では、boolean 値のリテラルとして truefalse のほか yesnoynonoff、それらの大文字バージョンなどが認められていた。YAML 1.2 では、truefalse、それらの大文字バージョン (TrueTRUEFalseFALSE) のみが boolean としてパースされるようになった。 + この変更の影響が最も大きいと思われる。 YAML 1.1 では、boolean 値のリテラルとして truefalse のほか yesnoynonoff、それらの大文字バージョンなどが認められていた。 YAML 1.2 では、truefalse、それらの大文字バージョン (TrueTRUEFalseFALSE) のみが boolean としてパースされるようになった。

-
-

八進数リテラルには 0o が必須に

+

八進数リテラルには 0o が必須に

- C 言語などでは、0 から始まる数字の列を八進数としてパースする。YAML 1.1 もこれに準じていたが、1.2 からは 0o のプレフィクスが必須となった ("o" は "octal" の "o")。プログラミング言語では、Python や Haskell、Swift、Rust などがこの記法を採用している。 + C 言語などでは、0 から始まる数字の列を八進数としてパースする。 YAML 1.1 もこれに準じていたが、1.2 からは 0o のプレフィクスが必須となった (“o” は “octal” の “o”)。 プログラミング言語では、Python や Haskell、Swift、Rust などがこの記法を採用している。

-
-

<< によるマージが不可能に

+

<< によるマージが不可能に

- YAML 1.1 では、<< という文字列をキーに指定することで、マップをマージすることができた。 + YAML 1.1 では、<< という文字列をキーに指定することで、マップをマージすることができた。

-
x: &base
   a: 123
@@ -112,24 +108,21 @@
   b: 456
 # => { "y": { "a": 123, "b": 456 } }
-

- 1.2 からはこれができなくなる。 + 1.2 からはこれができなくなる。

-
-

数字を _ で区切るのが禁止に

+

数字を _ で区切るのが禁止に

12345671_234_567 と書けなくなった。

-
-

おわりに

+

おわりに

- 全体的に、There's more than one way to do it. から There should be one - and preferably only one - obvious way to do it. へ移行しているように思われる。データ記述言語としては望ましい方向性ではないかと感じる。 + 全体的に、There’s more than one way to do it. から There should be one - and preferably only one - obvious way to do it. へ移行しているように思われる。 データ記述言語としては望ましい方向性ではないかと感じる。

-- cgit v1.2.3-70-g09d2