From e28ed20c63c598c0e6cfd52d8bda5d625efa90b8 Mon Sep 17 00:00:00 2001 From: Dennis Reimann Date: Sun, 16 Nov 2014 21:25:28 +0100 Subject: [PATCH] Asset hashing for image references in srcset Fixes #1287 --- middleman-core/features/asset_hash.feature | 6 ++++++ .../asset-hash-app/source/images/200px.jpg | Bin 0 -> 1767 bytes .../asset-hash-app/source/images/300px.jpg | Bin 0 -> 2905 bytes .../asset-hash-app/source/index.html.erb | 2 +- .../lib/middleman-more/extensions/asset_hash.rb | 2 +- 5 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 middleman-core/fixtures/asset-hash-app/source/images/200px.jpg create mode 100644 middleman-core/fixtures/asset-hash-app/source/images/300px.jpg diff --git a/middleman-core/features/asset_hash.feature b/middleman-core/features/asset_hash.feature index a6462098..e8a6ace5 100644 --- a/middleman-core/features/asset_hash.feature +++ b/middleman-core/features/asset_hash.feature @@ -8,6 +8,8 @@ Feature: Assets get a file hash appended to their and references to them are upd | favicon.ico | | images/100px-1242c368.png | | images/100px-5fd6fb90.jpg | + | images/200px-c11eb203.jpg | + | images/300px-59adce76.jpg | | images/100px-5fd6fb90.gif | | javascripts/application-1d8d5276.js | | 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 'src="javascripts/application-1d8d5276.js"' 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 'src="../javascripts/application-1d8d5276.js"' 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 'src="javascripts/application-1d8d5276.js"' 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/" Then I should see 'href="../stylesheets/site-50eaa978.css"' And I should see 'src="../javascripts/application-1d8d5276.js"' diff --git a/middleman-core/fixtures/asset-hash-app/source/images/200px.jpg b/middleman-core/fixtures/asset-hash-app/source/images/200px.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a23674756dc0fbffe5a631a12a57b2f5e47c3ee GIT binary patch literal 1767 zcmex=d!pzFb!otA7Sj))7%)lbZDx_%W$R-?^$gWf< zV$?WsA&0Wl#)G0k7eA;NClxhua*2scNJ^=yscUFznV6cHTUc5-ySTc!dw6;UhlGZO zM?^*?r=+H(XJlp-mz0*3S5#Itx3spkcXW15nmlFdwCOWu&RVp1$nAuRebI{N?Mn?>~P20{M%P zff?*85CQQRn!f}Ym>8K@SeRMZLH=T7DraD1Visg!RWxK1atvfoEEHBUYUB`cnz(S| zK~81kpbw%+MHjimR7@VKegt_9>@(s#)lOnKGb00&AhRHYJ;Rq%8jBjZ zMln(ttU6ntHTkEmQTsW=_g@!qn}h`4an70jtf1k8?aQQjnu|Us7o2?UAQTw-aPPJq z6OM~4oKdz~gdxyXQPEMQfn8-5LzLDY^J~|IBpyvM=DX9Sws+h12`ZaflW(tOh*-3E zQpUsXvl9<3U#lW+aA#pfi~&1agX*F#4F+6zP4|`F{%^HwlFv+SK2g8>ebm?Ktm_u$ zecClUtWsL%>~4E6hLY~NS+~rdCU;DnALssMRo^iU(-1!qs|WnWXEW~JI;nCoCVJDF zi%)9)a@cLTQSvA1yv#W%&y#wGH-1~d^?A{uTgeIxZQRET3TIs@I4jMXyT*}m;~e>@ zg}l87XE7J6yO8#nvxr`acOJ}bLFr)~=4%-q6i(;M3}&1QHSZM*on=Yzf0 zl}V=4%zBT7wsEZaVe<3AG|6c$Mw4nj6}Pc`TRlDSr0$xDM-IleF`6*W7l_{LrkuAh z_pPIJ`$u_47mm$l%g!;Xc749V^Jq<^V`YwV=h5wx_Lk+{sXw{QH@QG<&TUVrC6D5d(#nM)4*v|_N;V0tPN=)gLPDGmeq|2F|mvRbovIz$!vMUve z7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9l2WQ_>Kd9_CZ=ZQ7M51dF0O9w9-dyoA)#U6 z5s^{JDXD4c8JStdC8cHM6_r)ZEv;?s9i3g1CQq3GGAU*RJ2VdF$b$$4{OPfBE|D`;VW$K>lK6 zU=!0ld(M2vX6_bamA30BvZtJ@8T#w*YCA}62@#*}ot~GPIPXB!taJTg zJ3N)l1GHTA?`c=FOlD@%G{qJQI!_`F#_UwwbF4pGx#(d>k zN!8Xvo`Sm?gEZ@2^ZQ3J+*q`DUh4M7r}euQn@%$Ap2}@A?Lf3~g5b3VvlUCi!W~W( ztuf+Xv2+1bmj+RoZA->e??oGfCwRQb=E`opx_<5Bo}ADp(-h=CAI-WO@1CjRskBYS zzIwx&w;3yUY%`dUrruL0v4B1M$;7;w4?FEo|H<+#6p2t{Guy%Zvf20gVl|0W`2$Df zkN;=5>U%9uC|g6!c*lu@4RSO7GrYdQ^s314V(z)h+L?bg2gSOvw;woux0nC%QK_Z7 zd1ZxHcIVYI_P-8{x$Aa|iQ&Lzt!1{yxvsH|1&6? zZWbsM;^ffZlBc}$eayF6$1Z(RpX%UwrPXfEe}=F7qh4w-u9dP3da)+tiIA1lp;-@0 zvtL&{mKLp4?O^}&F=~7G#ao_29&0=K@4eBsj?&80?NO2Jd@SFl!FcPZO7yadB>zwU z8Kfr1xQcN$_O4_2m2kQA#mP2F_Ya2bAOACa4KAJCGV2s;&pRW71omb2zrHZ+n$uGf zT|6&7tzPHK^uWf49}K@IJOB9TwleRqyUVMj+w%`3|GE-x9=NTc!9eHK%KpOZKLc3r zYIbK%nEb;1iO1@x;eI_wmmgZb?#{oO{|r%E9au#IiNXSRqFqbHr)xba`zjiD+iTm_ z>1Sfk99~#FC-jvD37M?EdhCdG693Yq>NSR&Adq7@zYw^4OWjnX>;G__MaUGKB8D{BT#7#r>j=fA20| zzO{5)qi#Y(z@*i4gs-p5iqc?`?#@`Z=+o1fzI%&S-_8uXw&`d0&KV_o#a(+{8H^$( zWz4b^FWMd$^5Bwg!VE9w&CC-do^b7VWl+{A)jA-m%p&*Iu_W4cdYw!|@s{nP3tbsR Q0!Q&^7|=fr)c?N;02tBH;Q#;t literal 0 HcmV?d00001 diff --git a/middleman-core/fixtures/asset-hash-app/source/index.html.erb b/middleman-core/fixtures/asset-hash-app/source/index.html.erb index fe58ad66..59a9c54f 100644 --- a/middleman-core/fixtures/asset-hash-app/source/index.html.erb +++ b/middleman-core/fixtures/asset-hash-app/source/index.html.erb @@ -3,7 +3,7 @@ <% end %>

Image url:

- +

Ignored path:

diff --git a/middleman-core/lib/middleman-more/extensions/asset_hash.rb b/middleman-core/lib/middleman-more/extensions/asset_hash.rb index ae5bd0fc..2384eacb 100644 --- a/middleman-core/lib/middleman-more/extensions/asset_hash.rb +++ b/middleman-core/lib/middleman-more/extensions/asset_hash.rb @@ -91,7 +91,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension dirpath = Pathname.new(File.dirname(path)) # 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 asset_path = $2