jekyll_pre 1.4.6 → 1.4.8

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: 5b84c77d011c319901f75350aab6ecfcad105dcaa3068b478911150d6fccc4b4
4
- data.tar.gz: 6d6a2852fb621a33bb09b3ca9084be581b543f9022213728fbba5396f6864b67
3
+ metadata.gz: 485abe28bdb36d30646e8213ac2efdc676137aedf5338110dbf03afd298f6c26
4
+ data.tar.gz: 8b968700fa134af7785c4ae7eb83386231c8a8a43db80aa7a4d5a1df06707850
5
5
  SHA512:
6
- metadata.gz: d92536fab946b2917acfe3e9f442514a1be3ca1d7cf5b0073118451c71496a9f55e912b3e0e509d7ac40e3bea65e74d398e23ca05c5207589e214cacfb8d0453
7
- data.tar.gz: 3629760054527aac3d0447d65ba6ccf90873d750e1345d1214a19d915e8bbf5052346f7606d8e53b085d0a575dc24ac2b9bf290c94980dec17d5178f7a9b11bc
6
+ metadata.gz: fc4b43a1640ebd2b02c04a149cc463e86fb06d68ad676d8a9647f9b7a71ca3ac695ae216e2843dffcae96c1c57f3883241852990cb7fa6dd65d8d2120b558a2f
7
+ data.tar.gz: 73f99f9496fb90edb52e486b85426070906139cf5143e9cfeed1a954aee6f1247ba64e709f31d88cabf1aecccfc3bab1a9299cd3b5357bc8ce724581326fb9cf
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.4.8
4
+
5
+ * `id` option added.
6
+
7
+
8
+ ## 1.4.7
9
+
10
+ * `dark` and `bg_yellow` css tags now have black text.
11
+ * `exec` works again.
12
+
13
+
3
14
  ## 1.4.6
4
15
 
5
16
  * Made compatible with `jekyll_plugin_support` v1.0.0
data/README.md CHANGED
@@ -1,79 +1,89 @@
1
1
  # Jekyll_pre [![Gem Version](https://badge.fury.io/rb/jekyll_pre.svg)](https://badge.fury.io/rb/jekyll_pre)
2
2
 
3
- This Jekyll plugin provides 3 new Liquid tags that work together:
3
+ This Jekyll plugin provides 3 new Liquid tags that work together: `pre`, `noselect` and `exec`.
4
4
 
5
- * A `pre` block tag that can be displayed various ways.
5
+ ## Provided Tags
6
6
 
7
- ```html
8
- {% pre [Options] [free text label] %}
9
- Contents of pre tag
10
- {% endpre %}
11
- ```
7
+ ### `Pre`
12
8
 
13
- `Options` are:
9
+ A `pre` block tag can be displayed various ways.
14
10
 
15
- - `class="class1 class2"` – Apply CSS classes
16
- - `clear` – Line break after floating HTML elements
17
- - `copyButton` – Generate a copy button
18
- - `dark` – Dark mode
19
- - `dedent` &ndash; Remove leading spaces common to all lines, like Ruby's <<~ squiggly heredoc (default is false)
20
- - `label='This is a label'` &ndash; Apply text above `pre` tag.
21
- The `label` parameter value can also be specified in free text.
22
- For example, the following produce the same results:
11
+ ```html
12
+ {% pre [Options] [free text label] %}
13
+ Contents of pre tag
14
+ {% endpre %}
15
+ ```
23
16
 
24
- - {% pre label="This is a label" %}<br>Contents of pre tag<br>{% endpre %}
17
+ `Options` are:
25
18
 
26
- - {% pre This is a label %}<br>Contents of pre tag<br>{% endpre %}
27
- - `number` &ndash; Number the lines
28
- - `shell` &ndash; Equivalent to `label='Shell'`
29
- - `style` &ndash; Apply inline CSS styles
19
+ * `class="class1 class2"` &ndash; Apply CSS classes
20
+ * `clear` &ndash; Line break after floating HTML elements
21
+ * `copyButton` &ndash; Generate a copy button
22
+ * `dark` &ndash; Dark mode
23
+ * `dedent` &ndash; Remove leading spaces common to all lines, like Ruby's <<~ squiggly heredoc (default is false)
24
+ * `id` &dash; Generate an `id` with the given value for the generated output.
25
+ * `label='This is a label'` &ndash; Apply text above `pre` tag.
26
+ The `label` parameter value can also be specified in free text.
27
+ For example, the following produce the same results:
30
28
 
31
- The generated &lt;pre>&lt;/pre> tag has an `data-lt-active="false"` attribute, so
32
- [LanguageTool](https://forum.languagetool.org/t/avoid-spell-check-on-certain-html-inputs-manually/3944)
33
- does not check the spelling or grammar of the contents.
29
+ * {% pre label="This is a label" %}<br>Contents of pre tag<br>{% endpre %}
34
30
 
35
- * A `noselect` tag that can renders HTML content passed to it unselectable,
36
- and generates a <code>$</code> prompt if no content is provided.
31
+ * {% pre This is a label %}<br>Contents of pre tag<br>{% endpre %}
32
+ * `number` &ndash; Number the lines
33
+ * `shell` &ndash; Equivalent to `label='Shell'`
34
+ * `style` &ndash; Apply inline CSS styles
37
35
 
38
- ```html
39
- {% pre %}
40
- {% noselect [optional text string, defaults to $]%}Command
41
- {% noselect unselectable output goes here %}
42
- {% endpre %}
43
- ```
36
+ The generated &lt;pre>&lt;/pre> tag has an `data-lt-active="false"` attribute, so
37
+ [LanguageTool](https://forum.languagetool.org/t/avoid-spell-check-on-certain-html-inputs-manually/3944)
38
+ does not check the spelling or grammar of the contents.
44
39
 
45
- * An `exec` tag that executes shell commands and incorporates the command and its output into the content of the `pre` tag.
46
- Environment variables are evaluated,
47
- output data is escaped, whitespace is condensed, and wrapped in the same `unselectable` class as does `unselectable`.
48
40
 
49
- ```html
50
- {% exec [Options] [shell command] %}
51
- ```
41
+ ### `Noselect`
42
+
43
+ A `noselect` tag renders HTML content passed to it unselectable,
44
+ and generates a <code>$</code> prompt if no content is provided.
52
45
 
53
- `Options` are:
46
+ ```html
47
+ {% pre %}
48
+ {% noselect [optional text string, defaults to $]%}Command
49
+ {% noselect unselectable output goes here %}
50
+ {% endpre %}
51
+ ```
54
52
 
55
- - `cd="relative/or/absolute/directory"` - Change to specified directory before executing shell command.
56
- Environment variables in the directory path will be expanded.
57
- - `die_if_nonzero` – Set `false` to treat non-zero return codes as non-fatal.
58
- Instead of terminating Jekyll with an error message,
59
- the message will be displayed as an error by the Jekyll logger,
60
- and a red message will appear in place of the result on the web page.
61
- - `die_if_error` – Set `false` to treat exceptions generated by this plugin as non-fatal.
62
- Instead of terminating Jekyll with an error message, the message will be displayed as an error by the Jekyll logger.
63
- - `no_escape` – Do not HTML escape the result of running the shell command.
64
- - `no_stderr` - Discard STDERR output.
65
- This is helpful for suppressing annoying `groff` error messages that are emitted when the `exec` subcommand runs `man`.
66
- Use it like this:
53
+ ### `Exec`
67
54
 
68
- ```html
69
- {% pre copyButton dedent shell %}
70
- {% noselect %}{% exec no_stderr man netplan %}
71
- {% endpre %}
72
- ```
55
+ An `exec` tag executes shell commands and incorporates the command and its output into the content of the `pre` tag.
56
+ Environment variables are evaluated,
57
+ output data is escaped, whitespace is condensed, and wrapped in the same `unselectable` class as does `unselectable`.
73
58
 
74
- - `no_strip` – Do not remove leading and trailing whitespace from the result.
75
- - `wrapper_class` class applied to outer `div`.
76
- - `wrapper_style` style applied to outer `div`.
59
+ ```html
60
+ {% exec [Options] [shell command] %}
61
+ ```
62
+
63
+ `Options` are:
64
+
65
+ * `cd="relative/or/absolute/directory"` - Change to specified directory before executing shell command.
66
+ Environment variables in the directory path will be expanded.
67
+ * `die_if_nonzero` – Set `false` to treat non-zero return codes as non-fatal.
68
+ Instead of terminating Jekyll with an error message,
69
+ the message will be displayed as an error by the Jekyll logger,
70
+ and a red message will appear in place of the result on the web page.
71
+ * `die_if_error` – Set `false` to treat exceptions generated by this plugin as non-fatal.
72
+ Instead of terminating Jekyll with an error message, the message will be displayed as an error by the Jekyll logger.
73
+ * `no_escape` – Do not HTML escape the result of running the shell command.
74
+ * `no_stderr` - Discard STDERR output.
75
+ This is helpful for suppressing annoying `groff` error messages that are emitted when the `exec` subcommand runs `man`.
76
+ Use it like this:
77
+
78
+ ```html
79
+ {% pre copyButton dedent shell %}
80
+ {% noselect %}{% exec no_stderr man netplan %}
81
+ {% endpre %}
82
+ ```
83
+
84
+ * `no_strip` – Do not remove leading and trailing whitespace from the result.
85
+ * `wrapper_class` class applied to outer `div`.
86
+ * `wrapper_style` style applied to outer `div`.
77
87
 
78
88
 
79
89
  ## Keyword Options
@@ -192,6 +202,8 @@ More information is available on
192
202
 
193
203
  ## Installation
194
204
 
205
+ ### Gem
206
+
195
207
  Add this line to your application's Gemfile, within the `jekyll_plugins` group:
196
208
 
197
209
  ```ruby
@@ -207,6 +219,37 @@ $ bundle
207
219
  ```
208
220
 
209
221
 
222
+ ### CSS and Assets
223
+
224
+ Copy assets and CSS from the demo/ directory of the jekyll_pre GitHub project.
225
+
226
+ * Copy `demo/assets/images/clippy.svg` to a directory of the same name in your Jekyll project.
227
+ * Copy `demo/assets/css/jekyll_plugin_support.css` to your Jekyll project assets directory.
228
+ * Copy `demo/assets/css/shared_include_pre.css` to your Jekyll project assets directory.
229
+ * Copy `demo/assets/css/jekyll_pre.css` to your Jekyll project assets directory.
230
+ * Incorporate the CSS stylesheets into the appropriate layout in your Jekyll project:
231
+
232
+ ```html
233
+ {% assign nowMillis = site.time | date: '%s' %}
234
+ <link rel="stylesheet" href="{{ '/assets/css/jekyll_plugin_support.css?v=' | append: nowMillis }}" type="text/css">
235
+ <link rel="stylesheet" href="{{ '/assets/css/shared_include_pre.css?v=' | append: nowMillis }}" type="text/css">
236
+ <link rel="stylesheet" href="{{ '/assets/css/jekyll_pre.css?v=' | append: nowMillis }}" type="text/css">
237
+ ```
238
+
239
+
240
+ ### JavaScript
241
+
242
+ Copy `demo/assets/js/clipboard.min.js` from the `jekyll_flexible_include_plugin` GitHub project
243
+ to your Jekyll project’s JavaScript directory.
244
+
245
+ Modify the Jekyll layout or selected pages to load the JavaScript.
246
+ You can load it from your project, as shown below, or from a CDN.
247
+
248
+ ```html
249
+ <script defer src="/assets/js/clipboard.min.js"></script>
250
+ ```
251
+
252
+
210
253
  ## Usage
211
254
 
212
255
  The following examples are rendered on
data/lib/exec_tag.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'jekyll_plugin_support'
2
+ require 'open3'
2
3
  require 'rack/utils'
3
4
  require_relative 'jekyll_pre/version'
4
5
 
@@ -1,3 +1,3 @@
1
1
  module JekyllPreVersion
2
- VERSION = '1.4.6'.freeze
2
+ VERSION = '1.4.8'.freeze
3
3
  end
data/lib/pre_tag_block.rb CHANGED
@@ -56,6 +56,7 @@ module JekyllPreModule
56
56
  @dark = ' dark' if option 'dark'
57
57
  @dedent = option 'dedent'
58
58
  @highlight = option 'highlight'
59
+ @id = option 'id'
59
60
  @make_copy_button = option 'copyButton'
60
61
  @number_lines = option 'number'
61
62
  @style = option 'style'
@@ -106,7 +107,7 @@ module JekyllPreModule
106
107
  pre_content = "#{copy_button}#{content}"
107
108
  attribution = @helper.attribute if @helper.attribution
108
109
  <<~END_OUTPUT
109
- <div class="jekyll_pre#{@wrapper_class}" #{@wrapper_style}>
110
+ <div class="jekyll_pre#{@wrapper_class}" #{@wrapper_style}#{" id='#{@id}'" if @id}>
110
111
  #{@label}
111
112
  <pre data-lt-active='false' class='#{classes}'#{@style} id='#{pre_id}'>#{pre_content}</pre>
112
113
  #{attribution}
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.6
4
+ version: 1.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-26 00:00:00.000000000 Z
11
+ date: 2024-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  requirements: []
107
- rubygems_version: 3.5.16
107
+ rubygems_version: 3.5.17
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: Jekyll tags pre and noselect, for HTML <pre/> tag, prompts and unselectable