middleman-core 3.3.10 → 3.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/features/console.feature +10 -0
- data/features/helpers_link_to.feature +18 -0
- data/features/image_srcset_paths.feature +7 -0
- data/features/markdown_kramdown_in_haml.feature +2 -1
- data/fixtures/image-srcset-paths-app/image-srcset-paths.html.erb +1 -0
- data/fixtures/image-srcset-paths-app/images/blank.gif +0 -0
- data/fixtures/large-build-app/config.rb +2 -0
- data/fixtures/traversal-app/source/.htaccess +0 -0
- data/lib/middleman-core/application.rb +8 -0
- data/lib/middleman-core/cli/build.rb +1 -1
- data/lib/middleman-core/cli/console.rb +10 -1
- data/lib/middleman-core/cli/server.rb +0 -2
- data/lib/middleman-core/core_extensions/request.rb +1 -0
- data/lib/middleman-core/preview_server.rb +8 -4
- data/lib/middleman-core/sitemap/extensions/traversal.rb +3 -1
- data/lib/middleman-core/templates/html5/source/.htaccess +4 -2
- data/lib/middleman-core/templates/shared/Gemfile.tt +1 -1
- data/lib/middleman-core/util.rb +2 -2
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/core_extensions/default_helpers.rb +13 -0
- data/lib/middleman-more/extensions/asset_hash.rb +1 -1
- data/lib/middleman/rack.rb +1 -0
- metadata +13 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bdee941102d480e0efde57121a8f4158b053579
|
4
|
+
data.tar.gz: 4d51251656f7a673ebe12fa3c3a43ab97a885f1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3645d04948555d0cc894ab7ce41b05c854a1b2e2b9c140fc087aca9d159004743a25ed4e684281cc5b99026eab36c6cf643bea374216e1b79c4392dbd657bb51
|
7
|
+
data.tar.gz: 7568e90823fbfa99c5baf7aaf0ee51beb6191c0e0921ac998e5d1ff021a577fd2594e40daccd18ed8e6722cb1856358cff1046e337329bddda4cd3bdc6096bd6
|
@@ -5,6 +5,24 @@ Feature: link_to helper
|
|
5
5
|
When I go to "/link_to_erb.html"
|
6
6
|
Then I should see "erb <s>with html tags</s>"
|
7
7
|
|
8
|
+
Scenario: link_to works with absolute URLs (where the relative part matches a local path)
|
9
|
+
Given a fixture app "link-to-app"
|
10
|
+
And a file named "config.rb" with:
|
11
|
+
"""
|
12
|
+
set :relative_links, true
|
13
|
+
"""
|
14
|
+
And a file named "source/test.html.erb" with:
|
15
|
+
"""
|
16
|
+
Hello
|
17
|
+
"""
|
18
|
+
And a file named "source/link_to_absolute.html.erb" with:
|
19
|
+
"""
|
20
|
+
<%= link_to "test", "http://google.com/test.html" %>
|
21
|
+
"""
|
22
|
+
And the Server is running at "link-to-app"
|
23
|
+
When I go to "/link_to_absolute.html"
|
24
|
+
Then I should see '<a href="http://google.com/test.html">test</a>'
|
25
|
+
|
8
26
|
Scenario: link_to works with blocks (slim)
|
9
27
|
Given the Server is running at "link-to-app"
|
10
28
|
When I go to "/link_to_slim.html"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Feature: Support srcset property as params for image_tag helper
|
2
|
+
This lets you specify responsive image sizes
|
3
|
+
|
4
|
+
Scenario: Rendering an image with the feature enabled
|
5
|
+
Given the Server is running at "image-srcset-paths-app"
|
6
|
+
When I go to "/image-srcset-paths.html"
|
7
|
+
Then I should see '//example.com/remote-image.jpg 2x, /images/blank_3x.jpg 3x'
|
@@ -33,9 +33,10 @@ Feature: Markdown support in Haml (Kramdown)
|
|
33
33
|
:markdown
|
34
34
|
[A link](/link_target.html)
|
35
35
|
|
36
|
-

