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
@@ -137,7 +137,7 @@ Use `releasehx://config/schema` when:
137
137
  ## Potentially unintuitive principles
138
138
 
139
139
  - **“Frontmatter” is controlled in two places (toggle vs template).**
140
- If youre trying to *turn frontmatter on/off*, look under `modes.*_frontmatter`. If youre trying to *change what frontmatter contains*, look under `templates.*_frontmatter` (Markdown/AsciiDoc/HTML each have their own). Also note `modes.wrapped` affects HTML wrapping, which can look like a frontmatter problem when its really wrapping/boilerplate.
140
+ If you're trying to *turn frontmatter on/off*, look under `modes.*_frontmatter`. If you're trying to *change what frontmatter contains*, look under `templates.*_frontmatter` (Markdown/AsciiDoc/HTML each have their own). Also note `modes.html_wrap` affects HTML wrapping, which can look like a frontmatter problem when it's really wrapping/boilerplate.
141
141
 
142
142
  - **Links require both a template and an enable switch.**
143
143
  Defining URL templates under `links.web.href` / `links.git.href` does nothing by itself. You must also enable display under `history.items.show_issue_links` / `history.items.show_git_links` (or the per-section overrides under changelog/notes items, if present). If a user says “I set the link template but no links appear,” check the `history.*items*` flags.
@@ -203,12 +203,59 @@ properties:
203
203
  The origin markup format for notes.
204
204
  May be `markdown` or `asciidoc`.
205
205
  dflt: markdown
206
- engine:
207
- type: String
206
+ engines:
208
207
  desc: |
209
- The markup converter to use for the issues.
210
- Defaults to `asciidoctor` for AsciiDoc and `redcarpet` for Markdown.
211
- Options include `asciidoctor`, `redcarpet`, `commonmarker`, `kramdown`, or `pandoc`.
208
+ Specifies the conversion engines to use when enriching to various output formats.
209
+
210
+ These settings determine which tool processes the conversion from draft formats to rich output.
211
+ Intelligent defaults are applied based on source format when engines are not explicitly configured.
212
+ properties:
213
+ html:
214
+ type: String
215
+ desc: |
216
+ Engine for converting to HTML format.
217
+
218
+ Valid engines:
219
+
220
+ [horizontal]
221
+ `asciidoctor-html5`:: Standard Asciidoctor HTML5 backend (nested div structure)
222
+ `asciidoctor-html5s`:: Semantic HTML5 backend (cleaner section-based markup)
223
+ `kramdown`:: Kramdown Markdown converter (for Markdown sources)
224
+ `pandoc`:: Universal document converter (if available)
225
+
226
+ When not specified, intelligent defaults apply:
227
+
228
+ - AsciiDoc → HTML: `asciidoctor-html5s` (semantic HTML5)
229
+ - Markdown → HTML: `kramdown`
230
+ - RHYML → HTML: Liquid templates (no engine needed)
231
+ docs: |
232
+ The html5s backend produces cleaner, more semantic HTML with `<section>` elements
233
+ instead of nested `<div class="sect1"><div class="sectionbody">` structures.
234
+
235
+ This is particularly useful when you want to apply custom CSS or when generating
236
+ HTML that will be further processed or embedded in other systems.
237
+
238
+ For backwards compatibility or when you need the traditional Asciidoctor structure,
239
+ use `asciidoctor-html5`.
240
+ pdf:
241
+ type: String
242
+ desc: |
243
+ Engine for converting to PDF format.
244
+
245
+ Valid engines:
246
+
247
+ [horizontal]
248
+ `asciidoctor-pdf`:: Asciidoctor PDF converter (default for AsciiDoc)
249
+ `asciidoctor-web-pdf`:: Web-based PDF converter using headless Chrome
250
+ `pandoc`:: Universal document converter (if available)
251
+
252
+ When not specified, intelligent defaults apply:
253
+
254
+ - AsciiDoc → PDF: `asciidoctor-pdf`
255
+ - Markdown → PDF: `pandoc` (if available)
256
+ docs: |
257
+ The default `asciidoctor-pdf` engine provides excellent typography and layout
258
+ for technical documentation with support for themes, fonts, and advanced formatting.
212
259
 
213
260
  extensions:
214
261
  desc: Default file extensions.
@@ -837,7 +884,7 @@ properties:
837
884
  desc: |
838
885
  Default settings for `rhx` command executions.
839
886
  properties:
