middleman-syntax 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ .DS_Store
2
+ coverage
3
+ rdoc
4
+ pkg
5
+ .sass-cache
6
+ .sassc
7
+ .tmp
8
+ Gemfile.lock
9
+ docs
10
+ .rbenv-*
11
+ .*.swp
12
+ build
13
+ doc
14
+ .yardoc
15
+ tmp
16
+ Makefile
17
+ .mm-pid-*
@@ -0,0 +1,15 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - jruby-18mode
6
+ - jruby-19mode
7
+
8
+ script: "bundle exec rake test"
9
+
10
+ env: TEST=true TRAVIS=true
11
+
12
+ matrix:
13
+ allow_failures:
14
+ - rvm: jruby-18mode
15
+ - rvm: jruby-19mode
data/Gemfile ADDED
@@ -0,0 +1,23 @@
1
+ source :rubygems
2
+
3
+ git "git://github.com/middleman/middleman.git" do
4
+ # gem "middleman"
5
+ gem "middleman-core"
6
+ # gem "middleman-more"
7
+ end
8
+
9
+ # Specify your gem's dependencies in middleman-blog.gemspec
10
+ gemspec
11
+
12
+ group :development do
13
+ gem "rake", "~> 0.9.2"
14
+ gem "rdoc", "~> 3.9"
15
+ gem "yard", "~> 0.8.0"
16
+ end
17
+
18
+ group :test do
19
+ gem "cucumber", "~> 1.2.0"
20
+ gem "fivemat"
21
+ gem "aruba", "~> 0.4.11"
22
+ gem "rspec", "~> 2.7"
23
+ end
@@ -0,0 +1,57 @@
1
+ # middleman-syntax
2
+
3
+ middleman-syntax is an extension for the [Middleman](http://middlemanapp.com) static site generator that adds syntax highlighting via [Pygments](http://pygments.org/).
4
+
5
+ # Install
6
+ If you're just getting started, install the `middleman` gem and generate a new project:
7
+
8
+ ```
9
+ gem install middleman
10
+ middleman init MY_PROJECT
11
+ ```
12
+
13
+ If you already have a Middleman project:
14
+ Add `middleman-syntax` to your `Gemfile`, run `bundle install`, then open your `config.rb` and add:
15
+
16
+ ```
17
+ activate :syntax
18
+ ```
19
+
20
+ # Usage
21
+
22
+ The extension adds a new `code` helper to Middleman that you can use from your templates:
23
+
24
+ ```erb
25
+ <% code("ruby") do %>
26
+ def my_cool_method(message)
27
+ puts message
28
+ end
29
+ <% end %>
30
+ ```
31
+
32
+ That'll produce syntax-highlighted HTML wrapped in a `<pre>` tag, wrapped in `<div class="hightlight">`. You can style this with any CSS that works on Pygments output.
33
+
34
+ The extension also makes code blocks in Markdown highlight code. Make sure you're using RedCarpet as your Markdown engine (in `config.rb`):
35
+
36
+ ```ruby
37
+ set :markdown_engine, :redcarpet
38
+ set :markdown, :fenced_code_blocks => true, :smartypants => true
39
+ ```
40
+
41
+ Now your Markdown will work just like it does [on GitHub](http://github.github.com/github-flavored-markdown/) - you can write something like this:
42
+
43
+ <pre>
44
+ ```ruby
45
+ def my_cool_method(message)
46
+ puts message
47
+ end
48
+ ```
49
+ </pre>
50
+
51
+ # Bug Reports
52
+
53
+ GitHub Issues are used for managing bug reports and feature requests. If you run into issues, please search the issues and submit new problems:
54
+
55
+ https://github.com/middleman/middleman-syntax/issues
56
+
57
+ The best way to get quick responses to your issues and swift fixes to your bugs is to submit detailed bug reports, include test cases and respond to developer questions in a timely manner. Even better, if you know Ruby, you can submit Pull Requests containing Cucumber Features which describe how your feature should work or exploit the bug you are submitting.
@@ -0,0 +1,22 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'cucumber/rake/task'
5
+
6
+ Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
7
+ ENV["TEST"] = "true"
8
+
9
+ exempt_tags = ""
10
+ exempt_tags << "--tags ~@nojava" if RUBY_PLATFORM == "java"
11
+
12
+ t.cucumber_opts = "--color --tags ~@wip #{exempt_tags} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'}"
13
+ end
14
+
15
+ require 'rake/clean'
16
+
17
+ task :test => ["cucumber"]
18
+
19
+ desc "Build HTML documentation"
20
+ task :doc do
21
+ sh 'bundle exec yard'
22
+ end
@@ -0,0 +1,7 @@
1
+ require "middleman-core"
2
+ require "middleman-syntax/version"
3
+
4
+ ::Middleman::Extensions.register(:syntax) do
5
+ require "middleman-syntax/extension"
6
+ ::Middleman::Syntax
7
+ end
@@ -0,0 +1,60 @@
1
+ module Middleman
2
+ module Syntax
3
+ class << self
4
+ def registered(app, options_hash={})
5
+ require 'pygments'
6
+
7
+ app.send :include, Helper
8
+
9
+ require 'middleman-core/renderers/redcarpet'
10
+ Middleman::Renderers::MiddlemanRedcarpetHTML.send :include, MarkdownCodeRenderer
11
+ end
12
+ alias :included :registered
13
+ end
14
+
15
+ module Helper
16
+
17
+ # Output highlighted code. Use like:
18
+ #
19
+ # <% code('ruby') do %>
20
+ # my code
21
+ # <% end %>
22
+ #
23
+ # To produce the following structure:
24
+ #
25
+ # <div class="highlight">
26
+ # <pre>#{your code}
27
+ # </pre>
28
+ # </div>
29
+ #
30
+ # @param [String] language the Pygments lexer to use
31
+ def code(language, &block)
32
+ # Note: Language is required because pygments.rb currently
33
+ # segfaults on Mac OS X when no lexer is specified:
34
+ # https://github.com/tmm1/pygments.rb/issues/18
35
+
36
+ # Save current buffer for later
37
+ @_out_buf, _buf_was = "", @_out_buf
38
+
39
+ begin
40
+ content = if block_given?
41
+ capture_html(&block)
42
+ else
43
+ ""
44
+ end
45
+ ensure
46
+ # Reset stored buffer
47
+ @_out_buf = _buf_was
48
+ end
49
+
50
+ concat_content Pygments.highlight(content, :lexer => language)
51
+ end
52
+ end
53
+
54
+ module MarkdownCodeRenderer
55
+ def block_code(code, language)
56
+ Pygments.highlight(code, :lexer => language)
57
+ end
58
+ end
59
+ end
60
+ end
File without changes
@@ -0,0 +1,2 @@
1
+ require 'middleman-syntax'
2
+
@@ -0,0 +1,5 @@
1
+ module Middleman
2
+ module Syntax
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path(File.join("..", "lib", "middleman-syntax", "version"), __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "middleman-syntax"
6
+ s.version = Middleman::Syntax::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Ben Hollis"]
9
+ s.email = ["ben@benhollis.net"]
10
+ s.homepage = "https://github.com/middleman/middleman-syntax"
11
+ s.summary = %q{Syntax-highlighting helpers for Middleman}
12
+ s.description = %q{Syntax-highlighting helpers for Middleman}
13
+
14
+ s.files = `git ls-files -z`.split("\0")
15
+ s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
16
+ s.require_paths = ["lib"]
17
+
18
+ s.add_runtime_dependency("middleman-core", "~> 3.0.0")
19
+ s.add_runtime_dependency("pygments.rb", "~> 0.2.13")
20
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-syntax
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ben Hollis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: middleman-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: pygments.rb
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.2.13
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.2.13
46
+ description: Syntax-highlighting helpers for Middleman
47
+ email:
48
+ - ben@benhollis.net
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - .travis.yml
55
+ - Gemfile
56
+ - README.md
57
+ - Rakefile
58
+ - lib/middleman-syntax.rb
59
+ - lib/middleman-syntax/extension.rb
60
+ - lib/middleman-syntax/helper.rb
61
+ - lib/middleman-syntax/middleman_extension.rb
62
+ - lib/middleman-syntax/version.rb
63
+ - middleman-syntax.gemspec
64
+ homepage: https://github.com/middleman/middleman-syntax
65
+ licenses: []
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 1.8.24
85
+ signing_key:
86
+ specification_version: 3
87
+ summary: Syntax-highlighting helpers for Middleman
88
+ test_files: []
89
+ has_rdoc: