jekyll-commonmark-ghpages 0.1.0 → 0.1.1
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/jekyll-commonmark-ghpages.gemspec +2 -1
- data/lib/jekyll-commonmark-ghpages.rb +33 -2
- data/spec/test_spec.rb +11 -3
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac80a98f74de18d13c9b303f8229ae3bd098e6a2
|
4
|
+
data.tar.gz: 2135a7a930e6a7c6b2e28653664fd4a14473f288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc2ea6be7b6bfc484b19166b8033d15c6e7b65e32faa54b5527e61e598f3bb5a09034eb5fd2e6aaeb5bbbed9229ab81a70725f366f76ecaebfaef71ecb428e3a
|
7
|
+
data.tar.gz: cfcd1c2e6db80661c50c146fac8cecb7415db2286e28550011172399820c2653b7669bbe94ce7a85099c99f21575ec79cbbb163fee0c40c1b624ecf47cd53bf8
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "jekyll-commonmark-ghpages"
|
5
5
|
spec.summary = "CommonMark generator for Jekyll"
|
6
|
-
spec.version = "0.1.
|
6
|
+
spec.version = "0.1.1"
|
7
7
|
spec.authors = ["Ashe Connor"]
|
8
8
|
spec.email = "kivikakk@github.com"
|
9
9
|
spec.homepage = "https://github.com/github/jekyll-commonmark-ghpages"
|
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
|
17
17
|
spec.add_runtime_dependency "jekyll-commonmark", "~> 1"
|
18
18
|
spec.add_runtime_dependency "commonmarker", "~> 0.17.6"
|
19
|
+
spec.add_runtime_dependency "rouge", "~> 2"
|
19
20
|
|
20
21
|
spec.add_development_dependency "rspec", "~> 3.0"
|
21
22
|
spec.add_development_dependency "rake"
|
@@ -4,9 +4,11 @@
|
|
4
4
|
require "commonmarker"
|
5
5
|
require "jekyll"
|
6
6
|
require "jekyll-commonmark"
|
7
|
+
require "rouge"
|
7
8
|
|
8
|
-
# A customized version of CommonMarker::HtmlRenderer which
|
9
|
-
# Kramdown-style header IDs.
|
9
|
+
# A customized version of CommonMarker::HtmlRenderer which:
|
10
|
+
# - outputs Kramdown-style header IDs.
|
11
|
+
# - performs syntax highlighting in code blocks.
|
10
12
|
class JekyllCommonMarkCustomRenderer < ::CommonMarker::HtmlRenderer
|
11
13
|
def header(node)
|
12
14
|
block do
|
@@ -22,6 +24,35 @@ class JekyllCommonMarkCustomRenderer < ::CommonMarker::HtmlRenderer
|
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
27
|
+
def code_block(node)
|
28
|
+
lang = if node.fence_info && !node.fence_info.empty?
|
29
|
+
node.fence_info.split(/\s+/)[0]
|
30
|
+
end
|
31
|
+
|
32
|
+
content = node.string_content
|
33
|
+
|
34
|
+
if lang && lexer = ::Rouge::Lexer.find_fancy(lang, content)
|
35
|
+
block do
|
36
|
+
out("<div class=\"language-#{lang} highlighter-rouge\">")
|
37
|
+
out(::Rouge::Formatters::HTMLLegacy.new(css_class: 'highlight').format(lexer.lex(content)))
|
38
|
+
out("</div>")
|
39
|
+
end
|
40
|
+
return
|
41
|
+
end
|
42
|
+
|
43
|
+
if option_enabled?(:GITHUB_PRE_LANG)
|
44
|
+
out("<pre#{sourcepos(node)}")
|
45
|
+
out(' lang="', lang, '"') if lang
|
46
|
+
out('><code>')
|
47
|
+
else
|
48
|
+
out("<pre#{sourcepos(node)}><code")
|
49
|
+
out(' class="language-', lang, '">') if lang
|
50
|
+
out('>')
|
51
|
+
end
|
52
|
+
out(escape_html(content))
|
53
|
+
out('</code></pre>')
|
54
|
+
end
|
55
|
+
|
25
56
|
private
|
26
57
|
|
27
58
|
def generate_id(str)
|
data/spec/test_spec.rb
CHANGED
@@ -2,11 +2,19 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe JekyllCommonMarkCustomRenderer do
|
4
4
|
let(:renderer) { JekyllCommonMarkCustomRenderer.new }
|
5
|
-
let(:doc) { CommonMarker.render_doc("# Hello\n\n## Hi, world!") }
|
6
5
|
subject { renderer.render(doc) }
|
7
6
|
|
8
|
-
|
9
|
-
|
7
|
+
context "headers" do
|
8
|
+
let(:doc) { CommonMarker.render_doc("# Hello\n\n## Hi, world!") }
|
9
|
+
it { is_expected.to match %r{<h1 id="hello">Hello</h1>} }
|
10
|
+
it { is_expected.to match %r{<h2 id="hi-world">Hi, world!</h2>} }
|
11
|
+
end
|
12
|
+
|
13
|
+
context "code blocks" do
|
14
|
+
let(:doc) { CommonMarker.render_doc("```ruby\nputs \"Hi!\"\n```\n") }
|
15
|
+
it { is_expected.to match %r{<div class="language-ruby highlighter-rouge">} }
|
16
|
+
it { is_expected.to match %r{<code><span class=".*?">puts</span> <span class=".*?">"Hi!"</span>} }
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
describe Jekyll::Converters::Markdown::CommonMarkGhPages do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-commonmark-ghpages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ashe Connor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll-commonmark
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.17.6
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rouge
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|