29 lines
824 B
Ruby
29 lines
824 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
|