middleman-core 3.3.2 → 3.3.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/helpers_select_tag.feature +6 -8
- data/lib/middleman-core.rb +1 -2
- data/lib/middleman-core/application.rb +10 -9
- data/lib/middleman-core/cli.rb +9 -13
- data/lib/middleman-core/cli/build.rb +26 -27
- data/lib/middleman-core/cli/bundler.rb +6 -7
- data/lib/middleman-core/cli/console.rb +10 -13
- data/lib/middleman-core/cli/extension.rb +2 -4
- data/lib/middleman-core/cli/init.rb +27 -28
- data/lib/middleman-core/cli/server.rb +43 -44
- data/lib/middleman-core/configuration.rb +13 -11
- data/lib/middleman-core/core_extensions/data.rb +21 -29
- data/lib/middleman-core/core_extensions/extensions.rb +8 -8
- data/lib/middleman-core/core_extensions/external_helpers.rb +3 -5
- data/lib/middleman-core/core_extensions/file_watcher.rb +7 -11
- data/lib/middleman-core/core_extensions/front_matter.rb +5 -6
- data/lib/middleman-core/core_extensions/rendering.rb +40 -30
- data/lib/middleman-core/core_extensions/request.rb +16 -19
- data/lib/middleman-core/core_extensions/routing.rb +37 -36
- data/lib/middleman-core/core_extensions/show_exceptions.rb +1 -5
- data/lib/middleman-core/extension.rb +14 -16
- data/lib/middleman-core/extensions.rb +4 -6
- data/lib/middleman-core/load_paths.rb +3 -6
- data/lib/middleman-core/logger.rb +1 -3
- data/lib/middleman-core/meta_pages.rb +11 -11
- data/lib/middleman-core/meta_pages/config_setting.rb +4 -4
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -2
- data/lib/middleman-core/meta_pages/sitemap_tree.rb +4 -4
- data/lib/middleman-core/preview_server.rb +12 -11
- data/lib/middleman-core/profiling.rb +6 -8
- data/lib/middleman-core/renderers/asciidoc.rb +12 -13
- data/lib/middleman-core/renderers/coffee_script.rb +2 -4
- data/lib/middleman-core/renderers/erb.rb +3 -4
- data/lib/middleman-core/renderers/haml.rb +2 -4
- data/lib/middleman-core/renderers/kramdown.rb +3 -4
- data/lib/middleman-core/renderers/less.rb +3 -9
- data/lib/middleman-core/renderers/liquid.rb +4 -8
- data/lib/middleman-core/renderers/markdown.rb +7 -11
- data/lib/middleman-core/renderers/redcarpet.rb +14 -16
- data/lib/middleman-core/renderers/sass.rb +36 -15
- data/lib/middleman-core/renderers/slim.rb +7 -10
- data/lib/middleman-core/renderers/stylus.rb +2 -6
- data/lib/middleman-core/sitemap.rb +6 -13
- data/lib/middleman-core/sitemap/extensions/ignores.rb +4 -10
- data/lib/middleman-core/sitemap/extensions/on_disk.rb +3 -7
- data/lib/middleman-core/sitemap/extensions/proxies.rb +7 -12
- data/lib/middleman-core/sitemap/extensions/redirects.rb +7 -15
- data/lib/middleman-core/sitemap/extensions/request_endpoints.rb +7 -15
- data/lib/middleman-core/sitemap/extensions/traversal.rb +4 -7
- data/lib/middleman-core/sitemap/queryable.rb +22 -27
- data/lib/middleman-core/sitemap/resource.rb +13 -25
- data/lib/middleman-core/sitemap/store.rb +11 -15
- data/lib/middleman-core/templates.rb +9 -12
- data/lib/middleman-core/templates/default.rb +6 -7
- data/lib/middleman-core/templates/empty.rb +0 -1
- data/lib/middleman-core/templates/extension/Gemfile +1 -1
- data/lib/middleman-core/templates/extension/Rakefile +2 -2
- data/lib/middleman-core/templates/extension/lib/lib.rb +0 -1
- data/lib/middleman-core/templates/html5.rb +6 -7
- data/lib/middleman-core/templates/local.rb +1 -2
- data/lib/middleman-core/templates/mobile.rb +3 -4
- data/lib/middleman-core/templates/shared/config.ru +1 -1
- data/lib/middleman-core/util.rb +5 -6
- data/lib/middleman-core/version.rb +1 -1
- data/lib/middleman-more/core_extensions/compass.rb +0 -1
- data/lib/middleman-more/core_extensions/default_helpers.rb +25 -16
- data/lib/middleman-more/core_extensions/i18n.rb +24 -23
- data/lib/middleman-more/extensions/asset_hash.rb +4 -6
- data/lib/middleman-more/extensions/asset_host.rb +1 -1
- data/lib/middleman-more/extensions/automatic_alt_tags.rb +2 -3
- data/lib/middleman-more/extensions/automatic_image_sizes.rb +4 -5
- data/lib/middleman-more/extensions/cache_buster.rb +0 -1
- data/lib/middleman-more/extensions/gzip.rb +1 -1
- data/lib/middleman-more/extensions/lorem.rb +8 -8
- data/lib/middleman-more/extensions/minify_css.rb +9 -8
- data/lib/middleman-more/extensions/minify_javascript.rb +5 -6
- data/lib/middleman-more/extensions/relative_assets.rb +0 -1
- data/lib/middleman-more/templates/smacss.rb +6 -7
- data/middleman-core.gemspec +1 -1
- metadata +5 -5
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Local templates
|
|
2
2
|
class Middleman::Templates::Local < Middleman::Templates::Base
|
|
3
|
-
|
|
4
3
|
# Look for templates in ~/.middleman
|
|
5
4
|
# @return [String]
|
|
6
5
|
def self.source_root
|
|
@@ -20,7 +19,7 @@ Dir[File.join(Middleman::Templates::Local.source_root, '*')].each do |dir|
|
|
|
20
19
|
|
|
21
20
|
template_file = File.join(dir, 'template.rb')
|
|
22
21
|
|
|
23
|
-
if File.
|
|
22
|
+
if File.exist?(template_file)
|
|
24
23
|
require template_file
|
|
25
24
|
else
|
|
26
25
|
Middleman::Templates.register(File.basename(dir).to_sym, Middleman::Templates::Local)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# Mobile HTML5 Boilerplate
|
|
2
2
|
class Middleman::Templates::Mobile < Middleman::Templates::Base
|
|
3
|
-
|
|
4
3
|
# Slightly different paths
|
|
5
|
-
class_option :css_dir, :
|
|
6
|
-
class_option :js_dir, :
|
|
7
|
-
class_option :images_dir, :
|
|
4
|
+
class_option :css_dir, default: 'css'
|
|
5
|
+
class_option :js_dir, default: 'js'
|
|
6
|
+
class_option :images_dir, default: 'img'
|
|
8
7
|
|
|
9
8
|
# Template files are relative to this file
|
|
10
9
|
# @return [String]
|
data/lib/middleman-core/util.rb
CHANGED
|
@@ -14,7 +14,6 @@ require 'rack/mime'
|
|
|
14
14
|
module Middleman
|
|
15
15
|
module Util
|
|
16
16
|
class << self
|
|
17
|
-
|
|
18
17
|
# Whether the source file is binary.
|
|
19
18
|
#
|
|
20
19
|
# @param [String] filename The file to check.
|
|
@@ -27,7 +26,7 @@ module Middleman
|
|
|
27
26
|
|
|
28
27
|
return false if Tilt.registered?(ext.sub('.', ''))
|
|
29
28
|
|
|
30
|
-
dot_ext = (ext.to_s[0] ==
|
|
29
|
+
dot_ext = (ext.to_s[0] == '.') ? ext.dup : ".#{ext}"
|
|
31
30
|
|
|
32
31
|
if mime = ::Rack::Mime.mime_type(dot_ext, nil)
|
|
33
32
|
!nonbinary_mime?(mime)
|
|
@@ -69,7 +68,7 @@ module Middleman
|
|
|
69
68
|
# @return [String]
|
|
70
69
|
def normalize_path(path)
|
|
71
70
|
# The tr call works around a bug in Ruby's Unicode handling
|
|
72
|
-
path.sub(%r{^/}, '').tr('','')
|
|
71
|
+
path.sub(%r{^/}, '').tr('', '')
|
|
73
72
|
end
|
|
74
73
|
|
|
75
74
|
# This is a separate method from normalize_path in case we
|
|
@@ -85,7 +84,7 @@ module Middleman
|
|
|
85
84
|
def extract_response_text(response)
|
|
86
85
|
# The rack spec states all response bodies must respond to each
|
|
87
86
|
result = ''
|
|
88
|
-
response.each do |part,
|
|
87
|
+
response.each do |part, _|
|
|
89
88
|
result << part
|
|
90
89
|
end
|
|
91
90
|
result
|
|
@@ -210,7 +209,7 @@ module Middleman
|
|
|
210
209
|
def full_path(path, app)
|
|
211
210
|
resource = app.sitemap.find_resource_by_destination_path(path)
|
|
212
211
|
|
|
213
|
-
|
|
212
|
+
unless resource
|
|
214
213
|
# Try it with /index.html at the end
|
|
215
214
|
indexed_path = File.join(path.sub(%r{/$}, ''), app.config[:index_file])
|
|
216
215
|
resource = app.sitemap.find_resource_by_destination_path(indexed_path)
|
|
@@ -223,7 +222,7 @@ module Middleman
|
|
|
223
222
|
end
|
|
224
223
|
end
|
|
225
224
|
|
|
226
|
-
|
|
225
|
+
private
|
|
227
226
|
|
|
228
227
|
# Is mime type known to be non-binary?
|
|
229
228
|
#
|
|
@@ -6,8 +6,9 @@ require 'padrino-helpers'
|
|
|
6
6
|
|
|
7
7
|
class Padrino::Helpers::OutputHelpers::ErbHandler
|
|
8
8
|
# Force Erb capture not to use safebuffer
|
|
9
|
+
# rubocop:disable UnderscorePrefixedVariableName
|
|
9
10
|
def capture_from_template(*args, &block)
|
|
10
|
-
self.output_buffer, _buf_was = '',
|
|
11
|
+
self.output_buffer, _buf_was = '', output_buffer
|
|
11
12
|
raw = block.call(*args)
|
|
12
13
|
captured = template.instance_variable_get(:@_out_buf)
|
|
13
14
|
self.output_buffer = _buf_was
|
|
@@ -16,7 +17,6 @@ class Padrino::Helpers::OutputHelpers::ErbHandler
|
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
19
|
-
|
|
20
20
|
def initialize(app, options_hash={}, &block)
|
|
21
21
|
super
|
|
22
22
|
|
|
@@ -39,7 +39,8 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
39
39
|
helpers do
|
|
40
40
|
|
|
41
41
|
# Make all block content html_safe
|
|
42
|
-
|
|
42
|
+
# rubocop:disable Semicolon
|
|
43
|
+
def content_tag(name, content=nil, options=nil, &block)
|
|
43
44
|
if block_given?
|
|
44
45
|
options = content if content.is_a?(Hash)
|
|
45
46
|
content = capture_html(&block)
|
|
@@ -108,8 +109,10 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
108
109
|
def auto_tag(asset_ext, asset_dir=nil)
|
|
109
110
|
if asset_dir.nil?
|
|
110
111
|
asset_dir = case asset_ext
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
when :js
|
|
113
|
+
js_dir
|
|
114
|
+
when :css
|
|
115
|
+
css_dir
|
|
113
116
|
end
|
|
114
117
|
end
|
|
115
118
|
|
|
@@ -124,7 +127,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
124
127
|
# Generate body css classes based on the current path
|
|
125
128
|
#
|
|
126
129
|
# @return [String]
|
|
127
|
-
def page_classes(path
|
|
130
|
+
def page_classes(path=current_path.dup, options={})
|
|
128
131
|
if path.is_a? Hash
|
|
129
132
|
options = path
|
|
130
133
|
path = current_path.dup
|
|
@@ -135,7 +138,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
135
138
|
|
|
136
139
|
classes = []
|
|
137
140
|
parts = path.split('.').first.split('/')
|
|
138
|
-
parts.each_with_index { |_, i| classes << parts.first(i+1).join('_') }
|
|
141
|
+
parts.each_with_index { |_, i| classes << parts.first(i + 1).join('_') }
|
|
139
142
|
|
|
140
143
|
prefix = options[:numeric_prefix] || 'x'
|
|
141
144
|
classes.map do |c|
|
|
@@ -155,13 +158,19 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
155
158
|
# @return [String]
|
|
156
159
|
def asset_path(kind, source)
|
|
157
160
|
return source if source.to_s.include?('//') || source.to_s.start_with?('data:')
|
|
158
|
-
asset_folder
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
asset_folder = case kind
|
|
162
|
+
when :css
|
|
163
|
+
css_dir
|
|
164
|
+
when :js
|
|
165
|
+
js_dir
|
|
166
|
+
when :images
|
|
167
|
+
images_dir
|
|
168
|
+
when :fonts
|
|
169
|
+
fonts_dir
|
|
170
|
+
else
|
|
171
|
+
kind.to_s
|
|
164
172
|
end
|
|
173
|
+
|
|
165
174
|
source = source.to_s.tr(' ', '')
|
|
166
175
|
ignore_extension = (kind == :images || kind == :fonts) # don't append extension
|
|
167
176
|
source << ".#{kind}" unless ignore_extension || source.end_with?(".#{kind}")
|
|
@@ -177,7 +186,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
177
186
|
# @return [String] The fully qualified asset url
|
|
178
187
|
def asset_url(path, prefix='')
|
|
179
188
|
# Don't touch assets which already have a full path
|
|
180
|
-
if path.include?('//')
|
|
189
|
+
if path.include?('//') || path.start_with?('data:')
|
|
181
190
|
path
|
|
182
191
|
else # rewrite paths to use their destination path
|
|
183
192
|
if resource = sitemap.find_resource_by_destination_path(url_for(path))
|
|
@@ -221,12 +230,12 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
|
|
|
221
230
|
options_index = block_given? ? 1 : 2
|
|
222
231
|
|
|
223
232
|
if block_given? && args.size > 2
|
|
224
|
-
raise ArgumentError
|
|
233
|
+
raise ArgumentError, 'Too many arguments to link_to(url, options={}, &block)'
|
|
225
234
|
end
|
|
226
235
|
|
|
227
236
|
if url = args[url_arg_index]
|
|
228
237
|
options = args[options_index] || {}
|
|
229
|
-
raise ArgumentError
|
|
238
|
+
raise ArgumentError, 'Options must be a hash' unless options.is_a?(Hash)
|
|
230
239
|
|
|
231
240
|
# Transform the url through our magic url_for method
|
|
232
241
|
args[url_arg_index] = url_for(url, options)
|
|
@@ -37,8 +37,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
37
37
|
|
|
38
38
|
configure_i18n
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
logger.info "== Locales: #{langs.join(
|
|
40
|
+
unless app.build?
|
|
41
|
+
logger.info "== Locales: #{langs.join(', ')} (Default #{@mount_at_root})"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Don't output localizable files
|
|
@@ -55,10 +55,10 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
delegate :logger, :
|
|
58
|
+
delegate :logger, to: :app
|
|
59
59
|
|
|
60
60
|
def langs
|
|
61
|
-
@_langs ||=
|
|
61
|
+
@_langs ||= known_languages
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
# Update the main sitemap resource list
|
|
@@ -70,10 +70,10 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
70
70
|
|
|
71
71
|
resources.each do |resource|
|
|
72
72
|
# If it uses file extension localization
|
|
73
|
-
if
|
|
73
|
+
if parse_locale_extension(resource.path)
|
|
74
74
|
result = parse_locale_extension(resource.path)
|
|
75
|
-
|
|
76
|
-
new_resources << build_resource(path, resource.path, page_id,
|
|
75
|
+
ext_lang, path, page_id = result
|
|
76
|
+
new_resources << build_resource(path, resource.path, page_id, ext_lang)
|
|
77
77
|
# If it's a "localizable template"
|
|
78
78
|
elsif File.fnmatch?(File.join(options[:templates_dir], '**'), resource.path)
|
|
79
79
|
page_id = File.basename(resource.path, File.extname(resource.path))
|
|
@@ -90,7 +90,6 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
90
90
|
|
|
91
91
|
private
|
|
92
92
|
|
|
93
|
-
|
|
94
93
|
def on_file_changed(file)
|
|
95
94
|
if @locales_regex =~ file
|
|
96
95
|
@_langs = nil # Clear langs cache
|
|
@@ -100,7 +99,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
100
99
|
|
|
101
100
|
def convert_glob_to_regex(glob)
|
|
102
101
|
# File.fnmatch doesn't support brackets: {rb,yml,yaml}
|
|
103
|
-
regex =
|
|
102
|
+
regex = glob.sub(/\./, '\.').sub(File.join('**', '*'), '.*').sub(/\//, '\/').sub('{rb,yml,yaml}', '(rb|ya?ml)')
|
|
104
103
|
%r{^#{regex}}
|
|
105
104
|
end
|
|
106
105
|
|
|
@@ -116,7 +115,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
116
115
|
end
|
|
117
116
|
|
|
118
117
|
def metadata_for_path(url)
|
|
119
|
-
if d =
|
|
118
|
+
if d = localization_data(url)
|
|
120
119
|
lang, page_id = d
|
|
121
120
|
else
|
|
122
121
|
# Default to the @mount_at_root lang
|
|
@@ -124,36 +123,38 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
124
123
|
lang = @mount_at_root
|
|
125
124
|
end
|
|
126
125
|
|
|
127
|
-
instance_vars =
|
|
126
|
+
instance_vars = proc do
|
|
128
127
|
@lang = lang
|
|
129
128
|
@page_id = page_id
|
|
130
129
|
end
|
|
131
130
|
|
|
132
131
|
locals = {
|
|
133
|
-
:
|
|
134
|
-
:
|
|
132
|
+
lang: lang,
|
|
133
|
+
page_id: page_id
|
|
135
134
|
}
|
|
136
135
|
|
|
137
136
|
{
|
|
138
|
-
:
|
|
139
|
-
:
|
|
140
|
-
:
|
|
137
|
+
blocks: [instance_vars],
|
|
138
|
+
locals: locals,
|
|
139
|
+
options: { lang: lang }
|
|
141
140
|
}
|
|
142
141
|
end
|
|
143
142
|
|
|
144
|
-
def
|
|
143
|
+
def known_languages
|
|
145
144
|
if options[:langs]
|
|
146
145
|
Array(options[:langs]).map(&:to_sym)
|
|
147
146
|
else
|
|
148
147
|
known_langs = app.files.known_paths.select do |p|
|
|
149
|
-
p.to_s.match(@locales_regex) && (p.to_s.split(File::SEPARATOR).length
|
|
150
|
-
end
|
|
148
|
+
p.to_s.match(@locales_regex) && (p.to_s.split(File::SEPARATOR).length == 2)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
known_langs.map { |p|
|
|
151
152
|
File.basename(p.to_s).sub(/\.ya?ml$/, '').sub(/\.rb$/, '')
|
|
152
153
|
}.sort.map(&:to_sym)
|
|
153
154
|
end
|
|
154
155
|
end
|
|
155
156
|
|
|
156
|
-
def
|
|
157
|
+
def localization_data(path)
|
|
157
158
|
@_localization_data ||= {}
|
|
158
159
|
@_localization_data[path]
|
|
159
160
|
end
|
|
@@ -176,9 +177,9 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
176
177
|
def build_resource(path, source_path, page_id, lang)
|
|
177
178
|
old_locale = ::I18n.locale
|
|
178
179
|
::I18n.locale = lang
|
|
179
|
-
localized_page_id = ::I18n.t("paths.#{page_id}", :
|
|
180
|
+
localized_page_id = ::I18n.t("paths.#{page_id}", default: page_id, fallback: [])
|
|
180
181
|
|
|
181
|
-
prefix = if (options[:mount_at_root] == lang) || (options[:mount_at_root]
|
|
182
|
+
prefix = if (options[:mount_at_root] == lang) || (options[:mount_at_root].nil? && langs[0] == lang)
|
|
182
183
|
'/'
|
|
183
184
|
else
|
|
184
185
|
replacement = options[:lang_map].fetch(lang, lang)
|
|
@@ -190,7 +191,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
190
191
|
File.join(prefix, path.sub(page_id, localized_page_id))
|
|
191
192
|
)
|
|
192
193
|
|
|
193
|
-
path.gsub!(options[:templates_dir]+'/', '')
|
|
194
|
+
path.gsub!(options[:templates_dir] + '/', '')
|
|
194
195
|
|
|
195
196
|
@_localization_data[path] = [lang, path, localized_page_id]
|
|
196
197
|
|
|
@@ -16,7 +16,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
|
16
16
|
# Allow specifying regexes to ignore, plus always ignore apple touch icons
|
|
17
17
|
@ignore = Array(options.ignore) + [/^apple-touch-icon/]
|
|
18
18
|
|
|
19
|
-
app.use Middleware, :
|
|
19
|
+
app.use Middleware, exts: options.exts, middleman_app: app, ignore: @ignore
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Update the main sitemap resource list
|
|
@@ -44,7 +44,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
|
44
44
|
return if resource.ignored?
|
|
45
45
|
|
|
46
46
|
# Render through the Rack interface so middleware and mounted apps get a shot
|
|
47
|
-
response = @rack_client.get(URI.escape(resource.destination_path), {},
|
|
47
|
+
response = @rack_client.get(URI.escape(resource.destination_path), {}, 'bypass_asset_hash' => 'true')
|
|
48
48
|
raise "#{resource.path} should be in the sitemap!" unless response.status == 200
|
|
49
49
|
|
|
50
50
|
digest = Digest::SHA1.hexdigest(response.body)[0..7]
|
|
@@ -63,7 +63,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
|
63
63
|
@rack_app = app
|
|
64
64
|
@exts = options[:exts]
|
|
65
65
|
@ignore = options[:ignore]
|
|
66
|
-
@exts_regex_text = @exts.map {|e| Regexp.escape(e) }.join('|')
|
|
66
|
+
@exts_regex_text = @exts.map { |e| Regexp.escape(e) }.join('|')
|
|
67
67
|
@middleman_app = options[:middleman_app]
|
|
68
68
|
end
|
|
69
69
|
|
|
@@ -85,7 +85,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
|
85
85
|
[status, headers, response]
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
private
|
|
89
89
|
|
|
90
90
|
def rewrite_paths(body, path)
|
|
91
91
|
dirpath = Pathname.new(File.dirname(path))
|
|
@@ -111,9 +111,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension
|
|
|
111
111
|
end
|
|
112
112
|
end
|
|
113
113
|
end
|
|
114
|
-
|
|
115
114
|
end
|
|
116
|
-
|
|
117
115
|
end
|
|
118
116
|
|
|
119
117
|
# =================Temp Generate Test data==============================
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Automatic Image alt tags from image names extension
|
|
2
2
|
class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension
|
|
3
|
-
|
|
4
3
|
def initialize(app, options_hash={}, &block)
|
|
5
4
|
super
|
|
6
5
|
end
|
|
@@ -10,14 +9,14 @@ class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension
|
|
|
10
9
|
# containing image name.
|
|
11
10
|
|
|
12
11
|
def image_tag(path)
|
|
13
|
-
|
|
12
|
+
unless path.include?('://')
|
|
14
13
|
params[:alt] ||= ''
|
|
15
14
|
|
|
16
15
|
real_path = path
|
|
17
16
|
real_path = File.join(images_dir, real_path) unless real_path.start_with?('/')
|
|
18
17
|
full_path = File.join(source_dir, real_path)
|
|
19
18
|
|
|
20
|
-
if File.
|
|
19
|
+
if File.exist?(full_path)
|
|
21
20
|
begin
|
|
22
21
|
alt_text = File.basename(full_path, '.*')
|
|
23
22
|
alt_text.capitalize!
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Automatic Image Sizes extension
|
|
2
2
|
class Middleman::Extensions::AutomaticImageSizes < ::Middleman::Extension
|
|
3
|
-
|
|
4
3
|
def initialize(app, options_hash={}, &block)
|
|
5
4
|
super
|
|
6
5
|
|
|
@@ -16,22 +15,22 @@ class Middleman::Extensions::AutomaticImageSizes < ::Middleman::Extension
|
|
|
16
15
|
# @param [Hash] params
|
|
17
16
|
# @return [String]
|
|
18
17
|
def image_tag(path, params={})
|
|
19
|
-
if !params.
|
|
18
|
+
if !params.key?(:width) && !params.key?(:height) && !path.include?('://')
|
|
20
19
|
params[:alt] ||= ''
|
|
21
20
|
|
|
22
21
|
real_path = path
|
|
23
22
|
real_path = File.join(images_dir, real_path) unless real_path.start_with?('/')
|
|
24
23
|
full_path = File.join(source_dir, real_path)
|
|
25
24
|
|
|
26
|
-
if File.
|
|
25
|
+
if File.exist?(full_path)
|
|
27
26
|
begin
|
|
28
|
-
width, height = ::FastImage.size(full_path, :
|
|
27
|
+
width, height = ::FastImage.size(full_path, raise_on_failure: true)
|
|
29
28
|
params[:width] = width
|
|
30
29
|
params[:height] = height
|
|
31
30
|
rescue FastImage::UnknownImageType
|
|
32
31
|
# No message, it's just not supported
|
|
33
32
|
rescue
|
|
34
|
-
warn "Couldn't determine dimensions for image #{path}: #{
|
|
33
|
+
warn "Couldn't determine dimensions for image #{path}: #{$ERROR_INFO.message}"
|
|
35
34
|
end
|
|
36
35
|
end
|
|
37
36
|
end
|