840
- wrapped:
887
+ html_wrap:
841
888
  type: Boolean
842
889
  desc: |
843
890
  Include (or exclude) head, header, and footer elements when enriching to HTML.
@@ -862,6 +909,7 @@ properties:
862
909
  Include frontmatter in AsciiDoc drafts.
863
910
 
864
911
  Uses the `templates.asciidoc_frontmatter` template.
912
+ dflt: false
865
913
  fetch:
866
914
  type: String
867
915
  desc: |
@@ -1043,6 +1091,74 @@ properties:
1043
1091
 
1044
1092
  It may include `{{ title }}`, `{{ version }}`, `{{ date }}`, as well as any `vars`-scoped variables as you pass in.
1045
1093
  dflt: *markdown_frontmatter_tplt
1094
+ html_framework:
1095
+ type: String
1096
+ desc: |
1097
+ The HTML framework to use when enriching to HTML.
1098
+
1099
+ Valid entries:
1100
+
1101
+ [horizontal]
1102
+ `bare`:: minimal HTML structure
1103
+ `bootstrap4`:: Bootstrap 4 framework
1104
+ `bootstrap5`:: Bootstrap 5 framework
1105
+ dflt: bare
1106
+ styling:
1107
+ desc: |
1108
+ Configuration options for HTML styling and CSS framework integration.
1109
+ properties:
1110
+ mode:
1111
+ type: String
1112
+ desc: |
1113
+ The HTML styling approach to use when generating wrapped HTML output.
1114
+
1115
+ Valid options:
1116
+
1117
+ * `minimal` -- Basic semantic HTML with minimal inline styles
1118
+ * `embedded` -- Include comprehensive CSS in `<style>` block
1119
+ * `external` -- Reference external stylesheet via `<link>` tag
1120
+ * `framework` -- Use configured CSS framework only (Bootstrap, etc.)
1121
+
1122
+ When `mode: framework`, styling relies entirely on the configured CSS framework.
1123
+ When `mode: embedded`, CSS is included inline for standalone HTML files.
1124
+ When `mode: external`, a custom CSS file must be provided via `css_url`.
1125
+ dflt: framework
1126
+ theme:
1127
+ type: String
1128
+ desc: |
1129
+ The visual theme variant to apply to HTML output.
1130
+
1131
+ Built-in themes:
1132
+
1133
+ * `default` -- Standard professional appearance
1134
+ * `compact` -- Reduced spacing and condensed layout
1135
+ * `detailed` -- Enhanced metadata display with expanded information
1136
+
1137
+ Theme selection affects spacing, typography, and metadata prominence.
1138
+ dflt: default
1139
+ embed_css:
1140
+ type: Boolean
1141
+ desc: |
1142
+ Include comprehensive CSS directly in the HTML `<style>` block.
1143
+
1144
+ When enabled, generates standalone HTML files that display correctly
1145
+ without external dependencies. CSS includes framework customizations,
1146
+ responsive design rules, and print optimizations.
1147
+
1148
+ Automatically enabled when `mode: embedded`.
1149
+ dflt: false
1150
+ css_url:
1151
+ type: String
1152
+ desc: |
1153
+ URL or path to external CSS stylesheet for custom styling.
1154
+
1155
+ When `mode: external`, this stylesheet is linked via `<link rel="stylesheet">`.
1156
+ Can be a relative path, absolute URL, or CDN link.
1157
+
1158
+ Example: `assets/custom-releasehx.css` or `https://example.com/styles.css`
1159
+
1160
+ When provided, framework CSS and embedded CSS are disabled.
1161
+ dflt: null
1046
1162
  items:
1047
1163
  desc: |
1048
1164
  Settings pertaining to displayed items across Changelog and Release Notes sections.
@@ -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",
@@ -25,7 +25,9 @@ conversions: # Details about content origination, as well as markup sources and
25
25
  note: issue_body # The source of the release notes content.
26
26
  # note_custom_field: # The name of the custom field to use for the release notes content.Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)
27
27
  markup: markdown # The origin markup format for notes.
28
- # engine: # The markup converter to use for the issues.
28
+ engines: # Specifies the conversion engines to use when enriching to various output formats.
29
+ # html: # Engine for converting to HTML format.
30
+ # pdf: # Engine for converting to PDF format.
29
31
  extensions: # Default file extensions.
30
32
  markdown: md # File extension for Markdown drafts.
