middleman-core 4.3.7 → 4.4.0

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/features/asset_hash.feature +64 -62
  3. data/features/data.feature +20 -0
  4. data/features/front-matter-neighbor.feature +33 -27
  5. data/features/front-matter.feature +11 -5
  6. data/features/i18n_preview.feature +238 -238
  7. data/features/liquid.feature +5 -2
  8. data/features/support/env.rb +0 -3
  9. data/features/unicode_filenames.feature +3 -3
  10. data/fixtures/basic-data-app/data/test3.toml +7 -0
  11. data/fixtures/basic-data-app/source/data4.html.erb +5 -0
  12. data/fixtures/frontmatter-app/source/raw-front-matter-toml.html +6 -0
  13. data/fixtures/frontmatter-app/source/raw-front-matter.html +1 -1
  14. data/fixtures/frontmatter-neighbor-app/source/raw-front-matter-toml.html +1 -0
  15. data/fixtures/frontmatter-neighbor-app/source/raw-front-matter-toml.html.frontmatter +4 -0
  16. data/lib/middleman-core/builder.rb +1 -1
  17. data/lib/middleman-core/core_extensions/data.rb +4 -2
  18. data/lib/middleman-core/core_extensions/default_helpers.rb +1 -0
  19. data/lib/middleman-core/core_extensions/front_matter.rb +1 -0
  20. data/lib/middleman-core/core_extensions/rendering.rb +0 -6
  21. data/lib/middleman-core/dns_resolver/basic_network_resolver.rb +0 -2
  22. data/lib/middleman-core/dns_resolver.rb +2 -4
  23. data/lib/middleman-core/extensions/asset_hash.rb +1 -1
  24. data/lib/middleman-core/preview_server/server_ip_address.rb +5 -14
  25. data/lib/middleman-core/rack.rb +2 -1
  26. data/lib/middleman-core/step_definitions/commandline_steps.rb +0 -4
  27. data/lib/middleman-core/step_definitions/middleman_steps.rb +1 -1
  28. data/lib/middleman-core/step_definitions/server_steps.rb +3 -2
  29. data/lib/middleman-core/template_context.rb +3 -3
  30. data/lib/middleman-core/template_renderer.rb +1 -1
  31. data/lib/middleman-core/util/data.rb +28 -0
  32. data/lib/middleman-core/util/paths.rb +2 -1
  33. data/lib/middleman-core/version.rb +1 -1
  34. data/middleman-core.gemspec +8 -6
  35. data/spec/middleman-core/dns_resolver_spec.rb +8 -24
  36. data/spec/spec_helper.rb +0 -3
  37. metadata +52 -1083
  38. data/features/stylus.feature +0 -54
  39. data/lib/middleman-core/renderers/stylus.rb +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a62bb451348c77bfb582a6fd7a97f8913c30e1602e256bb307672e022bfcc314
4
- data.tar.gz: 83fe52a59f84380ad4eb754d00c79754eeb546ed3f15fa15f47603d0740e72b5
3
+ metadata.gz: b1f4f69e1bba1d983065346cf36c173aab0860d69a999957d22daeb0e61bd289
4
+ data.tar.gz: 2922b799bac4d66fa1831d5a67edcdeff0ae108493b1f1477bc629576a23337b
5
5
  SHA512:
6
- metadata.gz: 33de280861e5d60ef103a6abb8fd1602dc7c36899dc08731a63975049c96961c5e0e8bda083b14a40d1638f08c614dcd903799d15ffa550a39d3e276287f74ae
7
- data.tar.gz: 5e42f113d14f5dcd70276bfb548ed6c2f8d38ce889e1fbd4f35f6407d906827b46132e156c152f80c77de4b93afc8df65f6f381c4292fd569d0922145cc50c8e
6
+ metadata.gz: a5d44855c0bf8fca98176cab82fdce08052d6bfb3af9175ecaa8c839381756e66686dcef108aaf2a32a29d6f577f337d1fb3524f98ae3f7378b15d8b084dbb9c
7
+ data.tar.gz: 585c2f1d9f4c2577bccd312663746f801349ec245f8e8c6b395087159eb7215401cf21c2ab2f7dd9ff1d8dfdc6c2b69ca9e6d97d986329a08011be3e604ef143
@@ -3,27 +3,27 @@ Feature: Assets get file hashes appended to them and references to them are upda
3
3
  Given a successfully built app at "asset-hash-app"
