sleeping_king_studios-docs 0.1.0 → 0.2.0

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.
Files changed (22) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/lib/sleeping_king_studios/docs/data/see_tags/class_method_tag.rb +1 -1
  4. data/lib/sleeping_king_studios/docs/data/see_tags/constant_tag.rb +1 -1
  5. data/lib/sleeping_king_studios/docs/data/see_tags/definition_tag.rb +1 -1
  6. data/lib/sleeping_king_studios/docs/data/see_tags/instance_method_tag.rb +1 -1
  7. data/lib/sleeping_king_studios/docs/data/see_tags/reference_tag.rb +3 -3
  8. data/lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters/anchorize_slug.rb +27 -0
  9. data/lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters.rb +11 -0
  10. data/lib/sleeping_king_studios/docs/jekyll/plugins/liquid.rb +11 -0
  11. data/lib/sleeping_king_studios/docs/jekyll/plugins/required.rb +10 -0
  12. data/lib/sleeping_king_studios/docs/jekyll/plugins.rb +11 -0
  13. data/lib/sleeping_king_studios/docs/jekyll.rb +10 -0
  14. data/lib/sleeping_king_studios/docs/templates/config.yml.erb +2 -0
  15. data/lib/sleeping_king_studios/docs/templates/includes/reference/attribute.md +1 -1
  16. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_attributes.md +1 -1
  17. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/class_methods.md +1 -1
  18. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_attributes.md +1 -1
  19. data/lib/sleeping_king_studios/docs/templates/includes/reference/definitions/table-of-contents/instance_methods.md +1 -1
  20. data/lib/sleeping_king_studios/docs/templates/includes/reference/method.md +1 -1
  21. data/lib/sleeping_king_studios/docs/version.rb +1 -1
  22. metadata +9 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4efbec5418a43dab48ee3f399e9461fd64f17f1b31931d384f6bd5b3de0407cb
4
- data.tar.gz: a609dd607d8b1c9a71495e09c0f01e70bac9d92ad91a29817f5abbfb1baefeb8
3
+ metadata.gz: 03ca814ce7d3b3f69036b8c1b0329efc653ee3e60a1171256796cb0b01f0b78e
4
+ data.tar.gz: a55bcfc03b9e3dcce0d1031f71f1a33eca621cdb8c51310b22b2ecbccac5e0ac
5
5
  SHA512:
6
- metadata.gz: b2c4d06f1f2ff5cf128cee30e748a5255d99699f80a3e69054f54d544d1389aa045752b38be64b0c002e6b71e3fb654e77856293eb66d2297565e65315b2aba3
7
- data.tar.gz: d01dd772621dbaac3c8261089ea997ad471edabd9f7b2a65d01467cd062415dae4a15a1b04f4198baa7c6bd117dd1852d2342bef2297c35befb75a03e9c7ca56
6
+ metadata.gz: 144d38bb823272073c5df7d11a97a1a1d9418e9bfda1e2fae6a3504f832b914871feb928b4df7922ba86fc61c6226a183c1e562c1245c4597f9fbd08ffaa3a9c
7
+ data.tar.gz: 9cddc82b060467f8021d14c1d0b3086007f6fdd5a464424900ddd1263c965e98f93e0cb7894dce7a213f6dd834639fb281c12a85f1efd883d9e3b4bbe6426ac1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ # 0.2.0
4
+
5
+ > **Upgrade Notes**
6
+ >
7
+ > Add the following to your `_config.yml` files:
8
+ >
9
+ > ```markdown
10
+ > plugins:
11
+ > - sleeping_king_studios/docs/jekyll/plugins/required
12
+ > ```
13
+
14
+ - Improved handling of method names with characters that are not valid for HTML anchors, such as `[]`, `=`, and `?`.
15
+
3
16
  # 0.1.0
4
17
 
5
18
  Initial development release.
@@ -70,7 +70,7 @@ module SleepingKingStudios::Docs::Data::SeeTags
70
70
  @normalized_path = @normalized_path.reverse.sub('::', '.').reverse
71
71
  end
72
72
 
73
- def query_registry(name)
73
+ def registry_item_exists?(name)
74
74
  registry_query.class_method_exists?(name)
75
75
  end
76
76
 
@@ -40,7 +40,7 @@ module SleepingKingStudios::Docs::Data::SeeTags
40
40
 
41
41
  private
42
42
 
43
- def query_registry(name)
43
+ def registry_item_exists?(name)
44
44
  registry_query.constant_exists?(name)
45
45
  end
46
46
 
@@ -39,7 +39,7 @@ module SleepingKingStudios::Docs::Data::SeeTags
39
39
 
40
40
  private
41
41
 
42
- def query_registry(name)
42
+ def registry_item_exists?(name)
43
43
  registry_query.definition_exists?(name)
