您好,登錄后才能下訂單哦!
在看drupal8,發現其模塊和主題的定義使用的是YAML文件。drupal8使用的Symfony框架中YAML文件結構,故翻譯整理學習下,有理解不準確的地方請多多指教。
String
一般字符串可以使用單引號,雙引號或者不使用引號。
A string in YAML 'A singled-quoted string in YAML' "A double-quoted string in YAML"
當使用單引號字符串時,其內容中的任何單引號必須加倍才能轉義:
'A single quote '' inside a single-quoted string'
包含以下任何字符都需要引號,可以使用單引號或雙引號,但使用單引號更方便
:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, `
雙引號方式提供了以一種表示任意字符串的方法,使用\來轉義字符和序列
\0, \x01, \x02, \x03, \x04, \x05, \x06, \a, \b, \t, \n, \v, \f, \r, \x0e, \x0f, \x10, \x11, \x12, \x13, \x14, \x15, \x16, \x17, \x18, \x19, \x1a, \e, \x1c, \x1d, \x1e, \x1f, \N, \_, \L, \P
"A double-quoted string in YAML\n"
注:測試發現,當字符串中包含上面字符時,使用單引號也可以轉義的
最后還有其他一些情況,不管你使用單引號還是雙引號
true or false ( 否則就是布爾值 )
null or ~ (否則認為是null)
當看起來像整數如2,14;浮點數如2.6,14.9;指數如12e7等,否則被視為一個數值
當看起來像一個日期如2014-12-31,否則會自動轉為一個Unix時間戳
'true' 'null' '2.14' '2014-12-31'
當一個字符串中包含換行符時,可以使用由(|)管道符來指示該字符串將跨越多行。在文字中,換行符被保存下來
| \/ /| |\/| | / / | | | |__
或者字符串可以使用折疊樣式編寫,用>表示,其中每行換行符被空格替換
> This is a very long sentence that spans several lines in the YAML but which will be rendered as a string without carriage returns.
12 #十進制 014 #八進制 0xC #十六進制 13.4 #浮點數 1.2e+24 #指數 .inf #無窮
null ~
true false
#簡單日期 2002-12-14
- PHP - Perl - Python
對應PHP為
array('PHP','perl','Python')
PHP: 5.2 MySQL: 5.1 Apache: 2.2.20
對應PHP為
array('PHP' => 5.2, 'MySQL' => 5.1, 'Apache' => '2.2.20');
'symfony 1.0': PHP: 5.0 Propel: 1.2 'symfony 1.2': PHP: 5.2 Propel: 1.3
對應PHP為
array( 'symfony 1.0' => array( 'PHP' => 5.0, 'Propel' => 1.2, ), 'symfony 1.2' => array( 'PHP' => 5.2, 'Propel' => 1.3, ), );
在YAML文件中使用縮進時需要記住一件重要的事情:縮進必須由一個或多個空格完成,但從不使用制表符。
也可以根據需要嵌套序列和映射
'Chapter 1': - Introduction - Event Types 'Chapter 2': - Introduction - Helpers
也可使用明顯的指示符而不是縮進
[PHP, Perl, Python] { PHP: 5.2, MySQL: 5.1, Apache: 2.2.20 } 'Chapter 1': [Introduction, Event Types] 'Chapter 2': [Introduction, Helpers] 'symfony 1.0': { PHP: 5.0, Propel: 1.2 } 'symfony 1.2': { PHP: 5.2, Propel: 1.3 }
#comment on a line
Explicit Typing
data: # this value is parsed as a string (it's not transformed into a DateTime) start_date: !!str 2002-12-14 # this value is parsed as a float number (it will be 3.0 instead of 3) price: !!float 3 # this value is parsed as binary data encoded in base64 picture: !!binary | R0lGODlhDAAMAIQAAP//9/X 17unp5WZmZgAAAOfn515eXv Pz7Y6OjuDg4J+fn5OTk6enp
Unsupported YAML Features
Symfony Yaml組件不支持以下YAML特性:
Multi-documents (--- and ... markers); 多文檔(---和...標記);
Complex mapping keys and complex values starting with ?
;以?開頭的復雜映射鍵和復數值;
Tagged values as keys;標記為鍵的值;
下面標簽和類型: !!set, !!omap, !!pairs, !!set, !!seq, !!bool, !!int, !!merge, !!null, !!timestamp, !!value, !!yaml;
標記(TAG指令;例如:%TAG!標記:example.com,2000:app /)和標記引用(例如:!<tag:example.com,2000:app / foo>);
映射元素使用類似序列的語法(例如:{foo,bar};改為使用{foo:?,bar:?})
原文地址:http://symfony.com/doc/current/components/yaml/yaml_format.html
驗證地址:https://codebeautify.org/yaml-to-json-xml-csv
---
僅供個人理解參考
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。