middleman-core 3.1.4 → 3.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1a1dedbf7d4f3e960822c366d874721b693063f
4
- data.tar.gz: 86c7fc7a7be9505d48d8e32a426e40a70fbfe24c
3
+ metadata.gz: c57d497044df7725a8dbf742d1ad1145ddb43f81
4
+ data.tar.gz: a44fcf58e1c0b9aa89df85bb0495b95b1474a182
5
5
  SHA512:
6
- metadata.gz: 85adeed7a5ac88e08fd12b9f1d16f7bfcf4c728a2238caedbdbb0b0c7dc9c15f5fe03f2542dd22632472ca424bcf18b49ca0c74274a9a7150e2b3df23858760e
7
- data.tar.gz: d61bfccd6fdcd63cedeada4fe03b6147fe98507b458477cced21823efd0fbb8dce2619bf191854de072965c227525113d191fa2667bb3cd1a3cba5655e9b7b8a
6
+ metadata.gz: f1a07b30081dedb39503aca5d0f0a983f1c1c54ca55a8a82eb4bd418a34eabc6ea00626cb7fe47ebfa133856969d7a2d2ee7de3b03c1fafc3d98a4ed0a5342e9
7
+ data.tar.gz: c640e8874882a1a991355cab16380407f0a164b35fb18bb8c41550effabcc53c76f942e02d714dc67618798aa3d12796aad7940685a59ddaa45e0ba448587fff
@@ -12,17 +12,12 @@ Feature: Markdown support
12
12
  :fenced_code_blocks => true,
13
13
  :autolink => true,
14
14
  :strikethrough => true,
15
- :lax_html_blocks => true,
16
15
  :space_after_headers => true,
17
- :with_toc_data => true,
18
16
  :superscript => true,
19
- :smartypants => true,
20
- :hard_wrap => true
21
-
17
+ :lax_spacing => true
18
+
22
19
  """
23
20
  Given the Server is running at "markdown-app"
24
- When I go to "/smarty_pants.html"
25
- Then I should see "“"
26
21
  When I go to "/no_intra_emphasis.html"
27
22
  Then I should not see "<em>"
28
23
  When I go to "/tables.html"
@@ -37,36 +32,97 @@ Feature: Markdown support
37
32
  Then I should not see "<h1>"
38
33
  When I go to "/superscript.html"
39
34
  Then I should see "<sup>"
40
- When I go to "/with_toc_data.html"
41
- Then I should see "toc_0"
42
- When I go to "/hard_wrap.html"
43
- Then I should see "br"
35
+ When I go to "/lax_spacing.html"
36
+ Then I should see "<p>hello</p>"
37
+
38
+ @no18
39
+ Scenario: Redcarpet 3 extensions
40
+ Given a fixture app "markdown-app"
41
+ And a file named "config.rb" with:
42
+ """
43
+ set :markdown_engine, :redcarpet
44
+ set :markdown, :underline => true,
45
+ :highlight => true,
46
+ :disable_indented_code_blocks => true
47
+ """
48
+ Given the Server is running at "markdown-app"
49
+ When I go to "/underline.html"
50
+ Then I should see "<u>underlined</u>"
51
+ When I go to "/highlighted.html"
52
+ Then I should see "<mark>highlighted</mark>"
53
+ When I go to "/indented_code_blocks.html"
54
+ Then I should not see "<code>"
44
55
 
45
- Scenario: Redcarpet 2 no_images extension (with overrides)
56
+ Scenario: Redcarpet smartypants extension
46
57
  Given a fixture app "markdown-app"
47
58
  And a file named "config.rb" with:
48
59
  """
49
60
  set :markdown_engine, :redcarpet
50
- set :markdown, :no_images => true
51
-
61
+ set :markdown, :smartypants => true
52
62
  """
53
63
  Given the Server is running at "markdown-app"
64
+ When I go to "/smarty_pants.html"
65
+ Then I should see "&ldquo;"
66
+
67
+ Scenario: Redcarpet::Render::HTML options
68
+ Given a fixture app "markdown-app"
69
+ And a file named "config.rb" with:
70
+ """
71
+ set :markdown_engine, :redcarpet
72
+ set :markdown, :filter_html => true,
73
+ :no_images => true,
74
+ :no_links => true,
75
+ :with_toc_data => true,
76
+ :hard_wrap => true,
77
+ :safe_links_only => true,
78
+ :prettify => true
79
+
80
+ """
81
+ Given the Server is running at "markdown-app"
82
+ When I go to "/filter_html.html"
83
+ Then I should not see "<em>"
54
84
  When I go to "/img.html"
55
85
  Then I should see "![dust mite](http://dust.mite/image.png)"
56
86
  And I should not see "<img"
87
+ When I go to "/with_toc_data.html"
88
+ Then I should see 'id="toc_0"'
89
+ And I should see 'id="toc_1"'
90
+ When I go to "/hard_wrap.html"
91
+ Then I should see "br"
92
+ When I go to "/link.html"
93
+ Then I should see "[This link](http://example.net/) links"
94
+ And I should not see "<a"
95
+ When I go to "/safe_links.html"
96
+ Then I should see "[IRC](irc://chat.freenode.org/#freenode)"
97
+ When I go to "/prettify.html"
98
+ Then I should see '<code class="prettyprint">'
57
99
 
58
- Scenario: Redcarpet 2 no_links extension (with overrides)
100
+ Scenario: Redcarpet link_attributes option
59
101
  Given a fixture app "markdown-app"
60
102
  And a file named "config.rb" with:
61
103
  """
62
104
  set :markdown_engine, :redcarpet
