releasehx 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +363 -330
  3. data/build/docs/_config.yml +1 -0
  4. data/build/docs/_release_index.adoc +3 -2
  5. data/build/docs/config-reference.adoc +197 -10
  6. data/build/docs/config-reference.json +56 -7
  7. data/build/docs/index.adoc +315 -59
  8. data/build/docs/landing.adoc +1 -1
  9. data/build/docs/manpage.adoc +2 -2
  10. data/build/docs/release-procedure.adoc +365 -0
  11. data/build/docs/release-procedure.html +87 -0
  12. data/build/docs/releasehx.1 +17 -5
  13. data/build/docs/sample-config.yml +14 -7
  14. data/lib/releasehx/cli.rb +5 -2
  15. data/lib/releasehx/configuration.rb +0 -1
  16. data/lib/releasehx/generated.rb +1 -1
  17. data/lib/releasehx/mcp/assets/agent-config-guide.md +1 -1
  18. data/lib/releasehx/mcp/assets/config-def.yml +122 -6
  19. data/lib/releasehx/mcp/assets/config-reference.adoc +197 -10
  20. data/lib/releasehx/mcp/assets/config-reference.json +56 -7
  21. data/lib/releasehx/mcp/assets/sample-config.yml +14 -7
  22. data/lib/releasehx/mcp/server.rb +0 -1
  23. data/lib/releasehx/ops/enrich_ops.rb +161 -55
  24. data/lib/releasehx/ops/template_ops.rb +1 -1
  25. data/lib/releasehx/rhyml/adapter.rb +0 -3
  26. data/lib/releasehx/rhyml/templates/bootstrap-overrides.css +15 -0
  27. data/lib/releasehx/rhyml/templates/changelog.adoc.liquid +2 -0
  28. data/lib/releasehx/rhyml/templates/changelog.html.liquid +6 -4
  29. data/lib/releasehx/rhyml/templates/changelog.md.liquid +1 -0
  30. data/lib/releasehx/rhyml/templates/embedded.css.liquid +263 -0
  31. data/lib/releasehx/rhyml/templates/entry.adoc.liquid +1 -0
  32. data/lib/releasehx/rhyml/templates/entry.html.liquid +21 -20
  33. data/lib/releasehx/rhyml/templates/entry.md.liquid +15 -21
  34. data/lib/releasehx/rhyml/templates/head-parser.liquid +6 -2
  35. data/lib/releasehx/rhyml/templates/header.liquid +13 -4
  36. data/lib/releasehx/rhyml/templates/history.html.liquid +152 -33
  37. data/lib/releasehx/rhyml/templates/metadata-entry.adoc.liquid +83 -38
  38. data/lib/releasehx/rhyml/templates/metadata-entry.html.liquid +60 -1
  39. data/lib/releasehx/rhyml/templates/metadata-entry.md.liquid +65 -113
  40. data/lib/releasehx/rhyml/templates/metadata-note.adoc.liquid +83 -38
  41. data/lib/releasehx/rhyml/templates/metadata-note.html.liquid +59 -22
  42. data/lib/releasehx/rhyml/templates/metadata-note.md.liquid +68 -23
  43. data/lib/releasehx/rhyml/templates/note.html.liquid +25 -19
  44. data/lib/releasehx/rhyml/templates/note.md.liquid +44 -26
  45. data/lib/releasehx/rhyml/templates/release-notes.adoc.liquid +2 -0
  46. data/lib/releasehx/rhyml/templates/release-notes.html.liquid +6 -4
  47. data/lib/releasehx/rhyml/templates/release-notes.md.liquid +1 -0
  48. data/lib/releasehx/rhyml/templates/release.adoc.liquid +2 -0
  49. data/lib/releasehx/rhyml/templates/release.md.liquid +8 -7
  50. data/lib/releasehx/rhyml/templates/rhyml-change.yaml.liquid +36 -36
  51. data/lib/releasehx/rhyml/templates/wrapper.html.liquid +103 -0
  52. data/lib/releasehx/sgyml/helpers.rb +0 -2
  53. data/lib/releasehx/transforms/adf_to_markdown.rb +1 -1
  54. data/lib/releasehx/version.rb +0 -2
  55. data/lib/releasehx.rb +2 -2
  56. data/specs/data/config-def.yml +122 -6
  57. metadata +48 -25
  58. data/build/docs/schemagraphy_readme.html +0 -0
  59. data/build/docs/sourcerer_readme.html +0 -46
  60. data/lib/schemagraphy/attribute_resolver.rb +0 -48
  61. data/lib/schemagraphy/cfgyml/definition.rb +0 -90
  62. data/lib/schemagraphy/cfgyml/doc_builder.rb +0 -52
  63. data/lib/schemagraphy/cfgyml/path_reference.rb +0 -24
  64. data/lib/schemagraphy/data_query/json_pointer.rb +0 -42
  65. data/lib/schemagraphy/loader.rb +0 -59
  66. data/lib/schemagraphy/regexp_utils.rb +0 -235
  67. data/lib/schemagraphy/safe_expression.rb +0 -189
  68. data/lib/schemagraphy/schema_utils.rb +0 -124
  69. data/lib/schemagraphy/tag_utils.rb +0 -32
  70. data/lib/schemagraphy/templating.rb +0 -104
  71. data/lib/schemagraphy.rb +0 -17
  72. data/lib/sourcerer/builder.rb +0 -120
  73. data/lib/sourcerer/jekyll/bootstrapper.rb +0 -78
  74. data/lib/sourcerer/jekyll/liquid/file_system.rb +0 -74
  75. data/lib/sourcerer/jekyll/liquid/filters.rb +0 -215
  76. data/lib/sourcerer/jekyll/liquid/tags.rb +0 -44
  77. data/lib/sourcerer/jekyll/monkeypatches.rb +0 -73
  78. data/lib/sourcerer/jekyll.rb +0 -26
  79. data/lib/sourcerer/plaintext_converter.rb +0 -75
  80. data/lib/sourcerer/templating.rb +0 -190
  81. data/lib/sourcerer.rb +0 -322
