yaml-converter 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +44 -1
- data/CITATION.cff +6 -6
- data/CONTRIBUTING.md +82 -31
- data/FUNDING.md +1 -1
- data/LICENSE.md +10 -0
- data/README.md +118 -183
- data/SECURITY.md +1 -1
- data/certs/pboling.pem +27 -0
- data/exe/yaml-convert +3 -3
- data/lib/yaml/converter/config.rb +2 -2
- data/lib/yaml/converter/parser.rb +9 -1
- data/lib/yaml/converter/renderer/pdf_hexapdf.rb +195 -0
- data/lib/yaml/converter/validation.rb +2 -2
- data/lib/yaml/converter/version.rb +2 -7
- data/lib/yaml/converter.rb +2 -2
- data/sig/yaml/converter/version.rbs +8 -0
- data/sig/yaml/converter.rbs +0 -2
- data.tar.gz.sig +0 -0
- metadata +81 -49
- metadata.gz.sig +0 -0
- data/LICENSE.txt +0 -21
- data/REEK +0 -0
- data/lib/yaml/converter/renderer/pdf_prawn.rb +0 -110
data/README.md
CHANGED
|
@@ -1,46 +1,10 @@
|
|
|
1
|
-
|
|
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] [![yaml-converter Logo by Aboling0, CC BY-SA 4.0][🖼️yaml-converter-i]][🖼️yaml-converter]
|
|
31
|
-
|
|
32
|
-
[🖼️galtzo-i]: https://logos.galtzo.com/assets/images/galtzo-floss/avatar-192px.svg
|
|
33
|
-
[🖼️galtzo-discord]: https://discord.gg/3qme4XHNKN
|
|
34
|
-
[🖼️ruby-lang-i]: https://logos.galtzo.com/assets/images/ruby-lang/avatar-192px.svg
|
|
35
|
-
[🖼️ruby-lang]: https://www.ruby-lang.org/
|
|
36
|
-
[🖼️yaml-converter-i]: https://logos.galtzo.com/assets/images/galtzo-floss/yaml-converter/avatar-192px.svg
|
|
37
|
-
[🖼️yaml-converter]: https://github.com/galtzo-floss/yaml-converter
|
|
1
|
+
<a href="https://github.com/galtzo-floss"><img alt="galtzo-floss Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="14%" align="right"/></a>
|
|
38
2
|
|
|
39
3
|
# 🥨 Yaml::Converter
|
|
40
4
|
|
|
41
|
-
[![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license
|
|
5
|
+
[![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] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
|
|
42
6
|
|
|
43
|
-
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][
|
|
7
|
+
`if ci_badges.map(&:color).detect { it != "green"}` ☝️ [let me know][✉️discord-invite], as I may have missed the [discord notification][✉️discord-invite].
|
|
44
8
|
|
|
45
9
|
---
|
|
46
10
|
|
|
@@ -48,7 +12,14 @@
|
|
|
48
12
|
|
|
49
13
|
[![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
14
|
|
|
51
|
-
|
|
15
|
+
<details>
|
|
16
|
+
<summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
|
|
17
|
+
|
|
18
|
+
I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
|
|
19
|
+
|
|
20
|
+
</details>
|
|
21
|
+
|
|
22
|
+
## 🌻 Synopsis <a href="https://discord.gg/3qme4XHNKN"><img alt="Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/avatar-128px.svg" width="8%" align="right"/></a> <a href="https://ruby-toolbox.com"><img alt="ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5" src="https://logos.galtzo.com/assets/images/ruby-lang/avatar-128px.svg" width="8%" align="right"/></a>
|
|
52
23
|
|
|
53
24
|
Transform annotated YAML blueprints into human-friendly documentation. This gem:
|
|
54
25
|
|
|
@@ -56,7 +27,7 @@ Transform annotated YAML blueprints into human-friendly documentation. This gem:
|
|
|
56
27
|
- Injects a validation status line with date (deterministic via current_date option)
|
|
57
28
|
- Extracts inline `#note:` annotations into readable blockquotes (or PDF note sections)
|
|
58
29
|
- Truncates overly long YAML lines (configurable)
|
|
59
|
-
- Emits Markdown, HTML, PDF (native
|
|
30
|
+
- Emits Markdown, HTML, PDF (native HexaPDF), DOCX/PDF/other via pandoc
|
|
60
31
|
|
|
61
32
|
Ideal for design documents stored as YAML, making them consumable in multiple formats.
|
|
62
33
|
|
|
@@ -65,42 +36,47 @@ Ideal for design documents stored as YAML, making them consumable in multiple fo
|
|
|
65
36
|
Alternatives (none in Ruby, send a PR if you know of one):
|
|
66
37
|
|
|
67
38
|
- [yaml2rst](https://pypi.org/project/yaml2rst) (Python, GPLv3+)
|
|
68
|
-
- [yaml2doc](https://github.com/ted-dunstone/yaml2doc) (Python, [
|
|
39
|
+
- [yaml2doc](https://github.com/ted-dunstone/yaml2doc) (Python, [GPLv3](https://github.com/ted-dunstone/yaml2doc/blob/master/LICENSE))
|
|
69
40
|
|
|
70
41
|
## 💡 Info you can shake a stick at
|
|
71
42
|
|
|
72
|
-
| Tokens to Remember
|
|
43
|
+
| Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
|
|
73
44
|
|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
74
|
-
| Works with JRuby
|
|
75
|
-
| Works with Truffle Ruby | [![Truffle Ruby
|
|
76
|
-
| Works with MRI Ruby
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
45
|
+
| Works with JRuby | [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
|
|
46
|
+
| 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]|
|
|
47
|
+
| 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]|
|
|
48
|
+
| 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]|
|
|
49
|
+
| 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] |
|
|
50
|
+
| 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] |
|
|
51
|
+
| 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] |
|
|
52
|
+
| 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] |
|
|
53
|
+
| 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] |
|
|
54
|
+
| 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] |
|
|
55
|
+
| `...` 💖 | [![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] |
|
|
84
56
|
|
|
85
57
|
### Compatibility
|
|
86
58
|
|
|
87
59
|
Compatible with MRI Ruby 3.2.0+, and concordant releases of JRuby, and TruffleRuby.
|
|
60
|
+
CI workflows and Appraisals are generated for MRI Ruby 3.2.0+.
|
|
61
|
+
This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
|
|
62
|
+
may be higher than the gem's runtime compatibility floor when legacy Rubies are
|
|
63
|
+
not practical for the current toolchain.
|
|
88
64
|
|
|
89
|
-
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚
|
|
65
|
+
| 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
|
|
90
66
|
|------------------------------------------------|--------------------------------------------------------|
|
|
91
|
-
| 👟 Check it out!
|
|
67
|
+
| 👟 Check it out! | ✨ [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
|
|
92
68
|
|
|
93
69
|
### Federated DVCS
|
|
94
70
|
|
|
95
71
|
<details markdown="1">
|
|
96
|
-
|
|
72
|
+
<summary>Find this repo on federated forges (Coming soon!)</summary>
|
|
97
73
|
|
|
98
|
-
| Federated [DVCS][💎d-in-dvcs] Repository
|
|
99
|
-
|
|
100
|
-
| 🧪 [galtzo-floss/yaml-converter on GitLab][📜src-gl]
|
|
101
|
-
| 🧊 [galtzo-floss/yaml-converter on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate])
|
|
102
|
-
| 🐙 [galtzo-floss/yaml-converter on GitHub][📜src-gh]
|
|
103
|
-
| 🎮️ [Discord Server][✉️discord-invite]
|
|
74
|
+
| Federated [DVCS][💎d-in-dvcs] Repository | Status | Issues | PRs | Wiki | CI | Discussions |
|
|
75
|
+
|-------------------------------------------------|-----------------------------------------------------------------------|---------------------------|--------------------------|---------------------------|--------------------------|------------------------------|
|
|
76
|
+
| 🧪 [galtzo-floss/yaml-converter on GitLab][📜src-gl] | The Truth | [💚][🤝gl-issues] | [💚][🤝gl-pulls] | [💚][📜gl-wiki] | 🐭 Tiny Matrix | ➖ |
|
|
77
|
+
| 🧊 [galtzo-floss/yaml-converter on CodeBerg][📜src-cb] | An Ethical Mirror ([Donate][🤝cb-donate]) | [💚][🤝cb-issues] | [💚][🤝cb-pulls] | ➖ | ⭕️ No Matrix | ➖ |
|
|
78
|
+
| 🐙 [galtzo-floss/yaml-converter on GitHub][📜src-gh] | Another Mirror | [💚][🤝gh-issues] | [💚][🤝gh-pulls] | [💚][📜gh-wiki] | 💯 Full Matrix | [💚][gh-discussions] |
|
|
79
|
+
| 🎮️ [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] |
|
|
104
80
|
|
|
105
81
|
</details>
|
|
106
82
|
|
|
@@ -111,7 +87,7 @@ Compatible with MRI Ruby 3.2.0+, and concordant releases of JRuby, and TruffleRu
|
|
|
111
87
|
Available as part of the Tidelift Subscription.
|
|
112
88
|
|
|
113
89
|
<details markdown="1">
|
|
114
|
-
|
|
90
|
+
<summary>Need enterprise-level guarantees?</summary>
|
|
115
91
|
|
|
116
92
|
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.
|
|
117
93
|
|
|
@@ -143,41 +119,6 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
|
143
119
|
gem install yaml-converter
|
|
144
120
|
```
|
|
145
121
|
|
|
146
|
-
### 🔒 Secure Installation
|
|
147
|
-
|
|
148
|
-
<details markdown="1">
|
|
149
|
-
<summary>For Medium or High Security Installations</summary>
|
|
150
|
-
|
|
151
|
-
This gem is cryptographically signed, and has verifiable [SHA-256 and SHA-512][💎SHA_checksums] checksums by
|
|
152
|
-
[stone_checksums][💎stone_checksums]. Be sure the gem you install hasn’t been tampered with
|
|
153
|
-
by following the instructions below.
|
|
154
|
-
|
|
155
|
-
Add my public key (if you haven’t already, expires 2045-04-29) as a trusted certificate:
|
|
156
|
-
|
|
157
|
-
```console
|
|
158
|
-
gem cert --add <(curl -Ls https://raw.github.com/galtzo-floss/certs/main/pboling.pem)
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
You only need to do that once. Then proceed to install with:
|
|
162
|
-
|
|
163
|
-
```console
|
|
164
|
-
gem install yaml-converter -P HighSecurity
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
The `HighSecurity` trust profile will verify signed gems, and not allow the installation of unsigned dependencies.
|
|
168
|
-
|
|
169
|
-
If you want to up your security game full-time:
|
|
170
|
-
|
|
171
|
-
```console
|
|
172
|
-
bundle config set --global trust-policy MediumSecurity
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
`MediumSecurity` instead of `HighSecurity` is necessary if not all the gems you use are signed.
|
|
176
|
-
|
|
177
|
-
NOTE: Be prepared to track down certs for signed gems and add them the same way you added mine.
|
|
178
|
-
|
|
179
|
-
</details>
|
|
180
|
-
|
|
181
122
|
## ⚙️ Configuration
|
|
182
123
|
|
|
183
124
|
Pass options via API, CLI flags, or ENV variables.
|
|
@@ -214,7 +155,7 @@ Inject `current_date:` in `options` or stub time for tests; the state machine us
|
|
|
214
155
|
|
|
215
156
|
- Markdown (.md)
|
|
216
157
|
- HTML (.html) via kramdown
|
|
217
|
-
- PDF (.pdf) native (
|
|
158
|
+
- PDF (.pdf) native (HexaPDF) or via pandoc when `use_pandoc: true`
|
|
218
159
|
- DOCX (.docx) via pandoc (auto-detects pandoc path)
|
|
219
160
|
- Other pandoc-supported formats (set output extension + `--use-pandoc`)
|
|
220
161
|
|
|
@@ -270,12 +211,14 @@ Yaml::Converter.to_markdown(yaml_str, options: {emit_footer: false})
|
|
|
270
211
|
For very large YAML files, enable streaming to keep memory usage low. Streaming processes the input line-by-line and writes Markdown incrementally while preserving identical output to non-streaming mode.
|
|
271
212
|
|
|
272
213
|
How it works:
|
|
214
|
+
|
|
273
215
|
- Same parsing and state machine logic as non-streaming
|
|
274
216
|
- Injects validation status if `validate` is enabled
|
|
275
217
|
- Closes YAML fences correctly even at EOF
|
|
276
218
|
- Appends standard footer when enabled
|
|
277
219
|
|
|
278
220
|
When streaming is used:
|
|
221
|
+
|
|
279
222
|
- Streaming is applied only to direct `.md` outputs. Other formats still render via an intermediate Markdown string.
|
|
280
223
|
- The output is intended to be byte-for-byte equivalent to the non-streaming path (see tests).
|
|
281
224
|
|
|
@@ -288,14 +231,14 @@ require "yaml/converter"
|
|
|
288
231
|
Yaml::Converter.convert(
|
|
289
232
|
input_path: "big.yaml",
|
|
290
233
|
output_path: "big.md",
|
|
291
|
-
options: {streaming: true, validate: true}
|
|
234
|
+
options: {streaming: true, validate: true}
|
|
292
235
|
)
|
|
293
236
|
|
|
294
237
|
# Auto-stream based on file size threshold (bytes)
|
|
295
238
|
Yaml::Converter.convert(
|
|
296
239
|
input_path: "maybe_big.yaml",
|
|
297
240
|
output_path: "maybe_big.md",
|
|
298
|
-
options: {streaming_threshold_bytes: 10_000_000}
|
|
241
|
+
options: {streaming_threshold_bytes: 10_000_000} # 10 MB (default is 5 MB)
|
|
299
242
|
)
|
|
300
243
|
```
|
|
301
244
|
|
|
@@ -337,12 +280,13 @@ File.open("big.md", "w") do |io|
|
|
|
337
280
|
Yaml::Converter.to_markdown_streaming(
|
|
338
281
|
"big.yaml",
|
|
339
282
|
io,
|
|
340
|
-
options: {validate: true}
|
|
283
|
+
options: {validate: true} # same options as non-streaming
|
|
341
284
|
)
|
|
342
285
|
end
|
|
343
286
|
```
|
|
344
287
|
|
|
345
288
|
Notes:
|
|
289
|
+
|
|
346
290
|
- For `.html`, `.pdf`, `.docx` (and other pandoc-driven formats), the implementation first produces a full Markdown string, so streaming is not applied to those outputs.
|
|
347
291
|
- If the destination file already exists, you’ll see: "Overwriting existing file" (suppress with `KETTLE_TEST_SILENT=true`).
|
|
348
292
|
|
|
@@ -364,7 +308,7 @@ Convert directly to a file (extension decides behavior):
|
|
|
364
308
|
Yaml::Converter.convert(
|
|
365
309
|
input_path: "spec/fixtures/example.yaml",
|
|
366
310
|
output_path: "doc/example.html",
|
|
367
|
-
options: {validate: true}
|
|
311
|
+
options: {validate: true}
|
|
368
312
|
)
|
|
369
313
|
```
|
|
370
314
|
|
|
@@ -377,18 +321,18 @@ Yaml::Converter.to_markdown(yaml_str, options: {current_date: Date.new(2025, 11,
|
|
|
377
321
|
Native PDF vs pandoc PDF:
|
|
378
322
|
|
|
379
323
|
```ruby
|
|
380
|
-
# Native PDF using
|
|
324
|
+
# Native PDF using HexaPDF
|
|
381
325
|
Yaml::Converter.convert(
|
|
382
326
|
input_path: "blueprint.yaml",
|
|
383
327
|
output_path: "blueprint.pdf",
|
|
384
|
-
options: {use_pandoc: false, pdf_two_column_notes: true}
|
|
328
|
+
options: {use_pandoc: false, pdf_two_column_notes: true}
|
|
385
329
|
)
|
|
386
330
|
|
|
387
331
|
# PDF via pandoc (requires pandoc in PATH)
|
|
388
332
|
Yaml::Converter.convert(
|
|
389
333
|
input_path: "blueprint.yaml",
|
|
390
334
|
output_path: "blueprint.pdf",
|
|
391
|
-
options: {use_pandoc: true, pandoc_args: ["-N", "--toc"]}
|
|
335
|
+
options: {use_pandoc: true, pandoc_args: ["-N", "--toc"]}
|
|
392
336
|
)
|
|
393
337
|
```
|
|
394
338
|
|
|
@@ -398,7 +342,7 @@ DOCX via pandoc:
|
|
|
398
342
|
Yaml::Converter.convert(
|
|
399
343
|
input_path: "blueprint.yaml",
|
|
400
344
|
output_path: "blueprint.docx",
|
|
401
|
-
options: {}
|
|
345
|
+
options: {}
|
|
402
346
|
)
|
|
403
347
|
```
|
|
404
348
|
|
|
@@ -432,8 +376,8 @@ While galtzo-floss tools are free software and will always be, the project would
|
|
|
432
376
|
Raising a monthly budget of... "dollars" would make the project more sustainable.
|
|
433
377
|
|
|
434
378
|
We welcome both individual and corporate sponsors! We also offer a
|
|
435
|
-
wide array of funding channels to account for your preferences
|
|
436
|
-
|
|
379
|
+
wide array of funding channels to account for your preferences.
|
|
380
|
+
Currently, [Open Collective][🖇osc] is our preferred funding platform.
|
|
437
381
|
|
|
438
382
|
**If you're working in a company that's making significant use of galtzo-floss tools we'd
|
|
439
383
|
appreciate it if you suggest to your company to become a galtzo-floss sponsor.**
|
|
@@ -445,7 +389,7 @@ You can support the development of galtzo-floss tools via
|
|
|
445
389
|
[Open Collective][🖇osc]
|
|
446
390
|
and [Tidelift][🏙️entsup-tidelift].
|
|
447
391
|
|
|
448
|
-
| 📍 NOTE
|
|
392
|
+
| 📍 NOTE |
|
|
449
393
|
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
450
394
|
| 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. |
|
|
451
395
|
|
|
@@ -473,7 +417,7 @@ No sponsors yet. Be the first!
|
|
|
473
417
|
|
|
474
418
|
### Another way to support open-source
|
|
475
419
|
|
|
476
|
-
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.
|
|
420
|
+
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).
|
|
477
421
|
|
|
478
422
|
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`.
|
|
479
423
|
|
|
@@ -490,7 +434,7 @@ See [SECURITY.md][🔐security].
|
|
|
490
434
|
## 🤝 Contributing
|
|
491
435
|
|
|
492
436
|
If you need some ideas of where to help, you could work on adding more code coverage,
|
|
493
|
-
or if it is already 💯 (see [below](#code-coverage)) check [
|
|
437
|
+
or if it is already 💯 (see [below](#code-coverage)) check [issues][🤝gh-issues] or [PRs][🤝gh-pulls],
|
|
494
438
|
or use the gem and think about how it could be better.
|
|
495
439
|
|
|
496
440
|
We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
|
|
@@ -503,12 +447,17 @@ See [CONTRIBUTING.md][🤝contributing].
|
|
|
503
447
|
|
|
504
448
|
### Code Coverage
|
|
505
449
|
|
|
450
|
+
<details markdown="1">
|
|
451
|
+
<summary>Coverage service badges</summary>
|
|
452
|
+
|
|
506
453
|
[![Coverage Graph][🏀codecov-g]][🏀codecov]
|
|
507
454
|
|
|
508
455
|
[![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls]
|
|
509
456
|
|
|
510
457
|
[![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov]
|
|
511
458
|
|
|
459
|
+
</details>
|
|
460
|
+
|
|
512
461
|
### 🪇 Code of Conduct
|
|
513
462
|
|
|
514
463
|
Everyone interacting with this project's codebases, issue trackers,
|
|
@@ -523,13 +472,13 @@ Made with [contributors-img][🖐contrib-rocks].
|
|
|
523
472
|
Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/yaml-converter/-/graphs/main][🚎contributors-gl]
|
|
524
473
|
|
|
525
474
|
<details>
|
|
526
|
-
|
|
475
|
+
<summary>⭐️ Star History</summary>
|
|
527
476
|
|
|
528
|
-
<a href="https://star-history.com
|
|
477
|
+
<a href="https://star-history.com/galtzo-floss/yaml-converter&Date">
|
|
529
478
|
<picture>
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
479
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yaml-converter&type=Date&theme=dark" />
|
|
480
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=galtzo-floss/yaml-converter&type=Date" />
|
|
481
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=galtzo-floss/yaml-converter&type=Date" />
|
|
533
482
|
</picture>
|
|
534
483
|
</a>
|
|
535
484
|
|
|
@@ -537,31 +486,20 @@ Also see GitLab Contributors: [https://gitlab.com/galtzo-floss/yaml-converter/-/
|
|
|
537
486
|
|
|
538
487
|
## 📌 Versioning
|
|
539
488
|
|
|
540
|
-
This
|
|
541
|
-
|
|
542
|
-
Specifically, if a minor or patch version is released that breaks backward compatibility,
|
|
543
|
-
a new version should be immediately released that restores compatibility.
|
|
544
|
-
Breaking changes to the public API will only be introduced with new major versions.
|
|
545
|
-
|
|
546
|
-
> dropping support for a platform is both obviously and objectively a breaking change <br/>
|
|
547
|
-
>—Jordan Harband ([@ljharb](https://github.com/ljharb), maintainer of SemVer) [in SemVer issue 716][📌semver-breaking]
|
|
548
|
-
|
|
549
|
-
I understand that policy doesn't work universally ("exceptions to every rule!"),
|
|
550
|
-
but it is the policy here.
|
|
551
|
-
As such, in many cases it is good to specify a dependency on this library using
|
|
552
|
-
the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
|
|
489
|
+
This library follows [![Semantic Versioning 2.0.0][📌semver-img]][📌semver] for its public API where practical.
|
|
490
|
+
For most applications, prefer the [Pessimistic Version Constraint][📌pvc] with two digits of precision.
|
|
553
491
|
|
|
554
492
|
For example:
|
|
555
493
|
|
|
556
494
|
```ruby
|
|
557
|
-
spec.add_dependency("yaml-converter", "~> 0.
|
|
495
|
+
spec.add_dependency("yaml-converter", "~> 0.0")
|
|
558
496
|
```
|
|
559
497
|
|
|
560
498
|
<details markdown="1">
|
|
561
499
|
<summary>📌 Is "Platform Support" part of the public API? More details inside.</summary>
|
|
562
500
|
|
|
563
|
-
|
|
564
|
-
|
|
501
|
+
Dropping support for a platform can be a breaking change for affected users.
|
|
502
|
+
If a release changes supported platforms, it should be called out clearly in the changelog and versioned with that impact in mind.
|
|
565
503
|
|
|
566
504
|
To get a better understanding of how SemVer is intended to work over a project's lifetime,
|
|
567
505
|
read this article from the creator of SemVer:
|
|
@@ -575,22 +513,18 @@ See [CHANGELOG.md][📌changelog] for a list of releases.
|
|
|
575
513
|
## 📄 License
|
|
576
514
|
|
|
577
515
|
The gem is available as open source under the terms of
|
|
578
|
-
the [MIT
|
|
579
|
-
See [LICENSE.txt][📄license] for the official [Copyright Notice][📄copyright-notice-explainer].
|
|
516
|
+
the [MIT](MIT.md) [![License: MIT][📄license-img]][📄license-ref].
|
|
580
517
|
|
|
581
518
|
### © Copyright
|
|
582
519
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
</a>, and yaml-converter contributors.
|
|
592
|
-
</li>
|
|
593
|
-
</ul>
|
|
520
|
+
See [LICENSE.md][📄license] for the official copyright notice.
|
|
521
|
+
|
|
522
|
+
<details markdown="1">
|
|
523
|
+
<summary>Copyright holders</summary>
|
|
524
|
+
|
|
525
|
+
- Copyright (c) 2025-2026 Peter H. Boling
|
|
526
|
+
|
|
527
|
+
</details>
|
|
594
528
|
|
|
595
529
|
## 🤑 A request for help
|
|
596
530
|
|
|
@@ -611,6 +545,8 @@ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
|
|
|
611
545
|
|
|
612
546
|
### Please give the project a star ⭐ ♥.
|
|
613
547
|
|
|
548
|
+
Many parts of this project are actively managed by a [kettle-jem](https://github.com/structuredmerge/structuredmerge-ruby/tree/main/gems/kettle-jem) smart template utilizing [StructuredMerge.org](https://structuredmerge.org) merge contracts.
|
|
549
|
+
|
|
614
550
|
Thanks for RTFM. ☺️
|
|
615
551
|
|
|
616
552
|
[⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
|
|
@@ -633,7 +569,7 @@ Thanks for RTFM. ☺️
|
|
|
633
569
|
[🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
|
|
634
570
|
[🖇polar]: https://polar.sh/pboling
|
|
635
571
|
[🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
|
|
636
|
-
[🖇kofi]: https://ko-fi.com/
|
|
572
|
+
[🖇kofi]: https://ko-fi.com/pboling
|
|
637
573
|
[🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
|
|
638
574
|
[🖇patreon]: https://patreon.com/galtzo
|
|
639
575
|
[🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
|
|
@@ -655,13 +591,13 @@ Thanks for RTFM. ☺️
|
|
|
655
591
|
[⛳️gem-name]: https://bestgems.org/gems/yaml-converter
|
|
656
592
|
[⛳️name-img]: https://img.shields.io/badge/name-yaml--converter-3C2D2D.svg?style=square&logo=rubygems&logoColor=red
|
|
657
593
|
[⛳️tag-img]: https://img.shields.io/github/tag/galtzo-floss/yaml-converter.svg
|
|
658
|
-
[⛳️tag]:
|
|
594
|
+
[⛳️tag]: https://github.com/galtzo-floss/yaml-converter/releases
|
|
659
595
|
[🚂maint-blog]: http://www.railsbling.com/tags/yaml-converter
|
|
660
596
|
[🚂maint-blog-img]: https://img.shields.io/badge/blog-railsbling-0093D0.svg?style=for-the-badge&logo=rubyonrails&logoColor=orange
|
|
661
597
|
[🚂maint-contact]: http://www.railsbling.com/contact
|
|
662
598
|
[🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
|
|
663
599
|
[💖🖇linkedin]: http://www.linkedin.com/in/peterboling
|
|
664
|
-
[💖🖇linkedin-img]: https://img.shields.io/badge/
|
|
600
|
+
[💖🖇linkedin-img]: https://img.shields.io/badge/LinkedIn-Profile-0B66C2?style=flat&logo=newjapanprowrestling
|
|
665
601
|
[💖✌️wellfound]: https://wellfound.com/u/peter-boling
|
|
666
602
|
[💖✌️wellfound-img]: https://img.shields.io/badge/peter--boling-orange?style=flat&logo=wellfound
|
|
667
603
|
[💖💲crunchbase]: https://www.crunchbase.com/person/peter-boling
|
|
@@ -690,7 +626,7 @@ Thanks for RTFM. ☺️
|
|
|
690
626
|
[💁🏼♂️peterboling]: http://www.peterboling.com
|
|
691
627
|
[🚂railsbling]: http://www.railsbling.com
|
|
692
628
|
[📜src-gl-img]: https://img.shields.io/badge/GitLab-FBA326?style=for-the-badge&logo=Gitlab&logoColor=orange
|
|
693
|
-
[📜src-gl]: https://gitlab.com/galtzo-floss/yaml-converter
|
|
629
|
+
[📜src-gl]: https://gitlab.com/galtzo-floss/yaml-converter
|
|
694
630
|
[📜src-cb-img]: https://img.shields.io/badge/CodeBerg-4893CC?style=for-the-badge&logo=CodeBerg&logoColor=blue
|
|
695
631
|
[📜src-cb]: https://codeberg.org/galtzo-floss/yaml-converter
|
|
696
632
|
[📜src-gh-img]: https://img.shields.io/badge/GitHub-238636?style=for-the-badge&logo=Github&logoColor=green
|
|
@@ -699,12 +635,10 @@ Thanks for RTFM. ☺️
|
|
|
699
635
|
[📜docs-head-rd-img]: https://img.shields.io/badge/YARD_on_Galtzo.com-HEAD-943CD2?style=for-the-badge&logo=readthedocs&logoColor=white
|
|
700
636
|
[📜gl-wiki]: https://gitlab.com/galtzo-floss/yaml-converter/-/wikis/home
|
|
701
637
|
[📜gh-wiki]: https://github.com/galtzo-floss/yaml-converter/wiki
|
|
702
|
-
[📜gl-wiki-img]: https://img.shields.io/badge/wiki-
|
|
703
|
-
[📜gh-wiki-img]: https://img.shields.io/badge/wiki-
|
|
638
|
+
[📜gl-wiki-img]: https://img.shields.io/badge/wiki-gitlab-943CD2.svg?style=for-the-badge&logo=gitlab&logoColor=white
|
|
639
|
+
[📜gh-wiki-img]: https://img.shields.io/badge/wiki-github-943CD2.svg?style=for-the-badge&logo=github&logoColor=white
|
|
704
640
|
[👽dl-rank]: https://bestgems.org/gems/yaml-converter
|
|
705
641
|
[👽dl-ranki]: https://img.shields.io/gem/rd/yaml-converter.svg
|
|
706
|
-
[👽oss-help]: https://www.codetriage.com/galtzo-floss/yaml-converter
|
|
707
|
-
[👽oss-helpi]: https://www.codetriage.com/galtzo-floss/yaml-converter/badges/users.svg
|
|
708
642
|
[👽version]: https://bestgems.org/gems/yaml-converter
|
|
709
643
|
[👽versioni]: https://img.shields.io/gem/v/yaml-converter.svg
|
|
710
644
|
[🏀qlty-mnt]: https://qlty.sh/gh/galtzo-floss/projects/yaml-converter
|
|
@@ -715,24 +649,17 @@ Thanks for RTFM. ☺️
|
|
|
715
649
|
[🏀codecovi]: https://codecov.io/gh/galtzo-floss/yaml-converter/graph/badge.svg
|
|
716
650
|
[🏀coveralls]: https://coveralls.io/github/galtzo-floss/yaml-converter?branch=main
|
|
717
651
|
[🏀coveralls-img]: https://coveralls.io/repos/github/galtzo-floss/yaml-converter/badge.svg?branch=main
|
|
718
|
-
[
|
|
719
|
-
[
|
|
720
|
-
[🚎
|
|
721
|
-
[🚎
|
|
652
|
+
[🚎ruby-3.2-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/ruby-3.2.yml
|
|
653
|
+
[🚎ruby-3.3-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/ruby-3.3.yml
|
|
654
|
+
[🚎ruby-3.4-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/ruby-3.4.yml
|
|
655
|
+
[🚎truby-24.2-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/truffleruby-24.2.yml
|
|
656
|
+
[🚎truby-25.0-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/truffleruby-25.0.yml
|
|
722
657
|
[🚎2-cov-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/coverage.yml
|
|
723
658
|
[🚎2-cov-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/coverage.yml/badge.svg
|
|
724
659
|
[🚎3-hd-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/heads.yml
|
|
725
660
|
[🚎3-hd-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/heads.yml/badge.svg
|
|
726
|
-
[🚎4-lg-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/legacy.yml
|
|
727
|
-
[🚎4-lg-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/legacy.yml/badge.svg
|
|
728
661
|
[🚎5-st-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/style.yml
|
|
729
662
|
[🚎5-st-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/style.yml/badge.svg
|
|
730
|
-
[🚎6-s-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/supported.yml
|
|
731
|
-
[🚎6-s-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/supported.yml/badge.svg
|
|
732
|
-
[🚎7-us-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/unsupported.yml
|
|
733
|
-
[🚎7-us-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/unsupported.yml/badge.svg
|
|
734
|
-
[🚎8-ho-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/hoary.yml
|
|
735
|
-
[🚎8-ho-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/hoary.yml/badge.svg
|
|
736
663
|
[🚎9-t-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/truffle.yml
|
|
737
664
|
[🚎9-t-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/truffle.yml/badge.svg
|
|
738
665
|
[🚎10-j-wf]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/jruby.yml
|
|
@@ -749,17 +676,13 @@ Thanks for RTFM. ☺️
|
|
|
749
676
|
[🚎15-🪪-wfi]: https://github.com/galtzo-floss/yaml-converter/actions/workflows/license-eye.yml/badge.svg
|
|
750
677
|
[💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
751
678
|
[💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
679
|
+
[💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
680
|
+
[💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
|
|
752
681
|
[💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
|
|
753
682
|
[💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
|
|
754
|
-
[💎truby-
|
|
755
|
-
[💎truby-
|
|
756
|
-
[💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
683
|
+
[💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
684
|
+
[💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
|
|
757
685
|
[💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
|
|
758
|
-
[💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
|
|
759
|
-
[💎jruby-9.1i]: https://img.shields.io/badge/JRuby-9.1_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
|
|
760
|
-
[💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
|
|
761
|
-
[💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=red
|
|
762
|
-
[💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
|
|
763
686
|
[💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
|
|
764
687
|
[💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
|
|
765
688
|
[🤝gh-issues]: https://github.com/galtzo-floss/yaml-converter/issues
|
|
@@ -769,34 +692,35 @@ Thanks for RTFM. ☺️
|
|
|
769
692
|
[🤝cb-issues]: https://codeberg.org/galtzo-floss/yaml-converter/issues
|
|
770
693
|
[🤝cb-pulls]: https://codeberg.org/galtzo-floss/yaml-converter/pulls
|
|
771
694
|
[🤝cb-donate]: https://donate.codeberg.org/
|
|
772
|
-
[🤝contributing]: CONTRIBUTING.md
|
|
773
|
-
[🏀codecov-g]: https://codecov.io/gh/galtzo-floss/yaml-converter/
|
|
695
|
+
[🤝contributing]: https://github.com/galtzo-floss/yaml-converter/blob/main/CONTRIBUTING.md
|
|
696
|
+
[🏀codecov-g]: https://codecov.io/gh/galtzo-floss/yaml-converter/graph/badge.svg
|
|
774
697
|
[🖐contrib-rocks]: https://contrib.rocks
|
|
775
698
|
[🖐contributors]: https://github.com/galtzo-floss/yaml-converter/graphs/contributors
|
|
776
699
|
[🖐contributors-img]: https://contrib.rocks/image?repo=galtzo-floss/yaml-converter
|
|
777
700
|
[🚎contributors-gl]: https://gitlab.com/galtzo-floss/yaml-converter/-/graphs/main
|
|
778
|
-
[🪇conduct]: CODE_OF_CONDUCT.md
|
|
701
|
+
[🪇conduct]: https://github.com/galtzo-floss/yaml-converter/blob/main/CODE_OF_CONDUCT.md
|
|
779
702
|
[🪇conduct-img]: https://img.shields.io/badge/Contributor_Covenant-2.1-259D6C.svg
|
|
780
703
|
[📌pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
|
|
781
704
|
[📌semver]: https://semver.org/spec/v2.0.0.html
|
|
782
705
|
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-259D6C.svg?style=flat
|
|
783
706
|
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
|
|
784
707
|
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
|
|
785
|
-
[📌changelog]: CHANGELOG.md
|
|
708
|
+
[📌changelog]: https://github.com/galtzo-floss/yaml-converter/blob/main/CHANGELOG.md
|
|
786
709
|
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
|
|
787
710
|
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-34495e.svg?style=flat
|
|
788
711
|
[📌gitmoji]: https://gitmoji.dev
|
|
789
712
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
790
713
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
791
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
792
|
-
[🔐security]: SECURITY.md
|
|
714
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.479-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
715
|
+
[🔐security]: https://github.com/galtzo-floss/yaml-converter/blob/main/SECURITY.md
|
|
793
716
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
794
717
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
795
|
-
[📄license]: LICENSE.
|
|
796
|
-
[📄license-ref]:
|
|
718
|
+
[📄license]: LICENSE.md
|
|
719
|
+
[📄license-ref]: MIT.md
|
|
797
720
|
[📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
|
|
798
|
-
[📄license-compat]: https://
|
|
721
|
+
[📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
|
|
799
722
|
[📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
|
|
723
|
+
|
|
800
724
|
[📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
|
|
801
725
|
[📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
|
|
802
726
|
[🚎yard-current]: http://rubydoc.info/gems/yaml-converter
|
|
@@ -808,3 +732,14 @@ Thanks for RTFM. ☺️
|
|
|
808
732
|
[💎appraisal2]: https://github.com/appraisal-rb/appraisal2
|
|
809
733
|
[💎appraisal2-img]: https://img.shields.io/badge/appraised_by-appraisal2-34495e.svg?plastic&logo=ruby&logoColor=white
|
|
810
734
|
[💎d-in-dvcs]: https://railsbling.com/posts/dvcs/put_the_d_in_dvcs/
|
|
735
|
+
|
|
736
|
+
<!-- kettle-jem:metadata:start -->
|
|
737
|
+
| Field | Value |
|
|
738
|
+
|---|---|
|
|
739
|
+
| Package | yaml-converter |
|
|
740
|
+
| Description | 🥨 yaml-converter parses YAML files (with inline #note: annotations and validation markers) and emits polished Markdown, HTML, and PDF/DOCX (via pandoc) outputs including a validation status line, fenced YAML blocks, and extracted notes. |
|
|
741
|
+
| Homepage | https://github.com/galtzo-floss/yaml-converter |
|
|
742
|
+
| Source | https://github.com/galtzo-floss/yaml-converter/tree/v0.2.0 |
|
|
743
|
+
| License | `MIT` |
|
|
744
|
+
| 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/yaml-converter, https://www.buymeacoffee.com/pboling |
|
|
745
|
+
<!-- kettle-jem:metadata:end -->
|