63
- set :markdown, :no_links => true
64
-
105
+ set :markdown, :link_attributes => { :target => "_blank" }
106
+ """
107
+ And a file named "source/link.html.markdown" with:
108
+ """
109
+ [A link](/foo.html)
65
110
  """
66
111
  Given the Server is running at "markdown-app"
67
112
  When I go to "/link.html"
68
- Then I should see "[This link](http://example.net/) links"
69
- And I should not see "<a"
113
+ Then I should see 'target="_blank"'
114
+
115
+ Scenario: Redcarpet xhtml option
116
+ Given a fixture app "markdown-app"
117
+ And a file named "config.rb" with:
118
+ """
119
+ set :markdown_engine, :redcarpet
120
+ set :markdown, :xhtml => true,
121
+ :hard_wrap => true
122
+ """
123
+ Given the Server is running at "markdown-app"
124
+ When I go to "/hard_wrap.html"
125
+ Then I should see "<br/>"
70
126
 
71
127
  Scenario: Redcarpet per-page frontmatter options
72
128
  Given a fixture app "markdown-frontmatter-options-app"
@@ -109,4 +165,3 @@ Feature: Markdown support
109
165
  Then I should see 'width="1"'
110
166
  And I should see 'height="1"'
111
167
  And I should see 'src="/images/blank.gif"'
112
-
@@ -76,5 +76,5 @@ configure :build do
76
76
  # activate :smusher
77
77
 
78
78
  # Or use a different image path
79
- # set :http_path, "/Content/images/"
79
+ # set :http_prefix, "/Content/images/"
80
80
  end
@@ -0,0 +1 @@
1
+ I <em>shouldn't</em> be emphasised
@@ -0,0 +1,3 @@
1
+ This is a footnote.[^1]
2
+
3
+ [^1]: It provides additional information.
@@ -0,0 +1 @@
1
+ this is ==highlighted==
@@ -0,0 +1,5 @@
1
+ Hello
2
+
3
+ Something that would be flagged as code
4
+
5
+ World
@@ -0,0 +1,3 @@
1
+ hello
2
+ <div>world</div>
3
+ again
@@ -0,0 +1,3 @@
1
+ ```
2
+ code block
3
+ ```
@@ -0,0 +1 @@
1
+ this is "quote"
@@ -0,0 +1 @@
1
+ [IRC](irc://chat.freenode.org/#freenode)
@@ -0,0 +1 @@
1
+ hello _underlined_ text
@@ -1,3 +1,3 @@
1
- # Header 1
1
+ # First Header
2
2
 
3
- ## Header 2
3
+ ## Second Header
@@ -45,6 +45,11 @@ module Middleman::Cli
45
45
  :type => :boolean,
46
46
  :default => false,
47
47
  :desc => 'Force file watcher into polling mode'
48
+ method_option :latency,
49
+ :type => :numeric,
50
+ :aliases => "-l",
51
+ :default => 0.25,
52
+ :desc => 'Set file watcher latency, in seconds'
48
53
 
49
54
  # Start the server
50
55
  def server
@@ -66,7 +71,8 @@ module Middleman::Cli
66
71
  :instrumenting => options["instrument"],
67
72
  :disable_watcher => options["disable_watcher"],
68
73
  :reload_paths => options["reload_paths"],
69
- :force_polling => options["force_polling"]
74
+ :force_polling => options["force_polling"],
75
+ :latency => options["latency"]
70
76
  }
71
77
 
72
78
  puts "== The Middleman is loading"
@@ -196,7 +196,7 @@ module Middleman::CoreExtensions
196
196
  end
197
197
 
198
198
  def normalize_path(path)
199
- path.sub(%r{^#{app.source_dir}\/}, "")
199
+ path.sub(%r{^#{Regexp.escape(app.source_dir)}\/}, "")
200
200
  end
201
201
  end
202
202
  end
@@ -191,7 +191,7 @@ module Middleman
191
191
  engine = File.extname(resource.source_file)[1..-1].to_sym
192
192
 
193
193
  # Look for partials relative to the current path
194
- relative_dir = File.join(current_dir.sub(%r{^#{self.source_dir}/?}, ""), data)
194
+ relative_dir = File.join(current_dir.sub(%r{^#{Regexp.escape(self.source_dir)}/?}, ""), data)
195
195
 
196
196
  # Try to use the current engine first
197
197
  found_partial, found_engine = resolve_template(relative_dir, :preferred_engine => engine, :try_without_underscore => true)
@@ -277,7 +277,7 @@ module Middleman
277
277
  content = callback.call(content, path, locs, template_class)
278
278
  end
279
279
 
280
- output = ::ActiveSupport::SafeBuffer.new
280
+ output = ::ActiveSupport::SafeBuffer.new ""
281
281
  output.safe_concat content
282
282
  output
283
283
  ensure
@@ -104,6 +104,7 @@ module Middleman
104
104
  # Watcher Library
105
105
  require "listen"
106
106
  @listener = Listen.to(Dir.pwd, :relative_paths => true, :force_polling => @options[:force_polling])
107
+ @listener.latency(@options[:latency])
107
108
  end
108
109
 
109
110
  @listener.change do |modified, added, removed|
@@ -4,12 +4,21 @@ module Middleman
4
4
  module Renderers
5
5
 
6
6
  class RedcarpetTemplate < ::Tilt::RedcarpetTemplate::Redcarpet2
7
+
8
+ # because tilt has decided to convert these
9
+ # in the wrong direction
10
+ ALIASES = {
11
+ :escape_html => :filter_html
12
+ }
13
+
7
14
  # Overwrite built-in Tilt version.
8
15
  # Don't overload :renderer option with smartypants
9
16
  # Support renderer-level options
10
17
  def generate_renderer
11
18
  return options.delete(:renderer) if options.has_key?(:renderer)
12
19
 
20
+ covert_options_to_aliases!
21
+
13
22
  # Pick a renderer
14
23
  renderer = MiddlemanRedcarpetHTML
15
24
 
@@ -30,6 +39,14 @@ module Middleman
30
39
 
31
40
  renderer.new(render_options)
32
41
  end
42
+
43
+ private
44
+
45
+ def covert_options_to_aliases!
46
+ ALIASES.each do |aka, actual|
47
+ options[actual] = options.delete(aka) if options.has_key? aka
48
+ end
49
+ end
33
50
  end
34
51
 
35
52
  # Custom Redcarpet renderer that uses our helpers for images and links
@@ -54,7 +71,10 @@ module Middleman
54
71
 
55
72
  def link(link, title, content)
56
73
  if !@local_options[:no_links]
57
- middleman_app.link_to(content, link, :title => title)
74
+ attributes = { :title => title }
75
+ attributes.merge!( @local_options[:link_attributes] ) if @local_options[:link_attributes]
76
+
77
+ middleman_app.link_to(content, link, attributes )
58
78
  else
59
79
  link_string = link.dup
60
80
  link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text
@@ -81,5 +81,5 @@ configure :build do
81
81
  # activate :relative_assets
82
82
 
83
83
  # Or use a different image path
84
- # set :http_path, "/Content/images/"
84
+ # set :http_prefix, "/Content/images/"
85
85
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  # Current Version
3
3
  # @return [String]
4
- VERSION = '3.1.4' unless const_defined?(:VERSION)
4
+ VERSION = '3.1.5' unless const_defined?(:VERSION)
5
5
  end
@@ -124,7 +124,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension
124
124
  # If the basename of the request as no extension, assume we are serving a
125
125
  # directory and join index_file to the path.
126
126
  path = File.join(asset_dir, current_path)
127
- path = path.sub(/#{File.extname(path)}$/, ".#{asset_ext}")
127
+ path = path.sub(/#{Regexp.escape(File.extname(path))}$/, ".#{asset_ext}")
128
128
 
129
129
  yield path if sitemap.find_resource_by_path(path)
130
130
  end
@@ -0,0 +1,32 @@
1
+ # Automatic Image alt tags from image names extension
2
+ class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension
3
+
4
+ def initialize(app, options_hash={}, &block)
5
+ super
6
+ end
7
+
8
+ helpers do
9
+ # Override default image_tag helper to automatically insert alt tag
10
+ # containing image name.
11
+
12
+ def image_tag(path)
13
+ if !path.include?("://")
14
+ params[:alt] ||= ""
15
+
16
+ real_path = path
17
+ real_path = File.join(images_dir, real_path) unless real_path.start_with?('/')
18
+ full_path = File.join(source_dir, real_path)
19
+
20
+ if File.exists?(full_path)
21
+ begin
22
+ alt_text = File.basename(full_path, ".*")
23
+ alt_text.capitalize!
24
+ params[:alt] = alt_text
25
+ end
26
+ end
27
+ end
28
+
29
+ super(path)
30
+ end
31
+ end
32
+ end
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
4
+ version: 3.1.5
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-22 00:00:00.000000000 Z
12
+ date: 2013-09-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -578,17 +578,26 @@ files:
578
578
  - fixtures/markdown-app/config.rb
579
579
  - fixtures/markdown-app/source/autolink.html.markdown
580
580
  - fixtures/markdown-app/source/fenced_code_blocks.html.markdown
581
+ - fixtures/markdown-app/source/filter_html.html.markdown
582
+ - fixtures/markdown-app/source/footnote.html.markdown
581
583
  - fixtures/markdown-app/source/hard_wrap.html.markdown
584
+ - fixtures/markdown-app/source/highlighted.html.markdown
582
585
  - fixtures/markdown-app/source/images/blank.gif
583
586
  - fixtures/markdown-app/source/img.html.markdown
587
+ - fixtures/markdown-app/source/indented_code_blocks.html.markdown
584
588
  - fixtures/markdown-app/source/index.html.markdown
589
+ - fixtures/markdown-app/source/lax_spacing.html.markdown
585
590
  - fixtures/markdown-app/source/link.html.markdown
586
591
  - fixtures/markdown-app/source/no_intra_emphasis.html.markdown
592
+ - fixtures/markdown-app/source/prettify.html.markdown
593
+ - fixtures/markdown-app/source/quote.html.markdown
594
+ - fixtures/markdown-app/source/safe_links.html.markdown
587
595
  - fixtures/markdown-app/source/smarty_pants.html.markdown
588
596
  - fixtures/markdown-app/source/space_after_headers.html.markdown
589
597
  - fixtures/markdown-app/source/strikethrough.html.markdown
590
598
  - fixtures/markdown-app/source/superscript.html.markdown
591
599
  - fixtures/markdown-app/source/tables.html.markdown
600
+ - fixtures/markdown-app/source/underline.html.markdown
592
601
  - fixtures/markdown-app/source/with_toc_data.html.markdown
593
602
  - fixtures/markdown-frontmatter-options-app/config.rb
594
603
  - fixtures/markdown-frontmatter-options-app/source/smarty_pants-default.html.markdown
@@ -1093,6 +1102,7 @@ files:
1093
1102
  - lib/middleman-more/core_extensions/i18n.rb
1094
1103
  - lib/middleman-more/extensions/asset_hash.rb
1095
1104
  - lib/middleman-more/extensions/asset_host.rb
1105
+ - lib/middleman-more/extensions/automatic-alt-tags.rb
1096
1106
  - lib/middleman-more/extensions/automatic_image_sizes.rb
1097
1107
  - lib/middleman-more/extensions/cache_buster.rb
1098
1108
  - lib/middleman-more/extensions/directory_indexes.rb
@@ -1349,7 +1359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1349
1359
  version: '0'
1350
1360
  requirements: []
1351
1361
  rubyforge_project:
1352
- rubygems_version: 2.0.2
1362
+ rubygems_version: 2.0.3
1353
1363
  signing_key:
1354
1364
  specification_version: 4
1355
1365
  summary: Hand-crafted frontend development
@@ -1788,17 +1798,26 @@ test_files:
1788
1798
  - fixtures/markdown-app/config.rb
1789
1799
  - fixtures/markdown-app/source/autolink.html.markdown
1790
1800
  - fixtures/markdown-app/source/fenced_code_blocks.html.markdown
1801
+ - fixtures/markdown-app/source/filter_html.html.markdown
1802
+ - fixtures/markdown-app/source/footnote.html.markdown
1791
1803
  - fixtures/markdown-app/source/hard_wrap.html.markdown
1804
+ - fixtures/markdown-app/source/highlighted.html.markdown
1792
1805
  - fixtures/markdown-app/source/images/blank.gif
1793
1806
  - fixtures/markdown-app/source/img.html.markdown
1807
+ - fixtures/markdown-app/source/indented_code_blocks.html.markdown
1794
1808
  - fixtures/markdown-app/source/index.html.markdown
1809
+ - fixtures/markdown-app/source/lax_spacing.html.markdown
1795
1810
  - fixtures/markdown-app/source/link.html.markdown
1796
1811
  - fixtures/markdown-app/source/no_intra_emphasis.html.markdown
1812
+ - fixtures/markdown-app/source/prettify.html.markdown
1813
+ - fixtures/markdown-app/source/quote.html.markdown
1814
+ - fixtures/markdown-app/source/safe_links.html.markdown
1797
1815
  - fixtures/markdown-app/source/smarty_pants.html.markdown
1798
1816
  - fixtures/markdown-app/source/space_after_headers.html.markdown
1799
1817
  - fixtures/markdown-app/source/strikethrough.html.markdown
1800
1818
  - fixtures/markdown-app/source/superscript.html.markdown
1801
1819
  - fixtures/markdown-app/source/tables.html.markdown
1820
+ - fixtures/markdown-app/source/underline.html.markdown
1802
1821
  - fixtures/markdown-app/source/with_toc_data.html.markdown
1803
1822
  - fixtures/markdown-frontmatter-options-app/config.rb
1804
1823
  - fixtures/markdown-frontmatter-options-app/source/smarty_pants-default.html.markdown