releasehx 0.1.1 → 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.
- checksums.yaml +4 -4
- data/README.adoc +366 -331
- data/build/docs/_config.yml +18 -1
- data/build/docs/_release_index.adoc +10 -0
- data/build/docs/config-reference.adoc +203 -16
- data/build/docs/config-reference.json +60 -10
- data/build/docs/index.adoc +316 -59
- data/build/docs/landing.adoc +11 -4
- data/build/docs/manpage.adoc +2 -2
- data/build/docs/release-procedure.adoc +365 -0
- data/build/docs/release-procedure.html +87 -0
- data/build/docs/releasehx.1 +17 -5
- data/build/docs/releases.adoc +28 -0
- data/build/docs/sample-config.adoc +2 -0
- data/build/docs/sample-config.yml +16 -9
- data/lib/releasehx/cli.rb +21 -9
- data/lib/releasehx/configuration.rb +0 -1
- data/lib/releasehx/generated.rb +1 -1
- data/lib/releasehx/mcp/assets/agent-config-guide.md +1 -1
- data/lib/releasehx/mcp/assets/config-def.yml +126 -8
- data/lib/releasehx/mcp/assets/config-reference.adoc +203 -16
- data/lib/releasehx/mcp/assets/config-reference.json +60 -10
- data/lib/releasehx/mcp/assets/sample-config.yml +16 -9
- data/lib/releasehx/mcp/server.rb +0 -1
- data/lib/releasehx/ops/enrich_ops.rb +161 -55
- data/lib/releasehx/ops/template_ops.rb +1 -1
- data/lib/releasehx/rhyml/adapter.rb +13 -9
- data/lib/releasehx/rhyml/mappings/github.yaml +3 -1
- data/lib/releasehx/rhyml/templates/bootstrap-overrides.css +15 -0
- data/lib/releasehx/rhyml/templates/changelog.adoc.liquid +2 -0
- data/lib/releasehx/rhyml/templates/changelog.html.liquid +6 -4
- data/lib/releasehx/rhyml/templates/changelog.md.liquid +1 -0
- data/lib/releasehx/rhyml/templates/embedded.css.liquid +263 -0
- data/lib/releasehx/rhyml/templates/entry.adoc.liquid +4 -7
- data/lib/releasehx/rhyml/templates/entry.html.liquid +21 -20
- data/lib/releasehx/rhyml/templates/entry.md.liquid +14 -21
- data/lib/releasehx/rhyml/templates/head-parser.liquid +6 -2
- data/lib/releasehx/rhyml/templates/header.liquid +13 -4
- data/lib/releasehx/rhyml/templates/history.html.liquid +152 -33
- data/lib/releasehx/rhyml/templates/metadata-entry.adoc.liquid +83 -49
- data/lib/releasehx/rhyml/templates/metadata-entry.html.liquid +60 -1
- data/lib/releasehx/rhyml/templates/metadata-entry.md.liquid +65 -113
- data/lib/releasehx/rhyml/templates/metadata-note.adoc.liquid +83 -49
- data/lib/releasehx/rhyml/templates/metadata-note.html.liquid +59 -22
- data/lib/releasehx/rhyml/templates/metadata-note.md.liquid +68 -23
- data/lib/releasehx/rhyml/templates/note.adoc.liquid +2 -40
- data/lib/releasehx/rhyml/templates/note.html.liquid +25 -19
- data/lib/releasehx/rhyml/templates/note.md.liquid +43 -29
- data/lib/releasehx/rhyml/templates/parts-listing.liquid +6 -6
- data/lib/releasehx/rhyml/templates/release-notes.adoc.liquid +2 -0
- data/lib/releasehx/rhyml/templates/release-notes.html.liquid +6 -4
- data/lib/releasehx/rhyml/templates/release-notes.md.liquid +1 -0
- data/lib/releasehx/rhyml/templates/release.adoc.liquid +2 -0
- data/lib/releasehx/rhyml/templates/release.md.liquid +8 -7
- data/lib/releasehx/rhyml/templates/rhyml-change.yaml.liquid +36 -35
- data/lib/releasehx/rhyml/templates/wrapper.html.liquid +103 -0
- data/lib/releasehx/sgyml/helpers.rb +0 -2
- data/lib/releasehx/transforms/adf_to_markdown.rb +1 -1
- data/lib/releasehx/version.rb +0 -2
- data/lib/releasehx.rb +2 -2
- data/specs/data/config-def.yml +126 -8
- metadata +50 -26
- data/build/docs/Gemfile.lock +0 -95
- data/build/docs/schemagraphy_readme.html +0 -0
- data/build/docs/sourcerer_readme.html +0 -46
- data/lib/schemagraphy/attribute_resolver.rb +0 -48
- data/lib/schemagraphy/cfgyml/definition.rb +0 -90
- data/lib/schemagraphy/cfgyml/doc_builder.rb +0 -52
- data/lib/schemagraphy/cfgyml/path_reference.rb +0 -24
- data/lib/schemagraphy/data_query/json_pointer.rb +0 -42
- data/lib/schemagraphy/loader.rb +0 -59
- data/lib/schemagraphy/regexp_utils.rb +0 -215
- data/lib/schemagraphy/safe_expression.rb +0 -189
- data/lib/schemagraphy/schema_utils.rb +0 -124
- data/lib/schemagraphy/tag_utils.rb +0 -32
- data/lib/schemagraphy/templating.rb +0 -104
- data/lib/schemagraphy.rb +0 -17
- data/lib/sourcerer/builder.rb +0 -120
- data/lib/sourcerer/jekyll/bootstrapper.rb +0 -78
- data/lib/sourcerer/jekyll/liquid/file_system.rb +0 -74
- data/lib/sourcerer/jekyll/liquid/filters.rb +0 -215
- data/lib/sourcerer/jekyll/liquid/tags.rb +0 -44
- data/lib/sourcerer/jekyll/monkeypatches.rb +0 -73
- data/lib/sourcerer/jekyll.rb +0 -26
- data/lib/sourcerer/plaintext_converter.rb +0 -75
- data/lib/sourcerer/templating.rb +0 -190
- data/lib/sourcerer.rb +0 -322
data/build/docs/index.adoc
CHANGED
|
@@ -1,27 +1,60 @@
|
|
|
1
1
|
:page-layout: default
|
|
2
|
-
:page-permalink: /docs
|
|
2
|
+
:page-permalink: /docs/
|
|
3
|
+
:page-title: ReleaseHx Docs
|
|
4
|
+
:page-permalink: /docs/
|
|
5
|
+
:page-title: ReleaseHx Docs
|
|
3
6
|
:page-nav_order: 1
|
|
4
|
-
[[releasehx]]
|
|
5
7
|
= ReleaseHx
|
|
6
8
|
// tag::ai-prompt[]
|
|
7
9
|
// Collects AsciiDoc content for presenting to a generative AI prompt
|
|
8
10
|
// Other AI-only prompt matter could go here
|
|
9
|
-
// tag::
|
|
10
|
-
:
|
|
11
|
-
:
|
|
12
|
-
|
|
13
|
-
:
|
|
14
|
-
:
|
|
11
|
+
// tag::global-settings[]
|
|
12
|
+
:this_proj_slug: releasehx
|
|
13
|
+
:this_proj_name: ReleaseHx
|
|
14
|
+
// tag::universal-settings[]
|
|
15
|
+
:docopslab_src_www_url: https://github.com/DocOps
|
|
16
|
+
:docopslab_domain: docopslab.org
|
|
17
|
+
:docopslab_www_url: https://{docopslab_domain}
|
|
18
|
+
:docopslab_io_www_url: https://docopslab.github.io
|
|
19
|
+
:docopslab_ruby_version: 3.2.7
|
|
20
|
+
:docopslab_src_www_url: https://raw.githubusercontent.com/DocOps
|
|
21
|
+
:docopslab_git_src_uri: git@github.com:DocOps
|
|
22
|
+
:this_proj_src_www_url: {docopslab_src_www_url}/{this_proj_slug}
|
|
23
|
+
:this_proj_src_raw_url: https://raw.githubusercontent.com/DocOps/{this_proj_slug}/main
|
|
24
|
+
:this_proj_src_main_files_url: {this_proj_src_www_url}/blob/main
|
|
25
|
+
:this_proj_src_main_edit_url: {this_proj_src_www_url}/edit/main
|
|
26
|
+
:this_proj_src_git_uri: {docopslab_git_src_uri}/{this_proj_slug}.git
|
|
27
|
+
:this_proj_ruby_version: {docopslab_ruby_version}
|
|
28
|
+
// tag::env-settings[]
|
|
29
|
+
:extn:
|
|
30
|
+
ifdef::env-github[]
|
|
31
|
+
:extn: .adoc
|
|
32
|
+
:icons: font
|
|
33
|
+
:caution-caption: :fire:
|
|
34
|
+
:important-caption: :exclamation:
|
|
35
|
+
:note-caption: :paperclip:
|
|
36
|
+
:tip-caption: :bulb:
|
|
37
|
+
:warning-caption: :warning:
|
|
38
|
+
endif::[]
|
|
39
|
+
// end::env-settings[]
|
|
40
|
+
// end::universal-settings[]
|
|
41
|
+
:releasehx_demo_repo: {docopslab_src_www_url}/releasehx-demo
|
|
42
|
+
// tag::product-settings[]
|
|
43
|
+
:this_prod_slug: {this_proj_slug}
|
|
44
|
+
// tag::version-settings[]
|
|
15
45
|
:this_prod_vrsn_major: 0
|
|
16
|
-
:this_prod_vrsn_minor:
|
|
17
|
-
:
|
|
46
|
+
:this_prod_vrsn_minor: 2
|
|
47
|
+
:this_prod_vrsn_majmin: {this_prod_vrsn_major}.{this_prod_vrsn_minor}
|
|
18
48
|
:this_prod_vrsn_patch: 0
|
|
19
|
-
:this_prod_vrsn: {
|
|
20
|
-
:next_prod_vrsn: 0.
|
|
49
|
+
:this_prod_vrsn: {this_prod_vrsn_majmin}.{this_prod_vrsn_patch}
|
|
50
|
+
:next_prod_vrsn: 0.3.0
|
|
51
|
+
:next_prod_vrsn_majmin: 0.3
|
|
52
|
+
// end::version-settings[]
|
|
21
53
|
:tagline: Generate formatted release histories from Jira, GitHub, GitLab, YAML, or JSON sources.
|
|
22
54
|
:description: pass:q[CLI utility and Ruby API for generating structured release notes and changelog documents from various issue-tracking platforms or YAML definitions into plaintext drafts (*AsciiDoc*, *Markdown*, *YAML*) and rich-text output (*HTML* and *PDF*).]
|
|
23
55
|
:gem_config_definition_path: ./specs/data/config-def.yml
|
|
24
56
|
:app_default_config_path: ./.releasehx.yml
|
|
57
|
+
:docker_run_command: docker run -it --rm --user $(id -u):$(id -g) -v $(pwd):/workdir docopslab/{this_prod_slug} rhx
|
|
25
58
|
// Default configuration values - single source of truth for config-def.yml
|
|
26
59
|
:default_markup: markdown
|
|
27
60
|
:default_slug_type: kebab
|
|
@@ -45,19 +78,8 @@
|
|
|
45
78
|
:draft_source_extensions: {markdown_extensions}, {asciidoc_extensions}, {yaml_extensions}
|
|
46
79
|
:enrich_file_types: HTML, PDF
|
|
47
80
|
:enrich_extensions: .html, .pdf
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
ifdef::env-github[]
|
|
51
|
-
:docs_extn: .adoc
|
|
52
|
-
:releasehx_www: https://releasehx.docopslab.org
|
|
53
|
-
:releasehx_docs_www: {releasehx_www}/docs
|
|
54
|
-
:default-config_www: {releasehx_docs_www}/sample-config.html
|
|
55
|
-
:this_prod_docs_www: {releasehx_docs_www}
|
|
56
|
-
endif::[]
|
|
57
|
-
ifndef::env-github[]
|
|
58
|
-
:docs_extn:
|
|
59
|
-
endif::[]
|
|
60
|
-
// end::globals[]
|
|
81
|
+
// end::product-settings[]
|
|
82
|
+
// end::global-settings[]
|
|
61
83
|
:toc: macro
|
|
62
84
|
:toclevels: 3
|
|
63
85
|
|
|
@@ -209,7 +231,7 @@ With Docker installed and running...
|
|
|
209
231
|
. Run the `rhx` command.
|
|
210
232
|
+
|
|
211
233
|
[.prompt,subs=+attributes]
|
|
212
|
-
{
|
|
234
|
+
{docker_run_command}
|
|
213
235
|
+
|
|
214
236
|
This mounts your local directory to be writeable by the Docker container.
|
|
215
237
|
Everything after `rhx` accepts the standard <<rhx,arguments and options>> of the ReleaseHx utility.
|
|
@@ -219,7 +241,7 @@ Everything after `rhx` accepts the standard <<rhx,arguments and options>> of the
|
|
|
219
241
|
Optionally alias the base Docker command.
|
|
220
242
|
|
|
221
243
|
[.prompt,subs=+attributes]
|
|
222
|
-
alias rhx='{
|
|
244
|
+
alias rhx='{docker_run_command}'
|
|
223
245
|
====
|
|
224
246
|
|
|
225
247
|
Try the <<demo-setup,demo configs and data>> to get a feel for how ReleaseHx works.
|
|
@@ -265,6 +287,7 @@ It does not provide assistance for command-line actions or other configurations
|
|
|
265
287
|
For your LLM client (such as Copilot, Claude Code, Codex, Cursor, etc) to interact with this service, it must be configured using a general MCP syntax.
|
|
266
288
|
This data is usually added to a `mcp.json` file or another object.
|
|
267
289
|
|
|
290
|
+
// 1. This block is totally fine
|
|
268
291
|
Generic MCP config (global gem install)::
|
|
269
292
|
[source,json]
|
|
270
293
|
----
|
|
@@ -277,12 +300,12 @@ Generic MCP config (global gem install)::
|
|
|
277
300
|
}
|
|
278
301
|
----
|
|
279
302
|
|
|
303
|
+
// 2. This block looks totally fine
|
|
280
304
|
Generic MCP config (Docker)::
|
|
281
305
|
+
|
|
282
|
-
--
|
|
283
306
|
Use the Docker image for maximum compatibility across environments.
|
|
284
|
-
This is the
|
|
285
|
-
|
|
307
|
+
This is the *recommended approach* for most users.
|
|
308
|
+
+
|
|
286
309
|
[source,json]
|
|
287
310
|
----
|
|
288
311
|
{
|
|
@@ -294,13 +317,11 @@ This is the **recommended approach** for most users.
|
|
|
294
317
|
}
|
|
295
318
|
}
|
|
296
319
|
----
|
|
297
|
-
--
|
|
298
320
|
|
|
321
|
+
// 3. The first line on this block is white instead of blue like a DL term designator should be
|
|
299
322
|
VS Code MCP configuration (Docker)::
|
|
300
|
-
+
|
|
301
|
-
--
|
|
302
323
|
Create or update `~/.config/Code/User/mcp.json` (Linux/Mac) or `%APPDATA%\Code\User\mcp.json` (Windows).
|
|
303
|
-
|
|
324
|
+
+
|
|
304
325
|
[source,json]
|
|
305
326
|
----
|
|
306
327
|
{
|
|
@@ -312,13 +333,11 @@ Create or update `~/.config/Code/User/mcp.json` (Linux/Mac) or `%APPDATA%\Code\U
|
|
|
312
333
|
}
|
|
313
334
|
}
|
|
314
335
|
----
|
|
315
|
-
--
|
|
316
336
|
|
|
337
|
+
// 4.This and all the following blocks are improperly highlighted
|
|
317
338
|
VS Code MCP configuration (global gem install)::
|
|
318
|
-
+
|
|
319
|
-
--
|
|
320
339
|
If you have ReleaseHx installed globally (`gem install releasehx`), you can use this simpler configuration:
|
|
321
|
-
|
|
340
|
+
+
|
|
322
341
|
[source,json]
|
|
323
342
|
----
|
|
324
343
|
{
|
|
@@ -329,7 +348,6 @@ If you have ReleaseHx installed globally (`gem install releasehx`), you can use
|
|
|
329
348
|
}
|
|
330
349
|
}
|
|
331
350
|
----
|
|
332
|
-
--
|
|
333
351
|
|
|
334
352
|
Local repo MCP config (Bundler + cwd)::
|
|
335
353
|
[source,json]
|
|
@@ -410,9 +428,11 @@ Global gem::
|
|
|
410
428
|
|
|
411
429
|
If your MCP server isn't working in VS Code or Copilot:
|
|
412
430
|
|
|
413
|
-
.
|
|
431
|
+
. *Verify Docker image exists.*
|
|
432
|
+
Run `docker images | grep releasehx` to confirm the image is available.
|
|
414
433
|
|
|
415
|
-
.
|
|
434
|
+
. *Test MCP server manually.*
|
|
435
|
+
Run the following to verify the server responds:
|
|
416
436
|
+
|
|
417
437
|
[.prompt]
|
|
418
438
|
----
|
|
@@ -421,11 +441,14 @@ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":
|
|
|
421
441
|
+
|
|
422
442
|
You should see a JSON response with `"serverInfo":{"name":"releasehx-mcp"}`
|
|
423
443
|
|
|
424
|
-
.
|
|
444
|
+
. *Check VS Code MCP config.*
|
|
445
|
+
Ensure `~/.config/Code/User/mcp.json` exists and uses the correct command format (see examples above).
|
|
425
446
|
|
|
426
|
-
.
|
|
447
|
+
. *Restart VS Code.*
|
|
448
|
+
After changing `mcp.json`, restart VS Code completely for changes to take effect.
|
|
427
449
|
|
|
428
|
-
|
|
450
|
+
*Check VS Code logs.*
|
|
451
|
+
Open Output panel (kbd:[Ctrl+Shift+U]) and look for errors related to MCP or the releasehx server.
|
|
429
452
|
|
|
430
453
|
[TIP]
|
|
431
454
|
====
|
|
@@ -1140,6 +1163,203 @@ Templates replace their namesakes built into the ReleaseHx application or API.
|
|
|
1140
1163
|
By default, ReleaseHx expects templates to be formatted in link:https://shopify.github.io[Liquid], but it uses the Jekyll-enhanced Liquid 4.
|
|
1141
1164
|
See <<templating>> for details.
|
|
1142
1165
|
|
|
1166
|
+
[[styling-customization]]
|
|
1167
|
+
==== HTML Styling and CSS Integration
|
|
1168
|
+
|
|
1169
|
+
ReleaseHx provides multiple approaches for customizing the appearance of HTML output through the `history.styling` configuration section.
|
|
1170
|
+
|
|
1171
|
+
[[styling-modes]]
|
|
1172
|
+
===== Styling Modes
|
|
1173
|
+
|
|
1174
|
+
The `history.styling.mode` property controls how CSS is applied to HTML output:
|
|
1175
|
+
|
|
1176
|
+
`framework` (default)::
|
|
1177
|
+
Uses only the configured CSS framework (Bootstrap, etc.) via CDN links.
|
|
1178
|
+
No additional custom CSS is included.
|
|
1179
|
+
Best for standard, professional appearance with minimal configuration.
|
|
1180
|
+
|
|
1181
|
+
`embedded`::
|
|
1182
|
+
Includes comprehensive CSS directly in the HTML `<style>` block.
|
|
1183
|
+
Generates standalone HTML files that display correctly without external dependencies.
|
|
1184
|
+
Automatically includes framework CSS plus custom theming.
|
|
1185
|
+
Best for distribution and email-friendly HTML.
|
|
1186
|
+
|
|
1187
|
+
`external`::
|
|
1188
|
+
References an external stylesheet via `<link>` tag.
|
|
1189
|
+
Requires `history.styling.css_url` to specify the stylesheet location.
|
|
1190
|
+
Framework CSS is disabled when using external stylesheets.
|
|
1191
|
+
Best for custom branding and when CSS needs to be shared across multiple pages.
|
|
1192
|
+
|
|
1193
|
+
`minimal`::
|
|
1194
|
+
Provides basic semantic styling with minimal inline CSS.
|
|
1195
|
+
No framework dependencies or complex styling.
|
|
1196
|
+
Best for simple, lightweight output or when CSS will be applied by a static site generator.
|
|
1197
|
+
|
|
1198
|
+
[[theme-variants]]
|
|
1199
|
+
===== Theme Variants
|
|
1200
|
+
|
|
1201
|
+
When using `embedded` or `framework` modes, the `history.styling.theme` property controls spacing and typography:
|
|
1202
|
+
|
|
1203
|
+
`default`::
|
|
1204
|
+
Balanced spacing and typography for general use.
|
|
1205
|
+
|
|
1206
|
+
`compact`::
|
|
1207
|
+
Reduced spacing and condensed layout for information-dense displays.
|
|
1208
|
+
Ideal for internal documentation or when screen space is limited.
|
|
1209
|
+
|
|
1210
|
+
`detailed`::
|
|
1211
|
+
Expanded spacing and enhanced typography for presentation contexts.
|
|
1212
|
+
Includes larger headings and more prominent metadata display.
|
|
1213
|
+
|
|
1214
|
+
[[configuration-examples]]
|
|
1215
|
+
===== Configuration Examples
|
|
1216
|
+
|
|
1217
|
+
.Framework Mode with Default Theme
|
|
1218
|
+
[source,yaml]
|
|
1219
|
+
----
|
|
1220
|
+
history:
|
|
1221
|
+
html_framework: bootstrap5
|
|
1222
|
+
styling:
|
|
1223
|
+
mode: framework
|
|
1224
|
+
theme: default
|
|
1225
|
+
----
|
|
1226
|
+
|
|
1227
|
+
.Embedded CSS with Compact Theme
|
|
1228
|
+
[source,yaml]
|
|
1229
|
+
----
|
|
1230
|
+
history:
|
|
1231
|
+
html_framework: bootstrap5
|
|
1232
|
+
styling:
|
|
1233
|
+
mode: embedded
|
|
1234
|
+
theme: compact
|
|
1235
|
+
embed_css: true
|
|
1236
|
+
----
|
|
1237
|
+
|
|
1238
|
+
.External Stylesheet
|
|
1239
|
+
[source,yaml]
|
|
1240
|
+
----
|
|
1241
|
+
history:
|
|
1242
|
+
styling:
|
|
1243
|
+
mode: external
|
|
1244
|
+
css_url: "assets/custom-releasehx.css"
|
|
1245
|
+
----
|
|
1246
|
+
|
|
1247
|
+
.Minimal Styling
|
|
1248
|
+
[source,yaml]
|
|
1249
|
+
----
|
|
1250
|
+
history:
|
|
1251
|
+
styling:
|
|
1252
|
+
mode: minimal
|
|
1253
|
+
----
|
|
1254
|
+
|
|
1255
|
+
[[custom-css-development]]
|
|
1256
|
+
===== Custom CSS Development
|
|
1257
|
+
|
|
1258
|
+
When using `external` mode, create a CSS file that targets ReleaseHx's semantic HTML structure:
|
|
1259
|
+
|
|
1260
|
+
.Key CSS Classes and Elements
|
|
1261
|
+
[source,css]
|
|
1262
|
+
----
|
|
1263
|
+
/* Main containers */
|
|
1264
|
+
.release-history { /* Overall wrapper */ }
|
|
1265
|
+
.release-section { /* Individual release container */ }
|
|
1266
|
+
|
|
1267
|
+
/* Content sections */
|
|
1268
|
+
.changelog-section { /* Changelog entries container */ }
|
|
1269
|
+
.notes-section { /* Release notes container */ }
|
|
1270
|
+
|
|
1271
|
+
/* Individual items */
|
|
1272
|
+
.release-note { /* Individual release note */ }
|
|
1273
|
+
.change-entry { /* Individual changelog entry */ }
|
|
1274
|
+
|
|
1275
|
+
/* Components */
|
|
1276
|
+
.card-header, .card-body, .card-footer { /* Note structure */ }
|
|
1277
|
+
.change-metadata { /* Metadata display container */ }
|
|
1278
|
+
.badge { /* Type/status badges */ }
|
|
1279
|
+
----
|
|
1280
|
+
|
|
1281
|
+
For a complete example, see the `releasehx-custom.css` file in the https://github.com/DocOps/releasehx-demo[releasehx-demo repository].
|
|
1282
|
+
|
|
1283
|
+
[[css-variables]]
|
|
1284
|
+
===== CSS Variables for Easy Customization
|
|
1285
|
+
|
|
1286
|
+
ReleaseHx's embedded CSS uses CSS custom properties for easy theming:
|
|
1287
|
+
|
|
1288
|
+
[source,css]
|
|
1289
|
+
----
|
|
1290
|
+
:root {
|
|
1291
|
+
--release-spacing: 3rem; /* Space between releases */
|
|
1292
|
+
--section-spacing: 2.5rem; /* Space between sections */
|
|
1293
|
+
--item-spacing: 1rem; /* Space between items */
|
|
1294
|
+
--primary-color: #0d6efd; /* Brand primary color */
|
|
1295
|
+
--success-color: #198754; /* Success/changelog color */
|
|
1296
|
+
--info-color: #0dcaf0; /* Info/notes color */
|
|
1297
|
+
}
|
|
1298
|
+
----
|
|
1299
|
+
|
|
1300
|
+
Override these variables in your external CSS to customize the appearance without rewriting the entire stylesheet.
|
|
1301
|
+
|
|
1302
|
+
[[dark-theme]]
|
|
1303
|
+
===== Dark Theme Support
|
|
1304
|
+
|
|
1305
|
+
ReleaseHx's embedded CSS includes comprehensive dark theme support that automatically adapts to user preferences:
|
|
1306
|
+
|
|
1307
|
+
Automatic detection::
|
|
1308
|
+
When using `framework: bootstrap5` mode, ReleaseHx includes a detection script that automatically applies dark theme based on system preferences.
|
|
1309
|
+
The script listens for system theme changes and updates the display in real-time.
|
|
1310
|
+
|
|
1311
|
+
CSS custom properties::
|
|
1312
|
+
Dark theme colors are defined using CSS custom properties within a `@media (prefers-color-scheme: dark)` query.
|
|
1313
|
+
All color values automatically invert for dark mode while maintaining proper contrast ratios.
|
|
1314
|
+
|
|
1315
|
+
Manual override::
|
|
1316
|
+
Users can manually toggle dark mode using the `.dark-theme` class on the `<html>` element.
|
|
1317
|
+
This overrides system preferences for explicit theme control.
|
|
1318
|
+
|
|
1319
|
+
.Dark Theme Configuration Example
|
|
1320
|
+
[source,yaml]
|
|
1321
|
+
----
|
|
1322
|
+
history:
|
|
1323
|
+
html_framework: bootstrap5
|
|
1324
|
+
styling:
|
|
1325
|
+
mode: embedded
|
|
1326
|
+
theme: default
|
|
1327
|
+
----
|
|
1328
|
+
|
|
1329
|
+
When rendered, the HTML will include:
|
|
1330
|
+
|
|
1331
|
+
* Bootstrap 5 with `data-bs-theme` attribute management
|
|
1332
|
+
* CSS custom properties for both light and dark color schemes
|
|
1333
|
+
* JavaScript to detect and respond to system preference changes
|
|
1334
|
+
* Manual theme toggle capability (if you add UI controls)
|
|
1335
|
+
|
|
1336
|
+
.Dark Theme CSS Variables
|
|
1337
|
+
[source,css]
|
|
1338
|
+
----
|
|
1339
|
+
@media (prefers-color-scheme: dark) {
|
|
1340
|
+
:root {
|
|
1341
|
+
--bg-color: #1a1a1a;
|
|
1342
|
+
--text-color: #e0e0e0;
|
|
1343
|
+
--border-color: #444;
|
|
1344
|
+
--card-bg: #2d2d2d;
|
|
1345
|
+
--note-bg: #252525;
|
|
1346
|
+
/* Additional dark theme variables */
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
----
|
|
1350
|
+
|
|
1351
|
+
For examples of dark theme in action, see the demo configurations in the {releasehx_demo_repo}[releasehx-demo repository], particularly `github-dark-mode.yml` and `github-bootstrap-dark.yml`.
|
|
1352
|
+
|
|
1353
|
+
[[html-wrapper-control]]
|
|
1354
|
+
===== HTML Wrapper Control
|
|
1355
|
+
|
|
1356
|
+
To enable HTML wrapper with CSS, use either:
|
|
1357
|
+
|
|
1358
|
+
* Configuration: `modes.html_wrap: true`
|
|
1359
|
+
* CLI flag: `--wrap`
|
|
1360
|
+
|
|
1361
|
+
The wrapper includes proper HTML document structure, meta tags, and CSS framework loading.
|
|
1362
|
+
|
|
1143
1363
|
[[sourcing-strategy]]
|
|
1144
1364
|
=== Sourcing Strategy
|
|
1145
1365
|
|
|
@@ -1581,7 +1801,7 @@ Writes to `<output_path>/<file_template>` or `<PATH>`.
|
|
|
1581
1801
|
*--wrap, --no-wrap*::
|
|
1582
1802
|
{cli_option_message_wrap}.
|
|
1583
1803
|
When enriching to HTML, _include_ (`--wrap`) or _exclude_ (`--no-wrap`) the `<head>` and `<body>` tags and their content.
|
|
1584
|
-
For use when the opposite value is set in the config file ([.ppty]*<<
|
|
1804
|
+
For use when the opposite value is set in the config file ([.ppty]*<<conf_ppty_modes_html_wrap>>*).
|
|
1585
1805
|
|
|
1586
1806
|
*--quiet*::
|
|
1587
1807
|
{cli_option_message_quiet}.
|
|
@@ -1723,7 +1943,7 @@ Each item must have a `user` property that matches a username in the Issues syst
|
|
|
1723
1943
|
These pertain the to the main configuration file, which is defined specifically for your _application_ of ReleaseHx.
|
|
1724
1944
|
By default, the application config is found at `{app_default_config_path}.`
|
|
1725
1945
|
|
|
1726
|
-
The full configuration reference is published at link:{releasehx_docs_www}/config-reference{
|
|
1946
|
+
The full configuration reference is published at link:{releasehx_docs_www}/config-reference{extn}[].
|
|
1727
1947
|
|
|
1728
1948
|
[[sample-config]]
|
|
1729
1949
|
=== Sample Application Configurations
|
|
@@ -1762,7 +1982,7 @@ If you add a non-standard API, please consider <<contributing,contributing it>>
|
|
|
1762
1982
|
|
|
1763
1983
|
ReleaseHx connects to all upstream REST APIs via YAML-based client configurations.
|
|
1764
1984
|
|
|
1765
|
-
For reference, the official configs for the three supported REST APIs are at link:{
|
|
1985
|
+
For reference, the official configs for the three supported REST APIs are at link:{this_proj_src_www_url}/blob/lib/releasehx/rest/clients/jira.yml[jira.yml], link:{this_proj_src_www_url}/blob/lib/releasehx/rest/clients/github.yml[github.yml], and link:{this_proj_src_www_url}/blob/lib/releasehx/rest/clients/gitlab.yml[gitlab.yml].
|
|
1766
1986
|
|
|
1767
1987
|
To override any of these or to add your own, place a file at `.releasehx/rest/clients/<hostslug>.yml`.
|
|
1768
1988
|
Make sure it conforms to the schema defined in `specs/data/api-client-schema.yaml`.
|
|
@@ -1851,9 +2071,9 @@ Most configuration of output (for drafting or enriching), is handled in the main
|
|
|
1851
2071
|
|
|
1852
2072
|
For reference, the official mapping configs for the three supported REST APIs are at:
|
|
1853
2073
|
|
|
1854
|
-
* link:{
|
|
1855
|
-
* link:{
|
|
1856
|
-
* link:{
|
|
2074
|
+
* link:{this_proj_src_www_url_files_path}/lib/releasehx/rest/mappings/jira.yaml[jira.yaml]
|
|
2075
|
+
* link:{this_proj_src_www_url_files_path}/lib/releasehx/rest/mappings/github.yaml[github.yaml]
|
|
2076
|
+
* link:{this_proj_src_www_url_files_path}/lib/releasehx/rest/mappings/gitlab.yaml[gitlab.yaml]
|
|
1857
2077
|
|
|
1858
2078
|
To override any of these or to add your own, place a file at `.releasehx/rest/mappings/<hostslug>.yml`.
|
|
1859
2079
|
|
|
@@ -1966,8 +2186,7 @@ For example, if your GitHub issues use labels like:
|
|
|
1966
2186
|
Your ReleaseHx application will need an alternate mapping because the default GitHub mapping expects native `issue_type.name` fields.
|
|
1967
2187
|
|
|
1968
2188
|
An example alternate mapping for label-based GitHub type extraction can be found at:
|
|
1969
|
-
|
|
1970
|
-
`link:{releasehx_demo_repo}/blob/main/_mappings_/legacy-labels/github.yaml[releasehx-demo/_mappings_/legacy-labels/github.yaml]`
|
|
2189
|
+
link:{releasehx_demo_repo}/blob/main/_mappings_/legacy-labels/github.yaml[`releasehx-demo/_mappings_/legacy-labels/github.yaml`]
|
|
1971
2190
|
|
|
1972
2191
|
This mapping includes Ruby logic to:
|
|
1973
2192
|
|
|
@@ -2060,7 +2279,30 @@ The various sample configurations found in the link:{releasehx_demo_repo}/blob/m
|
|
|
2060
2279
|
|
|
2061
2280
|
A complete link:{default-config_www}[sample config] displays default values and commented descriptions of all available properties.
|
|
2062
2281
|
|
|
2063
|
-
[[
|
|
2282
|
+
[[template-support]]
|
|
2283
|
+
==== Template and Theme Support Policy
|
|
2284
|
+
|
|
2285
|
+
The RHYML templates in link:{this_proj_src_www_url_files_path}/lib/releasehx/rhyml/templates/[`lib/releasehx/rhyml/templates/`] are the default templates used for drafting and enriching content.
|
|
2286
|
+
|
|
2287
|
+
Templates filenames formatted like `*.{html,yaml,md,adoc}.liquid` all contain expressive markup intended for output.
|
|
2288
|
+
We will call these files, such as `changelog.adoc.liquid` and `changelog.html.liquid` _expressive templates_.
|
|
2289
|
+
|
|
2290
|
+
All files that are just `<string>.liquid`, such as `changes-sorter.liquid` and `parts-listing.liquid` merely generate data objects and produce express no output to the rendered output.
|
|
2291
|
+
We'll call these _parsing templates_.
|
|
2292
|
+
|
|
2293
|
+
During pre-1.0 releases, changes made to _parsing templates_ will maintain backward compatibility.
|
|
2294
|
+
Deprecations will be announced as early as possible, but we will not change the output of these files except by addition or in the case of a bug, in which case we will change the output to match the documented/expected processing.
|
|
2295
|
+
|
|
2296
|
+
When it comes to _expressive templates_, DocOps Lab intends to make incremental improvements and fine tuning.
|
|
2297
|
+
|
|
2298
|
+
You will always be able to use the templates from a prior version by dropping them into your local custom-templates directory (`_templates/`) by default, but set using {ppty_conf_paths_templates_dir}.
|
|
2299
|
+
|
|
2300
|
+
_After the 1.0 release_, all templates will be kept backward compatible between major releases; so no breaking changes until 2.0, 3.0, etc.
|
|
2301
|
+
|
|
2302
|
+
[NOTE]
|
|
2303
|
+
This is true of the RHYML domain-specific language, as well.
|
|
2304
|
+
We may modify it during pre-1.0 development, but it will be kept backward compatible thereafter.
|
|
2305
|
+
|
|
2064
2306
|
[[custom-liquid-tags]]
|
|
2065
2307
|
==== Custom Liquid Tags
|
|
2066
2308
|
|
|
@@ -2160,6 +2402,20 @@ Returns a YAML representation of the input for debugging purposes.
|
|
|
2160
2402
|
example:::
|
|
2161
2403
|
`{{ changes | inspect_yaml }}`
|
|
2162
2404
|
|
|
2405
|
+
[[jekyll-asciidoc-liquid-filters]]
|
|
2406
|
+
==== Jekyll/AsciiDoc Liquid Filters
|
|
2407
|
+
|
|
2408
|
+
ReleaseHx supports all link:https://jekyllrb.com/docs/liquid/filters/[filters provided by Jekyll 4.4].
|
|
2409
|
+
|
|
2410
|
+
It also includes all filters provided by the jekyll-asciidoc plugin.
|
|
2411
|
+
|
|
2412
|
+
asciidocify::
|
|
2413
|
+
Uses Asciidoctor API to convert a string of AsciiDoc content to HTML.
|
|
2414
|
+
|
|
2415
|
+
tocify_asciidoc::
|
|
2416
|
+
Generates a table of contents in HTML from the parsed AsciiDoc document of the current page.
|
|
2417
|
+
For use outside the context of a full AsciiDoc document, such as in a sidebar or drop-down ToC.
|
|
2418
|
+
|
|
2163
2419
|
|
|
2164
2420
|
[[troubleshooting]]
|
|
2165
2421
|
== Troubleshooting
|
|
@@ -2304,7 +2560,7 @@ To work with ReleaseHx source, clone both repositories side by side for the most
|
|
|
2304
2560
|
. Clone both repositories.
|
|
2305
2561
|
+
|
|
2306
2562
|
[.prompt]
|
|
2307
|
-
git clone {
|
|
2563
|
+
git clone {this_proj_src_www_url}
|
|
2308
2564
|
git clone {releasehx_demo_repo}
|
|
2309
2565
|
+
|
|
2310
2566
|
This will give you `<source_dir>/releasehx` and `<source_dir>/releasehx-demo`, side by side.
|
|
@@ -2319,9 +2575,9 @@ From the `releasehx` repository:
|
|
|
2319
2575
|
[.prompt]
|
|
2320
2576
|
cd releasehx
|
|
2321
2577
|
bundle install
|
|
2322
|
-
bundle exec rake build
|
|
2578
|
+
bundle exec rake build:gem
|
|
2323
2579
|
+
|
|
2324
|
-
This
|
|
2580
|
+
This operation generates untracked dependencies during a _pre-build_ stage and compiles the gem file in the `pkg/` directory.
|
|
2325
2581
|
|
|
2326
2582
|
. Install the locally built gem for testing.
|
|
2327
2583
|
+
|
|
@@ -2336,7 +2592,7 @@ Alternatively, for development testing without installing:
|
|
|
2336
2592
|
. Run the test suite to verify functionality.
|
|
2337
2593
|
+
|
|
2338
2594
|
[.prompt]
|
|
2339
|
-
bundle exec rake
|
|
2595
|
+
bundle exec rake rspec
|
|
2340
2596
|
|
|
2341
2597
|
[[working-with-the-demo-repository]]
|
|
2342
2598
|
==== Working with the Demo Repository
|
|
@@ -2456,7 +2712,7 @@ To maintain DRY sourcing, make your changes in the following files:
|
|
|
2456
2712
|
To build the documentation locally, run the following command from the project root:
|
|
2457
2713
|
|
|
2458
2714
|
[.prompt]
|
|
2459
|
-
bundle exec rake docs
|
|
2715
|
+
bundle exec rake build:docs
|
|
2460
2716
|
|
|
2461
2717
|
This will generate the documentation in the `build/docs` directory.
|
|
2462
2718
|
|
|
@@ -2475,6 +2731,7 @@ Use `PORT=NNNN` environment argument to specify a different port.
|
|
|
2475
2731
|
[.prompt]
|
|
2476
2732
|
PORT=4000 bundle exec rake serve
|
|
2477
2733
|
|
|
2734
|
+
[[docopslab-devtool]]
|
|
2478
2735
|
==== DocOps Lab Devtool (`docopslab-dev`)
|
|
2479
2736
|
|
|
2480
2737
|
Special dev Rake tasks and libraries are available via the `docopslab-dev` gem.
|
|
@@ -2483,7 +2740,7 @@ Special dev Rake tasks and libraries are available via the `docopslab-dev` gem.
|
|
|
2483
2740
|
[.prompt]
|
|
2484
2741
|
bundle exec rake --tasks | grep labdev:
|
|
2485
2742
|
|
|
2486
|
-
The link:{
|
|
2743
|
+
The link:{docopslab_src_www_url}/lab/tree/main/gems/docopslab-dev/README.adoc[DocOps Lab Devtool] or see `.agent/docs/topics/docpslab-devtool`.
|
|
2487
2744
|
|
|
2488
2745
|
// tag::releasehx-api[]
|
|
2489
2746
|
[[issue-data-mapping]]
|
data/build/docs/landing.adoc
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
:page-permalink: /
|
|
2
2
|
:page-layout: minimal
|
|
3
3
|
:page-liquid: true
|
|
4
|
+
:page-nav_exclude: true
|
|
4
5
|
= ReleaseHx
|
|
5
6
|
|
|
6
7
|
++++
|
|
@@ -10,12 +11,18 @@
|
|
|
10
11
|
<h1 class="title">
|
|
11
12
|
ReleaseHx
|
|
12
13
|
</h1>
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
<nav class="top-nav">
|
|
15
|
+
<a href="/docs/" class="button is-primary is-medium">
|
|
16
|
+
Documentation
|
|
17
|
+
</a>
|
|
18
|
+
|
|
|
19
|
+
<a href="/docs/releases/" class="button is-link is-medium">
|
|
20
|
+
Releases
|
|
21
|
+
</a>
|
|
22
|
+
</nav>
|
|
16
23
|
</div>
|
|
17
24
|
</div>
|
|
18
25
|
</div>
|
|
19
26
|
++++
|
|
20
27
|
|
|
21
|
-
include::index.adoc[tags="
|
|
28
|
+
include::index.adoc[tags="global-settings,intro,features-list"]
|
data/build/docs/manpage.adoc
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
:manpage:
|
|
5
5
|
:man-linkstyle: pass:[blue R < >]
|
|
6
6
|
:toc: macro
|
|
7
|
-
include::../README.adoc[tags="
|
|
7
|
+
include::../README.adoc[tags="global-settings,helpscreen_attrs"]
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
[[name]]
|
|
@@ -12,7 +12,7 @@ include::../README.adoc[tags="globals,helpscreen_attrs"]
|
|
|
12
12
|
|
|
13
13
|
releasehx - {tagline}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
TIP: Type `q` to exit this page.
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
[[aliases]]
|