31
33
  asciidoc: adoc # File extension for AsciiDoc drafts.
@@ -72,7 +74,7 @@ tags: # Handling for tags, labels, or toggles associated with source Issues.
72
74
  - breaking
73
75
  - experimental
74
76
  - changelog
75
- _exclude: # The list of tags that cause a change/issue to be excluded from the release history.
77
+ _exclude: [] # The list of tags that cause a change/issue to be excluded from the release history.
76
78
  highlight: # The tag, label, or toggle that indicates an issue is to be highlighted or prioritized in sorts.
77
79
  head: Highlights # How this tag will display as a grouping title.
78
80
  text: highlight # How this tag will display as a label.
@@ -163,10 +165,10 @@ paths: # The configuration for the paths to include in the release history listi
163
165
  mappings_dir: _mappings # The path to the directory containing user-defined API mappings.
164
166
  api_clients_dir: _apis # The path to the directory containing user-defined API client definitions.
165
167
  modes: # Default settings for rhx command executions.
166
- wrapped: false # Include (or exclude) head, header, and footer elements when enriching to HTML.
168
+ html_wrap: false # Include (or exclude) head, header, and footer elements when enriching to HTML.
167
169
  html_frontmatter: true # Include frontmatter in the rendered HTML.
168
170
  markdown_frontmatter: false # Include frontmatter in Markdown drafts.
169
- # asciidoc_frontmatter: # Include frontmatter in AsciiDoc drafts.
171
+ asciidoc_frontmatter: false # Include frontmatter in AsciiDoc drafts.
170
172
  fetch: notes-only # What to fetch when gathering issues from API.
171
173
  remove_excess_lines: 1 # Reduces N+ consecutive blank lines to N lines.
172
174
  rhyml: # Settings related to RHYML data objects and documents.
@@ -178,6 +180,12 @@ rhyml: # Settings related to RHYML data objects and documents.
178
180
  pasterize_head: false # Whether to convert verbs in the head property to past tense when drafting.
179
181
  history: # Configurations for the overall document, when applicable.Liquid error: wrong number of arguments (given 3, expected 1..2)
180
182
  htag: h1 # The heading level (H1, H2, etc) for the release history header.Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)Liquid error: wrong number of arguments (given 3, expected 1..2)
183
+ html_framework: bare # The HTML framework to use when enriching to HTML.
184
+ styling: # Configuration options for HTML styling and CSS framework integration.
185
+ mode: framework # The HTML styling approach to use when generating wrapped HTML output.
186
+ theme: default # The visual theme variant to apply to HTML output.
187
+ embed_css: false # Include comprehensive CSS directly in the HTML <style> block.
188
+ # css_url: # URL or path to external CSS stylesheet for custom styling.
181
189
  items: # Settings pertaining to displayed items across Changelog and Release Notes sections.
182
190
  allow_redundant: false # Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects...
183
191
  show_issue_links: false # Whether to include web links in item metadata.
@@ -210,8 +218,7 @@ changelog: # The configuration for the changelog output.
210
218
  head: Changelog # The header for the changelog output.Liquid error: wrong number of arguments (given 3, expected 1..2)
211
219
  htag: h2 # The heading level (H1, H2, etc) for the changelog section header.
212
220
  spot: 2 # Where in the document to place the changelog (1 = top, 2 = bottom).
213
- sort: # The sort order for the changelog output.
214
- - part:grouping1
221
+ sort: [part:grouping1] # The sort order for the changelog output.
215
222
  items: # Settings that affect the frame/shape and arrangement of individual changelog entries.
216
223
  frame: unordered # The layout for the changelog entry display.
217
224
  allow_redundant: false # Whether to allow duplicate entries in a given section, for instance across groups for part:group sorts where a change affects...
@@ -248,4 +255,4 @@ notes: # The configuration for the Release Notes listing section.
248
255
  show_parts_label: false # Whether to show the parts label in the item metadata output.
249
256
  show_tags_label: false # Whether to show the tags label in the item metadata output.
250
257
  show_lead_label: false # Whether to show the lead label in the item metadata output.
251
- show_auths_label: false # Whether to show the authors label in the item metadata output.
258
+ show_auths_label: false # Whether to show the authors label in the item metadata output.
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'json'
4
- require_relative '../../schemagraphy'
5
4
  require_relative '../../docopslab/mcp/server'
6
5
  require_relative 'manifest'
7
6
  require_relative 'resource_pack'