middleman-syntax 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.travis.yml +15 -0
- data/Gemfile +23 -0
- data/README.md +57 -0
- data/Rakefile +22 -0
- data/lib/middleman-syntax.rb +7 -0
- data/lib/middleman-syntax/extension.rb +60 -0
- data/lib/middleman-syntax/helper.rb +0 -0
- data/lib/middleman-syntax/middleman_extension.rb +2 -0
- data/lib/middleman-syntax/version.rb +5 -0
- data/middleman-syntax.gemspec +20 -0
- metadata +89 -0
data/.gitignore
ADDED
data/.travis.yml
ADDED
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
|
data/README.md
ADDED
@@ -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.
|
data/Rakefile
ADDED
@@ -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,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,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:
|