HAML用於生成各種形式的HTML,但您可以通過創造性地誘騙它來生成其他內容。把你想回到什麼:
<text>
<text.resource>...
</text.resource>
<text>
會的工作,因爲如果HAML看到不隨其保留字符一個開始,它會輸出它是一條線。你不能縮進,否則會發瘋。
從the docs:
注意,HTML標籤是經由未經修改通過了爲好。如果你有一些HTML你不想轉換成Haml,或者你正在逐行轉換一個文件,那麼你可以直接將它包含進去。例如:
%p
<div id="blah">Blah!</div>
被編譯爲:
<p>
<div id="blah">Blah!</div>
</p>
你可以這樣做:
<text>
= " <text.resource>..."
= " </text.resource>"
<text>
如果你堅持縮進:
>> <text>
>> <text.resource>...
>> </text.resource>
>> <text>
編輯:
的OP說:
我的問題是,elypsis(...)意味着我必須在那裏增加更多的HAML代碼(一串XML標籤的那會是「孩子」的,因此我需要在評論後「縮進」行...
XML不關心縮進;縮進是一種僅用於人眼的美學。我更擔心的是在功能和語法上是否正確。如果您絕對必須擁有「漂亮」的XML,那麼請考慮通過設置了xml標誌的xmllint
或tidy
來運行HAML輸出。
或者,因爲您開始濫用HAML而使用類似ERB和/或Erubis這種更自由的形式而不太關注語法的東西,或者通過print
和生成XML並生成XML聲明。如果你堅持使用HAML並進行縮進,那麼我建議與HAML開發人員協商,看看他們是否有建議。可能有一個HAML過濾器可能會被使用,或者其他方式強制內聯壓縮級別。
作爲軟件開發人員,我們的建議已經很長時間,並且出現過很多次,我們的建議可能會忽略功能性的最終目標,並轉而進行一些犛牛剃毛運動擔心沒有完成任何事情的細節。除非每個縮進空間都是神聖的規範,否則我會擔心更多關於獲取正確的XML並繼續前進,然後再返回到它並查看它是否可以調整到完美狀態。
如果這是在rails中,您可能可以使用content_for方法來生成您的內容... – 2011-02-25 01:06:33
也許您應該考慮使用其他模板引擎而不是HAML(例如RXML)來生成XML。 HAML並不適合它。 – 2011-02-25 06:41:37