1. 程式人生 > >YAML中多行字串的配置方法

YAML中多行字串的配置方法

有時候我們會在配置檔案中配置一段文字說明,這種時候通常會出現兩種需求: 1. 文字中可能出現段落,希望在配置中按段落方式編寫,顯示列印的時候也能出現段落換行。 2. 文字很長,為方便編輯,可能在配置檔案中分段寫,但是顯示的時候不喜歡出現配置中的段落換行。 簡單的說,就是: 1. 配置與顯示,都嚴格按段落展示 2. 配置按段落,顯示不需要按段落 假設,我們需要配置這樣一段文字: ``` I am a coder.My blog is didispace.com. ``` 下面,就針對上面的兩種情況來看看可以怎麼來實現: ## 配置與顯示,都嚴格按段落展示 這個需求下,我們希望配置和顯示都按句子換行,就是這樣: ``` I am a coder. My blog is didispace.com. ``` ### 方法一:直接使用`\n`來換行 這樣寫: ```yaml string: "I am a coder.\n\ My blog is didispace.com." ``` 最終輸出: ``` I am a coder. My blog is didispace.com. ``` 通過`\n`在顯示的時候換行,通過配置行末的`\`讓這個字串換行繼續寫(這個必須有,如果沒有第二行行首會多一個空格)。 **注意**:這裡必須使用雙引號來定義字串,不能用單引號。因為單引號是不支援`\n`換行的。 ### 方法二:使用`|`、`|+`、`|-` 在方法一種,其實我們在文字中加入了幾個轉義符號,其實對於閱讀並不方便。在方法二中,將介紹更適合閱讀的幾種形式: ``` string: | I am a coder. My blog is didispace.com. string: |+ I am a coder. My blog is didispace.com. string: |- I am a coder. My blog is didispace.com. ``` 如上面一共有三種配置都會自動按配置中所寫的換行來換行,但是在文末會有一些區別,有的會增加一個空行,有的不會,有的會新增兩個空行,具體說明如下: - `|`:文中自動換行 + 文末新增一空行 - `|+`:文中自動換行 + 文末新增兩空行 - `|-`:文中自動換行 + 文末不新增行 ## 配置按段落,顯示不需要按段落 這個需求下,我們希望配置裡是按行寫的,但是顯示是如下面這樣在一行的: ``` I am a coder.My blog is didispace.com. ``` ### 方法一:直接在字串中換行寫 最粗暴的寫法,反正不用換行,那就直接寫了: ``` string: 'I am a coder. My blog is didispace.com.' ``` 這裡不論用雙引號還是單引號都是可以的。因為不存在需要轉移的內容,所以總體還算清晰。 ### 方法二:使用`>`、`>+`、`>-` 比較好的表述方式就是使用`>`、`>+`、`>-`來定義,比如下面這幾種: ```yaml string: > I am a coder. My blog is didispace.com. string: >+ I am a coder. My blog is didispace.com. string: >- I am a coder. My blog is didispace.com. ``` 這三種都不會對配置中的換行進行實際換行,但是依然在文末的處理會有一些小區別,具體如下: - `>`:文中不自動換行 + 文末新增一空行 - `>+`:文中不自動換行 + 文末新增兩空行 - `>-`:文中不自動換行 + 文末不新增行 > 歡迎關注我的公眾號:程式猿DD,獲得獨家整理的學習資源和日常乾貨推送。 > 如果您對我的專題內容感興趣,也可以關注我的部落格:[didispace.com](http://blog.didispace.com/yaml-string-mult