require "tilt" module Middleman::Renderers::Markdown class << self def registered(app) app.extend ClassMethods app.set :markdown_engine, :maruku if !app.respond_to? :markdown_engine_prefix app.set :markdown_engine_prefix, Tilt end app.after_configuration do engine = app.settings.markdown_engine if engine.is_a? Symbol engine = app.tilt_template_from_symbol(engine) end Tilt.prefer(engine) end end alias :included :registered end module ClassMethods def tilt_template_from_symbol(engine) engine = engine.to_s engine = engine == "rdiscount" ? "RDiscount" : engine.camelize settings.markdown_engine_prefix.const_get("#{engine}Template") end end end