@@ -33,6 +33,7 @@ exclude:
33
33
  - payloads/
34
34
  - release/
35
35
  - yard/
36
+ - release-procedure.adoc
36
37
 
37
38
  # Enable Rouge for syntax highlighting in AsciiDoc blocks
38
39
  asciidoctor:
@@ -2,8 +2,9 @@
2
2
 
3
3
  Each release includes detailed notes about new features, improvements, bug fixes, and breaking changes.
4
4
 
5
- * link:../release/0.1.2.html[0.1.2] - 2026-01-29
5
+ * link:../release/0.2.0[0.2.0] - 2026-05-27
6
+ * link:../release/0.1.2[0.1.2] - 2026-01-30
6
7
 
7
8
  == Latest Release
8
9
 
9
- include::release/0.1.2.adoc[leveloffset=+1]
10
+ include::release/0.2.0.adoc[leveloffset=+1]
@@ -438,18 +438,80 @@ default;;
438
438
  path;; `xref:conf_ppty_conversions_markup[config.conversions.markup]`
439
439
  --
440
440
 
441
- [[conf_ppty_conversions_engine,config.conversions.engine]]
442
- conversions.engine:::
441
+ [[conf_ppty_conversions_engines,config.conversions.engines]]
442
+ conversions.engines:::
443
443
  +
444
444
  --
