markdown-highlight-extended-filter 0.0.1 → 1.0.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dfc3f9e711fe9a402d79542c5d48653ea8fdc66
|
4
|
+
data.tar.gz: 2939f157d44ef9b3d8f14adf5f67f05c41d778c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1878404d04e588fe1e8dcf451aa5965cf804d4ee7748dd06e8c207f0501c72c2595ed6c62d06502d723fc4b42ed6820ae2ad17736ad86b257df129618c8c0916
|
7
|
+
data.tar.gz: 5c40dc8591e79150656c6c9745b72ff03e26521c6d48ada68e79bd44eb332cc3c28ae503f7cdcab8c1506741185c951fc502d3f1c11753f338e34177f4b1ce99
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "html/pipeline"
|
2
2
|
require "pygments.rb"
|
3
|
+
require "linguist"
|
3
4
|
|
4
5
|
# Stolen from https://github.com/imathis/octopress/blob/master/plugins/backtick_code_block.rb
|
5
6
|
# (MIT License)
|
@@ -7,10 +8,6 @@ class MarkdownHighlightExtendedFilter < HTML::Pipeline::TextFilter
|
|
7
8
|
AllOptions = /([^\s]+)\s+(.+?)\s+(https?:\/\/\S+|\/\S+)\s*(.+)?/i
|
8
9
|
LangCaption = /([^\s]+)\s*(.+)?/i
|
9
10
|
|
10
|
-
PIPELINE = HTML::Pipeline.new [
|
11
|
-
HTML::Pipeline::SyntaxHighlightFilter
|
12
|
-
]
|
13
|
-
|
14
11
|
def call
|
15
12
|
format_syntax(@text)
|
16
13
|
end
|
@@ -48,6 +45,15 @@ class MarkdownHighlightExtendedFilter < HTML::Pipeline::TextFilter
|
|
48
45
|
end
|
49
46
|
|
50
47
|
def highlight_code(code, lang)
|
51
|
-
|
48
|
+
if lexer = lexer_for(lang)
|
49
|
+
lexer.highlight(code, :options => { :cssclass => "highlight highlight-#{lang}" })
|
50
|
+
else
|
51
|
+
"<pre>#{code}</pre>"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/syntax_highlight_filter.rb#L38
|
56
|
+
def lexer_for(lang)
|
57
|
+
(Linguist::Language[lang] && Linguist::Language[lang].lexer) || Pygments::Lexer[lang]
|
52
58
|
end
|
53
59
|
end
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "markdown-highlight-extended-filter"
|
7
|
-
spec.version = "0.0
|
7
|
+
spec.version = "1.0.0"
|
8
8
|
spec.authors = ["Yu-Cheng Chuang"]
|
9
9
|
spec.email = ["ducksteven@gmail.com"]
|
10
10
|
spec.summary = %q{HTML::Pipeline filter for Octopress-flavored syntax highlighting}
|
@@ -24,4 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.1.0"
|
27
|
+
spec.add_development_dependency "pry-byebug"
|
28
|
+
|
27
29
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'markdown-highlight-extended-filter'
|
2
|
+
require 'pry-byebug'
|
2
3
|
|
3
4
|
RSpec.describe "MarkdownHighlightExtendedFilter" do
|
4
5
|
let(:pipeline) {
|
@@ -21,7 +22,7 @@ TEXT
|
|
21
22
|
|
22
23
|
it "renders correctly" do
|
23
24
|
expect(rendered).to eq <<-HTML
|
24
|
-
<figure class='code'><pre
|
25
|
+
<figure class='code'><pre>def abc
|
25
26
|
123
|
26
27
|
end</pre></figure>
|
27
28
|
HTML
|
@@ -104,6 +105,22 @@ TEXT
|
|
104
105
|
<span class="mi">123</span>
|
105
106
|
<span class="k">end</span>
|
106
107
|
</pre></div></figure>
|
108
|
+
HTML
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe "no sanitization" do
|
113
|
+
let(:text) { <<-TEXT
|
114
|
+
```html
|
115
|
+
<input name="test" value="hello" />
|
116
|
+
```
|
117
|
+
TEXT
|
118
|
+
}
|
119
|
+
|
120
|
+
it "renders correctly" do
|
121
|
+
expect(rendered).to eq <<-HTML
|
122
|
+
<figure class='code'><figcaption><span></span></figcaption><div class="highlight highlight-html"><pre><span class="nt"><input</span> <span class="na">name=</span><span class="s">"test"</span> <span class="na">value=</span><span class="s">"hello"</span> <span class="nt">/></span>
|
123
|
+
</pre></div></figure>
|
107
124
|
HTML
|
108
125
|
end
|
109
126
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown-highlight-extended-filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yu-Cheng Chuang
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 3.1.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry-byebug
|
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'
|
97
111
|
description: HTML::Pipeline filter for Octopress-flavored syntax highlighting
|
98
112
|
email:
|
99
113
|
- ducksteven@gmail.com
|