middleman-core 3.3.7 → 3.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/asset_hash.feature +6 -0
- data/features/builder.feature +0 -2
- data/features/directory_index.feature +3 -4
- data/features/front-matter-neighbor.feature +19 -0
- data/features/minify_javascript.feature +2 -2
- data/fixtures/asset-hash-app/source/images/200px.jpg +0 -0
- data/fixtures/asset-hash-app/source/images/300px.jpg +0 -0
- data/fixtures/asset-hash-app/source/index.html.erb +1 -1
- data/fixtures/frontmatter-settings-neighbor-app/config.rb +1 -0
- data/fixtures/indexable-app/source/evil spaces.html +1 -1
- data/fixtures/large-build-app/source/spaces in file.html.erb +1 -1
- data/lib/middleman-core/core_extensions/front_matter.rb +8 -1
- data/lib/middleman-core/core_extensions/request.rb +3 -0
- data/lib/middleman-core/sitemap/resource.rb +1 -1
- data/lib/middleman-core/step_definitions/builder_steps.rb +1 -1
- data/lib/middleman-core/step_definitions/server_steps.rb +2 -2
- data/lib/middleman-core/templates/default/source/javascripts/all.js +1 -1
- data/lib/middleman-core/templates/local.rb +1 -1
- data/lib/middleman-core/util.rb +3 -3
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/extensions/asset_hash.rb +1 -1
- data/middleman-core.gemspec +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c39177bcae9f7affa767b7fcf221be1558647868
|
4
|
+
data.tar.gz: 72e1622e55f6c7fec6e2fc98b3f345c039b8d298
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aaf08ab9935abdb556324add244473867837fe18b0194c189f6bf89348ce5c4ed22ccbf35e83685d4d2df03ad4e27d1c4eaa8ea3f669af530aed4bcfe11b4589
|
7
|
+
data.tar.gz: 39c5049097c9a69b269cdf07c60c9bac137e55d4cd21cdc39380b5392fe8308d0c07ae1d7ebd691076eb7db4ea6d0c6970b7426d9f69c83285eed7976b218713
|
data/features/asset_hash.feature
CHANGED
@@ -8,6 +8,8 @@ Feature: Assets get a file hash appended to their and references to them are upd
|
|
8
8
|
| favicon.ico |
|
9
9
|
| images/100px-1242c368.png |
|
10
10
|
| images/100px-5fd6fb90.jpg |
|
11
|
+
| images/200px-c11eb203.jpg |
|
12
|
+
| images/300px-59adce76.jpg |
|
11
13
|
| images/100px-5fd6fb90.gif |
|
12
14
|
| javascripts/application-1d8d5276.js |
|
13
15
|
| stylesheets/site-50eaa978.css |
|
@@ -29,6 +31,9 @@ Feature: Assets get a file hash appended to their and references to them are upd
|
|
29
31
|
And the file "index.html" should contain 'href="stylesheets/site-50eaa978.css"'
|
30
32
|
And the file "index.html" should contain 'src="javascripts/application-1d8d5276.js"'
|
31
33
|
And the file "index.html" should contain 'src="images/100px-5fd6fb90.jpg"'
|
34
|
+
And the file "index.html" should contain 'srcset="images/100px-5fd6fb90.jpg 1x, images/200px-c11eb203.jpg 2x, images/300px-59adce76.jpg 3x"'
|
35
|
+
And the file "index.html" should contain 'src="images/100px-5fd6fb90.gif"'
|
36
|
+
And the file "index.html" should contain 'src="images/100px-1242c368.png"'
|
32
37
|
And the file "subdir/index.html" should contain 'href="../stylesheets/site-50eaa978.css"'
|
33
38
|
And the file "subdir/index.html" should contain 'src="../javascripts/application-1d8d5276.js"'
|
34
39
|
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
|
|
49
54
|
And I should see 'href="stylesheets/site-50eaa978.css"'
|
50
55
|
And I should see 'src="javascripts/application-1d8d5276.js"'
|
51
56
|
And I should see 'src="images/100px-5fd6fb90.jpg"'
|
57
|
+
And I should see 'srcset="images/100px-5fd6fb90.jpg 1x, images/200px-c11eb203.jpg 2x, images/300px-59adce76.jpg 3x"'
|
52
58
|
When I go to "/subdir/"
|
53
59
|
Then I should see 'href="../stylesheets/site-50eaa978.css"'
|
54
60
|
And I should see 'src="../javascripts/application-1d8d5276.js"'
|
data/features/builder.feature
CHANGED
@@ -9,7 +9,6 @@ Feature: Builder
|
|
9
9
|
| static.html |
|
10
10
|
| services/index.html |
|
11
11
|
| stylesheets/static.css |
|
12
|
-
| spaces in file.html |
|
13
12
|
| images/blank.gif |
|
14
13
|
| images/Read me (example).txt |
|
15
14
|
| images/Child folder/regular_file(example).txt |
|
@@ -27,7 +26,6 @@ Feature: Builder
|
|
27
26
|
And the file "static.html" should contain "Static, no code!"
|
28
27
|
And the file "services/index.html" should contain "Services"
|
29
28
|
And the file "stylesheets/static.css" should contain "body"
|
30
|
-
And the file "spaces in file.html" should contain "spaces"
|
31
29
|
|
32
30
|
Scenario: Build glob
|
33
31
|
Given a successfully built app at "glob-app" with flags "--glob '*.css'"
|
@@ -25,8 +25,7 @@ Feature: Directory Index
|
|
25
25
|
And the file "a_folder/needs_index/index.html" should contain "Indexable"
|
26
26
|
And the file "leave_me_alone.html" should contain "Stay away"
|
27
27
|
And the file "regular/index.html" should contain "Regular"
|
28
|
-
And the file "evil spaces/index.html" should contain "Spaces"
|
29
|
-
|
28
|
+
And the file "evil spaces/index.html" should contain "Filled with Evil Spaces"
|
30
29
|
|
31
30
|
Scenario: Preview normal file
|
32
31
|
Given the Server is running at "indexable-app"
|
@@ -35,8 +34,8 @@ Feature: Directory Index
|
|
35
34
|
|
36
35
|
Scenario: Preview normal file with spaces in filename
|
37
36
|
Given the Server is running at "indexable-app"
|
38
|
-
When I go to "/evil
|
39
|
-
Then I should see "Spaces"
|
37
|
+
When I go to "/evil spaces/"
|
38
|
+
Then I should see "Filled with Evil Spaces"
|
40
39
|
|
41
40
|
Scenario: Preview normal file subdirectory
|
42
41
|
Given the Server is running at "indexable-app"
|
@@ -149,3 +149,22 @@ Feature: Neighboring YAML Front Matter
|
|
149
149
|
Then I should see "Layout in use: Override"
|
150
150
|
When I go to "/page_mentioned.html.erb.frontmatter"
|
151
151
|
Then I should see "File Not Found"
|
152
|
+
|
153
|
+
Scenario: Neighbor frontmatter for destination of proxy resources
|
154
|
+
Given the Server is running at "frontmatter-settings-neighbor-app"
|
155
|
+
And the file "source/proxied_with_frontmatter.html.frontmatter" has the contents
|
156
|
+
"""
|
157
|
+
---
|
158
|
+
title: Proxied title
|
159
|
+
---
|
160
|
+
"""
|
161
|
+
And the file "source/ignored.html.erb" has the contents
|
162
|
+
"""
|
163
|
+
---
|
164
|
+
ignored: true
|
165
|
+
---
|
166
|
+
|
167
|
+
<%= current_resource.data.title %>
|
168
|
+
"""
|
169
|
+
When I go to "/proxied_with_frontmatter.html"
|
170
|
+
Then I should see "Proxied title"
|
@@ -140,14 +140,14 @@ Feature: Minify Javascript
|
|
140
140
|
</script>
|
141
141
|
<script type='text/javascript'>
|
142
142
|
//<!--
|
143
|
-
!function(){line(),here()}();
|
143
|
+
!function(){one,line(),here()}();
|
144
144
|
//-->
|
145
145
|
</script>
|
146
146
|
<script type='text/html'>
|
147
147
|
I'm a jQuery {{template}}.
|
148
148
|
</script>
|
149
149
|
"""
|
150
|
-
|
150
|
+
|
151
151
|
Scenario: Rendering external js with the feature enabled
|
152
152
|
Given a fixture app "minify-js-app"
|
153
153
|
And a file named "config.rb" with:
|
Binary file
|
Binary file
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<h2>Image url:</h2>
|
6
|
-
<img src="<%= image_path('100px.jpg') %>">
|
6
|
+
<img src="<%= image_path('100px.jpg') %>" srcset="<%= image_path('100px.jpg') %> 1x, <%= image_path('200px.jpg') %> 2x, <%= image_path('300px.jpg') %> 3x">
|
7
7
|
|
8
8
|
<h2>Ignored path:</h2>
|
9
9
|
<link rel="apple-touch-icon" href="apple-touch-icon.png">
|
@@ -1 +1 @@
|
|
1
|
-
Spaces
|
1
|
+
Filled with Evil Spaces
|
@@ -1 +1 @@
|
|
1
|
-
<%= "spaces" %>
|
1
|
+
<%= "correctly found spaces in file data" %>
|
@@ -61,7 +61,14 @@ module Middleman::CoreExtensions
|
|
61
61
|
# @private
|
62
62
|
# @return [Hash]
|
63
63
|
def raw_data
|
64
|
-
app.extensions[:frontmatter].data(source_file).first
|
64
|
+
data = app.extensions[:frontmatter].data(source_file).first
|
65
|
+
|
66
|
+
if proxy?
|
67
|
+
url_data = app.extensions[:frontmatter].data( File.join( app.source_dir, url ).chomp('/') ).first
|
68
|
+
data = data.deep_merge(url_data)
|
69
|
+
end
|
70
|
+
|
71
|
+
data
|
65
72
|
end
|
66
73
|
|
67
74
|
# This page's frontmatter
|
@@ -21,6 +21,9 @@ module Middleman
|
|
21
21
|
::Rack::Mime::MIME_TYPES['.html'] = 'text/html; charset=utf-8'
|
22
22
|
::Rack::Mime::MIME_TYPES['.htm'] = 'text/html; charset=utf-8'
|
23
23
|
|
24
|
+
# Sourcemap format
|
25
|
+
::Rack::Mime::MIME_TYPES['.map'] = 'application/json; charset=utf-8'
|
26
|
+
|
24
27
|
app.extend ClassMethods
|
25
28
|
app.extend ServerMethods
|
26
29
|
|
@@ -69,7 +69,7 @@ end
|
|
69
69
|
|
70
70
|
# Provide this Aruba overload in case we're matching something with quotes in it
|
71
71
|
Then /^the file "([^"]*)" should contain '([^']*)'$/ do |file, partial_content|
|
72
|
-
check_file_content(file, partial_content, true)
|
72
|
+
check_file_content(file, Regexp.new(Regexp.escape(partial_content)), true)
|
73
73
|
end
|
74
74
|
|
75
75
|
And /the file "(.*)" should be gzipped/ do |file|
|
@@ -72,13 +72,13 @@ end
|
|
72
72
|
|
73
73
|
When /^I go to "([^\"]*)"$/ do |url|
|
74
74
|
in_current_dir do
|
75
|
-
@browser.get(URI.
|
75
|
+
@browser.get(URI.encode(url))
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
79
|
Then /^going to "([^\"]*)" should not raise an exception$/ do |url|
|
80
80
|
in_current_dir do
|
81
|
-
expect{ @browser.get(URI.
|
81
|
+
expect{ @browser.get(URI.encode(url)) }.to_not raise_exception
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -1 +1 @@
|
|
1
|
-
//= require_tree .
|
1
|
+
//= require_tree .
|
@@ -9,7 +9,7 @@ class Middleman::Templates::Local < Middleman::Templates::Base
|
|
9
9
|
# Just copy from the template path
|
10
10
|
# @return [void]
|
11
11
|
def build_scaffold!
|
12
|
-
directory options[:template].to_s, location, force: options[:force]
|
12
|
+
directory options[:template].to_s, location, force: options[:force], exclude_pattern: /\.git\/.*/
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
data/lib/middleman-core/util.rb
CHANGED
@@ -68,7 +68,7 @@ module Middleman
|
|
68
68
|
# @return [String]
|
69
69
|
def normalize_path(path)
|
70
70
|
# The tr call works around a bug in Ruby's Unicode handling
|
71
|
-
path.sub(%r{^/}, '').tr('', '')
|
71
|
+
URI.decode(path).sub(%r{^/}, '').tr('', '')
|
72
72
|
end
|
73
73
|
|
74
74
|
# This is a separate method from normalize_path in case we
|
@@ -144,7 +144,7 @@ module Middleman
|
|
144
144
|
path_or_resource.url
|
145
145
|
else
|
146
146
|
path_or_resource.dup
|
147
|
-
end
|
147
|
+
end
|
148
148
|
|
149
149
|
# Try to parse URL
|
150
150
|
begin
|
@@ -182,7 +182,7 @@ module Middleman
|
|
182
182
|
end
|
183
183
|
|
184
184
|
if resource
|
185
|
-
uri.path = relative_path_from_resource(this_resource, resource_url, effective_relative)
|
185
|
+
uri.path = URI.encode(relative_path_from_resource(this_resource, resource_url, effective_relative))
|
186
186
|
else
|
187
187
|
# If they explicitly asked for relative links but we can't find a resource...
|
188
188
|
raise "No resource exists at #{url}" if relative
|
@@ -91,7 +91,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
91
91
|
dirpath = Pathname.new(File.dirname(path))
|
92
92
|
|
93
93
|
# TODO: This regex will change some paths in plan HTML (not in a tag) - is that OK?
|
94
|
-
body.gsub(/([=\'\"\(]\s*)([^\s\'\"\)]+(#{@exts_regex_text}))/) do |match|
|
94
|
+
body.gsub(/([=\'\"\(,]\s*)([^\s\'\"\)]+(#{@exts_regex_text}))/) do |match|
|
95
95
|
opening_character = $1
|
96
96
|
asset_path = $2
|
97
97
|
|
data/middleman-core.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Reynolds
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-02-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -182,14 +182,14 @@ dependencies:
|
|
182
182
|
requirements:
|
183
183
|
- - "~>"
|
184
184
|
- !ruby/object:Gem::Version
|
185
|
-
version: 0.
|
185
|
+
version: 0.7.0
|
186
186
|
type: :runtime
|
187
187
|
prerelease: false
|
188
188
|
version_requirements: !ruby/object:Gem::Requirement
|
189
189
|
requirements:
|
190
190
|
- - "~>"
|
191
191
|
- !ruby/object:Gem::Version
|
192
|
-
version: 0.
|
192
|
+
version: 0.7.0
|
193
193
|
description: A static site generator. Provides dozens of templating languages (Haml,
|
194
194
|
Sass, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache
|
195
195
|
busting, Yaml data (and more) an easy part of your development cycle.
|
@@ -327,6 +327,8 @@ files:
|
|
327
327
|
- fixtures/asset-hash-app/source/images/100px.gif
|
328
328
|
- fixtures/asset-hash-app/source/images/100px.jpg
|
329
329
|
- fixtures/asset-hash-app/source/images/100px.png
|
330
|
+
- fixtures/asset-hash-app/source/images/200px.jpg
|
331
|
+
- fixtures/asset-hash-app/source/images/300px.jpg
|
330
332
|
- fixtures/asset-hash-app/source/index.html.erb
|
331
333
|
- fixtures/asset-hash-app/source/javascripts/application.js
|
332
334
|
- fixtures/asset-hash-app/source/layout.erb
|
@@ -1271,7 +1273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1271
1273
|
version: '0'
|
1272
1274
|
requirements: []
|
1273
1275
|
rubyforge_project:
|
1274
|
-
rubygems_version: 2.
|
1276
|
+
rubygems_version: 2.4.3
|
1275
1277
|
signing_key:
|
1276
1278
|
specification_version: 4
|
1277
1279
|
summary: Hand-crafted frontend development
|
@@ -1396,6 +1398,8 @@ test_files:
|
|
1396
1398
|
- fixtures/asset-hash-app/source/images/100px.gif
|
1397
1399
|
- fixtures/asset-hash-app/source/images/100px.jpg
|
1398
1400
|
- fixtures/asset-hash-app/source/images/100px.png
|
1401
|
+
- fixtures/asset-hash-app/source/images/200px.jpg
|
1402
|
+
- fixtures/asset-hash-app/source/images/300px.jpg
|
1399
1403
|
- fixtures/asset-hash-app/source/index.html.erb
|
1400
1404
|
- fixtures/asset-hash-app/source/javascripts/application.js
|
1401
1405
|
- fixtures/asset-hash-app/source/layout.erb
|