jekyll_plugin_support 0.3.0 → 0.3.1

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