2017-07-02 51 views
0

我試圖用這個紅寶石片段提取從哲基爾URL中的文件名中提取文件名:傑基爾從URL使用Ruby

{% assign filename = page.url.split('/')[-1] | replace: '.html', '.md' %} 

如果我只是用:

{% assign filename = page.url | replace: '.html', '.md' %} 

我得到返回與替換文件類型的網址,但我的.split('/')[-1]似乎沒有工作。

我試圖運行在獨立的紅寶石以下,以確保我的語法是正確的,並且它返回bird預期:

"cat/dog/b­ird".split­('/')[-1] 

爲什麼不在我的哲基爾情況下相同的語法的工作? page.url不是字符串還是別的?

回答

2

問題是混合紅寶石代碼與液態標籤。

從URL中提取文件名中化身,你可以只使用純液體模板過濾器,使用你嘗試過什麼等同:

  • .split­('/') - >| split: '/'
  • [-1] - >| last

以自定義網址爲例:

{% assign url_example = "cat/dog/bird.html" %} 
{% assign filename = url_example | split: '/' | last | replace: '.html', '.md' %} 
{{filename}} 

輸出:

bird.md