jekyll_pre 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -18
- data/CHANGELOG.md +3 -0
- data/README.md +122 -43
- data/Rakefile +4 -1
- data/jekyll_pre.gemspec +34 -32
- data/lib/jekyll_pre/version.rb +1 -1
- data/lib/jekyll_pre.rb +108 -77
- data/spec/pre_spec.rb +48 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/status_persistence.txt +4 -0
- metadata +34 -101
- data/.rspec +0 -2
- data/.ruby-version +0 -1
- data/.vscode/launch.json +0 -47
- data/.vscode/settings.json +0 -3
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -134
- data/images/clippy.svg +0 -3
- data/images/clippy.svg:Zone.Identifier +0 -0
- data/sig/jekyll_pre.rbs +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a4c55485eec7e53914d0be22bc4fcd6701e0ec9fa2137193953e4cf8b1013d5
|
4
|
+
data.tar.gz: 9a150916aff92e21ac2ed5bd378018dc864cbeaeb5dd1792bcec58fd47bed40c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26b7a66d9bb2ed68f8f0d4f9e5e1f9bb8a07f21bc414abb8daa2ae50fa3206ad7a0942d395b67b1c50bf946c80be007c387f8492ed250e6ca32c16363e9f561c
|
7
|
+
data.tar.gz: 4e6a7e59158589373a8a4701d0985a948c16c9f5fbd6b9c940329df52c65bea6596108fa6ddb14e0aa50495ba10b522fb61b15b9a86e100da6ad307a38d2ad33
|
data/.rubocop.yml
CHANGED
@@ -11,21 +11,3 @@ AllCops:
|
|
11
11
|
|
12
12
|
Layout/LineLength:
|
13
13
|
Max: 150
|
14
|
-
|
15
|
-
Layout/MultilineMethodCallIndentation:
|
16
|
-
Enabled: false
|
17
|
-
|
18
|
-
Metrics/BlockLength:
|
19
|
-
Enabled: false
|
20
|
-
|
21
|
-
Style/PercentLiteralDelimiters:
|
22
|
-
Enabled: false
|
23
|
-
|
24
|
-
Style/RegexpLiteral:
|
25
|
-
Enabled: false
|
26
|
-
|
27
|
-
Style/StringLiterals:
|
28
|
-
Enabled: false
|
29
|
-
|
30
|
-
Style/StringLiteralsInInterpolation:
|
31
|
-
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 1.1.0 / 2022-03-31
|
2
|
+
* Added `number` option, which generates unselectable line numbers for contents
|
3
|
+
|
1
4
|
## 1.0.0 / 2022-03-13
|
2
5
|
* Made into a Ruby gem and published on RubyGems.org as [jekyll_pre](https://rubygems.org/gems/jekyll_pre).
|
3
6
|
* `bin/attach` script added for debugging
|
data/README.md
CHANGED
@@ -2,10 +2,42 @@ Jekyll_pre
|
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/jekyll_pre.svg)](https://badge.fury.io/rb/jekyll_pre)
|
3
3
|
===========
|
4
4
|
|
5
|
-
This
|
5
|
+
This Jekyll plugin provides 2 new Liquid tags that work together:
|
6
|
+
|
7
|
+
* A `pre` block tag that can optionally display a copy button.
|
8
|
+
```
|
9
|
+
{% pre [copyButton] [shell] [headline words] %}
|
10
|
+
Contents of pre tag
|
11
|
+
{% endpre %}
|
12
|
+
```
|
13
|
+
* A `noselect` tag that can renders HTML content passed to it unselectable.
|
14
|
+
```
|
15
|
+
{% pre [copyButton] %}
|
16
|
+
{% noselect [text string, defaults to $]%}Contents of pre tag
|
17
|
+
{% endpre %}
|
18
|
+
```
|
19
|
+
|
20
|
+
## CSS
|
21
|
+
Below are the CSS declarations that I defined pertaining to the pre and noselect tags that produced the above images:
|
22
|
+
```css
|
23
|
+
.maxOneScreenHigh {
|
24
|
+
max-height: 500px;
|
25
|
+
}
|
26
|
+
|
27
|
+
.numbered_line {
|
28
|
+
color: rgb(65, 77, 65);
|
29
|
+
}
|
30
|
+
|
31
|
+
.unselectable {
|
32
|
+
color: #7922f9;
|
33
|
+
-moz-user-select: none;
|
34
|
+
-khtml-user-select: none;
|
35
|
+
user-select: none;
|
36
|
+
}
|
37
|
+
```
|
6
38
|
|
7
|
-
|
8
|
-
|
39
|
+
## Additional Information
|
40
|
+
More information is available on my web site about [my Jekyll plugins](https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html).
|
9
41
|
|
10
42
|
|
11
43
|
## Installation
|
@@ -29,19 +61,7 @@ Or install it yourself as:
|
|
29
61
|
|
30
62
|
## Usage
|
31
63
|
|
32
|
-
|
33
|
-
|
34
|
-
### Syntax
|
35
|
-
|
36
|
-
<pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id7478d3e758a5"><button class="copyBtn" data-clipboard-target="#id7478d3e758a5" title="Copy to clipboard"><img src="images/clippy.svg" alt="Copy to clipboard" style="width: 13px"></button>{% pre [copyButton] [shell] [headline words] %}
|
37
|
-
Contents of pre tag
|
38
|
-
{% endpre %}</pre>
|
39
|
-
|
40
|
-
<pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="idbb1564f70e84">{% pre [copyButton] %}
|
41
|
-
{% noselect [text string]%}Contents of pre tag
|
42
|
-
{% endpre %}</pre>
|
43
|
-
|
44
|
-
### Usage Example 1
|
64
|
+
### Example 1
|
45
65
|
This example does not generate a copy button and does not demonstrate `noselect`.
|
46
66
|
<pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id110c50d624b4">{% pre %}
|
47
67
|
Contents of pre tag
|
@@ -54,54 +74,68 @@ Which renders as:
|
|
54
74
|
|
55
75
|
<pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id377433c30186">Contents of pre tag</pre>
|
56
76
|
|
57
|
-
|
77
|
+
|
78
|
+
### Example 2
|
58
79
|
This example generates a copy button and does not demonstrate `noselect`.
|
59
80
|
|
60
|
-
|
61
|
-
|
81
|
+
{% pre copyButton %}
|
82
|
+
Contents of pre tag
|
83
|
+
{% endpre %}
|
62
84
|
|
63
85
|
Generates:
|
64
86
|
<pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id08a5d26db177"><pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='id6a831a3e8992'><button class='copyBtn' data-clipboard-target='#id6a831a3e8992' title='Copy to clipboard'><img src='images/clippy.svg' alt='Copy to clipboard' style='width: 13px'></button>Contents of pre tag</pre></pre>
|
65
87
|
|
66
|
-
Which renders as:
|
67
|
-
|
88
|
+
Which renders as (note the clipboard icon at the far right):
|
89
|
+
![example 2](images/usage2example.png)
|
90
|
+
|
68
91
|
|
69
|
-
###
|
92
|
+
### Example 3
|
70
93
|
This example generates a copy button and does demonstrates the default usage of `noselect`, which renders an unselectable dollar sign followed by a space.
|
71
|
-
|
94
|
+
```
|
95
|
+
{% pre copyButton %}
|
72
96
|
{% noselect %}Contents of pre tag
|
73
|
-
{% endpre %}
|
97
|
+
{% endpre %}
|
98
|
+
```
|
74
99
|
|
75
100
|
Generates:
|
76
101
|
|
77
|
-
|
102
|
+
```
|
103
|
+
<pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='id1e4a8fe53480'><button class='copyBtn' data-clipboard-target='#id1e4a8fe53480' title='Copy to clipboard'><img src='/assets/images/clippy.svg' alt='Copy to clipboard' style='width: 13px'></button><span class='unselectable'>$ </span>Contents of pre tag</pre>
|
104
|
+
```
|
78
105
|
|
79
106
|
Which renders as:
|
80
107
|
|
81
|
-
|
108
|
+
![example 3](images/usage3example.png)
|
109
|
+
|
82
110
|
|
83
|
-
###
|
111
|
+
### Example 4
|
84
112
|
This example generates a copy button and does demonstrates the `noselect` being used twice:
|
85
113
|
the first time to render an unselectable custom prompt,
|
86
114
|
and the second time to render unselectable output.
|
87
115
|
|
88
|
-
|
116
|
+
```
|
117
|
+
{% pre copyButton %}
|
118
|
+
{% noselect >>> %}Contents of pre tag
|
89
119
|
{% noselect How now brown cow%}
|
90
|
-
{% endpre %}
|
120
|
+
{% endpre %}
|
121
|
+
```
|
91
122
|
|
92
123
|
Generates:
|
93
|
-
|
94
|
-
|
124
|
+
```
|
125
|
+
<pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='idb58a6cf1761c'><button class='copyBtn' data-clipboard-target='#idb58a6cf1761c' title='Copy to clipboard'><img src='/assets/images/clippy.svg' alt='Copy to clipboard' style='width: 13px'></button><span class='unselectable'>>>> </span>contents of pre tag
|
126
|
+
<span class='unselectable'>How now brown cow</span></pre>
|
127
|
+
```
|
95
128
|
|
96
129
|
Which renders as:
|
97
130
|
|
98
|
-
|
99
|
-
|
131
|
+
![example 4](images/usage4example.png)
|
132
|
+
|
100
133
|
|
101
134
|
### CSS
|
102
|
-
Here are the CSS declarations that I defined pertaining to the `pre` and `noselect` tags:
|
135
|
+
Here are the CSS declarations that I defined pertaining to the `pre` and `noselect` tags that produced the above images:
|
103
136
|
|
104
|
-
|
137
|
+
```css
|
138
|
+
.maxOneScreenHigh {
|
105
139
|
max-height: 500px;
|
106
140
|
}
|
107
141
|
|
@@ -110,13 +144,15 @@ Here are the CSS declarations that I defined pertaining to the `pre` and `nosele
|
|
110
144
|
-moz-user-select: none;
|
111
145
|
-khtml-user-select: none;
|
112
146
|
user-select: none;
|
113
|
-
}
|
147
|
+
}
|
148
|
+
```
|
149
|
+
|
114
150
|
|
115
151
|
### Comprehensive Example
|
116
152
|
The code I wrote to generate the above CSS was a good example of how the plugins work together with
|
117
|
-
the `from` and `to` tags from my `from_to_until` plugin:
|
153
|
+
the `from` and `to` tags from my [`from_to_until`](https://github.com/mslinn/jekyll_from_to_until) plugin:
|
118
154
|
|
119
|
-
|
155
|
+
```
|
120
156
|
{% capture css %}{% flexible_include '_sass/mystyle.scss' %}{% endcapture %}
|
121
157
|
{% pre copyButton %}{{ css | from: '.copyBtn' | to: '^$' | strip }}
|
122
158
|
|
@@ -125,19 +161,62 @@ the `from` and `to` tags from my `from_to_until` plugin:
|
|
125
161
|
{{ css | from: '.maxOneScreenHigh' | to: '^$' | strip }}
|
126
162
|
|
127
163
|
{{ css | from: '.unselectable' | to: '^$' | strip }}
|
128
|
-
{% endpre %}
|
164
|
+
{% endpre %}
|
165
|
+
```
|
129
166
|
|
130
167
|
|
131
168
|
## Development
|
132
169
|
|
133
|
-
After checking out the repo, run `bin/setup` to install dependencies.
|
170
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
134
171
|
|
135
|
-
|
172
|
+
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
136
173
|
|
137
174
|
|
138
|
-
|
175
|
+
### Build and Install Locally
|
176
|
+
To build and install this gem onto your local machine, run:
|
177
|
+
```shell
|
178
|
+
$ rake install:local
|
179
|
+
```
|
180
|
+
|
181
|
+
The following also does the same thing:
|
182
|
+
```shell
|
183
|
+
$ bundle exec rake install
|
184
|
+
```
|
185
|
+
|
186
|
+
Examine the newly built gem:
|
187
|
+
```shell
|
188
|
+
$ gem info jekyll_pre
|
189
|
+
|
190
|
+
*** LOCAL GEMS ***
|
191
|
+
|
192
|
+
jekyll_pre (1.0.0)
|
193
|
+
Author: Mike Slinn
|
194
|
+
Homepage:
|
195
|
+
https://github.com/mslinn/jekyll_pre
|
196
|
+
License: MIT
|
197
|
+
Installed at: /home/mslinn/.gems
|
139
198
|
|
140
|
-
|
199
|
+
Generates Jekyll logger with colored output.
|
200
|
+
```
|
201
|
+
|
202
|
+
|
203
|
+
### Build and Push to RubyGems
|
204
|
+
To release a new version,
|
205
|
+
1. Update the version number in `version.rb`.
|
206
|
+
2. Commit all changes to git; if you don't the next step might fail with an unexplainable error message.
|
207
|
+
3. Run the following:
|
208
|
+
```shell
|
209
|
+
$ bundle exec rake release
|
210
|
+
```
|
211
|
+
The above creates a git tag for the version, commits the created tag,
|
212
|
+
and pushes the new `.gem` file to [RubyGems.org](https://rubygems.org).
|
213
|
+
|
214
|
+
|
215
|
+
## Contributing
|
216
|
+
1. Fork the project
|
217
|
+
2. Create a descriptively named feature branch
|
218
|
+
3. Add your feature
|
219
|
+
4. Submit a pull request
|
141
220
|
|
142
221
|
|
143
222
|
## License
|
data/Rakefile
CHANGED
data/jekyll_pre.gemspec
CHANGED
@@ -2,45 +2,47 @@
|
|
2
2
|
|
3
3
|
require_relative "lib/jekyll_pre/version"
|
4
4
|
|
5
|
+
# rubocop:disable Metrics/BlockLength
|
5
6
|
Gem::Specification.new do |spec|
|
6
|
-
|
7
|
-
|
7
|
+
github = "https://github.com/mslinn/jekyll_pre"
|
8
|
+
|
8
9
|
spec.authors = ["Mike Slinn"]
|
10
|
+
spec.bindir = "exe"
|
11
|
+
spec.description = <<~END_OF_DESC
|
12
|
+
Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable text. Can number lines.
|
13
|
+
END_OF_DESC
|
9
14
|
spec.email = ["mslinn@mslinn.com"]
|
10
|
-
|
11
|
-
spec.
|
12
|
-
spec.description = "Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable text."
|
13
|
-
spec.homepage = "https://github.com/mslinn/jekyll_pre"
|
15
|
+
spec.files = Dir[".rubocop.yml", "LICENSE.*", "Rakefile", "{lib,spec}/**/*", "*.gemspec", "*.md"]
|
16
|
+
spec.homepage = "https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#pre"
|
14
17
|
spec.license = "MIT"
|
15
|
-
spec.
|
16
|
-
|
17
|
-
|
18
|
+
spec.metadata = {
|
19
|
+
"allowed_push_host" => "https://rubygems.org",
|
20
|
+
"bug_tracker_uri" => "#{github}/issues",
|
21
|
+
"changelog_uri" => "#{github}/CHANGELOG.md",
|
22
|
+
"homepage_uri" => spec.homepage,
|
23
|
+
"source_code_uri" => github,
|
24
|
+
}
|
25
|
+
spec.name = "jekyll_pre"
|
26
|
+
spec.post_install_message = <<~END_MESSAGE
|
18
27
|
|
19
|
-
|
20
|
-
spec.metadata["source_code_uri"] = "https://github.com/mslinn/jekyll_pre"
|
21
|
-
spec.metadata["changelog_uri"] = "https://github.com/mslinn/jekyll_pre/CHANGELOG.md"
|
28
|
+
Thanks for installing #{spec.name}!
|
22
29
|
|
23
|
-
|
24
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
27
|
-
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
28
|
-
end
|
29
|
-
end
|
30
|
-
spec.bindir = "exe"
|
31
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
+
END_MESSAGE
|
32
31
|
spec.require_paths = ["lib"]
|
32
|
+
spec.required_ruby_version = ">= 2.6.0"
|
33
|
+
spec.summary = "Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable text. Can number lines."
|
34
|
+
spec.test_files = spec.files.grep(%r!^(test|spec|features)/!)
|
35
|
+
spec.version = JekyllPre::VERSION
|
33
36
|
|
34
|
-
spec.add_dependency
|
37
|
+
spec.add_dependency "jekyll", ">= 3.5.0"
|
38
|
+
spec.add_dependency "jekyll_plugin_logger"
|
39
|
+
spec.add_dependency "key-value-parser"
|
40
|
+
spec.add_dependency "shellwords"
|
35
41
|
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
38
|
-
spec.add_development_dependency
|
39
|
-
spec.add_development_dependency
|
40
|
-
spec.add_development_dependency
|
41
|
-
spec.add_development_dependency 'rspec'
|
42
|
-
spec.add_development_dependency 'rubocop'
|
43
|
-
spec.add_development_dependency 'rubocop-jekyll'
|
44
|
-
spec.add_development_dependency 'rubocop-rake'
|
45
|
-
spec.add_development_dependency 'ruby-debug-ide'
|
42
|
+
spec.add_development_dependency "debase"
|
43
|
+
# spec.add_development_dependency "rubocop-jekyll"
|
44
|
+
# spec.add_development_dependency "rubocop-rake"
|
45
|
+
# spec.add_development_dependency "rubocop-rspec"
|
46
|
+
spec.add_development_dependency "ruby-debug-ide"
|
46
47
|
end
|
48
|
+
# rubocop:enable Metrics/BlockLength
|
data/lib/jekyll_pre/version.rb
CHANGED
data/lib/jekyll_pre.rb
CHANGED
@@ -1,91 +1,122 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "liquid"
|
4
|
+
require "jekyll_plugin_logger"
|
3
5
|
require_relative "jekyll_pre/version"
|
4
6
|
|
5
|
-
module
|
6
|
-
|
7
|
-
|
8
|
-
# """
|
9
|
-
# \\{% pre %}
|
10
|
-
# Content here
|
11
|
-
# \\{% endpre %}
|
12
|
-
#
|
13
|
-
# \\{% pre copyButton %}
|
14
|
-
# Content here
|
15
|
-
# \\{% endpre %}"""
|
16
|
-
#
|
17
|
-
# \\{% pre shell %}
|
18
|
-
# Content here
|
19
|
-
# \\{% endpre %}
|
20
|
-
#
|
21
|
-
# \\{% pre copyButton shell %}
|
22
|
-
# Content here
|
23
|
-
# \\{% endpre %}
|
24
|
-
#
|
25
|
-
# \\{% pre copyButton label %}
|
26
|
-
# Content here
|
27
|
-
# \\{% endpre %}"""
|
28
|
-
class PreTagBlock < Liquid::Block
|
29
|
-
@@prefix = "<button class='copyBtn' data-clipboard-target="
|
30
|
-
@@suffix = " title='Copy to clipboard'><img src='/assets/images/clippy.svg' " \
|
31
|
-
"alt='Copy to clipboard' style='width: 13px'></button>"
|
32
|
-
|
33
|
-
def self.make_copy_button(pre_id)
|
34
|
-
"#{@@prefix}'##{pre_id}'#{@@suffix}"
|
35
|
-
end
|
7
|
+
module JekyllPluginPreName
|
8
|
+
PLUGIN_NAME = "jekyll_pre"
|
9
|
+
end
|
36
10
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
11
|
+
# """
|
12
|
+
# \\{% pre %}
|
13
|
+
# Content here
|
14
|
+
# \\{% endpre %}
|
15
|
+
#
|
16
|
+
# \\{% pre copyButton %}
|
17
|
+
# Content here
|
18
|
+
# \\{% endpre %}"""
|
19
|
+
#
|
20
|
+
# \\{% pre shell %}
|
21
|
+
# Content here
|
22
|
+
# \\{% endpre %}
|
23
|
+
#
|
24
|
+
# \\{% pre copyButton shell %}
|
25
|
+
# Content here
|
26
|
+
# \\{% endpre %}
|
27
|
+
#
|
28
|
+
# \\{% pre copyButton label %}
|
29
|
+
# Content here
|
30
|
+
# \\{% endpre %}"""
|
31
|
+
class PreTagBlock < Liquid::Block
|
32
|
+
@@prefix = "<button class='copyBtn' data-clipboard-target="
|
33
|
+
@@suffix = " title='Copy to clipboard'><img src='/assets/images/clippy.svg' " \
|
34
|
+
"alt='Copy to clipboard' style='width: 13px'></button>"
|
49
35
|
|
50
|
-
|
51
|
-
#
|
52
|
-
|
53
|
-
# @return [void]
|
54
|
-
def initialize(tag_name, text, tokens)
|
55
|
-
super(tag_name, text, tokens)
|
56
|
-
text = '' if text.nil?
|
57
|
-
text.strip!
|
58
|
-
@make_copy_button = text.include? 'copyButton'
|
59
|
-
remaining_text = text.sub('copyButton', '').strip
|
60
|
-
#puts "@make_copy_button = '#{@make_copy_button}'; text = '#{text}'; remaining_text = '#{remaining_text}'"
|
61
|
-
@label = remaining_text
|
62
|
-
end
|
36
|
+
def self.make_copy_button(pre_id)
|
37
|
+
"#{@@prefix}'##{pre_id}'#{@@suffix}"
|
38
|
+
end
|
63
39
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
40
|
+
def self.make_pre(make_copy_button, number_lines, label, content)
|
41
|
+
label = if label.to_s.empty?
|
42
|
+
""
|
43
|
+
elsif label.to_s.downcase.strip == "shell"
|
44
|
+
"<div class='codeLabel unselectable' data-lt-active='false'>Shell</div>"
|
45
|
+
else
|
46
|
+
"<div class='codeLabel unselectable' data-lt-active='false'>#{label}</div>"
|
47
|
+
end
|
48
|
+
pre_id = "id#{SecureRandom.hex(6)}"
|
49
|
+
copy_button = make_copy_button ? PreTagBlock.make_copy_button(pre_id) : ""
|
50
|
+
content = PreTagBlock.number_content(content) if number_lines
|
51
|
+
"#{label}<pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='#{pre_id}'>#{copy_button}#{content.strip}</pre>"
|
71
52
|
end
|
72
53
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
# puts "UnselectableTag: content2= '#{@content}'"
|
54
|
+
def self.number_content(content)
|
55
|
+
lines = content.split("\n")
|
56
|
+
digits = lines.length.to_s.length
|
57
|
+
i = 0
|
58
|
+
numbered_content = lines.map do |line|
|
59
|
+
i += 1
|
60
|
+
number = i.to_s.rjust(digits, " ")
|
61
|
+
"<span class='unselectable numbered_line'> #{number}: </span>#{line}"
|
82
62
|
end
|
63
|
+
result = numbered_content.join("\n")
|
64
|
+
result += "\n" unless result.end_with?("\n")
|
65
|
+
result
|
66
|
+
end
|
83
67
|
|
84
|
-
|
85
|
-
|
86
|
-
|
68
|
+
# @param _tag_name [String] is the name of the tag, which we already know.
|
69
|
+
# @param argument_string [String] the arguments from the web page.
|
70
|
+
# @param _tokens [Liquid::ParseContext] tokenized command line
|
71
|
+
# @return [void]
|
72
|
+
def initialize(_tag_name, argument_string, _tokens)
|
73
|
+
super
|
74
|
+
argument_string = "" if argument_string.nil?
|
75
|
+
argument_string.strip!
|
76
|
+
|
77
|
+
@logger = PluginMetaLogger.instance.new_logger(self)
|
78
|
+
|
79
|
+
@make_copy_button = argument_string.include? "copyButton"
|
80
|
+
remaining_text = argument_string.sub("copyButton", "").strip
|
81
|
+
|
82
|
+
@number_lines = remaining_text.include? "number"
|
83
|
+
remaining_text = remaining_text.sub("number", "").strip
|
84
|
+
|
85
|
+
@label = remaining_text
|
86
|
+
|
87
|
+
@logger.debug { "@make_copy_button = '#{@make_copy_button}'; argument_string = '#{argument_string}'; remaining_text = '#{remaining_text}'" }
|
88
|
+
end
|
89
|
+
|
90
|
+
# Method prescribed by the Jekyll plugin lifecycle.
|
91
|
+
# @return [String]
|
92
|
+
def render(context)
|
93
|
+
content = super
|
94
|
+
@logger.debug { "@make_copy_button = '#{@make_copy_button}'; @label = '#{@label}'" }
|
95
|
+
PreTagBlock.make_pre(@make_copy_button, @number_lines, @label, content)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# """\\{% noselect %} or \\{% noselect this all gets copied.
|
100
|
+
# Also, space before the closing percent is signficant %}"""
|
101
|
+
class UnselectableTag < Liquid::Tag
|
102
|
+
# @param _tag_name [String] is the name of the tag, which we already know.
|
103
|
+
# @param argument_string [String] the arguments from the web page.
|
104
|
+
# @param _tokens [Liquid::ParseContext] tokenized command line
|
105
|
+
# @return [void]
|
106
|
+
def initialize(_tag_name, argument_string, _tokens)
|
107
|
+
super
|
108
|
+
@logger = PluginMetaLogger.instance.new_logger(self)
|
109
|
+
|
110
|
+
@argument_string = argument_string
|
111
|
+
@argument_string = "$ " if @argument_string.nil? || @argument_string.empty?
|
112
|
+
@logger.debug { "UnselectableTag: argument_string= '#{@argument_string}'" }
|
113
|
+
end
|
114
|
+
|
115
|
+
def render(_)
|
116
|
+
"<span class='unselectable'>#{@argument_string}</span>"
|
87
117
|
end
|
88
118
|
end
|
89
119
|
|
90
|
-
|
91
|
-
Liquid::Template.register_tag(
|
120
|
+
PluginMetaLogger.instance.info { "Loaded #{JekyllPluginPreName::PLUGIN_NAME} v#{JekyllPre::VERSION} plugin." }
|
121
|
+
Liquid::Template.register_tag("pre", PreTagBlock)
|
122
|
+
Liquid::Template.register_tag("noselect", UnselectableTag)
|
data/spec/pre_spec.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "fileutils"
|
4
|
+
require "jekyll"
|
5
|
+
require "key_value_parser"
|
6
|
+
require "shellwords"
|
7
|
+
require_relative "../lib/jekyll_pre"
|
8
|
+
|
9
|
+
RSpec.describe(PreTagBlock) do
|
10
|
+
it "parses arguments" do
|
11
|
+
argv = Shellwords.split "number copyButton shell"
|
12
|
+
options = KeyValueParser.new.parse(argv)
|
13
|
+
# puts options.map { |k, v| "#{k} = #{v}" }.join("\n")
|
14
|
+
|
15
|
+
expect(options[:copyButton]).to be true
|
16
|
+
expect(options[:number]).to be true
|
17
|
+
expect(options[:shell]).to be true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "numbers content lines" do
|
21
|
+
content = <<~END_CONTENT
|
22
|
+
Line 1
|
23
|
+
Line 2
|
24
|
+
Line 3
|
25
|
+
Line 4
|
26
|
+
Line 5
|
27
|
+
Line 6
|
28
|
+
Line 7
|
29
|
+
Line 8
|
30
|
+
Line 9
|
31
|
+
Line 10
|
32
|
+
END_CONTENT
|
33
|
+
numbered_content = PreTagBlock.number_content(content)
|
34
|
+
expected_content = <<~END_CONTENT
|
35
|
+
<span class='unselectable numbered_line'> 1: </span>Line 1
|
36
|
+
<span class='unselectable numbered_line'> 2: </span> Line 2
|
37
|
+
<span class='unselectable numbered_line'> 3: </span> Line 3
|
38
|
+
<span class='unselectable numbered_line'> 4: </span> Line 4
|
39
|
+
<span class='unselectable numbered_line'> 5: </span> Line 5
|
40
|
+
<span class='unselectable numbered_line'> 6: </span>Line 6
|
41
|
+
<span class='unselectable numbered_line'> 7: </span>Line 7
|
42
|
+
<span class='unselectable numbered_line'> 8: </span> Line 8
|
43
|
+
<span class='unselectable numbered_line'> 9: </span> Line 9
|
44
|
+
<span class='unselectable numbered_line'> 10: </span>Line 10
|
45
|
+
END_CONTENT
|
46
|
+
expect(numbered_content).to eq(expected_content)
|
47
|
+
end
|
48
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "jekyll"
|
4
|
+
require "fileutils"
|
5
|
+
require "key_value_parser"
|
6
|
+
require "shellwords"
|
7
|
+
|
8
|
+
require_relative "../lib/jekyll_pre"
|
9
|
+
|
10
|
+
Jekyll.logger.log_level = :info
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.filter_run :focus
|
14
|
+
config.order = "random"
|
15
|
+
config.run_all_when_everything_filtered = true
|
16
|
+
|
17
|
+
# See https://relishapp.com/rspec/rspec-core/docs/command-line/only-failures
|
18
|
+
config.example_status_persistence_file_path = "spec/status_persistence.txt"
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll_pre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Slinn
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -16,92 +16,22 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.5.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: debase
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: jekyll
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
26
|
+
version: 3.5.0
|
83
27
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
28
|
+
name: jekyll_plugin_logger
|
85
29
|
requirement: !ruby/object:Gem::Requirement
|
86
30
|
requirements:
|
87
31
|
- - ">="
|
88
32
|
- !ruby/object:Gem::Version
|
89
33
|
version: '0'
|
90
|
-
type: :
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rspec
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
34
|
+
type: :runtime
|
105
35
|
prerelease: false
|
106
36
|
version_requirements: !ruby/object:Gem::Requirement
|
107
37
|
requirements:
|
@@ -109,13 +39,13 @@ dependencies:
|
|
109
39
|
- !ruby/object:Gem::Version
|
110
40
|
version: '0'
|
111
41
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
42
|
+
name: key-value-parser
|
113
43
|
requirement: !ruby/object:Gem::Requirement
|
114
44
|
requirements:
|
115
45
|
- - ">="
|
116
46
|
- !ruby/object:Gem::Version
|
117
47
|
version: '0'
|
118
|
-
type: :
|
48
|
+
type: :runtime
|
119
49
|
prerelease: false
|
120
50
|
version_requirements: !ruby/object:Gem::Requirement
|
121
51
|
requirements:
|
@@ -123,13 +53,13 @@ dependencies:
|
|
123
53
|
- !ruby/object:Gem::Version
|
124
54
|
version: '0'
|
125
55
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
56
|
+
name: shellwords
|
127
57
|
requirement: !ruby/object:Gem::Requirement
|
128
58
|
requirements:
|
129
59
|
- - ">="
|
130
60
|
- !ruby/object:Gem::Version
|
131
61
|
version: '0'
|
132
|
-
type: :
|
62
|
+
type: :runtime
|
133
63
|
prerelease: false
|
134
64
|
version_requirements: !ruby/object:Gem::Requirement
|
135
65
|
requirements:
|
@@ -137,7 +67,7 @@ dependencies:
|
|
137
67
|
- !ruby/object:Gem::Version
|
138
68
|
version: '0'
|
139
69
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
70
|
+
name: debase
|
141
71
|
requirement: !ruby/object:Gem::Requirement
|
142
72
|
requirements:
|
143
73
|
- - ">="
|
@@ -164,40 +94,40 @@ dependencies:
|
|
164
94
|
- - ">="
|
165
95
|
- !ruby/object:Gem::Version
|
166
96
|
version: '0'
|
167
|
-
description: Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable
|
168
|
-
text.
|
97
|
+
description: 'Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable
|
98
|
+
text. Can number lines.
|
99
|
+
|
100
|
+
'
|
169
101
|
email:
|
170
102
|
- mslinn@mslinn.com
|
171
103
|
executables: []
|
172
104
|
extensions: []
|
173
105
|
extra_rdoc_files: []
|
174
106
|
files:
|
175
|
-
- ".rspec"
|
176
107
|
- ".rubocop.yml"
|
177
|
-
- ".ruby-version"
|
178
|
-
- ".vscode/launch.json"
|
179
|
-
- ".vscode/settings.json"
|
180
108
|
- CHANGELOG.md
|
181
|
-
- Gemfile
|
182
|
-
- Gemfile.lock
|
183
109
|
- LICENSE.txt
|
184
110
|
- README.md
|
185
111
|
- Rakefile
|
186
|
-
- images/clippy.svg
|
187
|
-
- images/clippy.svg:Zone.Identifier
|
188
112
|
- jekyll_pre.gemspec
|
189
113
|
- lib/jekyll_pre.rb
|
190
114
|
- lib/jekyll_pre/version.rb
|
191
|
-
-
|
192
|
-
|
115
|
+
- spec/pre_spec.rb
|
116
|
+
- spec/spec_helper.rb
|
117
|
+
- spec/status_persistence.txt
|
118
|
+
homepage: https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#pre
|
193
119
|
licenses:
|
194
120
|
- MIT
|
195
121
|
metadata:
|
196
122
|
allowed_push_host: https://rubygems.org
|
197
|
-
|
198
|
-
source_code_uri: https://github.com/mslinn/jekyll_pre
|
123
|
+
bug_tracker_uri: https://github.com/mslinn/jekyll_pre/issues
|
199
124
|
changelog_uri: https://github.com/mslinn/jekyll_pre/CHANGELOG.md
|
200
|
-
|
125
|
+
homepage_uri: https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#pre
|
126
|
+
source_code_uri: https://github.com/mslinn/jekyll_pre
|
127
|
+
post_install_message: |2+
|
128
|
+
|
129
|
+
Thanks for installing jekyll_pre!
|
130
|
+
|
201
131
|
rdoc_options: []
|
202
132
|
require_paths:
|
203
133
|
- lib
|
@@ -212,9 +142,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
142
|
- !ruby/object:Gem::Version
|
213
143
|
version: '0'
|
214
144
|
requirements: []
|
215
|
-
rubygems_version: 3.
|
216
|
-
signing_key:
|
145
|
+
rubygems_version: 3.1.4
|
146
|
+
signing_key:
|
217
147
|
specification_version: 4
|
218
148
|
summary: Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable
|
219
|
-
text.
|
220
|
-
test_files:
|
149
|
+
text. Can number lines.
|
150
|
+
test_files:
|
151
|
+
- spec/pre_spec.rb
|
152
|
+
- spec/spec_helper.rb
|
153
|
+
- spec/status_persistence.txt
|
data/.rspec
DELETED
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.0.0
|
data/.vscode/launch.json
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
{
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
3
|
-
// Hover to view descriptions of existing attributes.
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
-
"version": "0.2.0",
|
6
|
-
"configurations": [
|
7
|
-
{
|
8
|
-
"cwd": "${workspaceRoot}",
|
9
|
-
"name": "Attach rdebug-ide",
|
10
|
-
"request": "attach",
|
11
|
-
"remoteHost": "localhost",
|
12
|
-
"remotePort": "1234",
|
13
|
-
"remoteWorkspaceRoot": "/",
|
14
|
-
"restart": true,
|
15
|
-
"showDebuggerOutput": true,
|
16
|
-
"stopOnEntry": true,
|
17
|
-
"type": "Ruby",
|
18
|
-
},
|
19
|
-
{
|
20
|
-
"args": [
|
21
|
-
"-I",
|
22
|
-
"${workspaceRoot}",
|
23
|
-
"${file}"
|
24
|
-
],
|
25
|
-
"cwd": "${workspaceRoot}",
|
26
|
-
"name": "RSpec - active spec file only",
|
27
|
-
"program": "${env:HOME}/.rbenv/shims/rspec",
|
28
|
-
"showDebuggerOutput": false,
|
29
|
-
"request": "launch",
|
30
|
-
"type": "Ruby",
|
31
|
-
"useBundler": true,
|
32
|
-
},
|
33
|
-
{
|
34
|
-
"args": [
|
35
|
-
"-I",
|
36
|
-
"${workspaceRoot}"
|
37
|
-
],
|
38
|
-
"cwd": "${workspaceRoot}",
|
39
|
-
"name": "RSpec - all",
|
40
|
-
"program": "${env:HOME}/.rbenv/shims/rspec",
|
41
|
-
"request": "launch",
|
42
|
-
"showDebuggerOutput": false,
|
43
|
-
"type": "Ruby",
|
44
|
-
"useBundler": true,
|
45
|
-
}
|
46
|
-
]
|
47
|
-
}
|
data/.vscode/settings.json
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
jekyll_pre (1.0.0)
|
5
|
-
jekyll
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
addressable (2.8.0)
|
11
|
-
public_suffix (>= 2.0.2, < 5.0)
|
12
|
-
ast (2.4.2)
|
13
|
-
coderay (1.1.3)
|
14
|
-
colorator (1.1.0)
|
15
|
-
concurrent-ruby (1.1.9)
|
16
|
-
debase (0.2.4.1)
|
17
|
-
debase-ruby_core_source (>= 0.10.2)
|
18
|
-
debase-ruby_core_source (0.10.14)
|
19
|
-
diff-lcs (1.5.0)
|
20
|
-
em-websocket (0.5.3)
|
21
|
-
eventmachine (>= 0.12.9)
|
22
|
-
http_parser.rb (~> 0)
|
23
|
-
eventmachine (1.2.7)
|
24
|
-
ffi (1.15.5)
|
25
|
-
forwardable-extended (2.6.0)
|
26
|
-
http_parser.rb (0.8.0)
|
27
|
-
i18n (1.10.0)
|
28
|
-
concurrent-ruby (~> 1.0)
|
29
|
-
jekyll (4.2.2)
|
30
|
-
addressable (~> 2.4)
|
31
|
-
colorator (~> 1.0)
|
32
|
-
em-websocket (~> 0.5)
|
33
|
-
i18n (~> 1.0)
|
34
|
-
jekyll-sass-converter (~> 2.0)
|
35
|
-
jekyll-watch (~> 2.0)
|
36
|
-
kramdown (~> 2.3)
|
37
|
-
kramdown-parser-gfm (~> 1.0)
|
38
|
-
liquid (~> 4.0)
|
39
|
-
mercenary (~> 0.4.0)
|
40
|
-
pathutil (~> 0.9)
|
41
|
-
rouge (~> 3.0)
|
42
|
-
safe_yaml (~> 1.0)
|
43
|
-
terminal-table (~> 2.0)
|
44
|
-
jekyll-sass-converter (2.2.0)
|
45
|
-
sassc (> 2.0.1, < 3.0)
|
46
|
-
jekyll-watch (2.2.1)
|
47
|
-
listen (~> 3.0)
|
48
|
-
kramdown (2.3.1)
|
49
|
-
rexml
|
50
|
-
kramdown-parser-gfm (1.1.0)
|
51
|
-
kramdown (~> 2.0)
|
52
|
-
liquid (4.0.3)
|
53
|
-
listen (3.7.1)
|
54
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
55
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
56
|
-
mercenary (0.4.0)
|
57
|
-
method_source (1.0.0)
|
58
|
-
parallel (1.21.0)
|
59
|
-
parser (3.1.1.0)
|
60
|
-
ast (~> 2.4.1)
|
61
|
-
pathutil (0.16.2)
|
62
|
-
forwardable-extended (~> 2.6)
|
63
|
-
pry (0.14.1)
|
64
|
-
coderay (~> 1.1)
|
65
|
-
method_source (~> 1.0)
|
66
|
-
public_suffix (4.0.6)
|
67
|
-
rainbow (3.1.1)
|
68
|
-
rake (13.0.6)
|
69
|
-
rb-fsevent (0.11.1)
|
70
|
-
rb-inotify (0.10.1)
|
71
|
-
ffi (~> 1.0)
|
72
|
-
regexp_parser (2.2.1)
|
73
|
-
rexml (3.2.5)
|
74
|
-
rouge (3.28.0)
|
75
|
-
rspec (3.11.0)
|
76
|
-
rspec-core (~> 3.11.0)
|
77
|
-
rspec-expectations (~> 3.11.0)
|
78
|
-
rspec-mocks (~> 3.11.0)
|
79
|
-
rspec-core (3.11.0)
|
80
|
-
rspec-support (~> 3.11.0)
|
81
|
-
rspec-expectations (3.11.0)
|
82
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
83
|
-
rspec-support (~> 3.11.0)
|
84
|
-
rspec-mocks (3.11.0)
|
85
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
86
|
-
rspec-support (~> 3.11.0)
|
87
|
-
rspec-support (3.11.0)
|
88
|
-
rubocop (1.18.4)
|
89
|
-
parallel (~> 1.10)
|
90
|
-
parser (>= 3.0.0.0)
|
91
|
-
rainbow (>= 2.2.2, < 4.0)
|
92
|
-
regexp_parser (>= 1.8, < 3.0)
|
93
|
-
rexml
|
94
|
-
rubocop-ast (>= 1.8.0, < 2.0)
|
95
|
-
ruby-progressbar (~> 1.7)
|
96
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
97
|
-
rubocop-ast (1.16.0)
|
98
|
-
parser (>= 3.1.1.0)
|
99
|
-
rubocop-jekyll (0.12.0)
|
100
|
-
rubocop (~> 1.18.0)
|
101
|
-
rubocop-performance (~> 1.2)
|
102
|
-
rubocop-performance (1.13.3)
|
103
|
-
rubocop (>= 1.7.0, < 2.0)
|
104
|
-
rubocop-ast (>= 0.4.0)
|
105
|
-
rubocop-rake (0.6.0)
|
106
|
-
rubocop (~> 1.0)
|
107
|
-
ruby-debug-ide (0.7.3)
|
108
|
-
rake (>= 0.8.1)
|
109
|
-
ruby-progressbar (1.11.0)
|
110
|
-
safe_yaml (1.0.5)
|
111
|
-
sassc (2.4.0)
|
112
|
-
ffi (~> 1.9)
|
113
|
-
terminal-table (2.0.0)
|
114
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
115
|
-
unicode-display_width (1.8.0)
|
116
|
-
|
117
|
-
PLATFORMS
|
118
|
-
x86_64-linux
|
119
|
-
|
120
|
-
DEPENDENCIES
|
121
|
-
bundler
|
122
|
-
debase
|
123
|
-
jekyll
|
124
|
-
jekyll_pre!
|
125
|
-
pry
|
126
|
-
rake (~> 13.0)
|
127
|
-
rspec
|
128
|
-
rubocop
|
129
|
-
rubocop-jekyll
|
130
|
-
rubocop-rake
|
131
|
-
ruby-debug-ide
|
132
|
-
|
133
|
-
BUNDLED WITH
|
134
|
-
2.3.8
|
data/images/clippy.svg
DELETED
@@ -1,3 +0,0 @@
|
|
1
|
-
<svg height="1024" width="896" xmlns="http://www.w3.org/2000/svg">
|
2
|
-
<path d="M128 768h256v64H128v-64z m320-384H128v64h320v-64z m128 192V448L384 640l192 192V704h320V576H576z m-288-64H128v64h160v-64zM128 704h160v-64H128v64z m576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z" />
|
3
|
-
</svg>
|
File without changes
|
data/sig/jekyll_pre.rbs
DELETED