4
4
  When I cd to "build"
5
5
  Then the following files should exist:
6
- | index.html |
7
- | apple-touch-icon.png |
8
- | favicon.ico |
9
- | images/100px-1242c368.png |
10
- | images/100px-5fd6fb90.jpg |
11
- | images/200px-c11eb203.jpg |
12
- | images/300px-59adce76.jpg |
13
- | images/100px-5fd6fb90.gif |
6
+ | index.html |
7
+ | apple-touch-icon.png |
8
+ | favicon.ico |
9
+ | images/100px-1242c368.png |
10
+ | images/100px-5fd6fb90.jpg |
11
+ | images/200px-c11eb203.jpg |
12
+ | images/300px-59adce76.jpg |
13
+ | images/100px-5fd6fb90.gif |
14
14
  | javascripts/application-1d8d5276.js |
15
- | stylesheets/site-8bc55985.css |
16
- | index.html |
17
- | subdir/index.html |
18
- | other/index.html |
19
- | api.json |
20
- | subdir/api.json |
15
+ | stylesheets/site-8bc55985.css |
16
+ | index.html |
17
+ | subdir/index.html |
18
+ | other/index.html |
19
+ | api.json |
20
+ | subdir/api.json |
21
21
  And the following files should not exist:
22
- | images/100px.png |
23
- | images/100px.jpg |
24
- | images/100px.gif |
22
+ | images/100px.png |
23
+ | images/100px.jpg |
24
+ | images/100px.gif |
25
25
  | javascripts/application.js |
26
- | stylesheets/site.css |
26
+ | stylesheets/site.css |
27
27
 
28
28
  And the file "javascripts/application-1d8d5276.js" should contain "img.src = '/images/100px-5fd6fb90.jpg'"
29
29
  And the file "stylesheets/site-8bc55985.css" should contain:
@@ -54,7 +54,7 @@ Feature: Assets get file hashes appended to them and references to them are upda
54
54
  Given a successfully built app at "asset-hash-app"
55
55
  When I cd to "build"
56
56
  Then the following files should exist:
57
- | fonts/fontawesome-webfont-56ce13e7.woff |
57
+ | fonts/fontawesome-webfont-56ce13e7.woff |
58
58
  | fonts/fontawesome-webfont-10752316.woff2 |
59
59
  And the file "stylesheets/uses_fonts-88aa3e2b.css" should contain "src: url('../fonts/fontawesome-webfont-10752316.woff2')"
60
60
  And the file "stylesheets/uses_fonts-88aa3e2b.css" should contain "url('../fonts/fontawesome-webfont-56ce13e7.woff')"
@@ -171,23 +171,25 @@ Feature: Assets get file hashes appended to them and references to them are upda
171
171
  And I should see 'url("http://middlemanapp.com/images/100px-5fd6fb90.jpg?#test")'
172
172
  And I should see 'url("http://middlemanapp.com/images/100px-5fd6fb90.jpg#test")'
173
173
 
174
+ @wip
174
175
  Scenario: The asset hash should change when a SASS partial changes
175
176
  Given the Server is running at "asset-hash-app"
176
177
  And the file "source/stylesheets/_partial.sass" has the contents
177
178
  """
178
179
  body
179
- font-size: 14px
180
+ font-size: 14px
180
181
  """
181
182
  When I go to "/partials/"
182
183
  Then I should see 'href="../stylesheets/uses_partials-a3c8302b.css'
183
184
  And the file "source/stylesheets/_partial.sass" has the contents
184
185
  """
185
186
  body
186
- font-size: 18px !important
187
+ font-size: 18px !important
187
188
  """
188
189
  When I go to "/partials/"
189
190
  Then I should see 'href="../stylesheets/uses_partials-08ee47a7.css'
190
191
 
192
+ @wip
191
193
  Scenario: The asset hash should change when a Rack-based filter changes
192
194
  Given a fixture app "asset-hash-app"
193
195
  And a file named "config.rb" with:
@@ -211,9 +213,9 @@ Feature: Assets get file hashes appended to them and references to them are upda
211
213
  """
212
214
  is_stylesheet = proc { |path| path.start_with? 'stylesheets' }
213
215
  activate :asset_hash, ignore: [
214
- %r(javascripts/*),
215
- 'images/*',
216
- is_stylesheet
216
+ %r(javascripts/*),
217
+ 'images/*',
218
+ is_stylesheet
217
219
  ]
218
220
  activate :relative_assets
219
221
  activate :directory_indexes
@@ -221,25 +223,25 @@ Feature: Assets get file hashes appended to them and references to them are upda
221
223
  And a successfully built app at "asset-hash-app"
222
224
  When I cd to "build"
223
225
  Then the following files should exist:
224
- | index.html |
225
- | apple-touch-icon.png |
226
- | favicon.ico |
227
- | images/100px.png |
228
- | images/100px.jpg |
229
- | images/100px.gif |
226
+ | index.html |
227
+ | apple-touch-icon.png |
228
+ | favicon.ico |
229
+ | images/100px.png |
230
+ | images/100px.jpg |
231
+ | images/100px.gif |
230
232
  | javascripts/application.js |
231
- | stylesheets/site.css |
232
- | index.html |
233
- | subdir/index.html |
234
- | other/index.html |
235
- | api.json |
236
- | subdir/api.json |
233
+ | stylesheets/site.css |
234
+ | index.html |
235
+ | subdir/index.html |
236
+ | other/index.html |
237
+ | api.json |
238
+ | subdir/api.json |
237
239
  And the following files should not exist:
238
- | images/100px-1242c368.png |
239
- | images/100px-5fd6fb90.jpg |
240
- | images/100px-5fd6fb90.gif |
240
+ | images/100px-1242c368.png |
241
+ | images/100px-5fd6fb90.jpg |
242
+ | images/100px-5fd6fb90.gif |
241
243
  | javascripts/application-1d8d5276.js |
242
- | stylesheets/site-7474cadd.css |
244
+ | stylesheets/site-7474cadd.css |
243
245
 
244
246
  Scenario: Hashed-asset files are not replaced for rewrite ignored paths
245
247
  Given a fixture app "asset-hash-app"
@@ -247,9 +249,9 @@ Feature: Assets get file hashes appended to them and references to them are upda
247
249
  """
248
250
  is_stylesheet = proc { |path| path.start_with? '/stylesheets' }
249
251
  activate :asset_hash, rewrite_ignore: [
250
- %r(javascripts/*),
251
- '/subdir/*',
252
- is_stylesheet
252
+ %r(javascripts/*),
253
+ '/subdir/*',
254
+ is_stylesheet
253
255
  ]
254
256
  activate :relative_assets
255
257
  activate :directory_indexes
@@ -257,15 +259,15 @@ Feature: Assets get file hashes appended to them and references to them are upda
257
259
  And a successfully built app at "asset-hash-app"
258
260
  When I cd to "build"
259
261
  Then the following files should exist:
260
- | index.html |
261
- | subdir/index.html |
262
- | images/100px-5fd6fb90.jpg |
262
+ | index.html |
263
+ | subdir/index.html |
264
+ | images/100px-5fd6fb90.jpg |
263
265
  | javascripts/application-1d8d5276.js |
264
- | stylesheets/site-8bc55985.css |
266
+ | stylesheets/site-8bc55985.css |
265
267
  And the following files should not exist:
266
- | images/100px.jpg |
268
+ | images/100px.jpg |
267
269
  | javascripts/application.js |
268
- | stylesheets/site.css |
270
+ | stylesheets/site.css |
269
271
  And the file "javascripts/application-1d8d5276.js" should contain "img.src = '/images/100px.jpg'"
270
272
  And the file "stylesheets/site-8bc55985.css" should contain:
271
273
  """
@@ -285,7 +287,7 @@ Feature: Assets get file hashes appended to them and references to them are upda
285
287
  When I cd to "build"
286
288
  Then the following files should exist:
287
289
  | javascripts/jquery.min-276c87ff.js |
288
- | stylesheets/test-7de2ad06.css |
290
+ | stylesheets/test-7de2ad06.css |
289
291
  And the following files should not exist:
290
292
  | javascripts/jquery.min.js |
291
293
  And the file "stylesheets/test-7de2ad06.css" should contain:
@@ -299,12 +301,12 @@ Feature: Assets get file hashes appended to them and references to them are upda
299
301
  Given a successfully built app at "asset-hash-source-map"
300
302
  When I cd to "build"
301
303
  Then the following files should exist:
302
- | index.html |
303
- | javascripts/application-4553338c.js |
304
+ | index.html |
305
+ | javascripts/application-4553338c.js |
304
306
  | javascripts/application.js-22cc2b5f.map |
305
- | index.html |
307
+ | index.html |
306
308
  And the following files should not exist:
307
- | javascripts/application.js |
309
+ | javascripts/application.js |
308
310
  | javascripts/application.js.map |
309
311
 
310
312
  And the file "javascripts/application-4553338c.js" should contain "//# sourceMappingURL=application.js-22cc2b5f.map"
@@ -313,12 +315,12 @@ Feature: Assets get file hashes appended to them and references to them are upda
313
315
  Given a successfully built app at "asset-hash-prefix"
314
316
  When I cd to "build"
315
317
  Then the following files should exist:
316
- | index.html |
317
- | javascripts/application-myprefix-4553338c.js |
318
+ | index.html |
319
+ | javascripts/application-myprefix-4553338c.js |
318
320
  | javascripts/application.js-myprefix-22cc2b5f.map |
319
- | index.html |
321
+ | index.html |
320
322
  And the following files should not exist:
321
- | javascripts/application.js |
323
+ | javascripts/application.js |
322
324
  | javascripts/application.js.map |
323
325
 
324
326
  And the file "javascripts/application-myprefix-4553338c.js" should contain "//# sourceMappingURL=application.js-myprefix-22cc2b5f.map"
@@ -327,12 +329,12 @@ Feature: Assets get file hashes appended to them and references to them are upda
327
329
  Given a successfully built app at "asset-hash-remove-filename"
328
330
  When I cd to "build"
329
331
  Then the following files should exist:
330
- | index.html |
331
- | javascripts/4553338c.js |
332
+ | index.html |
333
+ | javascripts/4553338c.js |
332
334
  | javascripts/22cc2b5f.map |
333
- | index.html |
335
+ | index.html |
334
336
  And the following files should not exist:
335
- | javascripts/application.js |
337
+ | javascripts/application.js |
336
338
  | javascripts/application.js.map |
337
339
 
338
340
  And the file "javascripts/4553338c.js" should contain "//# sourceMappingURL=22cc2b5f.map"
@@ -89,3 +89,23 @@ Feature: Local Data API
89
89
  Then I should see "<h1>With Content</h1>"
90
90
  Then I should see '<h2 id="header-2">Header 2</h2>'
91
91
  Then I should see "<p>Paragraph 1</p>"
92
+
93
+ Scenario: Rendering toml
94
+ Given the Server is running at "basic-data-app"
95
+ When I go to "/data4.html"
96
+ Then I should see "One:Two"
97
+ When the file "data/test3.toml" has the contents
98
+ """
99
+ [titles]
100
+
101
+ [titles.first]
102
+ title = "Three"
103
+
104
+ [titles.second]
105
+ title = "Four"
106
+ """
107
+ When I go to "/data4.html"
108
+ Then I should see "Three:Four"
109
+ When the file "data/test3.toml" is removed
110
+ When I go to "/data4.html"
111
+ Then I should see "No Test Data"
@@ -23,6 +23,12 @@ Feature: Neighboring YAML Front Matter
23
23
  When I go to "/raw-front-matter.php.frontmatter"
24
24
  Then I should see "File Not Found"
25
25
 
26
+ Scenario: Rendering raw (template-less) (toml)
27
+ Given the Server is running at "frontmatter-neighbor-app"
28
+ When I go to "/raw-front-matter-toml.html"
29
+ Then I should see "<h1><%= current_page.data.title %></h1>"
30
+ Then I should not see "---"
31
+
26
32
  Scenario: YAML not on first line, with encoding
27
33
  Given the Server is running at "frontmatter-neighbor-app"
28
34
  When I go to "/front-matter-encoding.html"
@@ -65,10 +71,10 @@ Feature: Neighboring YAML Front Matter
65
71
  Scenario: A template should handle an empty YAML feed
66
72
  Given the Server is running at "frontmatter-neighbor-app"
67
73
  And the file "source/front-matter-change.html.erb.frontmatter" has the contents
68
- """
69
- ---
70
- ---
71
- """
74
+ """
75
+ ---
76
+ ---
77
+ """
72
78
  When I go to "/front-matter-change.html"
73
79
  Then I should not see "Hello World"
74
80
  Then I should not see "Hola Mundo"
@@ -78,14 +84,14 @@ Feature: Neighboring YAML Front Matter
78
84
  Scenario: Setting layout, ignoring, and disabling directory indexes through frontmatter (build)
79
85
  Given a successfully built app at "frontmatter-settings-neighbor-app"
80
86
  Then the following files should exist:
81
- | build/proxied.html |
87
+ | build/proxied.html |
82
88
  And the file "build/alternate_layout.html" should contain "Alternate layout"
83
89
  And the following files should not exist:
84
- | build/ignored.html |
85
- | build/alternate_layout.html.erb.frontmatter |
86
- | build/ignored.html.erb.frontmatter |
90
+ | build/ignored.html |
91
+ | build/alternate_layout.html.erb.frontmatter |
92
+ | build/ignored.html.erb.frontmatter |
87
93
  | build/override_layout.html.erb.frontmatter |
88
- | build/page_mentioned.html.erb.frontmatter |
94
+ | build/page_mentioned.html.erb.frontmatter |
89
95
 
90
96
  Scenario: Setting layout, ignoring, and disabling directory indexes through frontmatter (preview)
91
97
  Given the Server is running at "frontmatter-settings-neighbor-app"
@@ -130,22 +136,22 @@ Feature: Neighboring YAML Front Matter
130
136
  When I go to "/page_mentioned.html.erb.frontmatter"
131
137
  Then I should see "File Not Found"
132
138
 
133
- # Scenario: Neighbor frontmatter for destination of proxy resources
134
- # Given the Server is running at "frontmatter-settings-neighbor-app"
135
- # And the file "source/proxied_with_frontmatter.html.frontmatter" has the contents
136
- # """
137
- # ---
138
- # title: Proxied title
139
- # ---
140
- # """
141
- # And the file "source/ignored.html.erb" has the contents
142
- # """
143
- # ---
144
- # ignored: true
145
- # ---
139
+ # Scenario: Neighbor frontmatter for destination of proxy resources
140
+ # Given the Server is running at "frontmatter-settings-neighbor-app"
141
+ # And the file "source/proxied_with_frontmatter.html.frontmatter" has the contents
142
+ # """
143
+ # ---
144
+ # title: Proxied title
145
+ # ---
146
+ # """
147
+ # And the file "source/ignored.html.erb" has the contents
148
+ # """
149
+ # ---
150
+ # ignored: true
151
+ # ---
146
152
 
147
- # <%= current_resource.data.inspect %>
148
- # <%= current_resource.data.title %>
149
- # """
150
- # When I go to "/proxied_with_frontmatter.html"
151
- # Then I should see "Proxied title"
153
+ # <%= current_resource.data.inspect %>
154
+ # <%= current_resource.data.title %>
155
+ # """
156
+ # When I go to "/proxied_with_frontmatter.html"
157
+ # Then I should see "Proxied title"
@@ -72,10 +72,16 @@ Feature: YAML Front Matter
72
72
  Scenario: A template should handle an empty YAML feed
73
73
  Given the Server is running at "frontmatter-app"
74
74
  And the file "source/front-matter-change.html.erb" has the contents
75
- """
76
- ---
77
- ---
78
- Hello World
79
- """
75
+ """
76
+ ---
77
+ ---
78
+ Hello World
79
+ """
80
80
  When I go to "/front-matter-change.html"
81
81
  Then I should see "Hello World"
82
+
83
+ Scenario: Rendering raw (template-less) (toml)
84
+ Given the Server is running at "frontmatter-app"
85
+ When I go to "/raw-front-matter-toml.html"
86
+ Then I should see "<h1><%= current_page.data.title %></h1>"
87
+ Then I should not see "---"