1

我正在编写一个助手,我需要将渲染文件作为字符串。

我看到我需要的方法存在于中间人的库中: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)

但它似乎没有找到文件,知道吗?

4

2 回答 2

0

除非我遗漏了什么,否则中间人方法似乎是一个过于复杂的解决方案。对于我的一个网站,我想将整个文本文件加载到我的模板中,所以我写了这个帮助程序:

# 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. 目前值得注意的是,Middleman 正在过渡到版本 4,加载助手的约定将会改变。定义帮助器最直接的方法是在文件的helper块中config.rb,如下所示:

    helpers do
      # Define helper functions here to make them available in templates
    end
    
  2. 我用Slim做模板。它真的是最好的。在 slim 中,您可以这样应用 helper:

    = load_textfile 'path'
    p You can embed helper output in your page with interpolation, too: #{load_textfile 'path'}
    
于 2015-03-30T21:10:54.990 回答
0

我不确定 3.0 beta 是否已经准备好迎接黄金时段了。

也就是说,这听起来确实像您正在寻找的部分方法。

于 2012-02-14T05:24:51.973 回答