445
- The markup converter to use for the issues.
446
- Defaults to `asciidoctor` for AsciiDoc and `redcarpet` for Markdown.
447
- Options include `asciidoctor`, `redcarpet`, `commonmarker`, `kramdown`, or `pandoc`.
445
+ Specifies the conversion engines to use when enriching to various output formats.
446
+
447
+ These settings determine which tool processes the conversion from draft formats to rich output.
448
+ Intelligent defaults are applied based on source format when engines are not explicitly configured.
449
+
450
+
451
+ [horizontal]
452
+ path;; `xref:conf_ppty_conversions_engines[config.conversions.engines]`
453
+ --
454
+
455
+ [[conf_ppty_conversions_engines_html,config.conversions.engines.html]]
456
+ conversions.engines.html::::
457
+ +
458
+ --
459
+ Engine for converting to HTML format.
460
+
461
+ Valid engines:
462
+
463
+ [horizontal]
464
+ `asciidoctor-html5`:: Standard Asciidoctor HTML5 backend (nested div structure)
465
+ `asciidoctor-html5s`:: Semantic HTML5 backend (cleaner section-based markup)
466
+ `kramdown`:: Kramdown Markdown converter (for Markdown sources)
467
+ `pandoc`:: Universal document converter (if available)
468
+
469
+ When not specified, intelligent defaults apply:
470
+
471
+ - AsciiDoc → HTML: `asciidoctor-html5s` (semantic HTML5)
472
+ - Markdown → HTML: `kramdown`
473
+ - RHYML → HTML: Liquid templates (no engine needed)
474
+
475
+ The html5s backend produces cleaner, more semantic HTML with `<section>` elements
476
+ instead of nested `<div class="sect1"><div class="sectionbody">` structures.
477
+
478
+ This is particularly useful when you want to apply custom CSS or when generating
479
+ HTML that will be further processed or embedded in other systems.
480
+
481
+ For backwards compatibility or when you need the traditional Asciidoctor structure,
482
+ use `asciidoctor-html5`.
448
483
 
449
484
 
450
485
  [horizontal]
451
486
  type;; String
452
- path;; `xref:conf_ppty_conversions_engine[config.conversions.engine]`
487
+ path;; `xref:conf_ppty_conversions_engines_html[config.conversions.engines.html]`
488
+ --
489
+
490
+ [[conf_ppty_conversions_engines_pdf,config.conversions.engines.pdf]]
491
+ conversions.engines.pdf::::
492
+ +
493
+ --
494
+ Engine for converting to PDF format.
495
+
496
+ Valid engines:
497
+
498
+ [horizontal]
499
+ `asciidoctor-pdf`:: Asciidoctor PDF converter (default for AsciiDoc)
500
+ `asciidoctor-web-pdf`:: Web-based PDF converter using headless Chrome
501
+ `pandoc`:: Universal document converter (if available)
502
+
503
+ When not specified, intelligent defaults apply:
504
+
505
+ - AsciiDoc → PDF: `asciidoctor-pdf`
506
+ - Markdown → PDF: `pandoc` (if available)
507
+
508
+ The default `asciidoctor-pdf` engine provides excellent typography and layout
509
+ for technical documentation with support for themes, fonts, and advanced formatting.
510
+
511
+
512
+ [horizontal]
513
+ type;; String
514
+ path;; `xref:conf_ppty_conversions_engines_pdf[config.conversions.engines.pdf]`
453
515
  --
454
516
 
455
517
  [[conf_ppty_extensions,config.extensions]]
@@ -2497,8 +2559,8 @@ Default settings for `rhx` command executions.
2497
2559
  path;; `xref:conf_ppty_modes[config.modes]`
2498
2560
  --
2499
2561
 
2500
- [[conf_ppty_modes_wrapped,config.modes.wrapped]]
2501
- modes.wrapped:::
2562
+ [[conf_ppty_modes_html_wrap,config.modes.html_wrap]]
2563
+ modes.html_wrap:::
2502
2564
  +
2503
2565
  --
2504
2566
  Include (or exclude) head, header, and footer elements when enriching to HTML.
@@ -2509,7 +2571,7 @@ type;; Boolean
2509
2571
  default;;
2510
2572
  +
2511
2573
  `+++false+++`
2512
- path;; `xref:conf_ppty_modes_wrapped[config.modes.wrapped]`
2574
+ path;; `xref:conf_ppty_modes_html_wrap[config.modes.html_wrap]`
2513
2575
  --
2514
2576
 
2515
2577
  [[conf_ppty_modes_html_frontmatter,config.modes.html_frontmatter]]
@@ -2557,6 +2619,9 @@ Uses the `templates.asciidoc_frontmatter` template.
2557
2619
 
2558
2620
  [horizontal]
2559
2621
  type;; Boolean
2622
+ default;;
2623
+ +
2624
+ `+++false+++`
2560
2625
  path;; `xref:conf_ppty_modes_asciidoc_frontmatter[config.modes.asciidoc_frontmatter]`
2561
2626
  --
2562
2627
 
@@ -2871,6 +2936,128 @@ date: {{ release.date }}
2871
2936
  path;; `xref:conf_ppty_history_html_frontmatter[config.history.html_frontmatter]`
2872
2937
  --
2873
2938
 
2939
+ [[conf_ppty_history_html_framework,config.history.html_framework]]
2940
+ history.html_framework:::
2941
+ +
2942
+ --
2943
+ The HTML framework to use when enriching to HTML.
2944
+
2945
+ Valid entries:
2946
+
2947
+ [horizontal]
2948
+ `bare`:: minimal HTML structure
2949
+ `bootstrap4`:: Bootstrap 4 framework
2950
+ `bootstrap5`:: Bootstrap 5 framework
2951
+
2952
+
2953
+ [horizontal]
2954
+ type;; String
2955
+ default;;
2956
+ +
2957
+ `+++bare+++`
2958
+ path;; `xref:conf_ppty_history_html_framework[config.history.html_framework]`
2959
+ --
2960
+
2961
+ [[conf_ppty_history_styling,config.history.styling]]
2962
+ history.styling:::
2963
+ +
2964
+ --
2965
+ Configuration options for HTML styling and CSS framework integration.
2966
+
2967
+
2968
+ [horizontal]
2969
+ path;; `xref:conf_ppty_history_styling[config.history.styling]`
2970
+ --
2971
+
2972
+ [[conf_ppty_history_styling_mode,config.history.styling.mode]]
2973
+ history.styling.mode::::
2974
+ +
2975
+ --
2976
+ The HTML styling approach to use when generating wrapped HTML output.
2977
+
2978
+ Valid options:
2979
+
2980
+ * `minimal` -- Basic semantic HTML with minimal inline styles
2981
+ * `embedded` -- Include comprehensive CSS in `<style>` block
2982
+ * `external` -- Reference external stylesheet via `<link>` tag
2983
+ * `framework` -- Use configured CSS framework only (Bootstrap, etc.)
2984
+
2985
+ When `mode: framework`, styling relies entirely on the configured CSS framework.
2986
+ When `mode: embedded`, CSS is included inline for standalone HTML files.
2987
+ When `mode: external`, a custom CSS file must be provided via `css_url`.
2988
+
2989
+
2990
+ [horizontal]
2991
+ type;; String
2992
+ default;;
2993
+ +
2994
+ `+++framework+++`
2995
+ path;; `xref:conf_ppty_history_styling_mode[config.history.styling.mode]`
2996
+ --
2997
+
2998
+ [[conf_ppty_history_styling_theme,config.history.styling.theme]]
2999
+ history.styling.theme::::
3000
+ +
3001
+ --
3002
+ The visual theme variant to apply to HTML output.
3003
+
3004
+ Built-in themes:
3005
+
3006
+ * `default` -- Standard professional appearance
3007
+ * `compact` -- Reduced spacing and condensed layout
3008
+ * `detailed` -- Enhanced metadata display with expanded information
3009
+
3010
+ Theme selection affects spacing, typography, and metadata prominence.
3011
+
3012
+
3013
+ [horizontal]
3014
+ type;; String
3015
+ default;;
3016
+ +
3017
+ `+++default+++`
3018
+ path;; `xref:conf_ppty_history_styling_theme[config.history.styling.theme]`
3019
+ --
3020
+
3021
+ [[conf_ppty_history_styling_embed_css,config.history.styling.embed_css]]
3022
+ history.styling.embed_css::::
3023
+ +
3024
+ --
3025
+ Include comprehensive CSS directly in the HTML `<style>` block.
3026
+
3027
+ When enabled, generates standalone HTML files that display correctly
3028
+ without external dependencies. CSS includes framework customizations,
3029
+ responsive design rules, and print optimizations.
3030
+
3031
+ Automatically enabled when `mode: embedded`.
3032
+
3033
+
3034
+ [horizontal]
3035
+ type;; Boolean
3036
+ default;;
3037
+ +
3038
+ `+++false+++`
3039
+ path;; `xref:conf_ppty_history_styling_embed_css[config.history.styling.embed_css]`
3040
+ --
3041
+
3042
+ [[conf_ppty_history_styling_css_url,config.history.styling.css_url]]
3043
+ history.styling.css_url::::
3044
+ +
3045
+ --
3046
+ URL or path to external CSS stylesheet for custom styling.
3047
+
3048
+ When `mode: external`, this stylesheet is linked via `<link rel="stylesheet">`.
3049
+ Can be a relative path, absolute URL, or CDN link.
3050
+
3051
+ Example: `assets/custom-releasehx.css` or `https://example.com/styles.css`
3052
+
3053
+ When provided, framework CSS and embedded CSS are disabled.
3054
+
3055
+
3056
+ [horizontal]
3057
+ type;; String
3058
+ path;; `xref:conf_ppty_history_styling_css_url[config.history.styling.css_url]`
3059
+ --
3060
+
2874
3061
  [[conf_ppty_history_items,config.history.items]]