|
36
|
+
{: srcset="image_2x.jpg 2x"}
|
37
37
|
"""
|
38
38
|
Given the Server is running at "markdown-in-haml-app"
|
39
39
|
When I go to "/link_and_image/"
|
40
40
|
Then I should see "/link_target/"
|
41
|
+
Then I should see "/images/image_2x.jpg 2x"
|
41
42
|
Then I should see 'src="/images/blank.gif"'
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag 'blank.jpg', srcset: '//example.com/remote-image.jpg 2x, blank_3x.jpg 3x, http://example.com/remoteimage.jpg 4x' %>
|
Binary file
|
File without changes
|
@@ -67,6 +67,14 @@ module Middleman
|
|
67
67
|
end
|
68
68
|
delegate :root_path, to: :"self.class"
|
69
69
|
|
70
|
+
# Which host preview should start on.
|
71
|
+
# @return [Fixnum]
|
72
|
+
config.define_setting :host, '0.0.0.0', 'The preview server host'
|
73
|
+
|
74
|
+
# Which port preview should start on.
|
75
|
+
# @return [Fixnum]
|
76
|
+
config.define_setting :port, 4567, 'The preview server port'
|
77
|
+
|
70
78
|
# Name of the source directory
|
71
79
|
# @return [String]
|
72
80
|
config.define_setting :source, 'source', 'Name of the source directory'
|
@@ -178,7 +178,7 @@ module Middleman::Cli
|
|
178
178
|
# @return [void]
|
179
179
|
def execute!
|
180
180
|
# Sort order, images, fonts, js/css and finally everything else.
|
181
|
-
sort_order = %w(.png .jpeg .jpg .gif .bmp .svg .svgz .ico .webp .woff .otf .ttf .eot .js .css)
|
181
|
+
sort_order = %w(.png .jpeg .jpg .gif .bmp .svg .svgz .ico .webp .woff .woff2 .otf .ttf .eot .js .css)
|
182
182
|
|
183
183
|
# Pre-request CSS to give Compass a chance to build sprites
|
184
184
|
logger.debug '== Prerendering CSS'
|
@@ -34,10 +34,19 @@ module Middleman::Cli
|
|
34
34
|
|
35
35
|
# TODO: get file watcher / reload! working in console
|
36
36
|
|
37
|
+
interact_with @app
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
# Start an interactive console in the context of the provided object.
|
43
|
+
# @param [Object] context
|
44
|
+
# @return [void]
|
45
|
+
def interact_with(context)
|
37
46
|
IRB.setup nil
|
38
47
|
IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
|
39
48
|
require 'irb/ext/multi-irb'
|
40
|
-
IRB.irb nil,
|
49
|
+
IRB.irb nil, context
|
41
50
|
end
|
42
51
|
end
|
43
52
|
end
|
@@ -14,11 +14,9 @@ module Middleman::Cli
|
|
14
14
|
method_option :host,
|
15
15
|
type: :string,
|
16
16
|
aliases: '-h',
|
17
|
-
default: '0.0.0.0',
|
18
17
|
desc: 'Bind to HOST address'
|
19
18
|
method_option :port,
|
20
19
|
aliases: '-p',
|
21
|
-
default: '4567',
|
22
20
|
desc: 'The port Middleman will listen on'
|
23
21
|
method_option :verbose,
|
24
22
|
type: :boolean,
|
@@ -5,8 +5,6 @@ require 'middleman-core/logger'
|
|
5
5
|
# rubocop:disable GlobalVars
|
6
6
|
module Middleman
|
7
7
|
module PreviewServer
|
8
|
-
DEFAULT_PORT = 4567
|
9
|
-
|
10
8
|
class << self
|
11
9
|
attr_reader :app, :host, :port
|
12
10
|
delegate :logger, to: :app
|
@@ -15,8 +13,6 @@ module Middleman
|
|
15
13
|
# @return [void]
|
16
14
|
def start(opts={})
|
17
15
|
@options = opts
|
18
|
-
@host = @options[:host] || '0.0.0.0'
|
19
|
-
@port = @options[:port] || DEFAULT_PORT
|
20
16
|
|
21
17
|
mount_instance(new_app)
|
22
18
|
logger.info "== The Middleman is standing watch at http://#{host}:#{port}"
|
@@ -92,6 +88,7 @@ module Middleman
|
|
92
88
|
|
93
89
|
def new_app
|
94
90
|
opts = @options.dup
|
91
|
+
|
95
92
|
server = ::Middleman::Application.server
|
96
93
|
|
97
94
|
# Add in the meta pages application
|
@@ -107,7 +104,14 @@ module Middleman
|
|
107
104
|
)
|
108
105
|
|
109
106
|
config[:environment] = opts[:environment].to_sym if opts[:environment]
|
107
|
+
config[:host] = opts[:host] if opts[:host]
|
108
|
+
config[:port] = opts[:port] if opts[:port]
|
110
109
|
end
|
110
|
+
|
111
|
+
@host = @app.config[:host]
|
112
|
+
@port = @app.config[:port]
|
113
|
+
|
114
|
+
@app
|
111
115
|
end
|
112
116
|
|
113
117
|
def start_file_watcher
|
@@ -9,7 +9,9 @@ module Middleman
|
|
9
9
|
tail = parts.pop
|
10
10
|
is_index = (tail == app.index_file)
|
11
11
|
|
12
|
-
|
12
|
+
if parts.empty?
|
13
|
+
return is_index ? nil : store.find_resource_by_path(app.index_file)
|
14
|
+
end
|
13
15
|
|
14
16
|
test_expr = parts.join('\\/')
|
15
17
|
# A makeshift for eponymous reverse-lookup
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<IfModule mod_headers.c>
|
22
22
|
Header set X-UA-Compatible "IE=Edge,chrome=1"
|
23
23
|
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
|
24
|
-
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
|
24
|
+
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|woff2|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
|
25
25
|
Header unset X-UA-Compatible
|
26
26
|
</FilesMatch>
|
27
27
|
</IfModule>
|
@@ -70,7 +70,7 @@
|
|
70
70
|
# subdomains like "subdomain.example.com".
|
71
71
|
|
72
72
|
<IfModule mod_headers.c>
|
73
|
-
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
|
73
|
+
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css)$">
|
74
74
|
Header set Access-Control-Allow-Origin "*"
|
75
75
|
</FilesMatch>
|
76
76
|
</IfModule>
|
@@ -107,6 +107,7 @@ AddType application/vnd.ms-fontobject eot
|
|
107
107
|
AddType application/x-font-ttf ttf ttc
|
108
108
|
AddType font/opentype otf
|
109
109
|
AddType application/x-font-woff woff
|
110
|
+
AddType application/font-woff2 woff2
|
110
111
|
|
111
112
|
# Assorted types
|
112
113
|
AddType image/x-icon ico
|
@@ -238,6 +239,7 @@ AddType text/vtt vtt
|
|
238
239
|
ExpiresByType application/x-font-ttf "access plus 1 month"
|
239
240
|
ExpiresByType font/opentype "access plus 1 month"
|
240
241
|
ExpiresByType application/x-font-woff "access plus 1 month"
|
242
|
+
ExpiresByType application/font-woff2 "access plus 1 month"
|
241
243
|
ExpiresByType image/svg+xml "access plus 1 month"
|
242
244
|
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
|
243
245
|
|
data/lib/middleman-core/util.rb
CHANGED
@@ -169,14 +169,14 @@ module Middleman
|
|
169
169
|
if path_or_resource.is_a?(::Middleman::Sitemap::Resource)
|
170
170
|
resource = path_or_resource
|
171
171
|
resource_url = url
|
172
|
-
elsif this_resource && uri.path
|
172
|
+
elsif this_resource && uri.path && !uri.host
|
173
173
|
# Handle relative urls
|
174
174
|
url_path = Pathname(uri.path)
|
175
175
|
current_source_dir = Pathname('/' + this_resource.path).dirname
|
176
176
|
url_path = current_source_dir.join(url_path) if url_path.relative?
|
177
177
|
resource = app.sitemap.find_resource_by_path(url_path.to_s)
|
178
178
|
resource_url = resource.url if resource
|
179
|
-
elsif options[:find_resource] && uri.path
|
179
|
+
elsif options[:find_resource] && uri.path && !uri.host
|
180
180
|
resource = app.sitemap.find_resource_by_path(uri.path)
|
181
181
|
resource_url = resource.url if resource
|
182
182
|
end
|
@@ -255,5 +255,18 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
255
255
|
url = url_for(url, options)
|
256
256
|
super
|
257
257
|
end
|
258
|
+
|
259
|
+
# Modified Padrino image_tag so that it finds the paths for srcset
|
260
|
+
# using asset_path for the images listed in the srcset param
|
261
|
+
def image_tag(path, params={})
|
262
|
+
params.symbolize_keys!
|
263
|
+
|
264
|
+
if params.key?(:srcset)
|
265
|
+
images = params[:srcset].split(',').map {|size| (size.include?('//') ? size : asset_url("images/#{size.strip}")) }
|
266
|
+
params[:srcset] = images.join(', ')
|
267
|
+
end
|
268
|
+
|
269
|
+
super(path, params)
|
270
|
+
end
|
258
271
|
end
|
259
272
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'middleman-core/util'
|
2
2
|
|
3
3
|
class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
4
|
-
option :exts, %w(.jpg .jpeg .png .gif .webp .js .css .otf .woff .eot .ttf .svg .svgz), 'List of extensions that get asset hashes appended to them.'
|
4
|
+
option :exts, %w(.jpg .jpeg .png .gif .webp .js .css .otf .woff .woff2 .eot .ttf .svg .svgz), 'List of extensions that get asset hashes appended to them.'
|
5
5
|
option :ignore, [], 'Patterns to avoid adding asset hashes to'
|
6
6
|
|
7
7
|
def initialize(app, options_hash={}, &block)
|
data/lib/middleman/rack.rb
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.11
|
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: 2015-
|
13
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- features/cli_init.feature
|
225
225
|
- features/coffee-script.feature
|
226
226
|
- features/compass-sprites.feature
|
227
|
+
- features/console.feature
|
227
228
|
- features/content_for.feature
|
228
229
|
- features/content_type.feature
|
229
230
|
- features/current_page_request_path_backwards.feature
|
@@ -257,6 +258,7 @@ files:
|
|
257
258
|
- features/i18n_preview.feature
|
258
259
|
- features/ignore.feature
|
259
260
|
- features/ignore_already_minified.feature
|
261
|
+
- features/image_srcset_paths.feature
|
260
262
|
- features/implied_extensions.feature
|
261
263
|
- features/instance_vars.feature
|
262
264
|
- features/layouts_dir.feature
|
@@ -624,6 +626,8 @@ files:
|
|
624
626
|
- fixtures/ignore-app/source/plain.html
|
625
627
|
- fixtures/ignore-app/source/reports/another.html
|
626
628
|
- fixtures/ignore-app/source/reports/index.html
|
629
|
+
- fixtures/image-srcset-paths-app/image-srcset-paths.html.erb
|
630
|
+
- fixtures/image-srcset-paths-app/images/blank.gif
|
627
631
|
- fixtures/implied-extensions-app/config.rb
|
628
632
|
- fixtures/implied-extensions-app/source/index.erb
|
629
633
|
- fixtures/indexable-app/config.rb
|
@@ -917,6 +921,7 @@ files:
|
|
917
921
|
- fixtures/stylus-preview-app/source/stylesheets/main2.css.styl
|
918
922
|
- fixtures/stylus-preview-app/source/stylesheets/plain.css.styl
|
919
923
|
- fixtures/traversal-app/config.rb
|
924
|
+
- fixtures/traversal-app/source/.htaccess
|
920
925
|
- fixtures/traversal-app/source/directory-indexed.html.erb
|
921
926
|
- fixtures/traversal-app/source/directory-indexed/sibling.html.erb
|
922
927
|
- fixtures/traversal-app/source/directory-indexed/sibling2.html.erb
|
@@ -1273,7 +1278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1273
1278
|
version: '0'
|
1274
1279
|
requirements: []
|
1275
1280
|
rubyforge_project:
|
1276
|
-
rubygems_version: 2.4.
|
1281
|
+
rubygems_version: 2.4.6
|
1277
1282
|
signing_key:
|
1278
1283
|
specification_version: 4
|
1279
1284
|
summary: Hand-crafted frontend development
|
@@ -1295,6 +1300,7 @@ test_files:
|
|
1295
1300
|
- features/cli_init.feature
|
1296
1301
|
- features/coffee-script.feature
|
1297
1302
|
- features/compass-sprites.feature
|
1303
|
+
- features/console.feature
|
1298
1304
|
- features/content_for.feature
|
1299
1305
|
- features/content_type.feature
|
1300
1306
|
- features/current_page_request_path_backwards.feature
|
@@ -1328,6 +1334,7 @@ test_files:
|
|
1328
1334
|
- features/i18n_preview.feature
|
1329
1335
|
- features/ignore.feature
|
1330
1336
|
- features/ignore_already_minified.feature
|
1337
|
+
- features/image_srcset_paths.feature
|
1331
1338
|
- features/implied_extensions.feature
|
1332
1339
|
- features/instance_vars.feature
|
1333
1340
|
- features/layouts_dir.feature
|
@@ -1695,6 +1702,8 @@ test_files:
|
|
1695
1702
|
- fixtures/ignore-app/source/plain.html
|
1696
1703
|
- fixtures/ignore-app/source/reports/another.html
|
1697
1704
|
- fixtures/ignore-app/source/reports/index.html
|
1705
|
+
- fixtures/image-srcset-paths-app/image-srcset-paths.html.erb
|
1706
|
+
- fixtures/image-srcset-paths-app/images/blank.gif
|
1698
1707
|
- fixtures/implied-extensions-app/config.rb
|
1699
1708
|
- fixtures/implied-extensions-app/source/index.erb
|
1700
1709
|
- fixtures/indexable-app/config.rb
|
@@ -1988,6 +1997,7 @@ test_files:
|
|
1988
1997
|
- fixtures/stylus-preview-app/source/stylesheets/main2.css.styl
|
1989
1998
|
- fixtures/stylus-preview-app/source/stylesheets/plain.css.styl
|
1990
1999
|
- fixtures/traversal-app/config.rb
|
2000
|
+
- fixtures/traversal-app/source/.htaccess
|
1991
2001
|
- fixtures/traversal-app/source/directory-indexed.html.erb
|
1992
2002
|
- fixtures/traversal-app/source/directory-indexed/sibling.html.erb
|
1993
2003
|
- fixtures/traversal-app/source/directory-indexed/sibling2.html.erb
|