middleman-syntax 2.0.0 → 2.1.0

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: aaea147a35d96f79a1262dedd8cedf4f23e922b5
4
- data.tar.gz: 3fa14ae2cfc06539e836fb4811b399fef247bfbc
3
+ metadata.gz: c40d443bb7ade438430edef6ea27fef606d2056b
4
+ data.tar.gz: 9c07e674417d80c403b3e6cfbf0ce0a15211f25a
5
5
  SHA512:
6
- metadata.gz: 6077c385b77b2c272b4be65f0b5038101bdc89bf2360ec0c26b8f9ec084062ca783a6eb33f77a53b2d9e4181b18b0179a48940650a6c25bf97665d3b1256df19
7
- data.tar.gz: bf1524cd553efb103bb8b2f7b9c51f0637c671f72629b82834eb47f30b7c41cd7a59619c433b1a634b66c7ac600c38529207dfefc9627dd2cf50b0cbea9e85f6
6
+ metadata.gz: 27794aa28183988c42ea1074e305caaaa57cf756f50828682713d115fb0c9b93873107502a7adef19feb003e75fba2ab2aff6178e5d8c0f246c3d80c316e829f
7
+ data.tar.gz: b0e820698e90a582dcd0a0c12a8afd09e6150e267895cc9e6bb60a47d6d69611710092e3ecef07e133ed04a750f26084aca6e19b08557807f7eadb46079a41a6
@@ -1,14 +1,16 @@
1
1
  rvm:
2
- - 1.9.3
3
- - 2.0.0
4
- - 2.1.0
5
- - jruby-19mode
6
-
7
- # Bug in jRuby w/ Rouge: https://github.com/jruby/jruby/issues/1392
2
+ - ruby-head
3
+ - 2.2.2
4
+ - 2.1
5
+ - 2.0
6
+ os:
7
+ - linux
8
+ # - osx
8
9
  matrix:
10
+ fast_finish: true
9
11
  allow_failures:
10
- - rvm: jruby-19mode
11
-
12
+ - rvm: ruby-head
12
13
  script: "bundle exec rake test"
13
14
 
14
- env: TEST=true
15
+ env: TEST=true
16
+ sudo: false
@@ -1,4 +1,11 @@
1
- 2.0.0 (master)
1
+ 2.1.0
2
+ -----
3
+
4
+ * Version compatibility with Middleman 4. #58
5
+ * Allow passing Rouge formatter options from the `code` helper. #50.
6
+ * Fixed tests and code reorganization.
7
+
8
+ 2.0.0
2
9
  -----
3
10
 
4
11
  * Update to a new-style Middleman extension, dropping compatibility with Middleman versions older than 3.2.x.
data/Gemfile CHANGED
@@ -1,25 +1,23 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "middleman", :github => "middleman/middleman", :branch => 'v3-stable'
3
+ gem "middleman-core", :github => "middleman/middleman", :branch => 'v3-stable'
4
4
 
5
5
  # Specify your gem's dependencies in middleman-syntax.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 10.0.3", :require => false
9
- gem "yard", "~> 0.8.0", :require => false
8
+ # Build and doc tools
9
+ gem 'rake', '~> 10.3', require: false
10
+ gem 'yard', '~> 0.8', require: false
10
11
 
11
12
  # Test tools
12
- gem "cucumber", "~> 1.3.1"
13
- gem "fivemat"
14
- gem "aruba", "~> 0.5.1"
15
- gem "rspec", "~> 2.12"
13
+ gem 'pry', '~> 0.10', group: :development
14
+ gem 'aruba', '~> 0.10.0'
15
+ gem 'rspec', '~> 3.0'
16
+ gem 'cucumber', '~> 2.0'
16
17
 
17
18
  platforms :ruby do
18
19
  gem "redcarpet"
19
20
  end
20
21
 
21
- gem "kramdown"
22
- gem "slim"
23
-
24
22
  # Code Quality