44
44
  end
45
45
 
@@ -55,7 +55,7 @@ module SleepingKingStudios::Docs::Data::SeeTags
55
55
 
56
56
  private
57
57
 
58
- def query_registry(name)
58
+ def registry_item_exists?(name)
59
59
  registry_query.instance_method_exists?(name)
60
60
  end
61
61
 
@@ -51,10 +51,10 @@ module SleepingKingStudios::Docs::Data::SeeTags
51
51
  def absolute_path?
52
52
  return @absolute_path unless @absolute_path.nil?
53
53
 
54
- @absolute_path = query_registry(reference)
54
+ @absolute_path = registry_item_exists?(reference)
55
55
  end
56
56
 
57
- def query_registry(_)
57
+ def registry_item_exists?(_)
58
58
  false
59
59
  end
60
60
 
@@ -78,7 +78,7 @@ module SleepingKingStudios::Docs::Data::SeeTags
78
78
 
79
79
  return @relative_path = false if parent.root?
80
80
 
81
- @relative_path = query_registry(qualified_path)
81
+ @relative_path = registry_item_exists?(qualified_path)
82
82
  end
83
83
 
84
84
  def slugify_path(path)
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs/jekyll/plugins/liquid/filters'
4
+
5
+ module SleepingKingStudios::Docs::Jekyll::Plugins::Liquid::Filters
6
+ # Liquid filter for converting a reference slug to a safe HTML anchor.
7
+ module AnchorizeSlug
8
+ # Converts the slug to a string usable as an HTML anchor.
9
+ #
10
+ # Certain characters are valid Ruby identifiers but cause issues when used
11
+ # as HTML anchors, such as equals signs, hashes, question marks, and square
12
+ # brackets. This method replaces each with a placeholder value.
13
+ #
14
+ # @param slug [String] the slug to convert.
15
+ #
16
+ # @return [String] the converted slug.
17
+ def anchorize_slug(slug)
18
+ slug
19
+ .to_s
20
+ .gsub('=', '--equals')
21
+ .gsub('?', '--predicate')
22
+ .gsub('[]', '--brackets')
23
+ end
24
+
25
+ ::Liquid::Template.register_filter(self) if defined?(::Liquid::Template)
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs/jekyll/plugins/liquid'
4
+
5
+ module SleepingKingStudios::Docs::Jekyll::Plugins::Liquid
6
+ # Filters for extending Liquid template functionality.
7
+ module Filters
8
+ autoload :AnchorizeSlug,
9
+ 'sleeping_king_studios/docs/jekyll/plugins/liquid/filters/anchorize_slug'
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs/jekyll/plugins'
4
+
5
+ module SleepingKingStudios::Docs::Jekyll::Plugins
6
+ # Plugins for extending Liquid template functionality.
7
+ module Liquid
8
+ autoload :Filters,
9
+ 'sleeping_king_studios/docs/jekyll/plugins/liquid/filters'
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs/jekyll/plugins'
4
+
5
+ module SleepingKingStudios::Docs::Jekyll::Plugins
6
+ # Helper module for loading all required Jekyll plugins.
7
+ module Required
8
+ include Liquid::Filters::AnchorizeSlug
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs/jekyll'
4
+
5
+ module SleepingKingStudios::Docs::Jekyll
6
+ # Plugins for extending Jekyll functionality.
7
+ module Plugins
8
+ autoload :Liquid, 'sleeping_king_studios/docs/jekyll/plugins/liquid'
9
+ autoload :Required, 'sleeping_king_studios/docs/jekyll/plugins/required'
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sleeping_king_studios/docs'
4
+
5
+ module SleepingKingStudios::Docs
6
+ # Namespace for working with Jekyll-specific functionality.
7
+ module Jekyll
8
+ autoload :Plugins, 'sleeping_king_studios/docs/jekyll/plugins'
9
+ end
10
+ end
@@ -1,4 +1,6 @@
1
1
  ---
2
+ plugins:
3
+ - sleeping_king_studios/docs/jekyll/plugins/required
2
4
  collections:
3
5
  classes:
4
6
  output: false
@@ -1,6 +1,6 @@
1
1
  {% assign method = site.methods | where: "data_path", include.attribute.path | where: "version", page.version | first %}
2
2
  {% capture prefix %}{{ include.type }}-attribute{% endcapture %}
3
- {% capture heading_id %}{{ prefix }}-{{ method.slug | replace: "=", "--equals" }}{% endcapture %}
3
+ {% capture heading_id %}{{ prefix }}-{{ method.slug | anchorize_slug }}{% endcapture %}
4
4
 
5
5
  {% include reference/attributes/heading.md attribute=include.attribute heading_id=heading_id method=method type=include.type %}
6
6
 
@@ -3,7 +3,7 @@
3
3
  <a href="#class-attributes">Class Attributes</a>
4
4
  <ul style="margin-bottom: 0px;">
5
5
  {% for attribute in include.definition.class_attributes %}
6
- <li><a href="#class-attribute-{{ attribute.slug | replace: "=", "--equals" }}">{{ attribute.name }}</a></li>
6
+ <li><a href="#class-attribute-{{ attribute.slug | anchorize_slug }}">{{ attribute.name }}</a></li>
7
7
  {% endfor %}
8
8
  </ul>
9
9
  </li>
@@ -3,7 +3,7 @@
3
3
  <a href="#class-methods">Class Methods</a>
4
4
  <ul style="margin-bottom: 0px;">
5
5
  {% for method in include.definition.class_methods %}
6
- <li><a href="#class-method-{{ method.slug | replace: "=", "--equals" | replace: "?", "--predicate" }}">{{ method.name }}</a></li>
6
+ <li><a href="#class-method-{{ method.slug | anchorize_slug }}">{{ method.name }}</a></li>
7
7
  {% endfor %}
8
8
  </ul>
9
9
  </li>
@@ -3,7 +3,7 @@
3
3
  <a href="#instance-attributes">Instance Attributes</a>
4
4
  <ul style="margin-bottom: 0px;">
5
5
  {% for attribute in include.definition.instance_attributes %}
6
- <li><a href="#instance-attribute-{{ attribute.slug | replace: "=", "--equals" }}">{{ attribute.name }}</a></li>
6
+ <li><a href="#instance-attribute-{{ attribute.slug | anchorize_slug }}">{{ attribute.name }}</a></li>
7
7
  {% endfor %}
8
8
  </ul>
9
9
  </li>
@@ -3,7 +3,7 @@
3
3
  <a href="#instance-methods">Instance Methods</a>
4
4
  <ul style="margin-bottom: 0px;">
5
5
  {% for method in include.definition.instance_methods %}
6
- <li><a href="#instance-method-{{ method.slug | replace: "=", "--equals" | replace: "?", "--predicate" }}">{{ method.name }}</a></li>
6
+ <li><a href="#instance-method-{{ method.slug | anchorize_slug }}">{{ method.name }}</a></li>
7
7
  {% endfor %}
8
8
  </ul>
9
9
  </li>
@@ -1,7 +1,7 @@
1
1
  {% assign method = site.methods | where: "data_path", include.path | where: "version", page.version | first %}
2
2
  {% if method %}
3
3
  {% capture prefix %}{{ include.type }}-method{% endcapture %}
4
- {% capture heading_id %}{{ prefix }}-{{ method.slug | replace: "=", "--equals" | replace: "?", "--predicate" }}{% endcapture %}
4
+ {% capture heading_id %}{{ prefix }}-{{ method.slug | anchorize_slug }}{% endcapture %}
5
5
 
6
6
  {% include reference/methods/heading.md heading_id=heading_id method=method type=include.type %}
7
7
 
@@ -11,7 +11,7 @@ module SleepingKingStudios
11
11
  # Major version.
12
12
  MAJOR = 0
13
13
  # Minor version.
14
- MINOR = 1
14
+ MINOR = 2
15
15
  # Patch version.
16
16
  PATCH = 0
17
17
  # Prerelease version.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sleeping_king_studios-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob "Merlin" Smith
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-31 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: cuprum
@@ -151,6 +151,12 @@ files:
151
151
  - lib/sleeping_king_studios/docs/errors/file_not_found.rb
152
152
  - lib/sleeping_king_studios/docs/errors/invalid_directory.rb
153
153
  - lib/sleeping_king_studios/docs/errors/invalid_file.rb
154
+ - lib/sleeping_king_studios/docs/jekyll.rb
155
+ - lib/sleeping_king_studios/docs/jekyll/plugins.rb
156
+ - lib/sleeping_king_studios/docs/jekyll/plugins/liquid.rb
157
+ - lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters.rb
158
+ - lib/sleeping_king_studios/docs/jekyll/plugins/liquid/filters/anchorize_slug.rb
159
+ - lib/sleeping_king_studios/docs/jekyll/plugins/required.rb
154
160
  - lib/sleeping_king_studios/docs/registry.rb
155
161
  - lib/sleeping_king_studios/docs/registry_query.rb
156
162
  - lib/sleeping_king_studios/docs/tasks.rb
@@ -237,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
243
  - !ruby/object:Gem::Version
238
244
  version: '0'
239
245
  requirements: []
240
- rubygems_version: 3.6.5
246
+ rubygems_version: 3.6.9
241
247
  specification_version: 4
242
248
  summary: Tools for generating a versioned documentation site from YARD docs.
243
249
  test_files: []