2012-02-09 3 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

почему бы вам не использовать частичный метод? –

ответ

0

Я не уверен, что бета-версия 3.0 готова для прайм-тайма.

Это говорит о том, что частичный метод - это то, что вы ищете.

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. В настоящее время отметить, Посредник в процессе перехода к версии 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'} 
    

 Смежные вопросы

  • Нет связанных вопросов^_^