jekyll_plugin_support 0.8.3 → 0.8.4

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: c9953a9a01da37cddcb43f16784ba12afbb90eeea9df7b7346b6593e7d7b483e
4
- data.tar.gz: 69d7a9885fc9d3dfaa8308f8a4cfc989a42e3a0b6e5af76ce65a9b0b7dd081b1
3
+ metadata.gz: 0d96d3f40ca733d7fa1322a8fbec0a70131029baa063a32c55fdc003efcf0d24
4
+ data.tar.gz: 2ebb3e46419147a2f1b60e2024fd7118617be61c6cd8f359e448aad2279bf92f
5
5
  SHA512:
6
- metadata.gz: ca1c2618a298fda325a4aa4a4b9d62e1c16d1ead64c1737390aa73fdd4326f7c7d6f3830155a6c6aa7c286fc50ec376c8c4ffcd4ba6698b00f1ce85769217368
7
- data.tar.gz: 32702f17fbfb0bcc87df9f6f7033b210adade31c67d29aaa4daa7ebc0d3c4677a885ec088404caa787f00697d4d81f1e017108e4fc6c2a5ec9f5f19a5c16839a
6
+ metadata.gz: f4022b99e9b6b1eef55be72e3cbe6a8d99af12e6ec0004a1e2c610325c726ffdf5cef042ce8687eb9be4e352fc7372e3a51f7053e39303cb06ff2dd5f180d530
7
+ data.tar.gz: 6d6b5d1221e8985a02bc8bfe32d6411cb516aa4376a0a3f27d9dc6d7b66bee43ce41c02b026e102f9b5035f0b6b116cf8983e1b8b6cea3847a5c2d70733cff69
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Change Log
2
2
 
3
3
 
4
+ ## 0.8.4 / 2024-02-27
5
+
6
+ * Problem in error handler fixed.
7
+
8
+
4
9
  ## 0.8.3 / 2024-01-05
5
10
 
6
11
  * Variables defined in front matter of layouts and pages are now handled.
data/README.md CHANGED
@@ -26,6 +26,27 @@ Plugins that use `jekyll_plugin_support` include:
26
26
  [`jekyll_plugin_support`](https://github.com/mslinn/jekyll_plugin_support/tree/master/demo/_plugins)
27
27
 
28
28
 
29
+ ## Features
30
+
31
+ Jekyll plugin tags created from `jekyll_plugin_support` framework automatically have the following features:
32
+
33
+ 1. Boilerplate is removed, so you can focus on the required logic and output.
34
+ 2. Arguments are parsed for keywords and name/value parameters.
35
+ 3. Single or double quotes can be used for arguments and parameters.
36
+ 4. Important variables are defined.
37
+ 5. Error handling is standardized, and includes an automatically defined error type
38
+ and corresponding CSS tag for each Jekyll tag.
39
+ 6. Liquid variables can be passed as parameters to tags, and used in the body of block tags.
40
+ 7. Registration is automatic, and important configuration details are reported during registration.
41
+ 8. A custom logger is created for each tag, independent of the default Jekyll logger.
42
+ 9. Variables can be defined in `_config.yml`, and optionally have different values for debug mode,
43
+ production mode and test mode.
44
+ 10. An attribution message is available.
45
+ 11. Draft pages are automatically detected.
46
+
47
+ In addition, a demonstration website is provided for easy testing of your plugins.
48
+
49
+
29
50
  ## Installation
30
51
 
31
52
  `Jekyll_plugin_support` is packaged as a Ruby gem.
@@ -297,11 +318,14 @@ After your plugin has parsed all the keyword options and name/value parameters,
297
318
  call `@helper.remaining_markup` to obtain the remaining markup that was passed to your plugin.
298
319
 
299
320
 
300
- ## Liquid Variable Definitions
321
+ ## Configuration Variables
301
322
 
302
323
  `jekyll_plugin_support` provides support for
303
324
  [Liquid variables](https://shopify.github.io/liquid/tags/variable/)
304
325
  to be defined in `_config.yml`, in a section called `liquid-vars`.
326
+ These variables behave exactly like Liquid variables defined by `assign` and `capture` expressions,
327
+ except they are global in scope; these variables are available in every Jekyll web page.
328
+
305
329
  The following `_config.yml` fragment defines 3 variables called `var1`, `var2` and `var3`:
306
330
 
307
331
  ```yaml
@@ -312,18 +336,44 @@ liquid-vars:
312
336
  ```
313
337
 
314
338
  Liquid variables defined in this manner are intended to be embedded in a webpage.
315
- They are expanded transparently, and can be referenced like any other Liquid variable.
316
- These Liquid variables can be passed as parameters to other plugins and includes.
339
+ They are can be used like any other Liquid variable.
340
+
341
+
342
+ ### Variable Expansion
343
+
344
+ Jekyll expands Liquid variable references during the page rendering process.
345
+ Jekyll does not expand Liquid variable references passes as parameters to tag and block plugins, however.
346
+ However, plugins made from `jekyll_plugin_support` automatically
347
+ expand all types of variable references passed as parameters and in block tag bodies.
317
348
 
318
- In the following example web page, the Liquid variable called `var1` is expanded as part of the displayed page.
319
- Liquid variables `var1` and `var2` are expanded and passed to the `my_plugin` plugin.
349
+ `Jekyll_plugin_support` tag and block plugins expand the following types of variables:
350
+
351
+ * Jekyll_plugin_support configuration variables, discussed above.
352
+ * Jekyll [page](https://jekyllrb.com/docs/variables/#page-variables) and
353
+ [layout](https://jekyllrb.com/docs/layouts/#variables) variables.
354
+ * Inline Liquid variables (defined in [assign](https://shopify.dev/docs/api/liquid/tags/assign) and [capture](https://shopify.dev/docs/api/liquid/tags/capture) statements).
355
+
356
+ In the following example web page, Jekyll expands the `var1` reference within the `<p></p>` tag,
357
+ but not the `var1` or `var2` references passed to `my_plugin`.
320
358
 
321
359
  ```html
322
- This is the value of var1: {{var1}}.
360
+ <p>This is the value of var1: {{var1}}.</p>
323
361
 
324
362
  {% my_plugin param1="{{var1}}" param2="{{var2}}" %}
325
363
  ```
326
364
 
365
+ Assuming that `my_plugin` was written as a `jekyll_plugin_support` plugin,
366
+ all variable references in its parameters are expanded.
367
+ Thus, the above is interpreted as follows when `my_plugin` is evaluated during the Jekyll rendering process:
368
+ </p>
369
+
370
+ ```html
371
+ <p>This is the value of var1: value1.</p>
372
+
373
+ {% my_plugin param1="value1" param2="value 2" %}
374
+ ```
375
+
376
+
327
377
  `Jekyll_plugin_support` expands most of the [plugin variables described above](#predefined-variables),
328
378
  replacing Liquid variable references with their values.
329
379
  The exception is `@argument_string`, which is not expanded.
@@ -1,3 +1,3 @@
1
1
  module JekyllPluginSupportVersion
2
- VERSION = '0.8.3'.freeze
2
+ VERSION = '0.8.4'.freeze
3
3
  end
@@ -63,7 +63,9 @@ module JekyllSupport
63
63
  render_impl
64
64
  rescue StandardError => e
65
65
  e.shorten_backtrace
66
- @logger.error { "#{e.class} on line #{@line_number} of #{e.backtrace[0].split(':').first} while processing #{tag_name} - #{e.message}" }
66
+ file_name = e.backtrace[0]&.split(':')&.first
67
+ of_file_name = "of #{file_name} " if file_name
68
+ @logger.error { "#{e.class} on line #{@line_number} #{of_file_name}while processing #{tag_name} - #{e.message}" }
67
69
  binding.pry if @pry_on_standard_error # rubocop:disable Lint/Debugger
68
70
  raise e if @die_on_standard_error
69
71
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll_plugin_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
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-01-06 00:00:00.000000000 Z
11
+ date: 2024-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facets
@@ -139,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  requirements: []
142
- rubygems_version: 3.3.7
142
+ rubygems_version: 3.5.6
143
143
  signing_key:
144
144
  specification_version: 4
145
145
  summary: Provides a framework for writing and testing Jekyll plugins