2875
3062
  history.items:::
2876
3063
  +
@@ -4101,4 +4288,4 @@ default;;
4101
4288
  +
4102
4289
  `+++false+++`
4103
4290
  path;; `xref:conf_ppty_notes_items_show_auths_label[config.notes.items.show_auths_label]`
4104
- --
4291
+ --
@@ -155,10 +155,23 @@
155
155
  "type": "String",
156
156
  "default": "markdown"
157
157
  },
158
- "engine": {
159
- "path": "conversions.engine",
160
- "desc": "The markup converter to use for the issues.\nDefaults to `asciidoctor` for AsciiDoc and `redcarpet` for Markdown.\nOptions include `asciidoctor`, `redcarpet`, `commonmarker`, `kramdown`, or `pandoc`.\n",
161
- "type": "String"
158
+ "engines": {
159
+ "path": "conversions.engines",
160
+ "desc": "Specifies the conversion engines to use when enriching to various output formats.\n\nThese settings determine which tool processes the conversion from draft formats to rich output.\nIntelligent defaults are applied based on source format when engines are not explicitly configured.\n",
161
+ "properties": {
162
+ "html": {
163
+ "path": "conversions.engines.html",
164
+ "desc": "Engine for converting to HTML format.\n\nValid engines:\n\n[horizontal]\n`asciidoctor-html5`:: Standard Asciidoctor HTML5 backend (nested div structure)\n`asciidoctor-html5s`:: Semantic HTML5 backend (cleaner section-based markup)\n`kramdown`:: Kramdown Markdown converter (for Markdown sources)\n`pandoc`:: Universal document converter (if available)\n\nWhen not specified, intelligent defaults apply:\n\n- AsciiDoc → HTML: `asciidoctor-html5s` (semantic HTML5)\n- Markdown → HTML: `kramdown`\n- RHYML → HTML: Liquid templates (no engine needed)\n",
165
+ "docs": "The html5s backend produces cleaner, more semantic HTML with `<section>` elements\ninstead of nested `<div class=\"sect1\"><div class=\"sectionbody\">` structures.\n\nThis is particularly useful when you want to apply custom CSS or when generating\nHTML that will be further processed or embedded in other systems.\n\nFor backwards compatibility or when you need the traditional Asciidoctor structure,\nuse `asciidoctor-html5`.\n",
166
+ "type": "String"
167
+ },
168
+ "pdf": {
169
+ "path": "conversions.engines.pdf",
170
+ "desc": "Engine for converting to PDF format.\n\nValid engines:\n\n[horizontal]\n`asciidoctor-pdf`:: Asciidoctor PDF converter (default for AsciiDoc)\n`asciidoctor-web-pdf`:: Web-based PDF converter using headless Chrome\n`pandoc`:: Universal document converter (if available)\n\nWhen not specified, intelligent defaults apply:\n\n- AsciiDoc → PDF: `asciidoctor-pdf`\n- Markdown → PDF: `pandoc` (if available)\n",
171
+ "docs": "The default `asciidoctor-pdf` engine provides excellent typography and layout\nfor technical documentation with support for themes, fonts, and advanced formatting.\n",
172
+ "type": "String"
173
+ }
174
+ }
162
175
  }
163
176
  }
164
177
  },
@@ -996,8 +1009,8 @@
996
1009
  "path": "modes",
997
1010
  "desc": "Default settings for `rhx` command executions.\n",
