YAML中多行字符串的配置方法


有時候我們會在配置文件中配置一段文字說明,這種時候通常會出現兩種需求:

  1. 文字中可能出現段落,希望在配置中按段落方式編寫,顯示打印的時候也能出現段落換行。
  2. 文字很長,為方便編輯,可能在配置文件中分段寫,但是顯示的時候不喜歡出現配置中的段落換行。

簡單的說,就是:

  1. 配置與顯示,都嚴格按段落展示
  2. 配置按段落,顯示不需要按段落

假設,我們需要配置這樣一段文字:

I am a coder.My blog is didispace.com.

下面,就針對上面的兩種情況來看看可以怎么來實現:

配置與顯示,都嚴格按段落展示

這個需求下,我們希望配置和顯示都按句子換行,就是這樣:

I am a coder.
My blog is didispace.com.

方法一:直接使用\n來換行

這樣寫:

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.'

這里不論用雙引號還是單引號都是可以的。因為不存在需要轉移的內容,所以總體還算清晰。

方法二:使用>>+>-

比較好的表述方式就是使用>>+>-來定義,比如下面這幾種:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM