jekyll_plugin_support 0.3.0 → 0.3.1

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: 1a564d99fd3a1f1ec146bc48a9ad2afbb77c9d35b3af011930e36618c29e15b4
4
- data.tar.gz: 4888e9972bfad0307f2391079f5a815ea4ffc2588d570738362b310220be2a73
3
+ metadata.gz: 978c34638bfb0bae5b74952bb29d48dd15a8afe491406239fb05050efc78e5c2
4
+ data.tar.gz: fc570654d04aa4abdd8ed28fc551314fe36c0fb35ee1a14ce3ba98682298b084
5
5
  SHA512:
6
- metadata.gz: 485072f986cb15a89b0b70070b992b73e16e35bdea8003e82a770fed2918ab21f70470314beb65ca4b08343db5b41fd9237a99e686d06d1619d13502ed1e9f49
7
- data.tar.gz: '0780bed92c05b1351cb67a9859e7d25c0f96c57d9cd7a3ee1b5f9e6678dde11ef72f7e4b0623f1d5143d9905a357e252fa641e38fbea1d147e0399cf38051bae'
6
+ metadata.gz: b1d27d2008c53695c6c2a2fa85b6519bf4f95a6106a84e7ff9ffd45b3f68187159d1a88cff4c4a3c9911b8c16f28c87f33696d41b75ddbf03c07ca6f7121ee0e
7
+ data.tar.gz: a4729e61ca106f2f5ee8ead49771dde0a08bd55ea96e254c4fe5efd1f49a8fe82f964eb68322cedadf7061f94a982626c686ef3d5ce22914a6761a03453e1f1a
data/.rubocop.yml CHANGED
@@ -14,3 +14,6 @@ Layout/LineLength:
14
14
 
15
15
  Layout/MultilineMethodCallIndentation:
16
16
  Enabled: false
17
+
18
+ Style/FrozenStringLiteralComment:
19
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,8 +1,11 @@
1
- ## 0.1.0 / 2023-01-10
2
- * Initial version; only supports Jekyll block tags
1
+ ## 0.3.1 / 2023-02-07
2
+ * `JekyllBlock.render_impl` and `JekyllTag.render_impl` now define `@page` and `@site`.
3
+
4
+ ## 0.3.0 / 2023-01-14
5
+ * Added support for tags, which should subclass JekyllSupport::JekyllTag
3
6
 
4
7
  ## 0.2.0 / 2023-01-12
5
8
  * Refactored
6
9
 
7
- ## 0.3.0 / 2023-01-14
8
- * Added support for tags, which should subclass JekyllSupport::JekyllTag
10
+ ## 0.1.0 / 2023-01-10
11
+ * Initial version; only supports Jekyll block tags
data/README.md CHANGED
@@ -10,13 +10,68 @@ At present, only Jekyll tags and blocks are supported.
10
10
  Add this line to your Jekyll plugin's Gemfile:
11
11
 
12
12
  ```ruby
13
- gem 'jekyll_plugin_support'
13
+ group :jekyll_plugins do
14
+ gem 'jekyll_plugin_support'
15
+ end
14
16
  ```
15
17
 
16
18
  And then execute:
17
19
 
18
20
  $ bundle install
19
21
 
22
+ ## Usage
23
+ `JekyllSupport::JekyllBlock` and `JekyllSupport::JekyllTag`
24
+ provide support for Jekyll tag blocks and Jekyll tags, respectively.
25
+ They are very similar in construction and usage.
26
+
27
+ Instead of subclassing your Jekyll block tag class from `Liquid::Block`,
28
+ subclass from `JekyllSupport::JekyllBlock` instead.
29
+ Similarly, instead of subclassing your Jekyll tag class from `Liquid::Tag`,
30
+ subclass from `JekyllSupport::JekyllTag` instead.
31
+
32
+ Both `JekyllSupport` classes instantiate new instances of
33
+ [`PluginMetaLogger`](https://github.com/mslinn/jekyll_plugin_logger) (called `@logger`) and
34
+ [`JekyllPluginHelper`](lib/jekyll_plugin_support_helper.rb) (called `@helper`).
35
+
36
+ `JekyllPluginHelper` defines a generic `initialize` method,
37
+ and your tag or block tag class should not override it.
38
+ Also, your tag or block tag class should not define a method called `render`,
39
+ because `JekyllBlock.initialize` defines one, which creates variables called
40
+ [`@page`](https://jekyllrb.com/docs/variables/#page-variables) and
41
+ [`@site`](https://jekyllrb.com/docs/variables/#site-variables).
42
+
43
+ Instead, define a method called `render_impl`.
44
+ For tags, `render_impl` does not accept any parameters.
45
+ For block tags, a single parameter is required, which contains any text enclosed within your block.
46
+
47
+ Your implementation of `render_impl` can access `@page` and `@site`,
48
+ and can parse parameters passed to the tag / block tag, [as described here](https://mslinn.com/jekyll/10100-jekyll-plugin-background.html#params):
49
+
50
+ ```ruby
51
+ # For a tag:
52
+ module Jekyll
53
+ class Quote < JekyllSupport::JekyllTag
54
+ def render_impl
55
+ site_data = @site.data
56
+ @break = @helper.parameter_specified? 'break'
57
+ # ...
58
+ end
59
+ end
60
+ end
61
+ ```
62
+
63
+ ```ruby
64
+ # For a tag block:
65
+ module Jekyll
66
+ class Quote < JekyllSupport::JekyllBlock
67
+ def render_impl(text)
68
+ site_url = @site.url
69
+ @break = @helper.parameter_specified? 'break'
70
+ # ...
71
+ end
72
+ end
73
+ end
74
+ ```
20
75
 
21
76
  ## Additional Information
22
77
  More information is available on
@@ -1,3 +1,3 @@
1
1
  module JekyllQuoteVersion
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'.freeze
3
3
  end
@@ -29,19 +29,21 @@ module JekyllSupport
29
29
 
30
30
  # Method prescribed by the Jekyll plugin lifecycle.
31
31
  # @return [String]
32
- def render(context)
32
+ def render(liquid_context)
33
33
  text = super
34
+ @page = liquid_context.registers[:page]
35
+ @site = liquid_context.registers[:site]
34
36
  render_impl text
35
37
  end
36
38
 
37
39
  # Jekyll plugins should override this method, not render, so their plugin can be tested more easily
40
+ # @page and @site are available
38
41
  # @return [String]
39
42
  def render_impl(text)
40
43
  text
41
44
  end
42
45
  end
43
46
 
44
-
45
47
  # Base class for Jekyll tags
46
48
  class JekyllTag < Liquid::Tag
47
49
  attr_reader :argument_string, :helper, :line_number, :logger, :page, :site
@@ -64,11 +66,14 @@ module JekyllSupport
64
66
  end
65
67
 
66
68
  # Method prescribed by the Jekyll plugin lifecycle.
67
- def render(context)
69
+ def render(liquid_context)
70
+ @page = liquid_context.registers[:page]
71
+ @site = liquid_context.registers[:site]
68
72
  render_impl
69
73
  end
70
74
 
71
75
  # Jekyll plugins must override this method, not render, so their plugin can be tested more easily
76
+ # @page and @site are available
72
77
  def render_impl
73
78
  abort "JekyllTag render_impl for tag #{@tag_name} must be overridden, but it was not."
74
79
  end
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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-16 00:00:00.000000000 Z
11
+ date: 2023-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll