簡體   English   中英

HAML 在沒有換行符的文本中使用鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM