2014-01-16 31 views
0

如何在Haml文檔中動態插入Haml文件的名稱?在Haml文檔輸出中插入Haml文件名

喜歡的東西:

%b =insert_file_name 
在一個文件名爲foo.haml

應該輸出

<b>foo.haml</b> 
+0

寫助手返回的文件名。我嚴重懷疑存在,因爲HAML是從內存字符串編譯的。 – meagar

+0

根據你如何唱歌,'__FILE__'應該可以工作。在編譯字符串時,可以傳入用於文件名的值,如果有,則可以使用__FILE__來獲取它。 'haml'命令行工具正確地做到了這一點,就像Tilt(由Sinatra使用)一樣,我也認爲Rails也是如此。 – matt

回答

0

它會是不錯的,如果HAML有同等的$0__FILE__檢索當前模板,但我在文檔中沒有看到類似的東西。相反,你可以做這樣的事情:

require 'haml' 

首先,創建一個變量或常量保持模板的名稱要使用:

HAML_FILE = 'test.haml' 

設置變量,你需要什麼,然後讀取模板,並將其傳遞給HAML渲染:

haml_template = File.read(HAML_FILE) 
engine = Haml::Engine.new(haml_template) 
puts engine.render 

這是輸出:

<html> 
    <body> 
    <p>test.haml</p> 
    </body> 
</html> 

這是我用過的模板:

%html 
    %body 
    %p= HAML_FILE 
+0

我想通過反思動態地做到這一點。 – user492922

+0

我沒有看到任何暴露在Haml的寶石文檔,讓你這樣做。你可以通過瀏覽源代碼並添加一個方法,或者通過重寫某些東西來完成它,但是,看起來好像沒有辦法讓它告訴你當前的模板是什麼。我建議直接詢問開發人員。 –