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

94 lines
2.4 KiB
Ruby

require 'middleman-core/template_context'
# Rendering extension
module Middleman
module CoreExtensions
module Rendering
# Setup extension
class << self
# Once registered
def included(app)
app.define_hook :before_render
app.define_hook :after_render
::Tilt.mappings.delete('html') # WTF, Tilt?
::Tilt.mappings.delete('csv')
require 'active_support/core_ext/string/output_safety'
# Activate custom renderers
require 'middleman-core/renderers/erb'
app.send :include, Middleman::Renderers::ERb
# CoffeeScript Support
begin
require 'middleman-core/renderers/coffee_script'
app.send :include, Middleman::Renderers::CoffeeScript
rescue LoadError
end
# Haml Support
begin
require 'middleman-core/renderers/haml'
app.send :include, Middleman::Renderers::Haml
rescue LoadError
end
# Sass Support
begin
require 'middleman-core/renderers/sass'
app.send :include, Middleman::Renderers::Sass
rescue LoadError
end
# Markdown Support
require 'middleman-core/renderers/markdown'
app.send :include, Middleman::Renderers::Markdown
# Liquid Support
begin
require 'middleman-core/renderers/liquid'
app.send :include, Middleman::Renderers::Liquid
rescue LoadError
end
# Slim Support
begin
require 'middleman-core/renderers/slim'
app.send :include, Middleman::Renderers::Slim
rescue LoadError
end
# Less Support
begin
require 'middleman-core/renderers/less'
app.send :include, Middleman::Renderers::Less
rescue LoadError
end
# Stylus Support
begin
require 'middleman-core/renderers/stylus'
app.send :include, Middleman::Renderers::Stylus
rescue LoadError
end
# Clean up missing Tilt exts
app.after_configuration do
Tilt.mappings.each do |key, klasses|
begin
Tilt[".#{key}"]
rescue LoadError, NameError
Tilt.mappings.delete(key)
end
end
end
end
end
end
end
end