mm-jekyll-prism 0.0.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/Changelog.md +5 -2
- data/README.md +27 -0
- data/lib/mm-jekyll-prism.rb +29 -3
- data/mm_jekyll_prism_plugin.gemspec +1 -1
- data/spec/mm_jekyll_prism_spec.rb +41 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee9d3abbb8cfe50668f66aa94f539ea9440cbff5
|
4
|
+
data.tar.gz: 7f93b9904dbfb941010d34bc68a57d3c4e32c047
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14cbf871ba9e7465bb7fb729124ed615f39f7042f344149f9b102a02a36efa0fc553ba7b8c9f7d973b34852389cf202d904a6911fd8f1970425d55ab6e01b045
|
7
|
+
data.tar.gz: 64091dc8e5f69fe39ddea8626daec139e68871dba8ae7eff0fbd2595527dfad86a49a330d7f839e382ca0b556998cc0cbc2f124df1493e7c07e03cfa944fc869
|
data/.gitignore
CHANGED
data/Changelog.md
CHANGED
data/README.md
CHANGED
@@ -89,6 +89,33 @@ __With offset__
|
|
89
89
|
// ...
|
90
90
|
{% endprism %}
|
91
91
|
|
92
|
+
#### Command Line
|
93
|
+
__Help document__: http://prismjs.com/plugins/command-line/
|
94
|
+
|
95
|
+
To use add the options __user__ and __host__ with the desired user name and host name.
|
96
|
+
|
97
|
+
For those that want a Window's style prompt, use the option __prompt__ with the desire prompt string.
|
98
|
+
|
99
|
+
You can also choose which files are considered output lines using the __output__ tag. It operates similar to the highlighting tag.
|
100
|
+
|
101
|
+
##### Example
|
102
|
+
__With User and Host__
|
103
|
+
|
104
|
+
{% prism user="john" host="local" %}
|
105
|
+
// ...
|
106
|
+
{% endprism %}
|
107
|
+
|
108
|
+
__With User and Host with Output__
|
109
|
+
|
110
|
+
{% prism user="john" host="local" output="1,3-5,10%}
|
111
|
+
// ...
|
112
|
+
{% endprism %}
|
113
|
+
|
114
|
+
__With Prompt__
|
115
|
+
|
116
|
+
{% prism prompt="john"%}
|
117
|
+
// ...
|
118
|
+
{% endprism %}
|
92
119
|
|
93
120
|
#### Show Language
|
94
121
|
__Help document__: http://prismjs.com/plugins/show-language/
|
data/lib/mm-jekyll-prism.rb
CHANGED
@@ -4,20 +4,23 @@ module Jekyll
|
|
4
4
|
include Liquid::StandardFilters
|
5
5
|
|
6
6
|
LANGUAGE = /^[a-z\-]+$/
|
7
|
-
OPTION_PARAMS = /(
|
7
|
+
OPTION_PARAMS = /(user|prompt|host|highlight|numbering|file|prompt|output)(?:\s*=\s*("[a-zA-Z0-9.,\-\/\s]*"|\-?[0-9]+))?/
|
8
8
|
|
9
9
|
@language = nil
|
10
10
|
@file = nil
|
11
11
|
@numbering = false
|
12
12
|
@highlight = false
|
13
|
+
@output = false
|
14
|
+
@host = nil
|
15
|
+
@user = nil
|
16
|
+
@prompt = nil
|
13
17
|
|
14
18
|
def initialize(tag_name, markup, tokens)
|
15
19
|
super
|
16
20
|
|
17
21
|
markup = markup.strip
|
18
22
|
|
19
|
-
tmp = markup.split(/\s+/, 2)
|
20
|
-
|
23
|
+
tmp = markup.split(/\s+/, 2)
|
21
24
|
if tmp.count >= 1 then
|
22
25
|
param = tmp[0].strip.downcase
|
23
26
|
if LANGUAGE =~ param then
|
@@ -53,6 +56,14 @@ module Jekyll
|
|
53
56
|
@highlight = value.tr('"', '')
|
54
57
|
elsif name.eql? "numbering" then
|
55
58
|
@numbering = value.to_i
|
59
|
+
elsif name.eql? "host" then
|
60
|
+
@host = value.tr('"', '')
|
61
|
+
elsif name.eql? "user" then
|
62
|
+
@user = value.tr('"', '')
|
63
|
+
elsif name.eql? "prompt" then
|
64
|
+
@prompt = value.tr('"', '')
|
65
|
+
elsif name.eql? "output" then
|
66
|
+
@output = value.tr('"', '')
|
56
67
|
end
|
57
68
|
else
|
58
69
|
syntax_error
|
@@ -94,6 +105,21 @@ module Jekyll
|
|
94
105
|
dataline = "data-line='#{@highlight}'"
|
95
106
|
end
|
96
107
|
|
108
|
+
unless @output.nil? then
|
109
|
+
dataline = dataline + " data-output='#{@output}' "
|
110
|
+
end
|
111
|
+
|
112
|
+
unless @prompt.nil? then
|
113
|
+
dataline = dataline + " data-prompt='#{@prompt}'"
|
114
|
+
class_attr = class_attr + " command-line "
|
115
|
+
end
|
116
|
+
|
117
|
+
unless @user.nil? || @host.nil?then
|
118
|
+
dataline = dataline + " data-user='#{@user}'"
|
119
|
+
dataline = dataline + " data-host='#{@host}'"
|
120
|
+
class_attr = class_attr + " command-line "
|
121
|
+
end
|
122
|
+
|
97
123
|
if @file.nil?
|
98
124
|
"<pre class=\"#{class_attr}\" #{datastart} #{dataline}><code>#{code}</code></pre>"
|
99
125
|
else
|
@@ -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 = "mm-jekyll-prism"
|
7
|
-
spec.version = "0.0
|
7
|
+
spec.version = "1.0.0"
|
8
8
|
spec.authors = ["Tim Oram"]
|
9
9
|
spec.email = ["mitmaro@gmail.com"]
|
10
10
|
spec.summary = %q{Prism plugin for Jekyll}
|
@@ -29,7 +29,27 @@ RSpec.describe Jekyll::Prism do
|
|
29
29
|
prism = Jekyll::Prism.new("prism", 'javascript highlight="1-2,4,5-9" ', ["{% endprism %}"]);
|
30
30
|
expect(prism.instance_variable_get(:@highlight)).to eql("1-2,4,5-9")
|
31
31
|
end
|
32
|
+
|
33
|
+
it "Understands how to accept a user parameter" do
|
34
|
+
prism = Jekyll::Prism.new("prism", 'javascript user="john"', ["{% endprism %}"]);
|
35
|
+
expect(prism.instance_variable_get(:@user)).to eql("john")
|
36
|
+
end
|
37
|
+
|
38
|
+
it "Understands how to accept a host parameter" do
|
39
|
+
prism = Jekyll::Prism.new("prism", 'javascript host="local" ', ["{% endprism %}"]);
|
40
|
+
expect(prism.instance_variable_get(:@host)).to eql("local")
|
41
|
+
end
|
32
42
|
|
43
|
+
it "Understands how to accept a prompt parameter" do
|
44
|
+
prism = Jekyll::Prism.new("prism", 'javascript prompt="john" ', ["{% endprism %}"]);
|
45
|
+
expect(prism.instance_variable_get(:@prompt)).to eql("john")
|
46
|
+
end
|
47
|
+
|
48
|
+
it "Understands how to accept a output parameter" do
|
49
|
+
prism = Jekyll::Prism.new("prism", 'javascript output="1-2,4,5-9"', ["{% endprism %}"]);
|
50
|
+
expect(prism.instance_variable_get(:@output)).to eql("1-2,4,5-9")
|
51
|
+
end
|
52
|
+
|
33
53
|
it "Understands how to accept a numbering parameter" do
|
34
54
|
prism = Jekyll::Prism.new("prism", 'javascript numbering ', ["{% endprism %}"]);
|
35
55
|
expect(prism.instance_variable_get(:@numbering)).to eql(true)
|
@@ -38,14 +58,33 @@ RSpec.describe Jekyll::Prism do
|
|
38
58
|
prism = Jekyll::Prism.new("prism", 'javascript numbering=-10 ', ["{% endprism %}"]);
|
39
59
|
expect(prism.instance_variable_get(:@numbering)).to eql(-10)
|
40
60
|
end
|
61
|
+
|
41
62
|
end
|
42
63
|
|
43
64
|
context "Valid render from code with all options" do
|
44
65
|
|
45
|
-
let(:content) { '{% prism cpp numbering=5 highlight="1,2-5,10" %}
|
66
|
+
let(:content) { '{% prism cpp numbering=5 highlight="1,2-5,10" %}{% endprism %}' }
|
67
|
+
|
68
|
+
it "Understands how to render code from code block" do
|
69
|
+
expect(output).to match("<pre class=\" language-cpp line-numbers \" data-start=\"5\" data-line=\"1,2-5,10\"><code></code></pre>")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "Valid render from code with user, host, and output options on" do
|
74
|
+
|
75
|
+
let(:content) { '{% prism cpp host="local" user="john" output="1,2-5,10" %}{% endprism %}' }
|
76
|
+
|
77
|
+
it "Understands how to render code from code block" do
|
78
|
+
expect(output).to match("<pre class=\" language-cpp command-line \" data-output=\"1,2-5,10\" data-user=\"john\" data-host=\"local\"><code></code></pre>")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context "Valid render from code with prompt and output options on" do
|
83
|
+
|
84
|
+
let(:content) { '{% prism cpp prompt="john" output="1,2-5,10" %}{% endprism %}' }
|
46
85
|
|
47
86
|
it "Understands how to render code from code block" do
|
48
|
-
expect(output).to match("<pre class=\" language-cpp line
|
87
|
+
expect(output).to match("<pre class=\" language-cpp command-line \" data-output=\"1,2-5,10\" data-prompt=\"john\"><code></code></pre>")
|
49
88
|
end
|
50
89
|
end
|
51
90
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mm-jekyll-prism
|
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
|
- Tim Oram
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.5.1
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Prism plugin for Jekyll
|