jekyll_plugin_support 0.5.0 → 0.5.2

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: ad3dd2c6f00993d77f9db69e844a1f70e52c21ac1ef66c47294cc7683dee5743
4
- data.tar.gz: 121436f415bbcb0cddffa4f9b9c26f735e899aa733df38749e5be2856d56d238
3
+ metadata.gz: 75b8116adff0e7869b3d9d05def0b7cb702b67860e596e3b9901dce1f43182e7
4
+ data.tar.gz: 86da2a9936cbeffb9f381d3d2031f58acee7f79d8efd7a37b2f4864c3201b20e
5
5
  SHA512:
6
- metadata.gz: b6d186e5d5347b7857cef3318a152a4a9db75e57ebe7dc244dd0574542b47b2c97c4ba55af03065099cca94c3ca3fb3e666268fb4e2427683b94a0c058388a7b
7
- data.tar.gz: 1529488c906cc7c687356f22b65223f347d75eb35f1747742466166921b266c4f172233eaf638bb06af7fdf6fcd93e67d0f6ca25cbde0f98139edb05fb07d64a
6
+ metadata.gz: f944740ed80b93a8d5fa6e0e4d3a4b0fe04761aa546d2dfea10b3929d7650daf87afdcd295b3698d80ded0f50209fe04a9c918914f216cfcabc335314da7454a
7
+ data.tar.gz: c5d1f11b7fb11900a94ba1430faca977794d84fd4073e793cc50128e922c401adaee2ea5ecdc2eef16b3ed1450e0ac98e5eeff1b8dc96fcc9fda1610b04dc2f8
data/.rubocop.yml CHANGED
@@ -1,5 +1,11 @@
1
+ require:
2
+ - rubocop-rspec
3
+ - rubocop-rake
4
+ # - rubocop-jekyll
5
+
1
6
  AllCops:
2
7
  Exclude:
8
+ - demo/_site/**/*
3
9
  - exe/**/*
4
10
  - vendor/**/*
5
11
  - Gemfile*
@@ -13,16 +19,24 @@ Gemspec/RequireMFA:
13
19
  Enabled: false
14
20
 
15
21
  Layout/HashAlignment:
16
- Enabled: false
22
+ EnforcedHashRocketStyle: table
17
23
 
18
24
  Layout/LineLength:
19
25
  Max: 150
20
26
 
27
+ Layout/CommentIndentation:
28
+ Exclude:
29
+ - spec/**/*
30
+
21
31
  Layout/MultilineMethodCallIndentation:
22
32
  Enabled: false
23
33
 
34
+ Lint/RedundantCopDisableDirective:
35
+ Exclude:
36
+ - jekyll_plugin_support.gemspec
37
+
24
38
  Metrics/AbcSize:
25
- Max: 20
39
+ Max: 30
26
40
 
27
41
  Metrics/BlockLength:
28
42
  Exclude:
@@ -31,11 +45,17 @@ Metrics/BlockLength:
31
45
  Metrics/MethodLength:
32
46
  Max: 25
33
47
 
34
- Style/FrozenStringLiteralComment:
35
- Enabled: false
48
+ RSpec/ExampleLength:
49
+ Max: 20
50
+
51
+ RSpec/MultipleExpectations:
52
+ Max: 15
36
53
 
37
54
  Style/Documentation:
38
55
  Enabled: false
39
56
 
57
+ Style/FrozenStringLiteralComment:
58
+ Enabled: false
59
+
40
60
  Style/TrailingCommaInHashLiteral:
41
61
  EnforcedStyleForMultiline: comma
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 0.5.2 / 2023-03-17
2
+ * Added `@helper.remaining_markup` public method, which returns remaining markup passed to your tag, after keyword and name/value parsing is complete.
3
+ * Finally wrote proper `rspec` tests.
4
+ * Finally documented argument parsing.
5
+ * Fixed bug introduced in v0.5.1 which did not remove elements from `@params`.
6
+
7
+ ## 0.5.1 / 2023-02-17
8
+ * `no_arg_parsing` optimization added.
9
+
1
10
  ## 0.5.0 / 2023-02-15
2
11
  * Plugins now register themselves
3
12
  * Plugins now report their name and version
data/README.md CHANGED
@@ -19,7 +19,7 @@ And then execute:
19
19
 
20
20
  $ bundle install
21
21
 
22
- ## Usage
22
+ ## General Usage
23
23
  `JekyllSupport::JekyllBlock` and `JekyllSupport::JekyllTag`
