Change inline URL matcher to only match strings, not newlines. Fixes #1689
This commit is contained in:
parent
d3a5494062
commit
76f591788e
9 changed files with 24 additions and 3 deletions
|
@ -36,6 +36,11 @@ Feature: Relative Assets
|
||||||
Then I should see 'url("../images/blank.gif'
|
Then I should see 'url("../images/blank.gif'
|
||||||
When I go to "/javascripts/application.js"
|
When I go to "/javascripts/application.js"
|
||||||
Then I should not see "../"
|
Then I should not see "../"
|
||||||
|
When I go to "/stylesheets/fonts.css"
|
||||||
|
Then I should see 'url(../fonts/roboto/roboto-regular-webfont.eot'
|
||||||
|
And I should see 'url(../fonts/roboto/roboto-regular-webfont.woff'
|
||||||
|
And I should see 'url(../fonts/roboto/roboto-regular-webfont.ttf'
|
||||||
|
And I should see 'url(../fonts/roboto/roboto-regular-webfont.svg'
|
||||||
|
|
||||||
Scenario: Building css with the feature enabled
|
Scenario: Building css with the feature enabled
|
||||||
Given a fixture app "relative-assets-app"
|
Given a fixture app "relative-assets-app"
|
||||||
|
|
|
@ -1 +1,5 @@
|
||||||
# activate :relative_assets
|
set :fonts_dir, 'fonts'
|
||||||
|
|
||||||
|
configure :build do
|
||||||
|
activate :relative_assets
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Roboto';
|
||||||
|
src: url(/fonts/roboto/roboto-regular-webfont.eot);
|
||||||
|
src: url(/fonts/roboto/roboto-regular-webfont.eot?#iefix) format('embedded-opentype'),
|
||||||
|
url(/fonts/roboto/roboto-regular-webfont.woff) format('woff'),
|
||||||
|
url(/fonts/roboto/roboto-regular-webfont.ttf) format('truetype'),
|
||||||
|
url(/fonts/roboto/roboto-regular-webfont.svg#robotoregular) format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
|
@ -2,7 +2,7 @@ require 'addressable/uri'
|
||||||
|
|
||||||
# Relative Assets extension
|
# Relative Assets extension
|
||||||
class Middleman::Extensions::RelativeAssets < ::Middleman::Extension
|
class Middleman::Extensions::RelativeAssets < ::Middleman::Extension
|
||||||
option :exts, %w(.css .png .jpg .jpeg .webp .svg .svgz .js .gif .ttf .otf .woff .woff2), 'List of extensions that get cache busters strings appended to them.'
|
option :exts, %w(.css .png .jpg .jpeg .webp .svg .svgz .js .gif .ttf .otf .woff .woff2 .eot), 'List of extensions that get cache busters strings appended to them.'
|
||||||
option :sources, %w(.htm .html .css), 'List of extensions that are searched for relative assets.'
|
option :sources, %w(.htm .html .css), 'List of extensions that are searched for relative assets.'
|
||||||
option :ignore, [], 'Regexes of filenames to skip adding query strings to'
|
option :ignore, [], 'Regexes of filenames to skip adding query strings to'
|
||||||
|
|
||||||
|
|
|
@ -332,7 +332,9 @@ module Middleman
|
||||||
|
|
||||||
Contract String, String, ArrayOf[String], Proc => String
|
Contract String, String, ArrayOf[String], Proc => String
|
||||||
def rewrite_paths(body, _path, exts, &_block)
|
def rewrite_paths(body, _path, exts, &_block)
|
||||||
body.dup.gsub(/([=\'\"\(,]\s*)([^\s\'\"\)>]+(#{Regexp.union(exts)}))/) do |match|
|
matcher = /([=\'\"\(,] *)([^\s\'\"\)>]+(#{Regexp.union(exts)}))/
|
||||||
|
|
||||||
|
body.dup.gsub(matcher) do |match|
|
||||||
opening_character = $1
|
opening_character = $1
|
||||||
asset_path = $2
|
asset_path = $2
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue