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