24
24
  provide support for Jekyll tag blocks and Jekyll tags, respectively.
25
25
  They are very similar in construction and usage.
@@ -47,8 +47,10 @@ For block tags, a single parameter is required, which contains any text enclosed
47
47
  Your implementation of `render_impl` can access `@page` and `@site`,
48
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
49
 
50
+ ### For a tag:
50
51
  ```ruby
51
- # For a tag:
52
+ require 'jekyll_plugin_support'
53
+
52
54
  module Jekyll
53
55
  class MyTag < JekyllSupport::JekyllTag
54
56
  VERSION = '0.1.0'.freeze
@@ -56,12 +58,16 @@ module Jekyll
56
58
  def render_impl
57
59
  # Your code here
58
60
  end
61
+
62
+ JekyllPluginHelper.register(self, 'demo_tag')
59
63
  end
60
64
  end
61
65
  ```
62
66
 
67
+ ### For a tag block:
63
68
  ```ruby
64
- # For a tag block:
69
+ require 'jekyll_plugin_support'
70
+
65
71
  module Jekyll
66
72
  class MyBlock < JekyllSupport::JekyllBlock
67
73
  VERSION = '0.1.0'.freeze
@@ -69,6 +75,8 @@ module Jekyll
69
75
  def render_impl(text)
70
76
  # Your code here
71
77
  end
78
+
79
+ JekyllPluginHelper.register(self, 'demo_block')
72
80
  end
73
81
  end
74
82
  ```
@@ -79,12 +87,15 @@ For example, if `lib/my_plugin/version.rb` looks like this:
79
87
 
80
88
  ```ruby
81
89
  module MyPluginVersion
82
- VERSION = '0.5.0'.freeze
90
+ VERSION = '0.5.1'.freeze
83
91
  end
84
92
  ```
85
93
 
86
94
  Then your plugin can incorporate the `VERSION` constant into your plugin like this:
87
95
  ```ruby
96
+ require 'jekyll_plugin_support'
97
+ require_relative 'my_block/version'
98
+
88
99
  module Jekyll
89
100
  class MyBlock < JekyllSupport::JekyllBlock
90
101
  include MyPluginVersion
@@ -92,10 +103,71 @@ module Jekyll
92
103
  def render_impl(text)
93
104
  # Your code here
94
105
  end
106
+
107
+ JekyllPluginHelper.register(self, 'demo_tag')
95
108
  end
96
109
  end
97
110
  ```
98
111
 
112
+ ### Argument Parsing
113
+ Tag arguments can be obtained within `render_impl`.
114
+ Both keyword options and name/value parameters are supported.
115
+
116
+ Both `JekyllTag` and `JekyllBlock` use the standard Ruby mechanism for parsing command-line options:
117
+ [`shellwords`](https://ruby-doc.org/stdlib-2.5.1/libdoc/shellwords/rdoc/Shellwords.html) and
118
+ [`key_value_parser`](https://www.rubydoc.info/gems/key-value-parser).
119
+
120
+ All your code has to do is to specify the keywords to search for in the string passed from the HTML page that your tag is embedded in.
121
+ The included `demo` website has examples; both [`demo/_plugins/demo_tag.rb`](demo/_plugins/demo_tag.rb) and
122
+ [`demo/_plugins/demo_block.rb`](demo/_plugins/demo_block.rb) contain the following:
123
+
124
+ ```ruby
125
+ @keyword1 = @helper.parameter_specified? 'keyword1'
126
+ @keyword2 = @helper.parameter_specified? 'keyword2'
127
+ @name1 = @helper.parameter_specified? 'name1'
128
+ @name2 = @helper.parameter_specified? 'name2'
129
+ ```
130
+
131
+ In [`demo/index.html`](demo/index.html), the following invoked the tag:
132
+
133
+ ```html
134
+ {% demo_tag keyword1 name1='value1' unreferenced_key unreferenced_name="unreferenced_value" %}
135
+ ```
136
+
137
+ The `demo/_plugins/demo_tag.rb` plugin uses `@helper.parameter_specified?` provided by
138
+ `jekyll_support_plugin` to parse the string passed to the tag, which is
139
+ `keyword1 name1='value1' unreferenced_key unreferenced_name="unreferenced_value"`.
140
+
141
+ - Because `keyword1` was referenced by `@helper.parameter_specified?` above,
142
+ that keyword option is removed from the argument string.
143
+ - Because the `name1` key/value parameter was referenced by `@helper.parameter_specified?` above,
144
+ that name/value pair is removed from the argument string.
145
+ - The remainder of the argument string is now `unreferenced_key unreferenced_name="unreferenced_value"`.
146
+
147
+ Name/value parameters can be quoted; if the value consists of only one token then it does not need to be quoted.
148
+ The following name/value parameters all have the same result:
149
+
150
+ - `pay_tuesday="true"`
151
+ - `pay_tuesday='true'`
152
+ - `pay_tuesday=true`
153
+ - `pay_tuesday`
154
+
155
+ The following also have the same result, however note that because the value has more than one token, quotes must be used:
156
+
157
+ - `pay_tuesday="maybe not"`
158
+ - `pay_tuesday='maybe not'`
159
+
160
+ #### Remaining Markup
161
+ After your plugin has parsed all the keyword options and name/value parameters,
162
+ call `@helper.remaining_markup` to obtain the remaining markup that was passed to your plugin.
163
+
164
+
165
+ ### `no_arg_parsing` Optimization
166
+ If your tag or block plugin only needs access to the raw arguments passed from the web page,
167
+ without tokenization, and you expect that the plugin might be invoked with large amounts of text,
168
+ derive your plugin from `JekyllBlockNoArgParsing` or `JekyllTagNoArgParsing`.
169
+
170
+
99
171
  ## Additional Information
100
172
  More information is available on
101
173
  [Mike Slinn&rsquo;s website](https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html).
@@ -128,7 +200,7 @@ jekyll_plugin_support (0.1.0)
128
200
  License: MIT
129
201
  Installed at: /home/mslinn/.gems
130
202
 
131
- Generates Jekyll logger with colored output.
203
+ Provides support for writing Jekyll plugins.
132
204
  ```
133
205
 
134
206
 
@@ -1,6 +1,6 @@
1
1
  require_relative 'lib/jekyll_plugin_support/version'
2
2
 
3
- Gem::Specification.new do |spec|
3
+ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
4
4
  github = 'https://github.com/mslinn/jekyll_plugin_support'
5
5
 
6
6
  spec.bindir = 'exe'
@@ -1,3 +1,3 @@
1
1
  module JekyllPluginSupportVersion
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.5.2'.freeze
3
3
  end
@@ -5,6 +5,12 @@ require_relative 'jekyll_plugin_support/version'
5
5
 
6
6
  # @author Copyright 2022 Michael Slinn
7
7
  # @license SPDX-License-Identifier: Apache-2.0``
8
+ module NoArgParsing
9
+ attr_accessor :no_arg_parsing
10
+
11
+ @no_arg_parsing = true
12
+ end
13
+
8
14
  module JekyllSupport
9
15
  # Base class for Jekyll block tags
10
16
  class JekyllBlock < Liquid::Block
@@ -22,9 +28,10 @@ module JekyllSupport
22
28
  def initialize(tag_name, argument_string, parse_context)
23
29
  super
24
30
  @tag_name = tag_name
25
- @logger = PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
26
- @helper = JekyllPluginHelper.new(tag_name, argument_string, @logger)
27
31
  @argument_string = argument_string
32
+ @logger = PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
33
+ @logger.debug { "#{self.class}: respond_to?(:no_arg_parsing) #{respond_to?(:no_arg_parsing) ? 'yes' : 'no'}." }
34
+ @helper = JekyllPluginHelper.new(tag_name, argument_string, @logger, respond_to?(:no_arg_parsing))
28
35
  end
29
36
 
30
37
  # Method prescribed by the Jekyll plugin lifecycle.
@@ -33,8 +40,7 @@ module JekyllSupport
33
40
  text = super
34
41
  @helper.liquid_context = liquid_context
35
42
 
36
- # The names of front matter variables are hash keys for @page
37
- @page = liquid_context.registers[:page] # Jekyll::Drops::DocumentDrop
43
+ @page = liquid_context.registers[:page] # Type Jekyll::Drops::DocumentDrop
38
44
  @site = liquid_context.registers[:site]
39
45
  @config = @site.config
40
46
  @envs = liquid_context.environments.first
@@ -51,6 +57,17 @@ module JekyllSupport
51
57
  end
52
58
  end
53
59
 
60
+ class JekyllBlockNoArgParsing < JekyllBlock
61
+ def initialize(tag_name, argument_string, parse_context)
62
+ class << self
63
+ include NoArgParsing
64
+ end
65
+
66
+ super
67
+ @logger.debug { "#{self.class}: respond_to?(:o_arg_parsing) #{respond_to?(:no_arg_parsing) ? 'yes' : 'no'}." }
68
+ end
69
+ end
70
+
54
71
  # Base class for Jekyll tags
55
72
  class JekyllTag < Liquid::Tag
56
73
  attr_reader :argument_string, :helper, :line_number, :logger, :page, :site
@@ -67,9 +84,10 @@ module JekyllSupport
67
84
  def initialize(tag_name, argument_string, parse_context)
68
85
  super
69
86
  @tag_name = tag_name
70
- @logger = PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
71
- @helper = JekyllPluginHelper.new(tag_name, argument_string, @logger)
72
87
  @argument_string = argument_string
88
+ @logger = PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
89
+ @logger.debug { "#{self.class}: respond_to?(:no_arg_parsing) #{respond_to?(:no_arg_parsing) ? 'yes' : 'no'}." }
90
+ @helper = JekyllPluginHelper.new(tag_name, argument_string, @logger, respond_to?(:no_arg_parsing))
73
91
  end
74
92
 
75
93
  # Method prescribed by the Jekyll plugin lifecycle.
@@ -94,7 +112,18 @@ module JekyllSupport
94
112
  # Jekyll plugins must override this method, not render, so their plugin can be tested more easily
95
113
  # @page and @site are available
96
114
  def render_impl
97
- abort "JekyllTag render_impl for tag #{@tag_name} must be overridden, but it was not."
115
+ abort "#{self.class}.render_impl for tag #{@tag_name} must be overridden, but it was not."
116
+ end
117
+ end
118
+
119
+ class JekyllTagNoArgParsing < JekyllTag
120
+ def initialize(tag_name, argument_string, parse_context)
121
+ class << self
122
+ include NoArgParsing
123
+ end
124
+
125
+ super
126
+ @logger.debug { "#{self.class}: respond_to?(:no_arg_parsing) #{respond_to?(:no_arg_parsing) ? 'yes' : 'no'}." }
98
127
  end
99
128
  end
100
129
  end
@@ -3,7 +3,7 @@ require 'key_value_parser'
3
3
 
4
4
  # Base class for all types of Jekyll plugin helpers
5
5
  class JekyllPluginHelper
6
- attr_reader :argv, :keys_values, :liquid_context, :logger, :markup, :params, :tag_name
6
+ attr_reader :argv, :keys_values, :liquid_context, :logger, :markup, :no_arg_parsing, :params, :tag_name
7
7
 
8
8
  # Expand an environment variable reference
9
9
  def self.expand_env(str, die_if_undefined: false)
@@ -45,20 +45,43 @@ class JekyllPluginHelper
45
45
  # This argument is used mostly to display localized error messages on Liquid built-in Tags and Filters.
46
46
  # See https://github.com/Shopify/liquid/wiki/Liquid-for-Programmers#create-your-own-tags
47
47
  # @return [void]
48
- def initialize(tag_name, markup, logger)
48
+ def initialize(tag_name, markup, logger, no_arg_parsing)
49
49
  @tag_name = tag_name
50
50
  @logger = logger
51
+ @no_arg_parsing = no_arg_parsing
51
52
  reinitialize(markup.strip)
52
53
  @logger.debug { "@keys_values='#{@keys_values}'" }
53
54
  end
54
55
 
56
+ def warn_fetch(variable)
57
+ abort "Error: Argument parsing was suppressed, but an attempt to obtain the value of #{variable} was made"
58
+ end
59
+
60
+ def warn_parse(meth)
61
+ abort "Error: Argument parsing was suppressed, but an attempt to invoke #{meth} was made"
62
+ end
63
+
55
64
  def reinitialize(markup)
56
65
  # @keys_values was a Hash[Symbol, String|Boolean] but now it is Hash[String, String|Boolean]
57
66
  @markup = markup
58
- @argv = Shellwords.split(self.class.expand_env(markup))
59
- @keys_values = KeyValueParser \
60
- .new({}, { array_values: false, normalize_keys: false, separator: /=/ }) \
61
- .parse(@argv)
67
+ if @no_arg_parsing
68
+ define_singleton_method(:argv) { warn_fetch :argv }
69
+ define_singleton_method(:keys_values) { warn_fetch :keys_values }
70
+ define_singleton_method(:params) { warn_fetch :params }
71
+ define_singleton_method(:parameter_specified?) { |_name| warn_parse(:parameter_specified?) }
72
+ define_singleton_method(:delete_parameter) { |_name| warn_parse(:delete_parameter) }
73
+ else
74
+ @argv = Shellwords.split(self.class.expand_env(markup))
75
+ @keys_values = KeyValueParser \
76
+ .new({}, { array_values: false, normalize_keys: false, separator: /=/ }) \
77
+ .parse(@argv)
78
+ @params = @keys_values.map { |k, _v| lookup_variable(k) } unless respond_to?(:no_arg_parsing) && no_arg_parsing
79
+ end
80
+ end
81
+
82
+ # Call this method to return the remaining markup after `parameter_specified?` has been invoked.
83
+ def remaining_markup
84
+ @argv.join(' ')
62
85
  end
63
86
 
64
87
  def delete_parameter(key)
@@ -106,7 +129,6 @@ class JekyllPluginHelper
106
129
  # Sets @params by replacing any Liquid variable names with their values
107
130
  def liquid_context=(context)
108
131
  @liquid_context = context
109
- @params = @keys_values.map { |k, _v| lookup_variable(k) }
110
132
  end
111
133
 
112
134
  def lookup_variable(symbol)
@@ -1,41 +1,60 @@
1
1
  require 'jekyll_plugin_logger'
2
- # require 'rspec/match_ignoring_whitespace'
2
+ require 'rspec/match_ignoring_whitespace'
3
3
  require_relative '../lib/jekyll_plugin_support'
4
4
  require_relative '../lib/jekyll_plugin_support_spec_support'
5
5
 
6
- # Lets get this party started
7
6
  class MyTest
8
- RSpec.describe JekyllSupport::JekyllBlock do
9
- let(:logger) do
10
- PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
7
+ RSpec.describe JekyllPluginHelper do
8
+ logger = PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
9
+
10
+ it 'parses quoted string options' do
11
+ helper = described_class.new('my_tag', "colors='blue or green' blah ick", logger, false)
12
+ expect(helper.keys_values.keys).to eq(%w[colors blah ick])
13
+
14
+ colors = helper.parameter_specified? 'colors'
15
+ expect(colors).to eq('blue or green')
16
+
17
+ expect(helper.keys_values.keys).to eq(%w[blah ick])
18
+ end
19
+
20
+ it 'parses unquoted string options' do
21
+ helper = described_class.new('my_tag', 'color=blue blah ick', logger, false)
22
+ expect(helper.keys_values.keys).to eq(%w[color blah ick])
23
+
24
+ color = helper.parameter_specified? 'color'
25
+ expect(color).to eq('blue')
26
+
27
+ expect(helper.keys_values.keys).to eq(%w[blah ick])
28
+ end
29
+
30
+ it 'parses quoted booleans' do
31
+ helper = described_class.new('my_tag', "bool1='true' bool2='false' blah ick", logger, false)
32
+ expect(helper.keys_values.keys).to eq(%w[bool1 bool2 blah ick])
33
+
34
+ bool1 = helper.parameter_specified? 'bool1'
35
+ expect(bool1).to be true
36
+
37
+ bool2 = helper.parameter_specified? 'bool2'
38
+ expect(bool2).to be false
39
+
40
+ expect(helper.keys_values.keys).to eq(%w[blah ick])
41
+
42
+ expect(helper.remaining_markup).to eq('blah ick')
11
43
  end
12
44
 
13
- let(:parse_context) { TestParseContext.new }
14
-
15
- # Example for plugin authors to refer to:
16
- #
17
- # let(:helper) do
18
- # JekyllTagHelper.new(
19
- # 'quote',
20
- # "cite='This is a citation' url='https://blah.com' This is the quoted text.",
21
- # logger
22
- # )
23
- # end
24
- #
25
- # fit 'is created properly' do
26
- # command_line = "cite='This is a citation' url='https://blah.com' This is the quoted text.".dup
27
- # quote = Jekyll::Quote.send(
28
- # :new,
29
- # 'quote',
30
- # command_line,
31
- # parse_context
32
- # )
33
- # result = quote.send(:render_impl, command_line)
34
- # expect(result).to match_ignoring_whitespace <<-END_RESULT
35
- # <div class='quote'>
36
- # This is the quoted text.
37
- # </div>
38
- # END_RESULT
39
- # end
45
+ it 'parses unquoted booleans' do
46
+ helper = described_class.new('my_tag', 'bool1=true bool2=false blah ick', logger, false)
47
+ expect(helper.keys_values.keys).to eq(%w[bool1 bool2 blah ick])
48
+
49
+ bool1 = helper.parameter_specified? 'bool1'
50
+ expect(bool1).to be true
51
+
52
+ bool2 = helper.parameter_specified? 'bool2'
53
+ expect(bool2).to be false
54
+
55
+ expect(helper.keys_values.keys).to eq(%w[blah ick])
56
+
57
+ expect(helper.remaining_markup).to eq('blah ick')
58
+ end
40
59
  end
41
60
  end
data/spec/spec_helper.rb CHANGED
@@ -3,7 +3,7 @@ require_relative '../lib/jekyll_plugin_support'
3
3
 
4
4
  RSpec.configure do |config|
5
5
  config.filter_run :focus
6
- config.order = 'random'
6
+ # config.order = 'random'
7
7
  config.run_all_when_everything_filtered = true
8
8
 
9
9
  # See https://relishapp.com/rspec/rspec-core/docs/command-line/only-failures
@@ -0,0 +1,6 @@
1
+ example_id | status | run_time |
2
+ ------------------------------------------------------------------------------------------------- | ------ | --------------- |
3
+ /mnt/_/work/jekyll/my_plugins/jekyll_plugin_support/spec/jekyll_block_plugin_support_spec.rb[1:1] | passed | 0.00335 seconds |
4
+ /mnt/_/work/jekyll/my_plugins/jekyll_plugin_support/spec/jekyll_block_plugin_support_spec.rb[1:2] | passed | 0.00019 seconds |
5
+ /mnt/_/work/jekyll/my_plugins/jekyll_plugin_support/spec/jekyll_block_plugin_support_spec.rb[1:3] | passed | 0.00337 seconds |
6
+ /mnt/_/work/jekyll/my_plugins/jekyll_plugin_support/spec/jekyll_block_plugin_support_spec.rb[1:4] | passed | 0.00026 seconds |
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.5.0
4
+ version: 0.5.2
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-02-16 00:00:00.000000000 Z
11
+ date: 2023-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -70,7 +70,6 @@ files:
70
70
  - lib/jekyll_plugin_support_helper.rb
71
71
  - lib/jekyll_plugin_support_spec_support.rb
72
72
  - spec/jekyll_block_plugin_support_spec.rb
73
- - spec/jekyll_tag_plugin_support_spec.rb
74
73
  - spec/spec_helper.rb
75
74
  - spec/status_persistence.txt
76
75
  homepage: https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#quote
@@ -106,7 +105,6 @@ specification_version: 4
106
105
  summary: Provides support for writing Jekyll plugins.
107
106
  test_files:
108
107
  - spec/jekyll_block_plugin_support_spec.rb
109
- - spec/jekyll_tag_plugin_support_spec.rb
110
108
  - spec/spec_helper.rb
111
109
  - spec/status_persistence.txt
112
110
  ...
@@ -1,41 +0,0 @@
1
- require 'jekyll_plugin_logger'
2
- # require 'rspec/match_ignoring_whitespace'
3
- require_relative '../lib/jekyll_plugin_support'
4
- require_relative '../lib/jekyll_plugin_support_spec_support'
5
-
6
- # Lets get this party started
7
- class MyTest
8
- RSpec.describe JekyllSupport::JekyllTag do
9
- let(:logger) do
10
- PluginMetaLogger.instance.new_logger(self, PluginMetaLogger.instance.config)
11
- end
12
-
13
- let(:parse_context) { TestParseContext.new }
14
-
15
- # Example for plugin authors to refer to:
16
- #
17
- # let(:helper) do
18
- # JekyllTagHelper.new(
19
- # 'quote',
20
- # "cite='This is a citation' url='https://blah.com' This is the quoted text.",
21
- # logger
22
- # )
23
- # end
24
- #
25
- # fit 'is created properly' do
26
- # command_line = "cite='This is a citation' url='https://blah.com' This is the quoted text.".dup
27
- # quote = Jekyll::Quote.send(
28
- # :new,
29
- # 'quote',
30
- # command_line,
31
- # parse_context
32
- # )
33
- # result = quote.send(:render_impl, command_line)
34
- # expect(result).to match_ignoring_whitespace <<-END_RESULT
35
- # <div class='quote'>
36
- # This is the quoted text.
37
- # </div>
38
- # END_RESULT
39
- # end
40
- end
41
- end