jekyll_pre 1.0.0 → 1.1.0
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/.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
|
[](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
|
+

|
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
|
+

|
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
|
+

|
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