middleman-core 4.3.3 → 4.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/default_alt_tag.feature +11 -0
- data/features/i18n_link_to.feature +4 -0
- data/features/ignore.feature +67 -11
- data/features/markdown_kramdown.feature +17 -0
- data/features/relative_assets.feature +1 -1
- data/features/relative_assets_helpers_only.feature +1 -1
- data/fixtures/default-alt-tags-app/config.rb +0 -0
- data/fixtures/default-alt-tags-app/source/empty-alt-tag.html.erb +1 -0
- data/fixtures/default-alt-tags-app/source/images/blank.gif +0 -0
- data/fixtures/default-alt-tags-app/source/meaningful-alt-tag.html.erb +1 -0
- data/lib/middleman-core/core_extensions/default_helpers.rb +2 -0
- data/lib/middleman-core/core_extensions/i18n.rb +9 -0
- data/lib/middleman-core/core_extensions/inline_url_rewriter.rb +5 -0
- data/lib/middleman-core/renderers/kramdown.rb +4 -0
- data/lib/middleman-core/version.rb +1 -1
- data/middleman-core.gemspec +1 -1
- metadata +15 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1753d9a760b75d406bc9e1853dc09a0ee7599f13e9973134044b9ab4fdf017d1
|
4
|
+
data.tar.gz: 35fb8d16787d1b8c26b5a842a4b63fd95ad81d325dbcd6648732449fea324919
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a18f53041a601160e5413ffa1294366826fe3d57c4d9927a6cda48eb25dcda81e2484db15d9f55925e653e24dc748dc4501630fa622d77318a0bba23e1c6f6f
|
7
|
+
data.tar.gz: 02061053f863a4895c0070b3b1e11734ff71a17870bd4168e7ce762ec892669a3500694dde15a4dca74978c7e6180b782d70bb0f94668d4876d6e64795d9c456
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: Add an empty alt tag for images that don't have alt tags specified
|
2
|
+
|
3
|
+
Scenario: Image does not have alt tag specified
|
4
|
+
Given the Server is running at "default-alt-tags-app"
|
5
|
+
When I go to "/empty-alt-tag.html"
|
6
|
+
Then I should see 'alt=""'
|
7
|
+
|
8
|
+
Scenario: Image has alt tag specified
|
9
|
+
Given the Server is running at "default-alt-tags-app"
|
10
|
+
When I go to "/meaningful-alt-tag.html"
|
11
|
+
Then I should see 'alt="Meaningful alt text"'
|
@@ -178,6 +178,7 @@ Feature: i18n Paths
|
|
178
178
|
|
179
179
|
Current: <%= url_for "/article.html" %>
|
180
180
|
Other: <%= url_for "/article.html", locale: ::I18n.locale == :en ? :es : :en %>
|
181
|
+
Current with anchor: <%= url_for "/article.html", :anchor => "test-anchor" %>
|
181
182
|
"""
|
182
183
|
And a file named "source/localizable/article.es.html.erb" with:
|
183
184
|
"""
|
@@ -185,6 +186,7 @@ Feature: i18n Paths
|
|
185
186
|
|
186
187
|
Current: <%= url_for "/article.html" %>
|
187
188
|
Other: <%= url_for "/article.html", locale: :en %>
|
189
|
+
Current with anchor: <%= url_for "/article.html", :anchor => "test-anchor" %>
|
188
190
|
"""
|
189
191
|
And a file named "config.rb" with:
|
190
192
|
"""
|
@@ -203,7 +205,9 @@ Feature: i18n Paths
|
|
203
205
|
Then I should see "Page Lang: Default"
|
204
206
|
Then I should see 'Current: /article.html'
|
205
207
|
Then I should see 'Other: /es/article.html'
|
208
|
+
Then I should see 'Current with anchor: /article.html#test-anchor'
|
206
209
|
When I go to "/es/article.html"
|
207
210
|
Then I should see "Page Lang: Spanish"
|
208
211
|
Then I should see 'Current: /es/article.html'
|
209
212
|
Then I should see 'Other: /article.html'
|
213
|
+
Then I should see 'Current with anchor: /es/article.html#test-anchor'
|
data/features/ignore.feature
CHANGED
@@ -7,11 +7,12 @@ Feature: Ignoring paths
|
|
7
7
|
ignore 'plain.html'
|
8
8
|
"""
|
9
9
|
And a successfully built app at "ignore-app"
|
10
|
+
When I cd to "build"
|
10
11
|
Then the following files should exist:
|
11
|
-
|
|
12
|
+
| index.html |
|
12
13
|
And the following files should not exist:
|
13
|
-
|
|
14
|
-
|
|
14
|
+
| plain.html |
|
15
|
+
| about.html |
|
15
16
|
|
16
17
|
Scenario: Ignore a single path (server)
|
17
18
|
Given a fixture app "ignore-app"
|
@@ -66,16 +67,17 @@ Feature: Ignoring paths
|
|
66
67
|
ignore 'images/**/*.png'
|
67
68
|
"""
|
68
69
|
And a successfully built app at "ignore-app"
|
70
|
+
When I cd to "build"
|
69
71
|
Then the following files should exist:
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
| plain.html |
|
73
|
+
| images/portrait.jpg |
|
74
|
+
| images/pic.png |
|
73
75
|
And the following files should not exist:
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
| about.html |
|
77
|
+
| index.html |
|
78
|
+
| reports/index.html |
|
79
|
+
| reports/another.html |
|
80
|
+
| images/icons/messages.png |
|
79
81
|
|
80
82
|
Scenario: Ignore a globbed path (server)
|
81
83
|
Given a fixture app "ignore-app"
|
@@ -148,3 +150,57 @@ Feature: Ignoring paths
|
|
148
150
|
Then I should see "File Not Found"
|
149
151
|
When I go to "/images/icons/messages.png"
|
150
152
|
Then I should see "File Not Found"
|
153
|
+
|
154
|
+
Scenario: Ignore localized templates (build)
|
155
|
+
Given a fixture app "i18n-test-app"
|
156
|
+
And a file named "config.rb" with:
|
157
|
+
"""
|
158
|
+
activate :i18n
|
159
|
+
ignore 'localizable/hello.html.erb'
|
160
|
+
ignore /morning/
|
161
|
+
ignore 'localizable/*.md'
|
162
|
+
"""
|
163
|
+
And a successfully built app at "i18n-test-app"
|
164
|
+
When I cd to "build"
|
165
|
+
Then the following files should exist:
|
166
|
+
| index.html |
|
167
|
+
| es/index.html |
|
168
|
+
And the following files should not exist:
|
169
|
+
| hello.html |
|
170
|
+
| morning.html |
|
171
|
+
| one.html |
|
172
|
+
| es/hola.html |
|
173
|
+
| es/manana.html |
|
174
|
+
| es/una.html |
|
175
|
+
| es/hello.html |
|
176
|
+
| es/morning.html |
|
177
|
+
| es/one.html |
|
178
|
+
And the file "index.html" should contain "Howdy"
|
179
|
+
And the file "es/index.html" should contain "Como Esta?"
|
180
|
+
|
181
|
+
Scenario: Ignore localized templates (server)
|
182
|
+
Given a fixture app "i18n-test-app"
|
183
|
+
And a file named "config.rb" with:
|
184
|
+
"""
|
185
|
+
activate :i18n
|
186
|
+
ignore 'localizable/hello.html.erb'
|
187
|
+
ignore /morning/
|
188
|
+
ignore 'localizable/*.md'
|
189
|
+
"""
|
190
|
+
And the Server is running
|
191
|
+
When I go to "/index.html"
|
192
|
+
Then I should not see "File Not Found"
|
193
|
+
When I go to "/es/index.html"
|
194
|
+
Then I should not see "File Not Found"
|
195
|
+
When I go to "/hello.html"
|
196
|
+
Then I should see "File Not Found"
|
197
|
+
When I go to "/morning.html"
|
198
|
+
Then I should see "File Not Found"
|
199
|
+
When I go to "/one.html"
|
200
|
+
Then I should see "File Not Found"
|
201
|
+
When I go to "/es/hola.html"
|
202
|
+
Then I should see "File Not Found"
|
203
|
+
When I go to "/es/manana.html"
|
204
|
+
Then I should see "File Not Found"
|
205
|
+
When I go to "/es/una.html"
|
206
|
+
Then I should see "File Not Found"
|
@@ -36,3 +36,20 @@ Feature: Markdown (Kramdown) support
|
|
36
36
|
And I should see 'src="/images/blank.gif"'
|
37
37
|
And I should see 'src="/images/blank.gif"'
|
38
38
|
And I should see "mail@mail.com"
|
39
|
+
|
40
|
+
Scenario: Kramdown uses our link_to with options parameter
|
41
|
+
Given a fixture app "markdown-app"
|
42
|
+
And a file named "config.rb" with:
|
43
|
+
"""
|
44
|
+
set :markdown_engine, :kramdown
|
45
|
+
activate :directory_indexes
|
46
|
+
"""
|
47
|
+
And a file named "source/links.html.markdown" with:
|
48
|
+
"""
|
49
|
+
[A link](/smarty_pants.html)
|
50
|
+
[A second link](/smarty_pants.html){: anchor="test-anchor"}
|
51
|
+
"""
|
52
|
+
Given the Server is running at "markdown-app"
|
53
|
+
When I go to "/links/"
|
54
|
+
Then I should see "/smarty_pants/"
|
55
|
+
And I should see "/smarty_pants/#test-anchor"
|
@@ -131,7 +131,7 @@ Feature: Relative Assets
|
|
131
131
|
"""
|
132
132
|
And the Server is running at "relative-assets-app"
|
133
133
|
When I go to "/sub/image_tag.html"
|
134
|
-
Then I should see '<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />'
|
134
|
+
Then I should see '<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" />'
|
135
135
|
|
136
136
|
Scenario: URLs are not rewritten for rewrite ignored paths
|
137
137
|
Given a fixture app "relative-assets-app"
|
@@ -87,7 +87,7 @@ Feature: Relative Assets (Helpers Only)
|
|
87
87
|
"""
|
88
88
|
And the Server is running at "relative-assets-app"
|
89
89
|
When I go to "/sub/image_tag.html"
|
90
|
-
Then I should see '<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />'
|
90
|
+
Then I should see '<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" />'
|
91
91
|
|
92
92
|
@wip
|
93
93
|
Scenario: URLs are not rewritten for rewrite ignored paths
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag "blank.gif" %>
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag "blank.gif", alt: "Meaningful alt text" %>
|
@@ -74,8 +74,12 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
74
74
|
opts = options.dup
|
75
75
|
|
76
76
|
should_relativize = opts.key?(:relative) ? opts[:relative] : config[:relative_links]
|
77
|
+
anchor = opts[:anchor]
|
77
78
|
|
79
|
+
# The first call to `super()` is only to find the correct URL. The next
|
80
|
+
# call will relativize and add the anchor.
|
78
81
|
opts[:relative] = false
|
82
|
+
opts[:anchor] = nil
|
79
83
|
|
80
84
|
href = super(path_or_resource, opts)
|
81
85
|
|
@@ -87,6 +91,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
87
91
|
end
|
88
92
|
|
89
93
|
opts[:relative] = should_relativize
|
94
|
+
opts[:anchor] = anchor
|
90
95
|
|
91
96
|
begin
|
92
97
|
super(final_path, opts)
|
@@ -155,6 +160,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
155
160
|
|
156
161
|
# If it's a "localizable template"
|
157
162
|
localizable_folder_resources.each do |resource|
|
163
|
+
next if resource.ignored?
|
164
|
+
|
158
165
|
page_id = File.basename(resource.path, File.extname(resource.path))
|
159
166
|
locales.each do |locale|
|
160
167
|
# Remove folder name
|
@@ -174,6 +181,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
174
181
|
|
175
182
|
# If it uses file extension localization
|
176
183
|
file_extension_resources.each do |resource|
|
184
|
+
next if resource.ignored?
|
185
|
+
|
177
186
|
result = parse_locale_extension(resource.path)
|
178
187
|
ext_locale, path, page_id = result
|
179
188
|
new_resources << build_resource(path, resource.path, page_id, ext_locale)
|
@@ -123,6 +123,11 @@ module Middleman
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
+
# Rewriting might have changed Content-Length, so we need
|
127
|
+
# to reset it to the actual result. The rewritten result is
|
128
|
+
# always a String, not an Array or Enumerable.
|
129
|
+
headers['Content-Length'] = rewritten.bytesize.to_s
|
130
|
+
|
126
131
|
::Rack::Response.new(
|
127
132
|
rewritten,
|
128
133
|
status,
|
@@ -45,6 +45,10 @@ module Middleman
|
|
45
45
|
attr = el.attr.dup
|
46
46
|
link = attr.delete('href')
|
47
47
|
|
48
|
+
# options to link_to are expected to be symbols, but in Markdown
|
49
|
+
# everything is a string.
|
50
|
+
attr.transform_keys!(&:to_sym)
|
51
|
+
|
48
52
|
scope.link_to(content, link, attr)
|
49
53
|
end
|
50
54
|
end
|
data/middleman-core.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_dependency('dotenv')
|
30
30
|
|
31
31
|
# Helpers
|
32
|
-
s.add_dependency('activesupport', ['>= 4.2', '<
|
32
|
+
s.add_dependency('activesupport', ['>= 4.2', '< 6.0'])
|
33
33
|
s.add_dependency('padrino-helpers', ['~> 0.13.0'])
|
34
34
|
s.add_dependency("addressable", ["~> 2.3"])
|
35
35
|
s.add_dependency('memoist', ['~> 0.14'])
|
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.3.
|
4
|
+
version: 4.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: 2020-08-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -139,7 +139,7 @@ dependencies:
|
|
139
139
|
version: '4.2'
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: '
|
142
|
+
version: '6.0'
|
143
143
|
type: :runtime
|
144
144
|
prerelease: false
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -149,7 +149,7 @@ dependencies:
|
|
149
149
|
version: '4.2'
|
150
150
|
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '6.0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: padrino-helpers
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -370,6 +370,7 @@ files:
|
|
370
370
|
- features/custom_layouts.feature
|
371
371
|
- features/data.feature
|
372
372
|
- features/default-layout.feature
|
373
|
+
- features/default_alt_tag.feature
|
373
374
|
- features/directory_index.feature
|
374
375
|
- features/dynamic_pages.feature
|
375
376
|
- features/encoding_option.feature
|
@@ -658,6 +659,10 @@ files:
|
|
658
659
|
- fixtures/data-app/data/pages.yml
|
659
660
|
- fixtures/data-app/source/index.html.erb
|
660
661
|
- fixtures/data-app/source/layout.erb
|
662
|
+
- fixtures/default-alt-tags-app/config.rb
|
663
|
+
- fixtures/default-alt-tags-app/source/empty-alt-tag.html.erb
|
664
|
+
- fixtures/default-alt-tags-app/source/images/blank.gif
|
665
|
+
- fixtures/default-alt-tags-app/source/meaningful-alt-tag.html.erb
|
661
666
|
- fixtures/different-engine-layout/config.rb
|
662
667
|
- fixtures/different-engine-layout/source/index.haml
|
663
668
|
- fixtures/different-engine-layout/source/index.html.str
|
@@ -1553,7 +1558,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1553
1558
|
- !ruby/object:Gem::Version
|
1554
1559
|
version: '0'
|
1555
1560
|
requirements: []
|
1556
|
-
rubygems_version: 3.0.
|
1561
|
+
rubygems_version: 3.0.6
|
1557
1562
|
signing_key:
|
1558
1563
|
specification_version: 4
|
1559
1564
|
summary: Hand-crafted frontend development
|
@@ -1579,6 +1584,7 @@ test_files:
|
|
1579
1584
|
- features/custom_layouts.feature
|
1580
1585
|
- features/data.feature
|
1581
1586
|
- features/default-layout.feature
|
1587
|
+
- features/default_alt_tag.feature
|
1582
1588
|
- features/directory_index.feature
|
1583
1589
|
- features/dynamic_pages.feature
|
1584
1590
|
- features/encoding_option.feature
|
@@ -1867,6 +1873,10 @@ test_files:
|
|
1867
1873
|
- fixtures/data-app/data/pages.yml
|
1868
1874
|
- fixtures/data-app/source/index.html.erb
|
1869
1875
|
- fixtures/data-app/source/layout.erb
|
1876
|
+
- fixtures/default-alt-tags-app/config.rb
|
1877
|
+
- fixtures/default-alt-tags-app/source/empty-alt-tag.html.erb
|
1878
|
+
- fixtures/default-alt-tags-app/source/images/blank.gif
|
1879
|
+
- fixtures/default-alt-tags-app/source/meaningful-alt-tag.html.erb
|
1870
1880
|
- fixtures/different-engine-layout/config.rb
|
1871
1881
|
- fixtures/different-engine-layout/source/index.haml
|
1872
1882
|
- fixtures/different-engine-layout/source/index.html.str
|