2012-05-10 49 views
3

我一直在四處尋找一個答案爲此從昨天起,我很爲難,爲什麼發生?降價代碼縮進與HAML

我們提供通過標準HAML模板降價含量(我們使用優秀的靜態站點生成器Middleman來構建,FYI)和Redcarpet來解析Markdown。

一切正在按預期在降價輸出方面,用碼塊的異常:

layout.haml
(只有文件的一部分,示出一個簡單的=yield%section旨在6。在HAML文件空間):

%section.content.main_content 
    = yield 

index.html.md
(僅一個文件的一部分,示出了碼塊碼)

### Header Level 3 
Here's some code: 

    $total-columns : 12; 
    $column-width : 4em; 
    $gutter-width : 1em; 
    $grid-padding : $gutter-width; 

但是,輸出並不是我們所期望的,而某些東西正在縮進。我不能確定HAML是罪魁禍首,或者確切地說是什麼原因造成:

下面是瀏覽器輸出的屏幕截圖:http://bit.ly/JvjTYo

這裏是Chrome開發者Rools DOM的截圖:http://bit.ly/JWprGO

我們嘗試了一些不同的任何幫助非常受歡迎。如果你想在GitHub上看到完整的源代碼,請告訴我。

+0

你發佈了兩個相同的鏈接到您的截圖,從它的外觀。 – al3xnull

+0

非常抱歉,這已被修復。 –

回答

6

看一看的Haml docs on whitespace。在這種情況下,你應該能夠通過使用~ operator代替=來解決它:

%section.content.main_content 
~ yield 
+1

謝謝@matt。這按預期工作100%,而不必訴諸於醜陋的產出。我從來不知道這個操作符,我希望這可以幫助其他人將HAML與其他空白敏感標記結合起來。 –

0

我有一種感覺,這是HAML。它好像是在試圖解釋和縮進你。

你有:難看的輸出嗎?

另外,你有下面爲您的預標籤?:

pre { white-space:pre } 

編輯:發現這個Markdown Line Breaks in Code Blocks這可能有助於

+0

:難看的輸出做了詭計(這太糟糕了,因爲我喜歡一個很好的縮進源)。謝謝! –

+0

不是問題! Danny,我不熟悉Middleman,但是如果它運行開發服務器來設置醜陋的設置,您可以嘗試設置特定於環境的變量。我也不確定Slim是否會比HAML更好地對待這個空間。只是思考的食物。 – al3xnull

+0

Silm **肯定會**,但我是一個HAML傢伙。 :)如果您需要開發一個靜態網站,但仍需要Ruby on Rails工作流程,請給Middleman一個鏡頭。非常好。 –