yard-yaml 0.1.0 → 0.1.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.
data/README.md CHANGED
@@ -1,46 +1,15 @@
1
- | 📍 NOTE |
2
- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
3
- | RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
4
- | Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
5
- | It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
6
- | I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
7
- | If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
8
- | Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
9
- | Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
10
- | The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
11
- | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
12
- | What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
13
-
14
- [rubygems-org]: https://github.com/rubygems/
15
- [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
16
- [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
17
- [ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
18
- [simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
19
- [martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
20
- [draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
21
- [draper-theft]: https://joel.drapper.me/p/ruby-central/
22
- [reinteractive]: https://reinteractive.com/ruby-on-rails
23
- [gem-coop]: https://gem.coop
24
- [gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
25
- [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
26
- [gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
27
- [gem-server]: https://github.com/galtzo-floss/gem-server
28
- [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
29
-
30
- [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![yard-yaml Logo by Aboling0, CC BY-SA 4.0][🖼️yard-yaml-i]][🖼️yard-yaml]
31
-
32
- [🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
33
- [🖼️galtzo-discord]: https://discord.gg/3qme4XHNKN
1
+ [![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-floss-i]][🖼️galtzo-floss] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang]
2
+
3
+ [🖼️galtzo-floss-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
4
+ [🖼️galtzo-floss]: https://discord.gg/3qme4XHNKN
34
5
  [🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
35
6
  [🖼️ruby-lang]: https://www.ruby-lang.org/
36
- [🖼️yard-yaml-i]: https://logos.galtzo.com/assets/images/galtzo-floss/yard-yaml/avatar-192px.svg
37
- [🖼️yard-yaml]: https://github.com/galtzo-floss/yard-yaml
38
7
 
39
- # 🥨 Yard::Yaml
8
+ # 🔮 Yard::Yaml
40
9
 
41
- [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license-ref] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![Open Source Helpers][👽oss-helpi]][👽oss-help] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Supported][🚎6-s-wfi]][🚎6-s-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
10
+ [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![CodeQL][🖐codeQL-img]][🖐codeQL] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
42
11
 
43
- `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-discord], as I may have missed the [discord notification][🖼️galtzo-discord].
12
+ `if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][🖼️galtzo-floss], as I may have missed the [discord notification][🖼️galtzo-floss].
44
13
 
45
14
  ---
46
15
 
@@ -48,6 +17,13 @@
48
17
 
49
18
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
50
19
 
20
+ <details>
21
+ <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
22
+
23
+ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
24
+
25
+ </details>
26
+
51
27
  ## 🌻 Synopsis
52
28
 
53
29
  To enable the `yard-yaml` plugin add it to your Gemfile,
@@ -61,38 +37,41 @@ This will activate the plugin during the `yard doc` generation process, converti
61
37
 
62
38
  ## 💡 Info you can shake a stick at
63
39
 
64
- | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
40
+ | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
65
41
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
66
- | Works with JRuby | [![JRuby 10.0 Compat][💎jruby-c-i]][🚎11-c-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf] |
67
- | Works with Truffle Ruby | [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎9-t-wf] [![Truffle Ruby 24.1 Compat][💎truby-c-i]][🚎11-c-wf] |
68
- | Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎6-s-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎6-s-wf] [![Ruby 3.4 Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf] |
69
- | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
70
- | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
71
- | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
72
- | Compliance | [![License: MIT][📄license-img]][📄license-ref] [![Compatible with Apache Software Projects: Verified by SkyWalking Eyes][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
73
- | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
74
- | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
75
- | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
42
+ | Works with JRuby | [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
43
+ | Works with Truffle Ruby | [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]|
44
+ | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
45
+ | Works with MRI Ruby 3 | [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
46
+ | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
47
+ | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
48
+ | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
49
+ | Compliance | [![License: MIT][📄license-img]][📄license] [![Apache license compatibility: Category A][📄license-compat-img]][📄license-compat] [![📄ilo-declaration-img]][📄ilo-declaration] [![Security Policy][🔐security-img]][🔐security] [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct] [![SemVer 2.0.0][📌semver-img]][📌semver] |
50
+ | Style | [![Enforced Code Style Linter][💎rlts-img]][💎rlts] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog] [![Gitmoji Commits][📌gitmoji-img]][📌gitmoji] [![Compatibility appraised by: appraisal2][💎appraisal2-img]][💎appraisal2] |
51
+ | Maintainer 🎖️ | [![Follow Me on LinkedIn][💖🖇linkedin-img]][💖🖇linkedin] [![Follow Me on Ruby.Social][💖🐘ruby-mast-img]][💖🐘ruby-mast] [![Follow Me on Bluesky][💖🦋bluesky-img]][💖🦋bluesky] [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact] [![My technical writing][💖💁🏼‍♂️devto-img]][💖💁🏼‍♂️devto] |
52
+ | `...` 💖 | [![Find Me on WellFound:][💖✌️wellfound-img]][💖✌️wellfound] [![Find Me on CrunchBase][💖💲crunchbase-img]][💖💲crunchbase] [![My LinkTree][💖🌳linktree-img]][💖🌳linktree] [![More About Me][💖💁🏼‍♂️aboutme-img]][💖💁🏼‍♂️aboutme] [🧊][💖🧊berg] [🐙][💖🐙hub] [🛖][💖🛖hut] [🧪][💖🧪lab] |
76
53
 
77
54
  ### Compatibility
78
55
 
79
56
  Compatible with MRI Ruby 3.2.0+, and concordant releases of JRuby, and TruffleRuby.
80
57
 
81
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
58
+ | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
82
59
  |------------------------------------------------|--------------------------------------------------------|
83
- | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
60
+ | 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
61
+
62
+
84
63
 
85
64
  ### Federated DVCS
86
65
 
87
66
  <details markdown="1">
88
- <summary>Find this repo on federated forges (Coming soon!)</summary>
67
+ <summary>Find this repo on federated forges (Coming soon!)</summary>
89
68
 
90
- | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
91
- |---------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
92
- | 🧪 [galtzo-floss/yard-yaml on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
93
- | 🧊 [galtzo-floss/yard-yaml on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
94
- | 🐙 [galtzo-floss/yard-yaml on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
95
- | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
69
+ | Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
70
+ |-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
71
+ | 🧪 [galtzo-floss/yard-yaml on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
72
+ | 🧊 [galtzo-floss/yard-yaml on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
73
+ | 🐙 [galtzo-floss/yard-yaml on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
74
+ | 🎮️ [Discord Server][✉️discord-invite] | [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] | [Let's][✉️discord-invite] | [talk][✉️discord-invite] | [about][✉️discord-invite] | [this][✉️discord-invite] | [library!][✉️discord-invite] |
96
75
 
97
76
  </details>
98
77
 
@@ -103,7 +82,7 @@ Compatible with MRI Ruby 3.2.0+, and concordant releases of JRuby, and TruffleRu
103
82
  Available as part of the Tidelift Subscription.
104
83
 
105
84
  <details markdown="1">
106
- <summary>Need enterprise-level guarantees?</summary>
85
+ <summary>Need enterprise-level guarantees?</summary>
107
86
 
108
87
  The maintainers of this and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use.
109
88
 
@@ -135,41 +114,6 @@ If bundler is not being used to manage dependencies, install the gem by executin
135
114
  gem install yard-yaml
136
115
  ```
137
116
 
138
- ### 🔒 Secure Installation
139
-
140
- <details markdown="1">
141
- <summary>For Medium or High Security Installations</summary>
142
-
143
- This gem is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
144
- [stone_checksums][💎stone_checksums]. Be sure the gem you install hasn’t been tampered with
145
- by following the instructions below.
146
-
147
- Add my public key (if you haven’t already, expires 2045-04-29) as a trusted certificate:
148
-
149
- ```console
150
- gem cert --add <(curl -Ls https://raw.github.com/galtzo-floss/certs/main/pboling.pem)
151
- ```
152
-
153
- You only need to do that once. Then proceed to install with:
154
-
155
- ```console
156
- gem install yard-yaml -P HighSecurity
157
- ```
158
-
159
- The `HighSecurity` trust profile will verify signed gems, and not allow the installation of unsigned dependencies.
160
-
161
- If you want to up your security game full-time:
162
-
163
- ```console
164
- bundle config set --global trust-policy MediumSecurity
165
- ```
166
-
167
- `MediumSecurity` instead of `HighSecurity` is necessary if not all the gems you use are signed.
168
-
169
- NOTE: Be prepared to track down certs for signed gems and add them the same way you added mine.
170
-
171
- </details>
172
-
173
117
  ## ⚙️ Configuration
174
118
 
175
119
  The `yard-yaml` plugin supports the following configuration options:
@@ -246,175 +190,14 @@ The `yard-yaml` plugin introduces two new tags for use in docstrings:
246
190
  ```
247
191
  Then paste the HTML (optionally wrapped in `<div class="yyaml-inline">…</div>`).
248
192
 
249
- ## Quickstart — YARD YAML Plugin
250
-
251
- Add the plugin and run YARD to integrate YAML into your documentation workflow.
252
-
253
- ### 1. Install dependencies
254
-
255
- ```bash
256
- bundle install
257
- ```
258
-
259
- ### 2. Configure `.yardopts`
260
-
261
- Minimal example (adjust globs/output for your project):
262
-
263
- ```text
264
- --plugin yaml
265
- --markup markdown
266
- --markup-provider kramdown
267
- --output docs
268
- --yard_yaml-include docs/**/*.y{a,}ml
269
- --yard_yaml-exclude **/_*.y{a,}ml
270
- --yard_yaml-out_dir yaml
271
- --yard_yaml-index
272
- ```
273
-
274
- NOTE: This gem uses `--plugin fence -e yard/fence/hoist.rb` for its own documentation. `yaml-fence` hoists fenced blocks inside code object docstrings, so that they are transformed to UNICODE fences before YARD sees them, to avoid the `InvalidLink` warnings, but does not convert YAML fences.
275
-
276
- ### 3. Generate API docs & collect YAML (discovery only)
277
-
278
- Running `yard` loads the plugin but does not auto-emit standalone YAML pages. Discovery + conversion occur only when you explicitly activate and emit.
279
-
280
- ```bash
281
- bundle exec yard
282
- ```
283
-
284
- ### 4. Emit standalone YAML pages (manual step)
285
-
286
- Invoke activation + emission in a separate Ruby process (pass the same flags you used in `.yardopts` so discovery matches):
287
-
288
- ```bash
289
- ruby -r yard/yaml -e 'Yard::Yaml::Plugin.activate(%w[--yard_yaml-include docs/**/*.y{a,}ml --yard_yaml-exclude **/_*.y{a,}ml --yard_yaml-out_dir yaml --yard_yaml-index]); Yard::Yaml::Emitter.emit!(pages: Yard::Yaml.pages, output_dir: "docs", config: Yard::Yaml.config)'
290
- ```
291
-
292
- Result:
293
-
294
- - Pages written to `docs/yaml/<slug>.html`
295
- - Index (if enabled) at `docs/yaml/index.html`
296
- - Sidebar entries (via theme hooks) link to these pages
297
-
298
- ### 5. Inline YAML in code object docstrings
299
-
300
- Preferred: use tags.
301
-
302
- ```ruby
303
- # @yaml
304
- # ---
305
- # title: Inline Example
306
- # description: Demonstrates inline conversion.
307
- # ---
308
- # a: 1
309
- # b: 2
310
- ```
311
-
312
- ```ruby
313
- # @yaml_file docs/config/app.yml
314
- ```
315
-
316
- Theme hooks insert converted HTML right after the main docstring. Strict mode governs failure behavior.
317
-
318
- ### 6. YAML in Markdown (GFM) fenced blocks
319
-
320
- Standalone Markdown pages (e.g. README sections) treat:
321
-
322
- ~~~markdown
323
- ```yaml
324
- key: value
325
- ```
326
- ~~~
327
-
328
- as a code block. This plugin does NOT yet auto-convert fenced YAML in arbitrary Markdown pages.
329
-
330
- Workarounds:
331
-
332
- - Link to emitted page: `[Full Config](./yaml/config.html)`
333
- - Pre-convert & paste HTML:
334
- ```bash
335
- ruby -r yard/yaml -e 'print Yard::Yaml::Converter.from_string(File.read(ARGV[0]))[:html]' docs/config/app.yml > tmp.html
336
- ```
337
- Paste the resulting HTML (Kramdown allows raw HTML). Optionally wrap:
338
- ```html
339
- <div class="yyaml-inline">(converted YAML html here)</div>
340
- ```
341
-
342
- ### Front Matter Support
343
-
344
- Example `docs/config/app.yml`:
345
-
346
- ```yaml
347
- ---
348
- # Front matter fields consumed by yaml-converter
349
- title: Application Configuration
350
- nav_order: 10
351
- description: Core settings
352
- slug: app-config
353
- ---
354
- app:
355
- name: demo
356
- enabled: true
357
- ```
358
-
359
- Parsed fields:
360
- - `title`, `description` for page heading & sidebar
361
- - `nav_order` for ordering
362
- - `slug` overrides derived slug
363
-
364
- ### Strict Mode & Safety
365
-
366
- - `--yard_yaml-strict=true`: raise `Yard::Yaml::Error` on missing file, conversion, or write errors.
367
- - Default (non-strict): warn and skip.
368
- - ERB disabled by default (`allow_erb=false`); enable only if you trust sources: `--yard_yaml-allow_erb=true`.
369
-
370
- ### Converter Options
371
-
372
- Customize yaml-converter behavior (example):
373
-
374
- ```text
375
- --yard_yaml-converter_options pretty:true,wrap:80
376
- ```
377
-
378
- Boolean/number coercion is handled automatically.
379
-
380
- ### Why not `yaml-markdown`?
381
-
382
- Unnecessary here. YARD already processes Markdown via `--markup markdown --markup-provider kramdown`. This plugin focuses on YAML discovery, conversion, tagging, and emission, leveraging the `yaml-converter` dependency.
383
-
384
- ### Limitations & Roadmap
385
-
386
- Current limitations:
387
-
388
- - No automatic emission during `yard` run (manual step required)
389
- - No automatic conversion of fenced YAML in standalone Markdown pages
390
- - Minimal default HTML for emitted pages (simple inline styles)
391
-
392
- Planned improvements (subject to change):
393
-
394
- - Automatic emission hook in the generation pipeline
395
- - Optional fenced YAML auto-conversion in Markdown
396
- - Enhanced theming & TOC modes beyond `auto`
397
- - Search integration across YAML content
398
-
399
- ### Troubleshooting Quick Reference
400
-
401
- | Symptom | Fix |
402
- |----------------------------|----------------------------------------------------------|
403
- | Sidebar links 404 | Run emission step (Step 4) |
404
- | Missing expected YAML page | Verify include/exclude globs & rerun emission |
405
- | Inline tag shows empty | Ensure YAML content is valid; check strict mode warnings |
406
- | Fenced YAML not converted | Use tags or pre-convert & paste HTML |
407
- | ERB ignored | Enable `--yard_yaml-allow_erb=true` (security trade-off) |
408
- | Build fails in strict mode | Rerun without strict to inspect warnings |
409
-
410
193
  ## 🦷 FLOSS Funding
411
194
 
412
195
  While galtzo-floss tools are free software and will always be, the project would benefit immensely from some funding.
413
196
  Raising a monthly budget of... "dollars" would make the project more sustainable.
414
197
 
415
198
  We welcome both individual and corporate sponsors! We also offer a
416
- wide array of funding channels to account for your preferences
417
- (although currently [Open Collective][🖇osc] is our preferred funding platform).
199
+ wide array of funding channels to account for your preferences.
200
+ Currently, [Open Collective][🖇osc] is our preferred funding platform.
418
201
 
419
202
  **If you're working in a company that's making significant use of galtzo-floss tools we'd
420
203
  appreciate it if you suggest to your company to become a galtzo-floss sponsor.**
@@ -426,7 +209,7 @@ You can support the development of galtzo-floss tools via
426
209
  [Open Collective][🖇osc]
427
210
  and [Tidelift][🏙️entsup-tidelift].
428
211
 
429
- | 📍 NOTE |
212
+ | 📍 NOTE |
430
213
  |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
431
214
  | If doing a sponsorship in the form of donation is problematic for your company <br/> from an accounting standpoint, we'd recommend the use of Tidelift, <br/> where you can get a support-like subscription instead. |
432
215
 
@@ -454,7 +237,7 @@ No sponsors yet. Be the first!
454
237
 
455
238
  ### Another way to support open-source
456
239
 
457
- I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
240
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
458
241
 
459
242
  If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
460
243
 
@@ -471,7 +254,7 @@ See [SECURITY.md][🔐security].
471
254
  ## 🤝 Contributing
472
255
 
473
256
  If you need some ideas of where to help, you could work on adding more code coverage,
474
- or if it is already 💯 (see [below](#code-coverage)) check [reek](REEK), [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
257
+ or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
475
258
  or use the gem and think about how it could be better.
476
259
 
477
260
  We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
@@ -484,12 +267,17 @@ See [CONTRIBUTING.md][🤝contributing].
484
267
 
485
268
  ### Code Coverage
486
269
 
270
+ <details markdown="1">
271
+ <summary>Coverage service badges</summary>
272
+
487
273
  [![Coverage Graph][🏀codecov-g]][🏀codecov]
488
274
 
489
275
  [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
490
276
 
491
277
  [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
492
278
 
279
+ </details>
280
+
493
281
  ### 🪇 Code of Conduct
494
282
 
495
283
  Everyone interacting with this project's codebases, issue trackers,
@@ -504,13 +292,13 @@ Made with [contributors-img][🖐contrib-rocks].
504
292
  Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/yard-yaml/-/graphs/main][🚎contributors-gl]
505
293
 
506
294
  <details>
507
- <summary>⭐️ Star History</summary>
295
+ <summary>⭐️ Star History</summary>
508
296
 
509
- <a href="https://star-history.com/#galtzo-floss/yard-yaml&Date">
297
+ <a href="https://star-history.com/galtzo-floss/yard-yaml&Date">
510
298
  <picture>
511
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date&theme=dark" />
512
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
513
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
299
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date&theme=dark" />
300
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
301
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
514
302
  </picture>
515
303
  </a>
516
304
 
@@ -518,31 +306,20 @@ Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/yard-yaml/-/graph
518
306
 
519
307
  ## 📌 Versioning
520
308
 
521
- This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
522
- Violations of this scheme should be reported as bugs.
523
- Specifically, if a minor or patch version is released that breaks backward compatibility,
524
- a new version should be immediately released that restores compatibility.
525
- Breaking changes to the public API will only be introduced with new major versions.
526
-
527
- > dropping support for a platform is both obviously and objectively a breaking change <br/>
528
- >—Jordan Harband ([@ljharb](https://github.com/ljharb), maintainer of SemVer) [in SemVer issue 716][📌semver-breaking]
529
-
530
- I understand that policy doesn't work universally ("exceptions to every rule!"),
531
- but it is the policy here.
532
- As such, in many cases it is good to specify a dependency on this library using
533
- the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
309
+ This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
310
+ For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
534
311
 
535
312
  For example:
536
313
 
537
314
  ```ruby
538
- spec.add_dependency("yard-yaml", "~> 1.0")
315
+ spec.add_dependency("yard-yaml", "~> 0.0")
539
316
  ```
540
317
 
541
318
  <details markdown="1">
542
319
  <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
543
320
 
544
- SemVer should, IMO, but doesn't explicitly, say that dropping support for specific Platforms
545
- is a *breaking change* to an API, and for that reason the bike shedding is endless.
321
+ Dropping support for a platform can be a breaking change for affected users.
322
+ If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
546
323
 
547
324
  To get a better understanding of how SemVer is intended to work over a project's lifetime,
548
325
  read this article from the creator of SemVer:
@@ -556,569 +333,20 @@ See [CHANGELOG.md][📌changelog] for a list of releases.
556
333
  ## 📄 License
557
334
 
558
335
  The gem is available as open source under the terms of
559
- the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
560
- See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
336
+ the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
561
337
 
562
338
  ### © Copyright
563
339
 
564
- <ul>
565
- <li>
566
- Copyright (c) 2025 Aboling0 & Peter H. Boling, of
567
- <a href="https://discord.gg/3qme4XHNKN">
568
- Galtzo.com
569
- <picture>
570
- <img src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px-blank.svg" alt="Galtzo.com Logo (Wordless) by Aboling0, CC BY-SA 4.0" width="24">
571
- </picture>
572
- </a>, and yard-yaml contributors.
573
- </li>
574
- </ul>
575
-
576
- ## 🤑 A request for help
577
-
578
- Maintainers have teeth and need to pay their dentists.
579
- After getting laid off in an RIF in March, and encountering difficulty finding a new one,
580
- I began spending most of my time building open source tools.
581
- I'm hoping to be able to pay for my kids' health insurance this month,
582
- so if you value the work I am doing, I need your support.
583
- Please consider sponsoring me or the project.
584
-
585
- To join the community or get help 👇️ Join the Discord.
586
-
587
- [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
588
-
589
- To say "thanks!" ☝️ Join the Discord or 👇️ send money.
590
-
591
- [![Sponsor galtzo-floss/yard-yaml on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
592
-
593
- ### Please give the project a star ⭐ ♥.
594
-
595
- Thanks for RTFM. ☺️
596
-
597
- [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
598
- [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
599
- [⛳liberapay]: https://liberapay.com/pboling/donate
600
- [🖇osc-all-img]: https://img.shields.io/opencollective/all/galtzo-floss
601
- [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss
602
- [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/galtzo-floss
603
- [🖇osc-backers]: https://opencollective.com/galtzo-floss#backer
604
- [🖇osc-backers-i]: https://opencollective.com/galtzo-floss/backers/badge.svg?style=flat
605
- [🖇osc-sponsors]: https://opencollective.com/galtzo-floss#sponsor
606
- [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
607
- [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/galtzo-floss?style=for-the-badge
608
- [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss?style=for-the-badge
609
- [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/galtzo-floss?style=for-the-badge
610
- [🖇osc]: https://opencollective.com/galtzo-floss
611
- [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
612
- [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
613
- [🖇sponsor]: https://github.com/sponsors/pboling
614
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
615
- [🖇polar]: https://polar.sh/pboling
616
- [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
617
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
618
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
619
- [🖇patreon]: https://patreon.com/galtzo
620
- [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
621
- [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
622
- [🖇buyme]: https://www.buymeacoffee.com/pboling
623
- [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
624
- [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
625
- [🖇paypal]: https://www.paypal.com/paypalme/peterboling
626
- [🖇floss-funding.dev]: https://floss-funding.dev
627
- [🖇floss-funding-gem]: https://github.com/galtzo-floss/floss_funding
628
- [✉️discord-invite]: https://discord.gg/3qme4XHNKN
629
- [✉️discord-invite-img-ftb]: https://img.shields.io/discord/1373797679469170758?style=for-the-badge&logo=discord
630
- [✉️ruby-friends-img]: https://img.shields.io/badge/daily.dev-%F0%9F%92%8E_Ruby_Friends-0A0A0A?style=for-the-badge&logo=dailydotdev&logoColor=white
631
- [✉️ruby-friends]: https://app.daily.dev/squads/rubyfriends
632
-
633
- [✇bundle-group-pattern]: https://gist.github.com/pboling/4564780
634
- [⛳️gem-namespace]: https://github.com/galtzo-floss/yard-yaml
635
- [⛳️namespace-img]: https://img.shields.io/badge/namespace-Yard::Yaml-3C2D2D.svg?style=square&logo=ruby&logoColor=white
636
- [⛳️gem-name]: https://bestgems.org/gems/yard-yaml
637
- [⛳️name-img]: https://img.shields.io/badge/name-yard--yaml-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
638
- [⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/yard-yaml.svg
639
- [⛳️tag]: http://github.com/galtzo-floss/yard-yaml/releases
640
- [🚂maint-blog]: http://www.railsbling.com/tags/yard-yaml
641
- [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
642
- [🚂maint-contact]: http://www.railsbling.com/contact
643
- [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
644
- [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
645
- [💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-LinkedIn-0B66C2?style=flat&logo=newjapanprowrestling
646
- [💖✌️wellfound]: https://wellfound.com/u/peter-boling
647
- [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
648
- [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
649
- [💖💲crunchbase-img]: https://img.shields.io/badge/peter--boling-purple?style=flat&logo=crunchbase
650
- [💖🐘ruby-mast]: https://ruby.social/@galtzo
651
- [💖🐘ruby-mast-img]: https://img.shields.io/mastodon/follow/109447111526622197?domain=https://ruby.social&style=flat&logo=mastodon&label=Ruby%20@galtzo
652
- [💖🦋bluesky]: https://bsky.app/profile/galtzo.com
653
- [💖🦋bluesky-img]: https://img.shields.io/badge/@galtzo.com-0285FF?style=flat&logo=bluesky&logoColor=white
654
- [💖🌳linktree]: https://linktr.ee/galtzo
655
- [💖🌳linktree-img]: https://img.shields.io/badge/galtzo-purple?style=flat&logo=linktree
656
- [💖💁🏼‍♂️devto]: https://dev.to/galtzo
657
- [💖💁🏼‍♂️devto-img]: https://img.shields.io/badge/dev.to-0A0A0A?style=flat&logo=devdotto&logoColor=white
658
- [💖💁🏼‍♂️aboutme]: https://about.me/peter.boling
659
- [💖💁🏼‍♂️aboutme-img]: https://img.shields.io/badge/about.me-0A0A0A?style=flat&logo=aboutme&logoColor=white
660
- [💖🧊berg]: https://codeberg.org/pboling
661
- [💖🐙hub]: https://github.org/pboling
662
- [💖🛖hut]: https://sr.ht/~galtzo/
663
- [💖🧪lab]: https://gitlab.com/pboling
664
- [👨🏼‍🏫expsup-upwork]: https://www.upwork.com/freelancers/~014942e9b056abdf86?mp_source=share
665
- [👨🏼‍🏫expsup-upwork-img]: https://img.shields.io/badge/UpWork-13544E?style=for-the-badge&logo=Upwork&logoColor=white
666
- [👨🏼‍🏫expsup-codementor]: https://www.codementor.io/peterboling?utm_source=github&utm_medium=button&utm_term=peterboling&utm_campaign=github
667
- [👨🏼‍🏫expsup-codementor-img]: https://img.shields.io/badge/CodeMentor-Get_Help-1abc9c?style=for-the-badge&logo=CodeMentor&logoColor=white
668
- [🏙️entsup-tidelift]: https://tidelift.com/subscription/pkg/rubygems-yard-yaml?utm_source=rubygems-yard-yaml&utm_medium=referral&utm_campaign=readme
669
- [🏙️entsup-tidelift-img]: https://img.shields.io/badge/Tidelift_and_Sonar-Enterprise_Support-FD3456?style=for-the-badge&logo=sonar&logoColor=white
670
- [🏙️entsup-tidelift-sonar]: https://blog.tidelift.com/tidelift-joins-sonar
671
- [💁🏼‍♂️peterboling]: http://www.peterboling.com
672
- [🚂railsbling]: http://www.railsbling.com
673
- [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
674
- [📜src-gl]: https://gitlab.com/galtzo-floss/yard-yaml/
675
- [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
676
- [📜src-cb]: https://codeberg.org/galtzo-floss/yard-yaml
677
- [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
678
- [📜src-gh]: https://github.com/galtzo-floss/yard-yaml
679
- [📜docs-cr-rd-img]: https://img.shields.io/badge/RubyDoc-Current_Release-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
680
- [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
681
- [📜gl-wiki]: https://gitlab.com/galtzo-floss/yard-yaml/-/wikis/home
682
- [📜gh-wiki]: https://github.com/galtzo-floss/yard-yaml/wiki
683
- [📜gl-wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
684
- [📜gh-wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
685
- [👽dl-rank]: https://bestgems.org/gems/yard-yaml
686
- [👽dl-ranki]: https://img.shields.io/gem/rd/yard-yaml.svg
687
- [👽oss-help]: https://www.codetriage.com/galtzo-floss/yard-yaml
688
- [👽oss-helpi]: https://www.codetriage.com/galtzo-floss/yard-yaml/badges/users.svg
689
- [👽version]: https://bestgems.org/gems/yard-yaml
690
- [👽versioni]: https://img.shields.io/gem/v/yard-yaml.svg
691
- [🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/yard-yaml
692
- [🏀qlty-mnti]: https://qlty.sh/gh/galtzo-floss/projects/yard-yaml/maintainability.svg
693
- [🏀qlty-cov]: https://qlty.sh/gh/galtzo-floss/projects/yard-yaml/metrics/code?sort=coverageRating
694
- [🏀qlty-covi]: https://qlty.sh/gh/galtzo-floss/projects/yard-yaml/coverage.svg
695
- [🏀codecov]: https://codecov.io/gh/galtzo-floss/yard-yaml
696
- [🏀codecovi]: https://codecov.io/gh/galtzo-floss/yard-yaml/graph/badge.svg
697
- [🏀coveralls]: https://coveralls.io/github/galtzo-floss/yard-yaml?branch=main
698
- [🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/yard-yaml/badge.svg?branch=main
699
- [🖐codeQL]: https://github.com/galtzo-floss/yard-yaml/security/code-scanning
700
- [🖐codeQL-img]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/codeql-analysis.yml/badge.svg
701
- [🚎1-an-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ancient.yml
702
- [🚎1-an-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ancient.yml/badge.svg
703
- [🚎2-cov-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/coverage.yml
704
- [🚎2-cov-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/coverage.yml/badge.svg
705
- [🚎3-hd-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/heads.yml
706
- [🚎3-hd-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/heads.yml/badge.svg
707
- [🚎4-lg-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/legacy.yml
708
- [🚎4-lg-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/legacy.yml/badge.svg
709
- [🚎5-st-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/style.yml
710
- [🚎5-st-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/style.yml/badge.svg
711
- [🚎6-s-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/supported.yml
712
- [🚎6-s-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/supported.yml/badge.svg
713
- [🚎7-us-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unsupported.yml
714
- [🚎7-us-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unsupported.yml/badge.svg
715
- [🚎8-ho-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/hoary.yml
716
- [🚎8-ho-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/hoary.yml/badge.svg
717
- [🚎9-t-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffle.yml
718
- [🚎9-t-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffle.yml/badge.svg
719
- [🚎10-j-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/jruby.yml
720
- [🚎10-j-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/jruby.yml/badge.svg
721
- [🚎11-c-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/current.yml
722
- [🚎11-c-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/current.yml/badge.svg
723
- [🚎12-crh-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/dep-heads.yml
724
- [🚎12-crh-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/dep-heads.yml/badge.svg
725
- [🚎13-🔒️-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/locked_deps.yml
726
- [🚎13-🔒️-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/locked_deps.yml/badge.svg
727
- [🚎14-🔓️-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unlocked_deps.yml
728
- [🚎14-🔓️-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unlocked_deps.yml/badge.svg
729
- [🚎15-🪪-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/license-eye.yml
730
- [🚎15-🪪-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/license-eye.yml/badge.svg
731
- [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
732
- [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
733
- [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
734
- [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
735
- [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=pink
736
- [💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=pink
737
- [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
738
- [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
739
- [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
740
- [💎jruby-9.1i]: https://img.shields.io/badge/JRuby-9.1_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
741
- [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
742
- [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
743
- [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
744
- [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
745
- [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
746
- [🤝gh-issues]: https://github.com/galtzo-floss/yard-yaml/issues
747
- [🤝gh-pulls]: https://github.com/galtzo-floss/yard-yaml/pulls
748
- [🤝gl-issues]: https://gitlab.com/galtzo-floss/yard-yaml/-/issues
749
- [🤝gl-pulls]: https://gitlab.com/galtzo-floss/yard-yaml/-/merge_requests
750
- [🤝cb-issues]: https://codeberg.org/galtzo-floss/yard-yaml/issues
751
- [🤝cb-pulls]: https://codeberg.org/galtzo-floss/yard-yaml/pulls
752
- [🤝cb-donate]: https://donate.codeberg.org/
753
- [🤝contributing]: CONTRIBUTING.md
754
- [🏀codecov-g]: https://codecov.io/gh/galtzo-floss/yard-yaml/graphs/tree.svg
755
- [🖐contrib-rocks]: https://contrib.rocks
756
- [🖐contributors]: https://github.com/galtzo-floss/yard-yaml/graphs/contributors
757
- [🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/yard-yaml
758
- [🚎contributors-gl]: https://gitlab.com/galtzo-floss/yard-yaml/-/graphs/main
759
- [🪇conduct]: CODE_OF_CONDUCT.md
760
- [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
761
- [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
762
- [📌semver]: https://semver.org/spec/v2.0.0.html
763
- [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
764
- [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
765
- [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
766
- [📌changelog]: CHANGELOG.md
767
- [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
768
- [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
769
- [📌gitmoji]: https://gitmoji.dev
770
- [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
771
- [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
772
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.462-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
773
- [🔐security]: SECURITY.md
774
- [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
775
- [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
776
- [📄license]: LICENSE.txt
777
- [📄license-ref]: https://opensource.org/licenses/MIT
778
- [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
779
- [📄license-compat]: https://dev.to/galtzo/how-to-check-license-compatibility-41h0
780
- [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
781
- [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
782
- [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
783
- [🚎yard-current]: http://rubydoc.info/gems/yard-yaml
784
- [🚎yard-head]: https://yard-yaml.galtzo.com
785
- [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
786
- [💎SHA_checksums]: https://gitlab.com/galtzo-floss/yard-yaml/-/tree/main/checksums
787
- [💎rlts]: https://github.com/rubocop-lts/rubocop-lts
788
- [💎rlts-img]: https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white
789
- [💎appraisal2]: https://github.com/appraisal-rb/appraisal2
790
- [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
791
- [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
792
-
793
-
794
-
795
- ## Quickstart — YARD YAML Plugin
796
-
797
- Add the plugin and run YARD to integrate YAML into your documentation workflow.
798
-
799
- ### 1. Install dependencies
800
-
801
- ```bash
802
- bundle install
803
- ```
804
-
805
- ### 2. Configure `.yardopts`
806
-
807
- Minimal example (adjust globs/output for your project):
808
-
809
- ```text
810
- --plugin yaml
811
- --markup markdown
812
- --markup-provider kramdown
813
- --output docs
814
- --yard_yaml-include docs/**/*.y{a,}ml
815
- --yard_yaml-exclude **/_*.y{a,}ml
816
- --yard_yaml-out_dir yaml
817
- --yard_yaml-index
818
- ```
819
-
820
- NOTE: This gem uses `--plugin fence -e yard/fence/hoist.rb` for its own documentation. `yaml-fence` hoists fenced blocks inside code object docstrings, so that they are transformed to UNICODE fences before YARD sees them, to avoid the `InvalidLink` warnings, but does not convert YAML fences.
821
-
822
- ### 3. Generate API docs & collect YAML (discovery only)
823
-
824
- Running `yard` loads the plugin but does not auto-emit standalone YAML pages. Discovery + conversion occur only when you explicitly activate and emit.
825
-
826
- ```bash
827
- bundle exec yard
828
- ```
829
-
830
- ### 4. Emit standalone YAML pages (manual step)
831
-
832
- Invoke activation + emission in a separate Ruby process (pass the same flags you used in `.yardopts` so discovery matches):
833
-
834
- ```bash
835
- ruby -r yard/yaml -e 'Yard::Yaml::Plugin.activate(%w[--yard_yaml-include docs/**/*.y{a,}ml --yard_yaml-exclude **/_*.y{a,}ml --yard_yaml-out_dir yaml --yard_yaml-index]); Yard::Yaml::Emitter.emit!(pages: Yard::Yaml.pages, output_dir: "docs", config: Yard::Yaml.config)'
836
- ```
837
-
838
- Result:
839
-
840
- - Pages written to `docs/yaml/<slug>.html`
841
- - Index (if enabled) at `docs/yaml/index.html`
842
- - Sidebar entries (via theme hooks) link to these pages
843
-
844
- ### 5. Inline YAML in code object docstrings
845
-
846
- Preferred: use tags.
847
-
848
- ```ruby
849
- # @yaml
850
- # ---
851
- # title: Inline Example
852
- # description: Demonstrates inline conversion.
853
- # ---
854
- # a: 1
855
- # b: 2
856
- ```
857
-
858
- ```ruby
859
- # @yaml_file docs/config/app.yml
860
- ```
861
-
862
- Theme hooks insert converted HTML right after the main docstring. Strict mode governs failure behavior.
863
-
864
- ### 6. YAML in Markdown (GFM) fenced blocks
865
-
866
- Standalone Markdown pages (e.g. README sections) treat:
867
-
868
- ````markdown
869
- ```yaml
870
- key: value
871
- ```
872
- ````
873
-
874
- as a code block. This plugin does NOT yet auto-convert fenced YAML in arbitrary Markdown pages.
875
-
876
- Workarounds:
877
-
878
- - Link to emitted page: `[Full Config](./yaml/config.html)`
879
- - Pre-convert & paste HTML:
880
- ```bash
881
- ruby -r yard/yaml -e 'print Yard::Yaml::Converter.from_string(File.read(ARGV[0]))[:html]' docs/config/app.yml > tmp.html
882
- ```
883
- Paste the resulting HTML (Kramdown allows raw HTML). Optionally wrap:
884
- ```html
885
- <div class="yyaml-inline">(converted YAML html here)</div>
886
- ```
887
-
888
- ### Front Matter Support
889
-
890
- Example `docs/config/app.yml`:
891
-
892
- ```yaml
893
- ---
894
- # Front matter fields consumed by yaml-converter
895
- title: Application Configuration
896
- nav_order: 10
897
- description: Core settings
898
- slug: app-config
899
- ---
900
- app:
901
- name: demo
902
- enabled: true
903
- ```
904
-
905
- Parsed fields:
906
- - `title`, `description` for page heading & sidebar
907
- - `nav_order` for ordering
908
- - `slug` overrides derived slug
909
-
910
- ### Strict Mode & Safety
911
-
912
- - `--yard_yaml-strict=true`: raise `Yard::Yaml::Error` on missing file, conversion, or write errors.
913
- - Default (non-strict): warn and skip.
914
- - ERB disabled by default (`allow_erb=false`); enable only if you trust sources: `--yard_yaml-allow_erb=true`.
915
-
916
- ### Converter Options
917
-
918
- Customize yaml-converter behavior (example):
919
-
920
- ```text
921
- --yard_yaml-converter_options pretty:true,wrap:80
922
- ```
923
-
924
- Boolean/number coercion is handled automatically.
925
-
926
- ### Why not `yaml-markdown`?
927
-
928
- Unnecessary here. YARD already processes Markdown via `--markup markdown --markup-provider kramdown`. This plugin focuses on YAML discovery, conversion, tagging, and emission, leveraging the `yaml-converter` dependency.
929
-
930
- ### Limitations & Roadmap
931
-
932
- Current limitations:
933
-
934
- - No automatic emission during `yard` run (manual step required)
935
- - No automatic conversion of fenced YAML in standalone Markdown pages
936
- - Minimal default HTML for emitted pages (simple inline styles)
937
-
938
- Planned improvements (subject to change):
939
-
940
- - Automatic emission hook in the generation pipeline
941
- - Optional fenced YAML auto-conversion in Markdown
942
- - Enhanced theming & TOC modes beyond `auto`
943
- - Search integration across YAML content
944
-
945
- ### Troubleshooting Quick Reference
946
-
947
- | Symptom | Fix |
948
- |----------------------------|----------------------------------------------------------|
949
- | Sidebar links 404 | Run emission step (Step 4) |
950
- | Missing expected YAML page | Verify include/exclude globs & rerun emission |
951
- | Inline tag shows empty | Ensure YAML content is valid; check strict mode warnings |
952
- | Fenced YAML not converted | Use tags or pre-convert & paste HTML |
953
- | ERB ignored | Enable `--yard_yaml-allow_erb=true` (security trade-off) |
954
- | Build fails in strict mode | Rerun without strict to inspect warnings |
955
-
956
- ## 🦷 FLOSS Funding
957
-
958
- While galtzo-floss tools are free software and will always be, the project would benefit immensely from some funding.
959
- Raising a monthly budget of... "dollars" would make the project more sustainable.
960
-
961
- We welcome both individual and corporate sponsors! We also offer a
962
- wide array of funding channels to account for your preferences
963
- (although currently [Open Collective][🖇osc] is our preferred funding platform).
964
-
965
- **If you're working in a company that's making significant use of galtzo-floss tools we'd
966
- appreciate it if you suggest to your company to become a galtzo-floss sponsor.**
967
-
968
- You can support the development of galtzo-floss tools via
969
- [GitHub Sponsors][🖇sponsor],
970
- [Liberapay][⛳liberapay],
971
- [PayPal][🖇paypal],
972
- [Open Collective][🖇osc]
973
- and [Tidelift][🏙️entsup-tidelift].
974
-
975
- | 📍 NOTE |
976
- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
977
- | If doing a sponsorship in the form of donation is problematic for your company <br/> from an accounting standpoint, we'd recommend the use of Tidelift, <br/> where you can get a support-like subscription instead. |
978
-
979
- ### Open Collective for Individuals
980
-
981
- Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/galtzo-floss#backer)]
982
-
983
- NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
984
-
985
- <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
986
- No backers yet. Be the first!
987
- <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
988
-
989
- ### Open Collective for Organizations
990
-
991
- Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/galtzo-floss#sponsor)]
992
-
993
- NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
994
-
995
- <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
996
- No sponsors yet. Be the first!
997
- <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
998
-
999
- [kettle-readme-backers]: https://github.com/galtzo-floss/yard-yaml/blob/main/exe/kettle-readme-backers
1000
-
1001
- ### Another way to support open-source
1002
-
1003
- I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
1004
-
1005
- If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
1006
-
1007
- I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed to empower open-source developers like myself to get paid for the work we do, in a sustainable way. Please give it a look.
1008
-
1009
- **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
1010
-
1011
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
1012
-
1013
- ## 🔐 Security
1014
-
1015
- See [SECURITY.md][🔐security].
1016
-
1017
- ## 🤝 Contributing
1018
-
1019
- If you need some ideas of where to help, you could work on adding more code coverage,
1020
- or if it is already 💯 (see [below](#code-coverage)) check [reek](REEK), [issues][🤝gh-issues], or [PRs][🤝gh-pulls],
1021
- or use the gem and think about how it could be better.
1022
-
1023
- We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
1024
-
1025
- See [CONTRIBUTING.md][🤝contributing] for more detailed instructions.
1026
-
1027
- ### 🚀 Release Instructions
1028
-
1029
- See [CONTRIBUTING.md][🤝contributing].
1030
-
1031
- ### Code Coverage
1032
-
1033
- [![Coverage Graph][🏀codecov-g]][🏀codecov]
1034
-
1035
- [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
1036
-
1037
- [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
1038
-
1039
- ### 🪇 Code of Conduct
1040
-
1041
- Everyone interacting with this project's codebases, issue trackers,
1042
- chat rooms and mailing lists agrees to follow the [![Contributor Covenant 2.1][🪇conduct-img]][🪇conduct].
1043
-
1044
- ## 🌈 Contributors
1045
-
1046
- [![Contributors][🖐contributors-img]][🖐contributors]
1047
-
1048
- Made with [contributors-img][🖐contrib-rocks].
1049
-
1050
- Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/yard-yaml/-/graphs/main][🚎contributors-gl]
1051
-
1052
- <details>
1053
- <summary>⭐️ Star History</summary>
1054
-
1055
- <a href="https://star-history.com/#galtzo-floss/yard-yaml&Date">
1056
- <picture>
1057
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date&theme=dark" />
1058
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
1059
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/yard-yaml&type=Date" />
1060
- </picture>
1061
- </a>
1062
-
1063
- </details>
1064
-
1065
- ## 📌 Versioning
1066
-
1067
- This Library adheres to [![Semantic Versioning 2.0.0][📌semver-img]][📌semver].
1068
- Violations of this scheme should be reported as bugs.
1069
- Specifically, if a minor or patch version is released that breaks backward compatibility,
1070
- a new version should be immediately released that restores compatibility.
1071
- Breaking changes to the public API will only be introduced with new major versions.
1072
-
1073
- > dropping support for a platform is both obviously and objectively a breaking change <br/>
1074
- >—Jordan Harband ([@ljharb](https://github.com/ljharb), maintainer of SemVer) [in SemVer issue 716][📌semver-breaking]
1075
-
1076
- I understand that policy doesn't work universally ("exceptions to every rule!"),
1077
- but it is the policy here.
1078
- As such, in many cases it is good to specify a dependency on this library using
1079
- the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
1080
-
1081
- For example:
1082
-
1083
- ```ruby
1084
- spec.add_dependency("yard-yaml", "~> 1.0")
1085
- ```
340
+ See [LICENSE.md][📄license] for the official copyright notice.
1086
341
 
1087
342
  <details markdown="1">
1088
- <summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
1089
-
1090
- SemVer should, IMO, but doesn't explicitly, say that dropping support for specific Platforms
1091
- is a *breaking change* to an API, and for that reason the bike shedding is endless.
343
+ <summary>Copyright holders</summary>
1092
344
 
1093
- To get a better understanding of how SemVer is intended to work over a project's lifetime,
1094
- read this article from the creator of SemVer:
1095
-
1096
- - ["Major Version Numbers are Not Sacred"][📌major-versions-not-sacred]
345
+ - Copyright (c) 2025 Annibelle Boling
346
+ - Copyright (c) 2025-2026 Peter H. Boling
1097
347
 
1098
348
  </details>
1099
349
 
1100
- See [CHANGELOG.md][📌changelog] for a list of releases.
1101
-
1102
- ## 📄 License
1103
-
1104
- The gem is available as open source under the terms of
1105
- the [MIT License][📄license] [![License: MIT][📄license-img]][📄license-ref].
1106
- See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
1107
-
1108
- ### © Copyright
1109
-
1110
- <ul>
1111
- <li>
1112
- Copyright (c) 2025 Aboling0 & Peter H. Boling, of
1113
- <a href="https://discord.gg/3qme4XHNKN">
1114
- Galtzo.com
1115
- <picture>
1116
- <img src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px-blank.svg" alt="Galtzo.com Logo (Wordless) by Aboling0, CC BY-SA 4.0" width="24">
1117
- </picture>
1118
- </a>, and yard-yaml contributors.
1119
- </li>
1120
- </ul>
1121
-
1122
350
  ## 🤑 A request for help
1123
351
 
1124
352
  Maintainers have teeth and need to pay their dentists.
@@ -1160,7 +388,7 @@ Thanks for RTFM. ☺️
1160
388
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
1161
389
  [🖇polar]: https://polar.sh/pboling
1162
390
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
1163
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
391
+ [🖇kofi]: https://ko-fi.com/pboling
1164
392
  [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
1165
393
  [🖇patreon]: https://patreon.com/galtzo
1166
394
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
@@ -1182,13 +410,13 @@ Thanks for RTFM. ☺️
1182
410
  [⛳️gem-name]: https://bestgems.org/gems/yard-yaml
1183
411
  [⛳️name-img]: https://img.shields.io/badge/name-yard--yaml-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
1184
412
  [⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/yard-yaml.svg
1185
- [⛳️tag]: http://github.com/galtzo-floss/yard-yaml/releases
413
+ [⛳️tag]: https://github.com/galtzo-floss/yard-yaml/releases
1186
414
  [🚂maint-blog]: http://www.railsbling.com/tags/yard-yaml
1187
415
  [🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
1188
416
  [🚂maint-contact]: http://www.railsbling.com/contact
1189
417
  [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
1190
418
  [💖🖇linkedin]: http://www.linkedin.com/in/peterboling
1191
- [💖🖇linkedin-img]: https://img.shields.io/badge/PeterBoling-LinkedIn-0B66C2?style=flat&logo=newjapanprowrestling
419
+ [💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
1192
420
  [💖✌️wellfound]: https://wellfound.com/u/peter-boling
1193
421
  [💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
1194
422
  [💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
@@ -1217,7 +445,7 @@ Thanks for RTFM. ☺️
1217
445
  [💁🏼‍♂️peterboling]: http://www.peterboling.com
1218
446
  [🚂railsbling]: http://www.railsbling.com
1219
447
  [📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
1220
- [📜src-gl]: https://gitlab.com/galtzo-floss/yard-yaml/
448
+ [📜src-gl]: https://gitlab.com/galtzo-floss/yard-yaml
1221
449
  [📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
1222
450
  [📜src-cb]: https://codeberg.org/galtzo-floss/yard-yaml
1223
451
  [📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
@@ -1226,12 +454,10 @@ Thanks for RTFM. ☺️
1226
454
  [📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
1227
455
  [📜gl-wiki]: https://gitlab.com/galtzo-floss/yard-yaml/-/wikis/home
1228
456
  [📜gh-wiki]: https://github.com/galtzo-floss/yard-yaml/wiki
1229
- [📜gl-wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
1230
- [📜gh-wiki-img]: https://img.shields.io/badge/wiki-examples-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
457
+ [📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
458
+ [📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
1231
459
  [👽dl-rank]: https://bestgems.org/gems/yard-yaml
1232
460
  [👽dl-ranki]: https://img.shields.io/gem/rd/yard-yaml.svg
1233
- [👽oss-help]: https://www.codetriage.com/galtzo-floss/yard-yaml
1234
- [👽oss-helpi]: https://www.codetriage.com/galtzo-floss/yard-yaml/badges/users.svg
1235
461
  [👽version]: https://bestgems.org/gems/yard-yaml
1236
462
  [👽versioni]: https://img.shields.io/gem/v/yard-yaml.svg
1237
463
  [🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/yard-yaml
@@ -1244,22 +470,17 @@ Thanks for RTFM. ☺️
1244
470
  [🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/yard-yaml/badge.svg?branch=main
1245
471
  [🖐codeQL]: https://github.com/galtzo-floss/yard-yaml/security/code-scanning
1246
472
  [🖐codeQL-img]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/codeql-analysis.yml/badge.svg
1247
- [🚎1-an-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ancient.yml
1248
- [🚎1-an-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ancient.yml/badge.svg
473
+ [🚎ruby-3.2-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ruby-3.2.yml
474
+ [🚎ruby-3.3-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ruby-3.3.yml
475
+ [🚎ruby-3.4-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/ruby-3.4.yml
476
+ [🚎truby-24.2-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffleruby-24.2.yml
477
+ [🚎truby-25.0-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffleruby-25.0.yml
1249
478
  [🚎2-cov-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/coverage.yml
1250
479
  [🚎2-cov-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/coverage.yml/badge.svg
1251
480
  [🚎3-hd-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/heads.yml
1252
481
  [🚎3-hd-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/heads.yml/badge.svg
1253
- [🚎4-lg-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/legacy.yml
1254
- [🚎4-lg-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/legacy.yml/badge.svg
1255
482
  [🚎5-st-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/style.yml
1256
483
  [🚎5-st-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/style.yml/badge.svg
1257
- [🚎6-s-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/supported.yml
1258
- [🚎6-s-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/supported.yml/badge.svg
1259
- [🚎7-us-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unsupported.yml
1260
- [🚎7-us-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/unsupported.yml/badge.svg
1261
- [🚎8-ho-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/hoary.yml
1262
- [🚎8-ho-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/hoary.yml/badge.svg
1263
484
  [🚎9-t-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffle.yml
1264
485
  [🚎9-t-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/truffle.yml/badge.svg
1265
486
  [🚎10-j-wf]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/jruby.yml
@@ -1276,17 +497,13 @@ Thanks for RTFM. ☺️
1276
497
  [🚎15-🪪-wfi]: https://github.com/galtzo-floss/yard-yaml/actions/workflows/license-eye.yml/badge.svg
1277
498
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
1278
499
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
500
+ [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
501
+ [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
1279
502
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
1280
503
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
1281
- [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=pink
1282
- [💎truby-23.0i]: https://img.shields.io/badge/Truffle_Ruby-23.0_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=pink
1283
- [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
504
+ [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
505
+ [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
1284
506
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
1285
- [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
1286
- [💎jruby-9.1i]: https://img.shields.io/badge/JRuby-9.1_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
1287
- [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
1288
- [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
1289
- [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
1290
507
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
1291
508
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
1292
509
  [🤝gh-issues]: https://github.com/galtzo-floss/yard-yaml/issues
@@ -1296,34 +513,34 @@ Thanks for RTFM. ☺️
1296
513
  [🤝cb-issues]: https://codeberg.org/galtzo-floss/yard-yaml/issues
1297
514
  [🤝cb-pulls]: https://codeberg.org/galtzo-floss/yard-yaml/pulls
1298
515
  [🤝cb-donate]: https://donate.codeberg.org/
1299
- [🤝contributing]: CONTRIBUTING.md
516
+ [🤝contributing]: https://github.com/galtzo-floss/yard-yaml/blob/main/CONTRIBUTING.md
1300
517
  [🏀codecov-g]: https://codecov.io/gh/galtzo-floss/yard-yaml/graphs/tree.svg
1301
518
  [🖐contrib-rocks]: https://contrib.rocks
1302
519
  [🖐contributors]: https://github.com/galtzo-floss/yard-yaml/graphs/contributors
1303
520
  [🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/yard-yaml
1304
521
  [🚎contributors-gl]: https://gitlab.com/galtzo-floss/yard-yaml/-/graphs/main
1305
- [🪇conduct]: CODE_OF_CONDUCT.md
522
+ [🪇conduct]: https://github.com/galtzo-floss/yard-yaml/blob/main/CODE_OF_CONDUCT.md
1306
523
  [🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
1307
524
  [📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
1308
525
  [📌semver]: https://semver.org/spec/v2.0.0.html
1309
526
  [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
1310
527
  [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
1311
528
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
1312
- [📌changelog]: CHANGELOG.md
529
+ [📌changelog]: https://github.com/galtzo-floss/yard-yaml/blob/main/CHANGELOG.md
1313
530
  [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
1314
531
  [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
1315
532
  [📌gitmoji]: https://gitmoji.dev
1316
533
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1317
534
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1318
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.462-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1319
- [🔐security]: SECURITY.md
535
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.487-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
536
+ [🔐security]: https://github.com/galtzo-floss/yard-yaml/blob/main/SECURITY.md
1320
537
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1321
538
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
1322
- [📄license]: LICENSE.txt
1323
- [📄license-ref]: https://opensource.org/licenses/MIT
539
+ [📄license]: LICENSE.md
540
+ [📄license-ref]: MIT.md
1324
541
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
1325
- [📄license-compat]: https://dev.to/galtzo/how-to-check-license-compatibility-41h0
1326
- [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
542
+ [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
543
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-✓-259D6C.svg?style=flat&logo=Apache
1327
544
  [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
1328
545
  [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
1329
546
  [🚎yard-current]: http://rubydoc.info/gems/yard-yaml
@@ -1336,5 +553,13 @@ Thanks for RTFM. ☺️
1336
553
  [💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
1337
554
  [💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
1338
555
 
1339
-
1340
-
556
+ <!-- kettle-jem:metadata:start -->
557
+ | Field | Value |
558
+ |---|---|
559
+ | Package | yard-yaml |
560
+ | Description | 🔮 A YARD plugin for YAML documents |
561
+ | Homepage | https://github.com/galtzo-floss/yard-yaml |
562
+ | Source | https://github.com/galtzo-floss/yard-yaml/tree/v0.1.1 |
563
+ | License | `MIT` |
564
+ | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/yard-yaml, https://www.buymeacoffee.com/pboling |
565
+ <!-- kettle-jem:metadata:end -->