remove old haml table helper

This commit is contained in:
Thomas Reynolds 2011-07-10 13:34:53 -07:00
parent 859b7f6d97
commit 6cefa401f9
2 changed files with 48 additions and 65 deletions

View file

@ -6,36 +6,14 @@ module Middleman
module Haml
class << self
def registered(app)
app.helpers Middleman::Renderers::Haml::Helpers
app.helpers Helpers
end
alias :included :registered
end
module Helpers
def haml_partial(name, options = {})
partial(name, options)
end
end
module Table
include ::Haml::Filters::Base
def render(text)
output = '<div class="table"><table cellspacing="0" cellpadding="0">'
line_num = 0
text.each_line do |line|
line_num += 1
next if line.strip.empty?
output << %Q{<tr class="#{(line_num % 2 == 0) ? "even" : "odd" }#{(line_num == 1) ? " first" : "" }">}
columns = line.split("|").map { |p| p.strip }
columns.each_with_index do |col, i|
output << %Q{<td class="col#{i+1}">#{col}</td>}
end
output << "</tr>"
end
output + "</table></div>"
render(name, options)
end
end
end

View file

@ -9,17 +9,17 @@ module Middleman
class << self
def registered(app)
app.after_feature_init do
views_root = File.basename(self.views)
views_root = File.basename(app.views)
::Compass.configuration do |config|
config.cache = false # For sassc files
config.project_path = self.root
config.sass_dir = File.join(views_root, self.css_dir)
config.project_path = app.root
config.sass_dir = File.join(views_root, app.css_dir)
config.output_style = :nested
config.fonts_dir = File.join(views_root, self.fonts_dir)
config.css_dir = File.join(views_root, self.css_dir)
config.images_dir = File.join(views_root, self.images_dir)
config.http_images_path = self.http_images_path rescue File.join(self.http_prefix || "/", self.images_dir)
config.http_stylesheets_path = self.http_css_path rescue File.join(self.http_prefix || "/", self.css_dir)
config.fonts_dir = File.join(views_root, app.fonts_dir)
config.css_dir = File.join(views_root, app.css_dir)
config.images_dir = File.join(views_root, app.images_dir)
config.http_images_path = app.http_images_path rescue File.join(app.http_prefix || "/", app.images_dir)
config.http_stylesheets_path = app.http_css_path rescue File.join(app.http_prefix || "/", app.css_dir)
config.asset_cache_buster :none
config.add_import_path(config.sass_dir)
@ -36,48 +36,53 @@ module Middleman
end
alias :included :registered
end
class SassPlusCSSFilenameTemplate < ::Tilt::SassTemplate
def sass_options
return super if basename.nil?
location_of_sass_file = Middleman::Server.environment == :build ?
File.join(Middleman::Server.root, Middleman::Server.build_dir) :
Middleman::Server.views
parts = basename.split('.')
parts.pop
css_filename = File.join(location_of_sass_file, Middleman::Server.css_dir, parts.join("."))
super.merge(::Compass.configuration.to_sass_engine_options).merge(:css_filename => css_filename)
end
def evaluate(scope, locals, &block)
begin
super
rescue Sass::SyntaxError => e
Sass::SyntaxError.exception_to_css(e, :full_exception => true)
end
end
end
::Tilt.register 'sass', SassPlusCSSFilenameTemplate
::Tilt.prefer(SassPlusCSSFilenameTemplate)
class ScssPlusCSSFilenameTemplate < SassPlusCSSFilenameTemplate
def sass_options
super.merge(:syntax => :scss)
end
end
::Tilt.register 'scss', ScssPlusCSSFilenameTemplate
::Tilt.prefer(ScssPlusCSSFilenameTemplate)
end
end
end
class Tilt::SassPlusCSSFilenameTemplate < Tilt::SassTemplate
def sass_options
return super if basename.nil?
location_of_sass_file = Middleman::Server.environment == :build ?
File.join(Middleman::Server.root, Middleman::Server.build_dir) :
Middleman::Server.views
parts = basename.split('.')
parts.pop
css_filename = File.join(location_of_sass_file, Middleman::Server.css_dir, parts.join("."))
super.merge(::Compass.configuration.to_sass_engine_options).merge(:css_filename => css_filename)
end
def evaluate(scope, locals, &block)
begin
super
rescue Sass::SyntaxError => e
Sass::SyntaxError.exception_to_css(e, :full_exception => true)
end
end
end
Tilt.register 'sass', Tilt::SassPlusCSSFilenameTemplate
class Tilt::ScssPlusCSSFilenameTemplate < Tilt::SassPlusCSSFilenameTemplate
def sass_options
super.merge(:syntax => :scss)
end
end
Tilt.register 'scss', Tilt::ScssPlusCSSFilenameTemplate
# Use compass settings in Haml filters
# Other, tilt-based filters (like those used in Slim) will
# work automatically.
module Middleman::Renderers::Haml
module Sass
include ::Haml::Filters::Base
def render(text)
::Sass::Engine.new(text, ::Compass.configuration.to_sass_engine_options).render
compass_options = ::Compass.configuration.to_sass_engine_options
::Sass::Engine.new(text, compass_options).render
end
end
end