Merge pull request #1405 from dennisreimann/asset_hash-srcset

Asset hashing for image references in srcset
This commit is contained in:
Thomas Reynolds 2014-11-16 12:42:51 -08:00
commit ab567b1cbd
5 changed files with 8 additions and 2 deletions

View file

@ -8,6 +8,8 @@ Feature: Assets get a file hash appended to their and references to them are upd
| favicon.ico | | favicon.ico |
| images/100px-1242c368.png | | images/100px-1242c368.png |
| images/100px-5fd6fb90.jpg | | images/100px-5fd6fb90.jpg |
| images/200px-c11eb203.jpg |
| images/300px-59adce76.jpg |
| images/100px-5fd6fb90.gif | | images/100px-5fd6fb90.gif |
| javascripts/application-1d8d5276.js | | javascripts/application-1d8d5276.js |
| stylesheets/site-50eaa978.css | | stylesheets/site-50eaa978.css |
@ -29,6 +31,9 @@ Feature: Assets get a file hash appended to their and references to them are upd
And the file "index.html" should contain 'href="stylesheets/site-50eaa978.css"' And the file "index.html" should contain 'href="stylesheets/site-50eaa978.css"'
And the file "index.html" should contain 'src="javascripts/application-1d8d5276.js"' And the file "index.html" should contain 'src="javascripts/application-1d8d5276.js"'
And the file "index.html" should contain 'src="images/100px-5fd6fb90.jpg"' And the file "index.html" should contain 'src="images/100px-5fd6fb90.jpg"'
And the file "index.html" should contain 'srcset="images/100px-5fd6fb90.jpg 1x, images/200px-c11eb203.jpg 2x, images/300px-59adce76.jpg 3x"'
And the file "index.html" should contain 'src="images/100px-5fd6fb90.gif"'
And the file "index.html" should contain 'src="images/100px-1242c368.png"'
And the file "subdir/index.html" should contain 'href="../stylesheets/site-50eaa978.css"' And the file "subdir/index.html" should contain 'href="../stylesheets/site-50eaa978.css"'
And the file "subdir/index.html" should contain 'src="../javascripts/application-1d8d5276.js"' And the file "subdir/index.html" should contain 'src="../javascripts/application-1d8d5276.js"'
And the file "subdir/index.html" should contain 'src="../images/100px-5fd6fb90.jpg"' And the file "subdir/index.html" should contain 'src="../images/100px-5fd6fb90.jpg"'
@ -49,6 +54,7 @@ Feature: Assets get a file hash appended to their and references to them are upd
And I should see 'href="stylesheets/site-50eaa978.css"' And I should see 'href="stylesheets/site-50eaa978.css"'
And I should see 'src="javascripts/application-1d8d5276.js"' And I should see 'src="javascripts/application-1d8d5276.js"'
And I should see 'src="images/100px-5fd6fb90.jpg"' And I should see 'src="images/100px-5fd6fb90.jpg"'
And I should see 'srcset="images/100px-5fd6fb90.jpg 1x, images/200px-c11eb203.jpg 2x, images/300px-59adce76.jpg 3x"'
When I go to "/subdir/" When I go to "/subdir/"
Then I should see 'href="../stylesheets/site-50eaa978.css"' Then I should see 'href="../stylesheets/site-50eaa978.css"'
And I should see 'src="../javascripts/application-1d8d5276.js"' And I should see 'src="../javascripts/application-1d8d5276.js"'

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -3,7 +3,7 @@
<% end %> <% end %>
<h2>Image url:</h2> <h2>Image url:</h2>
<img src="<%= image_path('100px.jpg') %>"> <img src="<%= image_path('100px.jpg') %>" srcset="<%= image_path('100px.jpg') %> 1x, <%= image_path('200px.jpg') %> 2x, <%= image_path('300px.jpg') %> 3x">
<h2>Ignored path:</h2> <h2>Ignored path:</h2>
<link rel="apple-touch-icon" href="apple-touch-icon.png"> <link rel="apple-touch-icon" href="apple-touch-icon.png">

View file

@ -91,7 +91,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
dirpath = Pathname.new(File.dirname(path)) dirpath = Pathname.new(File.dirname(path))
# TODO: This regex will change some paths in plan HTML (not in a tag) - is that OK? # TODO: This regex will change some paths in plan HTML (not in a tag) - is that OK?
body.gsub(/([=\'\"\(]\s*)([^\s\'\"\)]+(#{@exts_regex_text}))/) do |match| body.gsub(/([=\'\"\(,]\s*)([^\s\'\"\)]+(#{@exts_regex_text}))/) do |match|
opening_character = $1 opening_character = $1
asset_path = $2 asset_path = $2