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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ffe453b56e03d1e78bce68257b601f3361c5e9f39e81842bd2bc3b40f64aaddf
4
- data.tar.gz: be4f574ee5a94854d6c28ea225d0a08f44319639b48d569e48d65e627c966c45
3
+ metadata.gz: 2a4c55485eec7e53914d0be22bc4fcd6701e0ec9fa2137193953e4cf8b1013d5
4
+ data.tar.gz: 9a150916aff92e21ac2ed5bd378018dc864cbeaeb5dd1792bcec58fd47bed40c
5
5
  SHA512:
6
- metadata.gz: ea9a405d3fac946a19a6c306e188c1bec3b670398f6099d5de0ec35d40b7258ad559e300571c3291b965f17d647fb6eec045715acb3d23bd5e3bbfa6f35711c0
7
- data.tar.gz: c77014a0cb77dcff1fcd63018d043b1b2dc4497028a03d8112b49d712bb1bd1c91cb542f297924bc05adf1cc23c0a9669ff41c99cbbbbef0cbf934cc10c63e0c
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 is a Jekyll plugin that provides two Liquid tags: `pre` and `noselect` that frequently work together:
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
- * A `pre` block tag that can optionally display a copy button.
8
- * A `noselect` tag that can renders HTML content passed to it unselectable.
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
- Unfortunately markdown does not support CSS styles, so the HTML rendering of the examples is compromised.
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
- ### Usage Example 2
77
+
78
+ ### Example 2
58
79
  This example generates a copy button and does not demonstrate `noselect`.
59
80
 
60
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="idb92b40eba687">{% pre copyButton %}Contents of pre tag
61
- {% endpre %}</pre>
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">&lt;pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='id6a831a3e8992'&gt;&lt;button class='copyBtn' data-clipboard-target='#id6a831a3e8992' title='Copy to clipboard'&gt;&lt;img src='images/clippy.svg' alt='Copy to clipboard' style='width: 13px'&gt;&lt;/button&gt;Contents of pre tag&lt;/pre&gt;</pre>
65
87
 
66
- Which renders as:
67
- <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>
88
+ Which renders as (note the clipboard icon at the far right):
89
+ ![example 2](images/usage2example.png)
90
+
68
91
 
69
- ### Usage Example 3
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id59feb02aa3b9">{% pre copyButton %}
94
+ ```
95
+ {% pre copyButton %}
72
96
  {% noselect %}Contents of pre tag
73
- {% endpre %}</pre>
97
+ {% endpre %}
98
+ ```
74
99
 
75
100
  Generates:
76
101
 
77
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id7935a9ec84be">&lt;pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='id8103adbe3dc2'&gt;&lt;button class='copyBtn' data-clipboard-target='#id8103adbe3dc2' title='Copy to clipboard'&gt;&lt;img src='images/clippy.svg' alt='Copy to clipboard' style='width: 13px'&gt;&lt;/button&gt;&lt;span class='unselectable'&gt;$ &lt;/span&gt;Contents of pre tag&lt;/pre&gt;</pre>
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id8103adbe3dc2"><button class="copyBtn" data-clipboard-target="#id8103adbe3dc2" title="Copy to clipboard"><img src="images/clippy.svg" alt="Copy to clipboard" style="width: 13px"></button><span class="unselectable">$ </span>Contents of pre tag</pre>
108
+ ![example 3](images/usage3example.png)
109
+
82
110
 
83
- ### Usage Example 4
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id0f0a8de5ecc5">{% pre copyButton %}{% noselect &gt;&gt;&gt; %}Contents of pre tag
116
+ ```
117
+ {% pre copyButton %}
118
+ {% noselect &gt;&gt;&gt; %}Contents of pre tag
89
119
  {% noselect How now brown cow%}
90
- {% endpre %}</pre>
120
+ {% endpre %}
121
+ ```
91
122
 
92
123
  Generates:
93
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id3095048e2ec2">&lt;pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='idcb8035dc3766'&gt;&lt;button class='copyBtn' data-clipboard-target='#idcb8035dc3766' title='Copy to clipboard'&gt;&lt;img src='images/clippy.svg' alt='Copy to clipboard' style='width: 13px'&gt;&lt;/button&gt;&lt;span class='unselectable'&gt;&gt;&gt;&gt; &lt;/span&gt;contents of pre tag
94
- &lt;span class='unselectable'&gt;How now brown cow&lt;/span&gt;&lt;/pre&gt;</pre>
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="idcb8035dc3766"><button class="copyBtn" data-clipboard-target="#idcb8035dc3766" title="Copy to clipboard"><img src="images/clippy.svg" alt="Copy to clipboard" style="width: 13px"></button><span class="unselectable">&gt;&gt;&gt; </span>contents of pre tag
99
- <span class="unselectable">How now brown cow</span></pre>
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id68ec1ab4d04c"><button class="copyBtn" data-clipboard-target="#id68ec1ab4d04c" title="Copy to clipboard"><img src="images/clippy.svg" alt="Copy to clipboard" style="width: 13px"></button>.maxOneScreenHigh {
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
- }</pre>
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
- <pre data-lt-active="false" class="maxOneScreenHigh copyContainer" id="id1ad3df5c4a2f">
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 %}</pre>
164
+ {% endpre %}
165
+ ```
129
166
 
130
167
 
131
168
  ## Development
132
169
 
133
- After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
170
+ After checking out the repo, run `bin/setup` to install dependencies.
134
171
 
135
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
172
+ You can also run `bin/console` for an interactive prompt that will allow you to experiment.
136
173
 
137
174
 
138
- ## Contributing
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
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/jekyll_pre.
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
@@ -1,4 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
- task default: %i[]
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ task :default => :spec
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
- spec.name = "jekyll_pre"
7
- spec.version = JekyllPre::VERSION
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.summary = "Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable text."
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.required_ruby_version = ">= 2.6.0"
16
-
17
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
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
- spec.metadata["homepage_uri"] = spec.homepage
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
- # Specify which files should be added to the gem when it is released.
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 'jekyll'
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 'bundler'
37
- spec.add_development_dependency 'debase'
38
- spec.add_development_dependency 'jekyll'
39
- spec.add_development_dependency 'pry'
40
- spec.add_development_dependency 'rake'
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllPre
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
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 JekyllPre
6
- class Error < StandardError; end
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
- def self.make_pre(make_copy_button, label, content)
38
- label = if label.to_s.empty?
39
- ''
40
- elsif label.to_s.downcase.strip == 'shell'
41
- "<div class='codeLabel unselectable' data-lt-active='false'>Shell</div>"
42
- else
43
- "<div class='codeLabel unselectable' data-lt-active='false'>#{label}</div>"
44
- end
45
- pre_id = "id#{SecureRandom.hex(6)}"
46
- copy_button = make_copy_button ? PreTagBlock.make_copy_button(pre_id) : ''
47
- "#{label}<pre data-lt-active='false' class='maxOneScreenHigh copyContainer' id='#{pre_id}'>#{copy_button}#{content.strip}</pre>"
48
- end
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
- # @param tag_name [String] is the name of the tag, which we already know.
51
- # @param text [Hash, String, Liquid::Tag::Parser] the arguments from the web page.
52
- # @param tokens [Liquid::ParseContext] tokenized command line
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
- # Method prescribed by the Jekyll plugin lifecycle.
65
- # @return [String]
66
- def render(context)
67
- content = super
68
- # puts "@make_copy_button = '#{@make_copy_button}'; @label = '#{@label}'"
69
- PreTagBlock.make_pre(@make_copy_button, @label, content)
70
- end
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
- # """\\{% noselect %} or \\{% noselect this all gets copied.
74
- # Also, space before the closing percent is signficant %}"""
75
- class UnselectableTag < Liquid::Tag
76
- def initialize(tag_name, text, tokens)
77
- super(tag_name, text, tokens)
78
- @content = text
79
- # puts "UnselectableTag: content1= '#{@content}'"
80
- @content = '$ ' if @content.nil? || @content.empty?
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
- def render(_)
85
- "<span class='unselectable'>#{@content}</span>"
86
- end
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
- Liquid::Template.register_tag('pre', JekyllPre::PreTagBlock)
91
- Liquid::Template.register_tag('noselect', JekyllPre::UnselectableTag)
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
@@ -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
@@ -0,0 +1,4 @@
1
+ example_id | status | run_time |
2
+ ----------------------- | ------ | --------------- |
3
+ ./spec/pre_spec.rb[1:1] | passed | 0.00253 seconds |
4
+ ./spec/pre_spec.rb[1:2] | passed | 0.00203 seconds |
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.0.0
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-13 00:00:00.000000000 Z
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: '0'
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: '0'
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: rake
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: :development
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: rubocop
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: :development
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: rubocop-jekyll
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: :development
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: rubocop-rake
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
- - sig/jekyll_pre.rbs
192
- homepage: https://github.com/mslinn/jekyll_pre
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
- homepage_uri: https://github.com/mslinn/jekyll_pre
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
- post_install_message:
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.2.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
@@ -1,2 +0,0 @@
1
- --color
2
- --format progress
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
- }
@@ -1,3 +0,0 @@
1
- {
2
- "ruby.rubocop.configFilePath": ".rubocop.yml"
3
- }
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Specify your gem's dependencies in jekyll_pre.gemspec
6
- gemspec
7
-
8
- gem "rake", "~> 13.0"
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
@@ -1,4 +0,0 @@
1
- module JekyllPre
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
- end