middleman-core 4.1.2 → 4.1.3
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/partials.feature +10 -5
- data/fixtures/partials-app/source/index_missing.html.erb +3 -0
- data/lib/middleman-core/application.rb +5 -1
- data/lib/middleman-core/builder.rb +7 -1
- data/lib/middleman-core/extensions.rb +1 -1
- data/lib/middleman-core/extensions/directory_indexes.rb +8 -2
- data/lib/middleman-core/preview_server.rb +11 -12
- data/lib/middleman-core/sitemap/extensions/import.rb +2 -2
- data/lib/middleman-core/sitemap/store.rb +11 -0
- data/lib/middleman-core/sources.rb +2 -1
- data/lib/middleman-core/sources/source_watcher.rb +2 -1
- data/lib/middleman-core/template_context.rb +0 -1
- data/lib/middleman-core/version.rb +1 -1
- data/middleman-core.gemspec +2 -2
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07f3019963e912c90ffd23f7781a1e2708916d99
|
4
|
+
data.tar.gz: 390ae3524c422182a88efcc01cf84b99406819b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 808225bf5afa002a4ce07c597bcc3bf9db8896214701b7d07ca279c3a5549101a147617b3c285c9d912d4edad6aa2d8315cc0e026e9f68cb7105b8e464520371
|
7
|
+
data.tar.gz: 6252c9056ac15fac4b34ad46a7853b0855a0d7d89ad1fffc605b2eaa23a78e240af0bba31dcb3d6f96a65951f728c4422f665a3d0771e5ff4b10c0ce42cbc81f
|
data/features/partials.feature
CHANGED
@@ -5,25 +5,30 @@ Feature: Provide Sane Defaults for Partial Behavior
|
|
5
5
|
When I go to "/index.html"
|
6
6
|
Then I should see "Header"
|
7
7
|
And I should see "Footer"
|
8
|
-
|
8
|
+
|
9
9
|
Scenario: Finds shared partials relative to the root (sub)
|
10
10
|
Given the Server is running at "partials-app"
|
11
11
|
When I go to "/sub/index.html"
|
12
12
|
Then I should see "Header"
|
13
13
|
And I should see "Footer"
|
14
|
-
|
14
|
+
|
15
|
+
Scenario: Flags error when partial is not found
|
16
|
+
Given the Server is running at "partials-app"
|
17
|
+
When I go to "/index_missing.html"
|
18
|
+
Then I should see "Error: Could not locate partial"
|
19
|
+
|
15
20
|
Scenario: Prefers partials of the same engine type
|
16
21
|
Given the Server is running at "partials-app"
|
17
22
|
When I go to "/index.html"
|
18
23
|
Then I should see "ERb Main"
|
19
|
-
|
24
|
+
|
20
25
|
Scenario: Prefers partials of the same engine type
|
21
26
|
Given the Server is running at "partials-app"
|
22
27
|
When I go to "/second.html"
|
23
28
|
Then I should see "Str Main"
|
24
29
|
And I should see "Header"
|
25
30
|
And I should see "Footer"
|
26
|
-
|
31
|
+
|
27
32
|
Scenario: Finds partial relative to template
|
28
33
|
Given the Server is running at "partials-app"
|
29
34
|
When I go to "/sub/index.html"
|
@@ -33,7 +38,7 @@ Feature: Provide Sane Defaults for Partial Behavior
|
|
33
38
|
Given the Server is running at "partials-app"
|
34
39
|
When I go to "/locals.html"
|
35
40
|
Then I should see "Local var is bar"
|
36
|
-
|
41
|
+
|
37
42
|
Scenario: Partial and Layout use different engines
|
38
43
|
Given the Server is running at "different-engine-partial"
|
39
44
|
When I go to "/index.html"
|
@@ -96,6 +96,10 @@ module Middleman
|
|
96
96
|
# @return [String]
|
97
97
|
define_setting :source, 'source', 'Name of the source directory'
|
98
98
|
|
99
|
+
# If we should not run the sitemap.
|
100
|
+
# @return [Boolean]
|
101
|
+
define_setting :disable_sitemap, false, 'If we should not run the sitemap.'
|
102
|
+
|
99
103
|
# If we should exit before ready event.
|
100
104
|
# @return [Boolean]
|
101
105
|
define_setting :exit_before_ready, false, 'If we should exit before ready event.'
|
@@ -106,7 +110,7 @@ module Middleman
|
|
106
110
|
|
107
111
|
# Middleman environment. Defaults to :development
|
108
112
|
# @return [String]
|
109
|
-
define_setting :environment, ((ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development), 'Middleman environment. Defaults to :development'
|
113
|
+
define_setting :environment, ((ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development), 'Middleman environment. Defaults to :development', import: proc { |s| s.to_sym }
|
110
114
|
|
111
115
|
# Which file should be used for directory indexes
|
112
116
|
# @return [String]
|
@@ -117,7 +117,13 @@ module Middleman
|
|
117
117
|
.sort_by { |resource| SORT_ORDER.index(resource.ext) || 100 }
|
118
118
|
|
119
119
|
if @glob
|
120
|
-
resources = resources.select
|
120
|
+
resources = resources.select do |resource|
|
121
|
+
if defined?(::File::FNM_EXTGLOB)
|
122
|
+
File.fnmatch(@glob, resource.destination_path, ::File::FNM_EXTGLOB)
|
123
|
+
else
|
124
|
+
File.fnmatch(@glob, resource.destination_path)
|
125
|
+
end
|
126
|
+
end
|
121
127
|
end
|
122
128
|
|
123
129
|
output_resources(resources)
|
@@ -52,7 +52,7 @@ module Middleman
|
|
52
52
|
def register(name, extension_class=nil, options={}, &block)
|
53
53
|
raise 'Extension name must be a symbol' unless name.is_a?(Symbol)
|
54
54
|
# If we've already got an extension registered under this name, bail out
|
55
|
-
raise "There is already an extension registered with the name '#{name}'" if registered.key?(name)
|
55
|
+
# raise "There is a already an extension registered with the name '#{name}'" if registered.key?(name)
|
56
56
|
|
57
57
|
# If the extension is defined with a block, grab options out of the "extension_class" parameter.
|
58
58
|
if extension_class && block_given? && options.empty? && extension_class.is_a?(Hash)
|
@@ -11,16 +11,22 @@ class Middleman::Extensions::DirectoryIndexes < ::Middleman::Extension
|
|
11
11
|
index_file = app.config[:index_file]
|
12
12
|
new_index_path = "/#{index_file}"
|
13
13
|
|
14
|
+
extensions = %w(.htm .html .php)
|
15
|
+
|
14
16
|
resources.each do |resource|
|
15
17
|
# Check if it would be pointless to reroute
|
16
18
|
next if resource.destination_path == index_file ||
|
17
19
|
resource.destination_path.end_with?(new_index_path) ||
|
18
|
-
|
20
|
+
!extensions.include?(resource.ext)
|
19
21
|
|
20
22
|
# Check if file metadata (options set by "page" in config.rb or frontmatter) turns directory_index off
|
21
23
|
next if resource.options[:directory_index] == false
|
22
24
|
|
23
|
-
|
25
|
+
extensions.each do |ext|
|
26
|
+
resource.destination_path = resource.destination_path.chomp(ext)
|
27
|
+
end
|
28
|
+
|
29
|
+
resource.destination_path += new_index_path
|
24
30
|
end
|
25
31
|
end
|
26
32
|
end
|
@@ -18,12 +18,13 @@ module Middleman
|
|
18
18
|
|
19
19
|
# Start an instance of Middleman::Application
|
20
20
|
# @return [void]
|
21
|
-
def start(opts={})
|
21
|
+
def start(opts={}, cli_options={})
|
22
22
|
# Do not buffer output, otherwise testing of output does not work
|
23
23
|
$stdout.sync = true
|
24
24
|
$stderr.sync = true
|
25
25
|
|
26
26
|
@options = opts
|
27
|
+
@cli_options = cli_options
|
27
28
|
@server_information = ServerInformation.new
|
28
29
|
@server_information.https = (@options[:https] == true)
|
29
30
|
|
@@ -131,6 +132,7 @@ module Middleman
|
|
131
132
|
|
132
133
|
def initialize_new_app
|
133
134
|
opts = @options.dup
|
135
|
+
cli_options = @cli_options.dup
|
134
136
|
|
135
137
|
::Middleman::Logger.singleton(
|
136
138
|
opts[:debug] ? 0 : 1,
|
@@ -138,17 +140,14 @@ module Middleman
|
|
138
140
|
)
|
139
141
|
|
140
142
|
app = ::Middleman::Application.new do
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
config[:https] = opts[:https] unless opts[:https].nil?
|
150
|
-
config[:ssl_certificate] = opts[:ssl_certificate] if opts[:ssl_certificate]
|
151
|
-
config[:ssl_private_key] = opts[:ssl_private_key] if opts[:ssl_private_key]
|
143
|
+
cli_options.each do |k, v|
|
144
|
+
setting = config.setting(k.to_sym)
|
145
|
+
next unless setting
|
146
|
+
|
147
|
+
v = setting.options[:import].call(v) if setting.options[:import]
|
148
|
+
|
149
|
+
config[k.to_sym] = v
|
150
|
+
end
|
152
151
|
|
153
152
|
ready do
|
154
153
|
unless config[:watcher_disable]
|
@@ -23,8 +23,8 @@ module Middleman
|
|
23
23
|
ImportPathDescriptor = Struct.new(:from, :renameProc) do
|
24
24
|
def execute_descriptor(app, resources)
|
25
25
|
resources + ::Middleman::Util.glob_directory(File.join(from, '**/*'))
|
26
|
-
|
27
|
-
|
26
|
+
.reject { |path| File.directory?(path) }
|
27
|
+
.map do |path|
|
28
28
|
target_path = Pathname(path).relative_path_from(Pathname(from).parent).to_s
|
29
29
|
|
30
30
|
::Middleman::Sitemap::Resource.new(
|
@@ -216,6 +216,8 @@ module Middleman
|
|
216
216
|
# rebuild_resource_list! since the last time it was run. This is
|
217
217
|
# very expensive!
|
218
218
|
def ensure_resource_list_updated!
|
219
|
+
return if @app.config[:disable_sitemap]
|
220
|
+
|
219
221
|
@lock.synchronize do
|
220
222
|
return unless @needs_sitemap_rebuild
|
221
223
|
|
@@ -237,7 +239,16 @@ module Middleman
|
|
237
239
|
# Rebuild cache
|
238
240
|
@resources.each do |resource|
|
239
241
|
@_lookup_by_path[resource.path] = resource
|
242
|
+
end
|
243
|
+
|
244
|
+
@resources.each do |resource|
|
240
245
|
@_lookup_by_destination_path[resource.destination_path] = resource
|
246
|
+
end
|
247
|
+
|
248
|
+
# NB: This needs to be done after the previous two steps,
|
249
|
+
# since some proxy resources are looked up by path in order to
|
250
|
+
# get their metadata and subsequently their page_id.
|
251
|
+
@resources.each do |resource|
|
241
252
|
@_lookup_by_page_id[resource.page_id.to_sym] = resource
|
242
253
|
end
|
243
254
|
|
@@ -116,7 +116,8 @@ module Middleman
|
|
116
116
|
Contract Or[Symbol, HANDLER], Maybe[Hash] => HANDLER
|
117
117
|
def watch(type_or_handler, options={})
|
118
118
|
handler = if type_or_handler.is_a? Symbol
|
119
|
-
|
119
|
+
path = File.expand_path(options.delete(:path), app.root)
|
120
|
+
SourceWatcher.new(self, type_or_handler, path, options)
|
120
121
|
else
|
121
122
|
type_or_handler
|
122
123
|
end
|
@@ -92,7 +92,7 @@ module Middleman
|
|
92
92
|
# @return [void]
|
93
93
|
Contract String => Any
|
94
94
|
def update_path(directory)
|
95
|
-
@directory = Pathname(directory)
|
95
|
+
@directory = Pathname(File.expand_path(directory, app.root))
|
96
96
|
|
97
97
|
stop_listener! if @listener
|
98
98
|
|
@@ -133,6 +133,7 @@ module Middleman
|
|
133
133
|
return nil if p.absolute? && !p.to_s.start_with?(@directory.to_s)
|
134
134
|
|
135
135
|
p = @directory + p if p.relative?
|
136
|
+
|
136
137
|
if glob
|
137
138
|
@extensionless_files[p]
|
138
139
|
else
|
@@ -104,7 +104,6 @@ module Middleman
|
|
104
104
|
|
105
105
|
partial_file = locate_partial(name, false) || locate_partial(name, true)
|
106
106
|
|
107
|
-
return '' unless partial_file
|
108
107
|
raise ::Middleman::TemplateRenderer::TemplateNotFound, "Could not locate partial: #{name}" unless partial_file
|
109
108
|
|
110
109
|
source_path = sitemap.file_to_path(partial_file)
|
data/middleman-core.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
# Helpers
|
30
30
|
s.add_dependency('activesupport', ['~> 4.2'])
|
31
31
|
s.add_dependency('padrino-helpers', ['~> 0.13.0'])
|
32
|
-
s.add_dependency("addressable", ["~> 2.
|
32
|
+
s.add_dependency("addressable", ["~> 2.3"])
|
33
33
|
|
34
34
|
# Watcher
|
35
35
|
s.add_dependency('listen', ['~> 3.0'])
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
s.add_dependency('i18n', ['~> 0.7.0'])
|
42
42
|
|
43
43
|
# Automatic Image Sizes
|
44
|
-
s.add_dependency('fastimage', ['~> 1.
|
44
|
+
s.add_dependency('fastimage', ['~> 1.7'])
|
45
45
|
|
46
46
|
# Minify CSS
|
47
47
|
s.add_dependency('sass', ['>= 3.4'])
|
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: 4.1.
|
4
|
+
version: 4.1.3
|
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: 2016-
|
13
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -136,14 +136,14 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 2.
|
139
|
+
version: '2.3'
|
140
140
|
type: :runtime
|
141
141
|
prerelease: false
|
142
142
|
version_requirements: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 2.
|
146
|
+
version: '2.3'
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: listen
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,14 +192,14 @@ dependencies:
|
|
192
192
|
requirements:
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
|
-
version: '1.
|
195
|
+
version: '1.7'
|
196
196
|
type: :runtime
|
197
197
|
prerelease: false
|
198
198
|
version_requirements: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
200
|
- - "~>"
|
201
201
|
- !ruby/object:Gem::Version
|
202
|
-
version: '1.
|
202
|
+
version: '1.7'
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
204
|
name: sass
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1202,6 +1202,7 @@ files:
|
|
1202
1202
|
- fixtures/partials-app/source/block.html.erb
|
1203
1203
|
- fixtures/partials-app/source/images/tiger.svg
|
1204
1204
|
- fixtures/partials-app/source/index.html.erb
|
1205
|
+
- fixtures/partials-app/source/index_missing.html.erb
|
1205
1206
|
- fixtures/partials-app/source/locals.html.erb
|
1206
1207
|
- fixtures/partials-app/source/second.html.str
|
1207
1208
|
- fixtures/partials-app/source/shared/_footer.erb
|
@@ -2356,6 +2357,7 @@ test_files:
|
|
2356
2357
|
- fixtures/partials-app/source/block.html.erb
|
2357
2358
|
- fixtures/partials-app/source/images/tiger.svg
|
2358
2359
|
- fixtures/partials-app/source/index.html.erb
|
2360
|
+
- fixtures/partials-app/source/index_missing.html.erb
|
2359
2361
|
- fixtures/partials-app/source/locals.html.erb
|
2360
2362
|
- fixtures/partials-app/source/second.html.str
|
2361
2363
|
- fixtures/partials-app/source/shared/_footer.erb
|