2011-05-25 37 views
7

在HAML中,我經常希望在標籤之後立即使用帶有標點符號的標籤。例如,我可能想要以粗體顯示某些內容,但有一個右括號。格式將如下所示:(加粗文字的例句)HAML表達式附近的符號

請注意,'粗體文本'以粗體顯示,但句號和右括號'。''不是。

明顯HAML是這樣的:

(Example sentence with 
%span.important bold text 
\.) 

但這會導致 '粗體文本' 之間的額外空間 ')。'。下面是做這件事,而不是一個辦法:

(Example sentence with 
%span.important bold text 
%span>\.) 

凡封閉與>跨度使得空間消失「)。」。但是,這需要一個不必要的跨度。

是否有任何方法獲得所需的輸出,沒有額外的跨度?

+0

引入haml FAQ涵蓋了幾乎這個確切的問題:http://haml-lang.com/docs/yardoc/file.FAQ.html#q-punctuation - 答案是basicall y與下面的Daves相同:內聯html或過濾器。 – matt 2011-05-25 02:05:25

+0

我已經調整了示例以使其更清晰,謝謝@Dave。 – Peter 2011-05-25 03:46:16

+1

http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/這可能會幫助你以某種方式:)它只是支持馬特和戴夫的斷言,你可以使用內聯/降價爲inline tags..because haml用於佈局 – corroded 2011-05-25 03:52:30

回答

6

即初始代碼段不應在HAML在所有的工作:

(Example sentence with 
%b bold text 
.) 

第三行會導致Illegal element: classes and ids must have values錯誤。它應該是:

(Example sentence with 
%b bold text 
\.) 

但是,這只是修復代碼錯誤。它仍然顯示你抱怨的方式。我只知道兩種方法來解決這個問題:

  1. 只需使用內嵌HTML代碼會在HAML文件:(Example sentence with <b>bold text</b>.)
  2. 安裝maruku(或其他降價寶石)並執行以下操作:
:markdown 
    (Example sentence with **bold text**.) 
+0

絕對正確的'\ .'(謝謝)。然而,對於我來說,'%b'不完全的解決方案只是一個例子,我想要處理一般的標籤,包括自定義標籤。 – Peter 2011-05-25 03:38:13