module Middleman::Markaby
def self.included(base)
def self.included(base) base.supported_formats << "mab" end
def markaby(template=nil, options={}, locals = {}, &block)
def markaby(template=nil, options={}, locals = {}, &block) options, template = template, nil if template.is_a?(Hash) template = lambda { block } if template.nil? render :mab, template, options, locals end
def render_mab(template, data, options, locals, &block)
def render_mab(template, data, options, locals, &block) filename = options.delete(:filename) || '<MARKABY>' line = options.delete(:line) || 1 mab = ::Markaby::Builder.new(locals) if data.respond_to?(:to_str) eval(data.to_str, binding, filename, line) elsif data.kind_of?(Proc) data.call(mab) end end
def render_path(path)
def render_path(path) if template_exists?(path, :mab) markaby path.to_sym else super end end