998
1011
  "properties": {
999
- "wrapped": {
1000
- "path": "modes.wrapped",
1012
+ "html_wrap": {
1013
+ "path": "modes.html_wrap",
1001
1014
  "desc": "Include (or exclude) head, header, and footer elements when enriching to HTML.\n",
1002
1015
  "type": "Boolean",
1003
1016
  "default": false
@@ -1017,7 +1030,8 @@
1017
1030
  "asciidoc_frontmatter": {
1018
1031
  "path": "modes.asciidoc_frontmatter",
1019
1032
  "desc": "Include frontmatter in AsciiDoc drafts.\n\nUses the `templates.asciidoc_frontmatter` template.\n",
1020
- "type": "Boolean"
1033
+ "type": "Boolean",
1034
+ "default": false
1021
1035
  },
1022
1036
  "fetch": {
1023
1037
  "path": "modes.fetch",
@@ -1126,6 +1140,41 @@
1126
1140
  "type": "Liquid",
1127
1141
  "default": "---\ntitle: Release History for {{ release.code }}\nversion: {{ release.code }}\ndate: {{ release.date }}\n---\n"
1128
1142
  },
1143
+ "html_framework": {
1144
+ "path": "history.html_framework",
1145
+ "desc": "The HTML framework to use when enriching to HTML.\n\nValid entries:\n\n[horizontal]\n`bare`:: minimal HTML structure\n`bootstrap4`:: Bootstrap 4 framework\n`bootstrap5`:: Bootstrap 5 framework\n",
1146
+ "type": "String",
1147
+ "default": "bare"
1148
+ },
1149
+ "styling": {
1150
+ "path": "history.styling",
1151
+ "desc": "Configuration options for HTML styling and CSS framework integration.\n",
1152
+ "properties": {
1153
+ "mode": {
1154
+ "path": "history.styling.mode",
1155
+ "desc": "The HTML styling approach to use when generating wrapped HTML output.\n\nValid options:\n\n* `minimal` -- Basic semantic HTML with minimal inline styles\n* `embedded` -- Include comprehensive CSS in `<style>` block \n* `external` -- Reference external stylesheet via `<link>` tag\n* `framework` -- Use configured CSS framework only (Bootstrap, etc.)\n\nWhen `mode: framework`, styling relies entirely on the configured CSS framework.\nWhen `mode: embedded`, CSS is included inline for standalone HTML files.\nWhen `mode: external`, a custom CSS file must be provided via `css_url`.\n",
1156
+ "type": "String",
1157
+ "default": "framework"
1158
+ },
1159
+ "theme": {
1160
+ "path": "history.styling.theme",
1161
+ "desc": "The visual theme variant to apply to HTML output.\n\nBuilt-in themes:\n\n* `default` -- Standard professional appearance\n* `compact` -- Reduced spacing and condensed layout\n* `detailed` -- Enhanced metadata display with expanded information\n\nTheme selection affects spacing, typography, and metadata prominence.\n",
1162
+ "type": "String",
1163
+ "default": "default"
1164
+ },
1165
+ "embed_css": {
1166
+ "path": "history.styling.embed_css",
1167
+ "desc": "Include comprehensive CSS directly in the HTML `<style>` block.\n\nWhen enabled, generates standalone HTML files that display correctly\nwithout external dependencies. CSS includes framework customizations,\nresponsive design rules, and print optimizations.\n\nAutomatically enabled when `mode: embedded`.\n",
1168
+ "type": "Boolean",
1169
+ "default": false
1170
+ },
1171
+ "css_url": {
1172
+ "path": "history.styling.css_url",
1173
+ "desc": "URL or path to external CSS stylesheet for custom styling.\n\nWhen `mode: external`, this stylesheet is linked via `<link rel=\"stylesheet\">`.\nCan be a relative path, absolute URL, or CDN link.\n\nExample: `assets/custom-releasehx.css` or `https://example.com/styles.css`\n\nWhen provided, framework CSS and embedded CSS are disabled.\n",
1174
+ "type": "String"
1175
+ }
1176
+ }
1177
+ },
1129
1178
  "items": {
1130
1179
  "path": "history.items",
1131
1180
  "desc": "Settings pertaining to displayed items across Changelog and Release Notes sections.\n\nMost of these settings can be defined separately for each section under <<conf_ppty_changelog_items>> and <<conf_ppty_notes_items>>.\nIf an identically named setting exists, it will override the primary designator defined in this `config.history.items` block.\n",