2012-02-09 48 views
1

我正在編寫一個幫助器,我需要將呈現的文件作爲String來獲取。在middleman中呈現單個文件

我看到我需要的方法,在中間人的庫是否存在:http://rubydoc.info/github/middleman/middleman/Middleman/CoreExtensions/Rendering/InstanceMethods#render_individual_file-instance_method

如何調用該函數從我的助手類?

我想:

require "middleman-core/lib/middleman-core/core_extensions/rendering.rb" 

...

puts Middleman::CoreExtensions::Rendering::InstanceMethods.render_individual_file(filepath) 

但它似乎並沒有找到該文件,任何想法?

+0

你爲什麼不使用的部分方法是什麼? – 2012-02-12 15:34:58

回答

0

我不確定3.0 beta是否已準備好用於黃金時段。

這就是說,它聽起來像部分方法是你在找什麼。

0

除非我錯過了一些東西,Middleman方法似乎是一個過於複雜的解決方案。對於我的網站之一,我想整個文本文件加載到我的模板,所以我寫了這個幫手:

# Shortcut for loading raw text files. Obviously assumes that given file is in a valid format. 
# @return [String] File contents 
def load_textfile(filename) 
    File.read filename.to_s 
end 

此外,你應該澄清,如果您打算在模板中使用,或在Ruby代碼中。根據你的問題,我不清楚。

這裏是一個如何使用上面幫手一個例子:

注意
  1. 目前,中間人是過渡版本4的過程中,並加載助手約定將發生變化。 定義一個幫手最直接的方法是helper塊內的config.rb文件,內容如下:

    helpers do 
        # Define helper functions here to make them available in templates 
    end 
    
  2. 我用Slim的模板。這真的是最好的。在纖薄你會appply爲這樣幫手:

    = load_textfile 'path' 
    p You can embed helper output in your page with interpolation, too: #{load_textfile 'path'}