middleman/middleman-core/lib/middleman-core/extensions/relative_assets.rb
2014-03-03 22:32:12 -08:00

30 lines
825 B
Ruby

# Relative Assets extension
class Middleman::Extensions::RelativeAssets < ::Middleman::Extension
def initialize(app, options_hash={}, &block)
super
# After compass is setup, make it use the registered cache buster
app.compass_config do |config|
config.relative_assets = true
end if app.respond_to?(:compass_config)
end
helpers do
# asset_url override for relative assets
# @param [String] path
# @param [String] prefix
# @return [String]
def asset_url(path, prefix='')
path = super(path, prefix)
if path.include?('//') || path.start_with?('data:') || !current_resource
path
else
current_dir = Pathname('/' + current_resource.destination_path)
Pathname(path).relative_path_from(current_dir.dirname).to_s
end
end
end
end