[英]HAML using links in text without newline
我目前正在開發一個小 Sinatra Ruby 應用程序。 對於表示層,我使用的是 HAML,效果很好。
但是,我有一個包含較長文本段落的常見問題解答頁面,這不是問題。 但在某些段落中,我想包含鏈接。 使用純 HTML 這很容易實現並且仍然可讀。
<p>
I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text.
</p>
使用 HAML,我堅持使用這個新段落,然后看起來像這樣:
%p
I'm talking about
%a {:href => 'http://ruby-lang.org'}>Ruby
in this text.
我認為這確實破壞了工作流程。
HAML 中有沒有一種方法可以在不使用換行符的情況下插入鏈接?
這比你想象的要容易。 只需閱讀此參考: http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#whitespace_removal__and_
所以用法很簡單,只需在你的 %p 標記后添加減號“<”,例如:
%p<
I'm talking about
%a {:href => 'http://ruby-lang.org'}>Ruby
in this text.
它會產生你想要做的事情。
不熟悉 Sinatra,但在 Rails 中你可以這樣做:
%p
I'm talking about #{ link_to 'Ruby', 'http://ruby-lang.org'} in this text.
我假設您正在詢問在源 Haml中添加不帶換行符的鏈接。 在這里做你想做的事情是不可能的。 從haml常見問題解答:
表達文檔的結構和表達內聯格式是兩個非常不同的問題。 Haml 主要是為結構設計的,因此處理格式的最佳方法是將其留給為其設計的其他語言。
Haml 使用空格和縮進來確定要做什么,並且沒有任何換行符就沒有任何縮進,因此 haml 無法確定要添加到頁面中的元素。
如果您只想要 static 文本塊,則可以使用markdown 過濾器,如常見問題解答中建議的那樣:
:markdown
I'm talking about [Ruby](http://ruby-lang.org) in this text.
正如其他答案所指出的那樣,如果您想從生成的 HTML中刪除換行符,那么您可以考慮使用 空格刪除運算符,但請注意它們將刪除所有空格,例如
I'm talking about
%a{:href => 'http://ruby-lang.org'}>Ruby
in this text.
使用>
刪除外部空格將產生:
I'm talking about<a href='http://ruby-lang.org'>Ruby</a>in this text.
這將顯示為
我說的是本文中的Ruby 。
即“Ruby”周圍沒有空格,這可能不是您想要的。
完美的是:
%p
I'm talking about
= link_to 'Ruby', 'http://ruby-lang.org'
in this text.
您還可以在 HAML 中使用內聯 HTML。
%p I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.