25
23
  gem "cane", :platforms => [:mri_19, :mri_20], :require => false
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2013 Benjamin Hollis
1
+ Copyright (c) 2012-2014 Benjamin Hollis
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -36,7 +36,11 @@ The full set of options can be seen on your preview server's `/__middleman/confi
36
36
 
37
37
  ## Helper
38
38
 
39
- The extension adds a new `code` helper to Middleman that you can use from your templates:
39
+ The extension adds a new `code` helper to Middleman that you can use from your
40
+ templates. It will produce syntax-highlighted HTML wrapped in `<pre
41
+ class="highlight language-name"><code>...html...</code></pre>`.
42
+
43
+ In Erb, use `<%` tags (not `<%=` tags):
40
44
 
41
45
  ```erb
42
46
  <% code("ruby") do %>
@@ -46,7 +50,39 @@ end
46
50
  <% end %>
47
51
  ```
48
52
 
49
- That'll produce syntax-highlighted HTML wrapped in `<pre class="highlight ruby">`.
53
+ *Note:* In Haml, use `=`, not `-`:
54
+
55
+ ```haml
56
+ = code('ruby') do
57
+ puts "hello"
58
+ ```
59
+
60
+ For more on Haml syntax, see the "Haml" section below.
61
+
62
+ In Slim:
63
+
64
+ ```slim
65
+ = code('ruby') do
66
+ |
67
+ puts 'hello'
68
+ ```
69
+
70
+ The `code` helper supports [Rouge](https://github.com/jayferd/rouge) instance formatter options. These override the defaults set in your `config.rb`. Example options include:
71
+
72
+ * `line_numbers`
73
+ * `start_line`
74
+ * `css_class`
75
+ * `wrap`
76
+
77
+ To use these formatter options per code block, include them in a hash as the second argument. e.g.
78
+
79
+ ```erb
80
+ <% code("ruby", :line_numbers => true, :start_line => 7) do %>
81
+ def my_cool_method(message)
82
+ puts message
83
+ end
84
+ <% end %>
85
+ ```
50
86
 
51
87
  ## CSS
52
88
 
@@ -58,6 +94,8 @@ You can also let Rouge generate some CSS for you by creating a new stylesheet wi
58
94
  <%= Rouge::Themes::ThankfulEyes.render(:scope => '.highlight') %>
59
95
  ```
60
96
 
97
+ To prevent the stylesheet from being recognized as a html page source when running `middleman build`, add an underscore at the beginning of the filename or add `ignore "/this/file/path.css.erb"` to config.rb.
98
+
61
99
  Rouge has `ThankfulEyes`, `Colorful`, `Github`, `Base16`, `Base16::Solarized` (like Octopress), `Base16::Monokai`, and `Monokai` themes.
62
100
 
63
101
  ## Markdown
@@ -151,7 +189,7 @@ The best way to get quick responses to your issues and swift fixes to your bugs
151
189
 
152
190
  ## License
153
191
 
154
- Copyright (c) 2012-2013 Benjamin Hollis. MIT Licensed, see [LICENSE] for details.
192
+ Copyright (c) 2012-2014 Benjamin Hollis. MIT Licensed, see [LICENSE] for details.
155
193
 
156
194
  [middleman]: http://middlemanapp.com
157
195
  [gem]: https://rubygems.org/gems/middleman-syntax
data/Rakefile CHANGED
@@ -26,6 +26,8 @@ rescue LoadError
26
26
  # warn "cane not available, quality task not provided."
27
27
  end
28
28
 
29
+ task :default => :test
30
+
29
31
  desc "Build HTML documentation"
30
32
  task :doc do
31
33
  sh 'bundle exec yard'
@@ -10,4 +10,4 @@ Feature: Haml :code filter.
10
10
  Given the Server is running at "test-app"
11
11
  When I go to "/code_haml_filter.html"
12
12
  Then I should see '<span class="k">def</span>'
13
- Then I should see '<pre class="highlight plaintext">This is some code'
13
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
@@ -4,16 +4,31 @@ Feature: Syntax highlighting with the "code" helper method
4
4
  Given the Server is running at "test-app"
5
5
  When I go to "/code_html.html"
6
6
  Then I should see '<span class="k">def</span>'
7
- Then I should see '<pre class="highlight plaintext">This is some code'
7
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
8
8
 
9
9
  Scenario: Works from Haml
10
10
  Given the Server is running at "test-app"
11
11
  When I go to "/code_haml.html"
12
12
  Then I should see '<span class="k">def</span>'
13
- Then I should see '<pre class="highlight plaintext">This is some code'
13
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
14
14
 
15
15
  Scenario: Works from Slim
16
16
  Given the Server is running at "test-app"
17
17
  When I go to "/code_slim.html"
18
18
  Then I should see '<span class="k">def</span>'
19
- Then I should see '<pre class="highlight plaintext">This is some code'
19
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
20
+
21
+ Scenario: options start_line works from erb
22
+ Given the Server is running at "test-app"
23
+ When I go to "/code_html.html"
24
+ Then I should see '<pre class="lineno">7'
25
+
26
+ Scenario: options start_line works from Haml
27
+ Given the Server is running at "test-app"
28
+ When I go to "/code_haml.html"
29
+ Then I should see '<pre class="lineno">7'
30
+
31
+ Scenario: options start_line works from Slim
32
+ Given the Server is running at "test-app"
33
+ When I go to "/code_slim.html"
34
+ Then I should see '<pre class="lineno">7'
@@ -10,7 +10,7 @@ Feature: Code blocks in markdown get highlighted
10
10
  Given the Server is running at "test-app"
11
11
  When I go to "/code.html"
12
12
  Then I should see '<span class="k">def</span>'
13
- Then I should see '<pre class="highlight plaintext">This is some code'
13
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
14
14
 
15
15
  @nojava
16
16
  Scenario: Works with RedCarpet
@@ -24,5 +24,4 @@ Feature: Code blocks in markdown get highlighted
24
24
  Given the Server is running at "test-app"
25
25
  When I go to "/code.html"
26
26
  Then I should see '<span class="k">def</span>'
27
- Then I should see '<pre class="highlight plaintext">This is some code'
28
-
27
+ Then I should see '<pre class="highlight plaintext"><code>This is some code'
@@ -1,6 +1,6 @@
1
1
  %h1 Ruby
2
2
 
3
- - code('ruby') do
3
+ = code('ruby') do
4
4
  :preserve
5
5
  def foo(bar)
6
6
  puts "baz"
@@ -8,5 +8,13 @@
8
8
 
9
9
  %h1 Whatever
10
10
 
11
- - code do
11
+ = code do
12
12
  This is some code
13
+
14
+ %h1 Options
15
+
16
+ = code('ruby', {:line_numbers => true, :start_line => 7}) do
17
+ :preserve
18
+ def foo(bar)
19
+ puts "baz"
20
+ end
@@ -12,3 +12,11 @@ end
12
12
  <% code do %>
13
13
  This is some code
14
14
  <% end %>
15
+
16
+ <h1>Options</h1>
17
+
18
+ <% code('ruby', {:line_numbers => true, :start_line => 7}) do %>
19
+ def foo(bar)
20
+ puts "baz"
21
+ end
22
+ <% end %>
@@ -1,6 +1,6 @@
1
1
  h1 Ruby
2
2
 
3
- - code('ruby') do
3
+ = code('ruby') do
4
4
  |
5
5
  def foo(bar)
6
6
  puts "baz"
@@ -8,6 +8,14 @@ h1 Ruby
8
8
 
9
9
  h1 Whatever
10
10
 
11
- - code
11
+ = code
12
12
  |
13
13
  This is some code
14
+
15
+ h1 Options
16
+
17
+ = code('ruby', {:line_numbers => true, :start_line => 7}) do
18
+ |
19
+ def foo(bar)
20
+ puts "baz"
21
+ end
@@ -1,10 +1,14 @@
1
1
  require 'rouge'
2
+ require 'middleman-syntax/highlighter'
3
+ require 'middleman-syntax/redcarpet_code_renderer'
4
+ require 'middleman-syntax/haml_monkey_patch'
2
5
 
3
6
  module Middleman
4
7
  module Syntax
5
8
  class SyntaxExtension < Extension
6
9
  option :css_class, 'highlight', 'Class name applied to the syntax-highlighted output.'
7
10
  option :line_numbers, false, 'Generate line numbers.'
11
+ option :start_line, 1, 'Start the line numbering (if enabled) at the desired integer'
8
12
  option :inline_theme, nil, 'A Rouge::CSSTheme that will be used to highlight the output with inline styles instead of using CSS classes.'
9
13
  option :wrap, true, 'Wrap the highlighted content in a container (<pre> or <div>, depending on whether :line_numbers is on).'
10
14
  option :lexer_options, {}, 'Options for the Rouge lexers.'
@@ -30,18 +34,19 @@ module Middleman
30
34
  helpers do
31
35
  # Output highlighted code. Use like:
32
36
  #
33
- # <% code('ruby') do %>
37
+ # <% code('ruby', :line_numbers => true, :start_line => 7) do %>
34
38
  # my code
35
39
  # <% end %>
36
40
  #
37
41
  # To produce the following structure:
38
42
  #
39
- # <div class="highlight">
40
- # <pre>#{your code}
41
- # </pre>
42
- # </div>
43
+ # <pre class="highlight ruby">
44
+ # <code>#{your code}</code>
45
+ # </pre>
43
46
  #
44
- # @param [String] language the Rouge lexer to use
47
+ # If no language is provided, then the language name is `plaintext`.
48
+ #
49
+ # @param [String] language that the Rouge lexer should use
45
50
  # @param [Hash] Options to pass to the Rouge formatter & lexer, overriding global options set by :highlighter_options.
46
51
  def code(language=nil, options={}, &block)
47
52
  raise 'The code helper requires a block to be provided.' unless block_given?
@@ -57,55 +62,7 @@ module Middleman
57
62
  end
58
63
  content = content.encode(Encoding::UTF_8)
59
64
 
60
- concat_content Middleman::Syntax::Highlighter.highlight(content, language).html_safe
61
- end
62
- end
63
- end
64
-
65
- # A mixin for the Redcarpet Markdown renderer that will highlight
66
- # code.
67
- module RedcarpetCodeRenderer
68
- def block_code(code, language)
69
- Middleman::Syntax::Highlighter.highlight(code, language)
70
- end
71
- end
72
-
73
- module Highlighter
74
- mattr_accessor :options
75
-
76
- # A helper module for highlighting code
77
- def self.highlight(code, language=nil, opts={})
78
- lexer = Rouge::Lexer.find_fancy(language, code) || Rouge::Lexers::PlainText
79
-
80
- highlighter_options = options.to_h.merge(opts)
81
- highlighter_options[:css_class] = [ highlighter_options[:css_class], lexer.tag ].join(' ')
82
- lexer_options = highlighter_options.delete(:lexer_options)
83
-
84
- formatter = Rouge::Formatters::HTML.new(highlighter_options)
85
- formatter.format(lexer.lex(code, options.lexer_options))
86
- end
87
- end
88
- end
89
- end
90
-
91
- # If Haml is around, define a :code filter that can be used to more conveniently output highlighted code.
92
- if defined? Haml
93
- module Haml
94
- module Filters
95
- module Code
96
- include Base
97
-
98
- def render(code)
99
- code = code.encode(Encoding::UTF_8)
100
-
101
- # Allow language to be specified via a special comment like:
102
- # # lang: ruby
103
- if code.lines.first =~ /\A\s*#\s*lang:\s*(\w+)$/
104
- language = $1
105
- code = code.lines.to_a[1..-1].join # Strip first line
106
- end
107
-
108
- Middleman::Syntax::Highlighter.highlight(code, language)
65
+ concat_content Middleman::Syntax::Highlighter.highlight(content, language, options).html_safe
109
66
  end
110
67
  end
111
68
  end
@@ -0,0 +1,23 @@
1
+ # If Haml is around, define a :code filter that can be used to more conveniently output highlighted code.
2
+ if defined? Haml
3
+ module Haml
4
+ module Filters
5
+ module Code
6
+ include Base
7
+
8
+ def render(code)
9
+ code = code.encode(Encoding::UTF_8)
10
+
11
+ # Allow language to be specified via a special comment like:
12
+ # # lang: ruby
13
+ if code.lines.first =~ /\A\s*#\s*lang:\s*(\w+)$/
14
+ language = $1
15
+ code = code.lines.to_a[1..-1].join # Strip first line
16
+ end
17
+
18
+ Middleman::Syntax::Highlighter.highlight(code, language)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ module Middleman
2
+ module Syntax
3
+ module Highlighter
4
+ mattr_accessor :options
5
+
6
+ # A helper module for highlighting code
7
+ def self.highlight(code, language=nil, opts={})
8
+ lexer = Rouge::Lexer.find_fancy(language, code) || Rouge::Lexers::PlainText
9
+
10
+ highlighter_options = options.to_h.merge(opts)
11
+ highlighter_options[:css_class] = [ highlighter_options[:css_class], lexer.tag ].join(' ')
12
+ lexer_options = highlighter_options.delete(:lexer_options)
13
+
14
+ formatter = Rouge::Formatters::HTML.new(highlighter_options)
15
+ formatter.format(lexer.lex(code, options.lexer_options))
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module Middleman
2
+ module Syntax
3
+ # A mixin for the Redcarpet Markdown renderer that will highlight
4
+ # code.
5
+ module RedcarpetCodeRenderer
6
+ def block_code(code, language)
7
+ Middleman::Syntax::Highlighter.highlight(code, language)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Syntax
3
- VERSION = "2.0.0"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
@@ -15,6 +15,12 @@ Gem::Specification.new do |s|
15
15
  s.files = `git ls-files -z`.split("\0")
16
16
  s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
17
17
  s.require_paths = ["lib"]
18
- s.add_runtime_dependency("middleman-core", ["~> 3.2"])
18
+ s.add_runtime_dependency("middleman-core", [">= 3.2"])
19
19
  s.add_runtime_dependency("rouge", ["~> 1.0"])
20
+ s.add_development_dependency("aruba", "~> 0.5.1")
21
+ s.add_development_dependency("cucumber", "~> 1.3.1")
22
+ s.add_development_dependency("fivemat")
23
+ s.add_development_dependency("haml")
24
+ s.add_development_dependency("kramdown")
25
+ s.add_development_dependency("slim")
20
26
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-syntax
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Hollis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-11 00:00:00.000000000 Z
11
+ date: 2015-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
@@ -38,6 +38,90 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aruba
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.5.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: fivemat
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: haml
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: kramdown
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: slim
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
41
125
  description: Code syntax highlighting plugin via rouge for Middleman
42
126
  email:
43
127
  - ben@benhollis.net
@@ -65,7 +149,10 @@ files:
65
149
  - fixtures/test-app/source/code_slim.html.slim
66
150
  - lib/middleman-syntax.rb
67
151
  - lib/middleman-syntax/extension.rb
152
+ - lib/middleman-syntax/haml_monkey_patch.rb
153
+ - lib/middleman-syntax/highlighter.rb
68
154
  - lib/middleman-syntax/middleman_extension.rb
155
+ - lib/middleman-syntax/redcarpet_code_renderer.rb
69
156
  - lib/middleman-syntax/version.rb
70
157
  - middleman-syntax.gemspec
71
158
  homepage: https://github.com/middleman/middleman-syntax
@@ -88,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
175
  version: '0'
89
176
  requirements: []
90
177
  rubyforge_project:
91
- rubygems_version: 2.2.0.rc.1
178
+ rubygems_version: 2.4.8
92
179
  signing_key:
93
180
  specification_version: 4
94
181
  summary: Code syntax highlighting plugin via rouge for Middleman