2016-09-12 62 views
0

檢查新行我有一個具有多個換行符YAML文件:如何從YAML

key: | 
    some stuff 
    some more stuff 
    ... 
    etc. 

我閱讀了我的.html文件和訪問它。我想打破它讓每一個新行被讀取時,它會創建一個新的段落:

<p>some stuff</p> 
<p>some more stuff</p> 
... 
<p>etc.</p> 

我試圖通過一個過濾器{{ key | split: '\n' }}來運行它,但是這不工作(它搜索字符\和n而不是實際的CRLF。)我發現將它通過inspect過濾器轉換爲可解析的\ n,但這看起來像是一種拙劣的方式。有沒有更好的辦法?

在此先感謝。

P.S.我相信將我的.html轉換爲.markdown可能會解決這個問題,但我寧願不切換,因爲它傾向於強迫我即使在我不需要它們時也有<p><div>

回答

1

\n是一個正則表達式換行字符類。可悲的是,液體不知道這一點。但是我們可以創造一種液體將會理解的東西:真正的換行。

這是招:

# _config.yml 

newline: > 
    : 

{{ site.newline | inspect }}現在包含 「:\ n」 在一個真正的換行符。 請注意,冒號在這裏是爲了在前端解析期間保留換行。它可以被任何其他字符替換,但它是必需的。

完整的標籤是{% assign newline = site.newline | remove: ":" %}。我們現在在我們的變種中有一個乾淨的換行。

我們現在可以用{% assign keyArray = page.key | split: newline %}分割我們的多行var,並且我們得到{{ keyArray | inspect }} output>> ["some stuff", "some more stuff", "...", "etc."]

+0

這絕對看起來像一個不太冒險的方式來做到這一點。非常感謝! –