middleman-core 3.1.3 → 3.1.4
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/markdown_redcarpet.feature +26 -0
- data/features/minify_javascript.feature +2 -2
- data/fixtures/markdown-app/source/img.html.markdown +1 -0
- data/fixtures/markdown-app/source/link.html.markdown +1 -0
- data/lib/middleman-core/core_extensions/front_matter.rb +5 -5
- data/lib/middleman-core/core_extensions/request.rb +8 -3
- data/lib/middleman-core/meta_pages/config_setting.rb +2 -2
- data/lib/middleman-core/meta_pages/sitemap_resource.rb +2 -2
- data/lib/middleman-core/renderers/redcarpet.rb +21 -3
- data/lib/middleman-core/templates/empty/Gemfile.tt +3 -0
- data/lib/middleman-core/templates/shared/Gemfile.tt +2 -2
- data/lib/middleman-core/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1a1dedbf7d4f3e960822c366d874721b693063f
|
4
|
+
data.tar.gz: 86c7fc7a7be9505d48d8e32a426e40a70fbfe24c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85adeed7a5ac88e08fd12b9f1d16f7bfcf4c728a2238caedbdbb0b0c7dc9c15f5fe03f2542dd22632472ca424bcf18b49ca0c74274a9a7150e2b3df23858760e
|
7
|
+
data.tar.gz: d61bfccd6fdcd63cedeada4fe03b6147fe98507b458477cced21823efd0fbb8dce2619bf191854de072965c227525113d191fa2667bb3cd1a3cba5655e9b7b8a
|
@@ -42,6 +42,32 @@ Feature: Markdown support
|
|
42
42
|
When I go to "/hard_wrap.html"
|
43
43
|
Then I should see "br"
|
44
44
|
|
45
|
+
Scenario: Redcarpet 2 no_images extension (with overrides)
|
46
|
+
Given a fixture app "markdown-app"
|
47
|
+
And a file named "config.rb" with:
|
48
|
+
"""
|
49
|
+
set :markdown_engine, :redcarpet
|
50
|
+
set :markdown, :no_images => true
|
51
|
+
|
52
|
+
"""
|
53
|
+
Given the Server is running at "markdown-app"
|
54
|
+
When I go to "/img.html"
|
55
|
+
Then I should see ""
|
56
|
+
And I should not see "<img"
|
57
|
+
|
58
|
+
Scenario: Redcarpet 2 no_links extension (with overrides)
|
59
|
+
Given a fixture app "markdown-app"
|
60
|
+
And a file named "config.rb" with:
|
61
|
+
"""
|
62
|
+
set :markdown_engine, :redcarpet
|
63
|
+
set :markdown, :no_links => true
|
64
|
+
|
65
|
+
"""
|
66
|
+
Given the Server is running at "markdown-app"
|
67
|
+
When I go to "/link.html"
|
68
|
+
Then I should see "[This link](http://example.net/) links"
|
69
|
+
And I should not see "<a"
|
70
|
+
|
45
71
|
Scenario: Redcarpet per-page frontmatter options
|
46
72
|
Given a fixture app "markdown-frontmatter-options-app"
|
47
73
|
And a file named "config.rb" with:
|
@@ -203,7 +203,7 @@ Feature: Minify Javascript
|
|
203
203
|
"""
|
204
204
|
And the Server is running at "passthrough-app"
|
205
205
|
When I go to "/inline-coffeescript.html"
|
206
|
-
Then I should see "
|
206
|
+
Then I should see "13" lines
|
207
207
|
|
208
208
|
Scenario: Rendering external js (coffeescript) with a passthrough minifier
|
209
209
|
Given a fixture app "passthrough-app"
|
@@ -221,5 +221,5 @@ Feature: Minify Javascript
|
|
221
221
|
"""
|
222
222
|
And the Server is running at "passthrough-app"
|
223
223
|
When I go to "/javascripts/coffee_test.js"
|
224
|
-
Then I should see "
|
224
|
+
Then I should see "11" lines
|
225
225
|
|
@@ -0,0 +1 @@
|
|
1
|
+
 <img src="image.png" />
|
@@ -0,0 +1 @@
|
|
1
|
+
[This link](http://example.net/) <a href="links.html">links</a>
|
@@ -119,7 +119,7 @@ module Middleman::CoreExtensions
|
|
119
119
|
# Parse YAML frontmatter out of a string
|
120
120
|
# @param [String] content
|
121
121
|
# @return [Array<Hash, String>]
|
122
|
-
def parse_yaml_front_matter(content)
|
122
|
+
def parse_yaml_front_matter(content, full_path)
|
123
123
|
yaml_regex = /\A(---\s*\n.*?\n?)^(---\s*$\n?)/m
|
124
124
|
if content =~ yaml_regex
|
125
125
|
content = content.sub(yaml_regex, "")
|
@@ -128,7 +128,7 @@ module Middleman::CoreExtensions
|
|
128
128
|
data = YAML.load($1) || {}
|
129
129
|
data = data.symbolize_keys
|
130
130
|
rescue *YAML_ERRORS => e
|
131
|
-
app.logger.error "YAML Exception: #{e.message}"
|
131
|
+
app.logger.error "YAML Exception parsing #{full_path}: #{e.message}"
|
132
132
|
return false
|
133
133
|
end
|
134
134
|
else
|
@@ -140,7 +140,7 @@ module Middleman::CoreExtensions
|
|
140
140
|
[{}, content]
|
141
141
|
end
|
142
142
|
|
143
|
-
def parse_json_front_matter(content)
|
143
|
+
def parse_json_front_matter(content, full_path)
|
144
144
|
json_regex = /\A(;;;\s*\n.*?\n?)^(;;;\s*$\n?)/m
|
145
145
|
|
146
146
|
if content =~ json_regex
|
@@ -150,7 +150,7 @@ module Middleman::CoreExtensions
|
|
150
150
|
json = ($1+$2).sub(";;;", "{").sub(";;;", "}")
|
151
151
|
data = ActiveSupport::JSON.decode(json).symbolize_keys
|
152
152
|
rescue => e
|
153
|
-
app.logger.error "JSON Exception: #{e.message}"
|
153
|
+
app.logger.error "JSON Exception parsing #{full_path}: #{e.message}"
|
154
154
|
return false
|
155
155
|
end
|
156
156
|
|
@@ -186,7 +186,7 @@ module Middleman::CoreExtensions
|
|
186
186
|
content = lines.join("\n")
|
187
187
|
end
|
188
188
|
|
189
|
-
result = parse_yaml_front_matter(content) || parse_json_front_matter(content)
|
189
|
+
result = parse_yaml_front_matter(content, full_path) || parse_json_front_matter(content, full_path)
|
190
190
|
return result if result
|
191
191
|
rescue
|
192
192
|
# Probably a binary file, move on
|
@@ -70,8 +70,8 @@ module Middleman
|
|
70
70
|
app = ::Rack::Builder.new
|
71
71
|
app.use Rack::Lint
|
72
72
|
|
73
|
-
Array(@middleware).each do |klass, options,
|
74
|
-
app.use(klass, *options, &
|
73
|
+
Array(@middleware).each do |klass, options, block|
|
74
|
+
app.use(klass, *options, &block)
|
75
75
|
end
|
76
76
|
|
77
77
|
inner_app = inst(&block)
|
@@ -291,8 +291,13 @@ module Middleman
|
|
291
291
|
file = ::Rack::File.new nil
|
292
292
|
file.path = resource.source_file
|
293
293
|
response = file.serving(env)
|
294
|
+
status = response[0]
|
294
295
|
response[1]['Content-Encoding'] = 'gzip' if %w(.svgz .gz).include?(resource.ext)
|
295
|
-
|
296
|
+
# Do not set Content-Type if status is 1xx, 204, 205 or 304, otherwise
|
297
|
+
# Rack will throw an error (500)
|
298
|
+
if !(100..199).include?(status) && ![204, 205, 304].include?(status)
|
299
|
+
response[1]['Content-Type'] = resource.content_type || "application/octet-stream"
|
300
|
+
end
|
296
301
|
halt response
|
297
302
|
end
|
298
303
|
end
|
@@ -15,11 +15,11 @@ module Middleman
|
|
15
15
|
key_classes << 'modified' if @setting.value_set?
|
16
16
|
content << content_tag(:span, @setting.key.inspect, :class => key_classes.join(' '))
|
17
17
|
content << " = "
|
18
|
-
content << content_tag(:span,
|
18
|
+
content << content_tag(:span, @setting.value.inspect, :class => 'value')
|
19
19
|
if @setting.default
|
20
20
|
content << content_tag(:span, :class => 'default') do
|
21
21
|
if @setting.value_set?
|
22
|
-
"Default: #{
|
22
|
+
"Default: #{@setting.default.inspect}"
|
23
23
|
else
|
24
24
|
"(Default)"
|
25
25
|
end
|
@@ -21,7 +21,7 @@ module Middleman
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Renderer Options
|
24
|
-
possible_render_opts = [:filter_html, :no_images, :no_links, :no_styles, :safe_links_only, :with_toc_data, :hard_wrap, :xhtml]
|
24
|
+
possible_render_opts = [:filter_html, :no_images, :no_links, :no_styles, :safe_links_only, :with_toc_data, :hard_wrap, :xhtml, :prettify, :link_attributes]
|
25
25
|
|
26
26
|
render_options = possible_render_opts.inject({}) do |sum, opt|
|
27
27
|
sum[opt] = options.delete(opt) if options.has_key?(opt)
|
@@ -36,12 +36,30 @@ module Middleman
|
|
36
36
|
class MiddlemanRedcarpetHTML < ::Redcarpet::Render::HTML
|
37
37
|
cattr_accessor :middleman_app
|
38
38
|
|
39
|
+
def initialize(options={})
|
40
|
+
@local_options = options.dup
|
41
|
+
|
42
|
+
super
|
43
|
+
end
|
44
|
+
|
39
45
|
def image(link, title, alt_text)
|
40
|
-
|
46
|
+
if !@local_options[:no_images]
|
47
|
+
middleman_app.image_tag(link, :title => title, :alt => alt_text)
|
48
|
+
else
|
49
|
+
link_string = link.dup
|
50
|
+
link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text
|
51
|
+
%Q{}
|
52
|
+
end
|
41
53
|
end
|
42
54
|
|
43
55
|
def link(link, title, content)
|
44
|
-
|
56
|
+
if !@local_options[:no_links]
|
57
|
+
middleman_app.link_to(content, link, :title => title)
|
58
|
+
else
|
59
|
+
link_string = link.dup
|
60
|
+
link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text
|
61
|
+
%Q{[#{content}](#{link_string})}
|
62
|
+
end
|
45
63
|
end
|
46
64
|
end
|
47
65
|
|
@@ -2,6 +2,9 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gem "middleman", "~><%= Middleman::VERSION %>"
|
4
4
|
|
5
|
+
# For faster file watcher updates on Windows:
|
6
|
+
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
|
7
|
+
|
5
8
|
# Cross-templating language block fix for Ruby 1.8
|
6
9
|
platforms :mri_18 do
|
7
10
|
gem "ruby18_source_location"
|
@@ -7,8 +7,8 @@ gem "middleman", "~><%= Middleman::VERSION %>"
|
|
7
7
|
# Live-reloading plugin
|
8
8
|
gem "middleman-livereload", "~> 3.1.0"
|
9
9
|
|
10
|
-
# For faster file watcher updates:
|
11
|
-
|
10
|
+
# For faster file watcher updates on Windows:
|
11
|
+
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
|
12
12
|
|
13
13
|
# Cross-templating language block fix for Ruby 1.8
|
14
14
|
platforms :mri_18 do
|
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.1.
|
4
|
+
version: 3.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Reynolds
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -580,7 +580,9 @@ files:
|
|
580
580
|
- fixtures/markdown-app/source/fenced_code_blocks.html.markdown
|
581
581
|
- fixtures/markdown-app/source/hard_wrap.html.markdown
|
582
582
|
- fixtures/markdown-app/source/images/blank.gif
|
583
|
+
- fixtures/markdown-app/source/img.html.markdown
|
583
584
|
- fixtures/markdown-app/source/index.html.markdown
|
585
|
+
- fixtures/markdown-app/source/link.html.markdown
|
584
586
|
- fixtures/markdown-app/source/no_intra_emphasis.html.markdown
|
585
587
|
- fixtures/markdown-app/source/smarty_pants.html.markdown
|
586
588
|
- fixtures/markdown-app/source/space_after_headers.html.markdown
|
@@ -1788,7 +1790,9 @@ test_files:
|
|
1788
1790
|
- fixtures/markdown-app/source/fenced_code_blocks.html.markdown
|
1789
1791
|
- fixtures/markdown-app/source/hard_wrap.html.markdown
|
1790
1792
|
- fixtures/markdown-app/source/images/blank.gif
|
1793
|
+
- fixtures/markdown-app/source/img.html.markdown
|
1791
1794
|
- fixtures/markdown-app/source/index.html.markdown
|
1795
|
+
- fixtures/markdown-app/source/link.html.markdown
|
1792
1796
|
- fixtures/markdown-app/source/no_intra_emphasis.html.markdown
|
1793
1797
|
- fixtures/markdown-app/source/smarty_pants.html.markdown
|
1794
1798
|
- fixtures/markdown-app/source/space_after_headers.html.markdown
|