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
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/* ReleaseHx Embedded CSS - {{ theme | capitalize }} Theme */
|
|
2
|
+
|
|
3
|
+
/* CSS Custom Properties - Theme: {{ theme }} */
|
|
4
|
+
:root {
|
|
5
|
+
{%- if theme == 'compact' %}
|
|
6
|
+
--release-spacing: 1.5rem;
|
|
7
|
+
--section-spacing: 1rem;
|
|
8
|
+
--item-spacing: 0.5rem;
|
|
9
|
+
--container-padding: 1rem;
|
|
10
|
+
--heading-margin: 0.75rem;
|
|
11
|
+
{%- elsif theme == 'detailed' %}
|
|
12
|
+
--release-spacing: 4rem;
|
|
13
|
+
--section-spacing: 3rem;
|
|
14
|
+
--item-spacing: 1.5rem;
|
|
15
|
+
--container-padding: 3rem;
|
|
16
|
+
--heading-margin: 2rem;
|
|
17
|
+
{%- else %}
|
|
18
|
+
--release-spacing: 3rem;
|
|
19
|
+
--section-spacing: 2.5rem;
|
|
20
|
+
--item-spacing: 1rem;
|
|
21
|
+
--container-padding: 2rem;
|
|
22
|
+
--heading-margin: 1.5rem;
|
|
23
|
+
{%- endif %}
|
|
24
|
+
|
|
25
|
+
/* Light Theme Colors */
|
|
26
|
+
--primary-color: #0d6efd;
|
|
27
|
+
--success-color: #198754;
|
|
28
|
+
--info-color: #0dcaf0;
|
|
29
|
+
--warning-color: #ffc107;
|
|
30
|
+
--danger-color: #dc3545;
|
|
31
|
+
--light-bg: #f8f9fa;
|
|
32
|
+
--white-bg: #ffffff;
|
|
33
|
+
--text-color: #212529;
|
|
34
|
+
--text-muted: #6c757d;
|
|
35
|
+
--border-color: #dee2e6;
|
|
36
|
+
--border-radius: 0.375rem;
|
|
37
|
+
--shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
38
|
+
--shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Dark Theme Colors */
|
|
42
|
+
@media (prefers-color-scheme: dark) {
|
|
43
|
+
:root {
|
|
44
|
+
--primary-color: #6ea8fe;
|
|
45
|
+
--success-color: #75b798;
|
|
46
|
+
--info-color: #6edff6;
|
|
47
|
+
--warning-color: #ffda6a;
|
|
48
|
+
--danger-color: #ea868f;
|
|
49
|
+
--light-bg: #212529;
|
|
50
|
+
--white-bg: #2b3035;
|
|
51
|
+
--text-color: #ffffff;
|
|
52
|
+
--text-muted: #adb5bd;
|
|
53
|
+
--border-color: #495057;
|
|
54
|
+
--shadow: 0 1px 3px rgba(255, 255, 255, 0.1);
|
|
55
|
+
--shadow-hover: 0 2px 8px rgba(255, 255, 255, 0.15);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Manual Dark Theme Override */
|
|
60
|
+
.dark-theme {
|
|
61
|
+
--primary-color: #6ea8fe;
|
|
62
|
+
--success-color: #75b798;
|
|
63
|
+
--info-color: #6edff6;
|
|
64
|
+
--warning-color: #ffda6a;
|
|
65
|
+
--danger-color: #ea868f;
|
|
66
|
+
--light-bg: #212529;
|
|
67
|
+
--white-bg: #2b3035;
|
|
68
|
+
--text-color: #ffffff;
|
|
69
|
+
--text-muted: #adb5bd;
|
|
70
|
+
--border-color: #495057;
|
|
71
|
+
--shadow: 0 1px 3px rgba(255, 255, 255, 0.1);
|
|
72
|
+
--shadow-hover: 0 2px 8px rgba(255, 255, 255, 0.15);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Base Styles */
|
|
76
|
+
body {
|
|
77
|
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
78
|
+
line-height: 1.6;
|
|
79
|
+
color: var(--text-color);
|
|
80
|
+
background-color: var(--light-bg);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Container and Layout */
|
|
84
|
+
.release-history {
|
|
85
|
+
max-width: 1200px;
|
|
86
|
+
margin: 0 auto;
|
|
87
|
+
padding: var(--container-padding);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.release-section {
|
|
91
|
+
margin-bottom: var(--release-spacing);
|
|
92
|
+
padding: var(--container-padding);
|
|
93
|
+
background-color: var(--white-bg);
|
|
94
|
+
border-radius: var(--border-radius);
|
|
95
|
+
box-shadow: var(--shadow);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Section Styling */
|
|
99
|
+
.changelog-section, .notes-section {
|
|
100
|
+
margin-bottom: var(--section-spacing);
|
|
101
|
+
padding: var(--container-padding);
|
|
102
|
+
border-radius: var(--border-radius);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.changelog-section {
|
|
106
|
+
border-left: 4px solid var(--success-color);
|
|
107
|
+
background-color: rgba(25, 135, 84, 0.02);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.notes-section {
|
|
111
|
+
border-left: 4px solid var(--info-color);
|
|
112
|
+
background-color: rgba(13, 202, 240, 0.02);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Release Notes */
|
|
116
|
+
.release-note {
|
|
117
|
+
margin-bottom: var(--item-spacing);
|
|
118
|
+
transition: box-shadow 0.2s ease;
|
|
119
|
+
border: 1px solid var(--border-color);
|
|
120
|
+
border-radius: var(--border-radius);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.release-note:hover {
|
|
124
|
+
box-shadow: var(--shadow-hover);
|
|
125
|
+
border-color: var(--primary-color);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.card-header {
|
|
129
|
+
background-color: var(--light-bg);
|
|
130
|
+
border-bottom: 1px solid #dee2e6;
|
|
131
|
+
padding: 1rem 1.25rem;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.card-body {
|
|
135
|
+
padding: 1.25rem;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.card-footer {
|
|
139
|
+
background-color: var(--light-bg);
|
|
140
|
+
border-top: 1px solid #dee2e6;
|
|
141
|
+
padding: 0.75rem 1.25rem;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* Changelog Entries */
|
|
145
|
+
.change-entry {
|
|
146
|
+
margin-bottom: var(--item-spacing);
|
|
147
|
+
padding: 0.75rem 1rem;
|
|
148
|
+
border: 1px solid var(--border-color);
|
|
149
|
+
border-radius: var(--border-radius);
|
|
150
|
+
transition: all 0.15s ease;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.change-entry:hover {
|
|
154
|
+
background-color: var(--light-bg);
|
|
155
|
+
border-color: var(--primary-color);
|
|
156
|
+
transform: translateX(4px);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Typography */
|
|
160
|
+
h1, h2, h3, h4, h5, h6 {
|
|
161
|
+
margin-bottom: var(--heading-margin);
|
|
162
|
+
line-height: 1.2;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
{%- if theme == 'compact' %}
|
|
166
|
+
h1 { font-size: 1.75rem; }
|
|
167
|
+
h2 { font-size: 1.5rem; }
|
|
168
|
+
h3 { font-size: 1.25rem; }
|
|
169
|
+
{%- elsif theme == 'detailed' %}
|
|
170
|
+
h1 { font-size: 3rem; }
|
|
171
|
+
h2 { font-size: 2.5rem; }
|
|
172
|
+
h3 { font-size: 2rem; }
|
|
173
|
+
{%- endif %}
|
|
174
|
+
|
|
175
|
+
/* Badges and Labels */
|
|
176
|
+
.badge {
|
|
177
|
+
font-size: 0.75em;
|
|
178
|
+
padding: 0.35em 0.65em;
|
|
179
|
+
border-radius: 0.375rem;
|
|
180
|
+
font-weight: 600;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.badge-primary { background-color: var(--primary-color); color: white; }
|
|
184
|
+
.badge-success { background-color: var(--success-color); color: white; }
|
|
185
|
+
.badge-info { background-color: var(--info-color); color: white; }
|
|
186
|
+
.badge-warning { background-color: var(--warning-color); color: black; }
|
|
187
|
+
.badge-danger { background-color: var(--danger-color); color: white; }
|
|
188
|
+
|
|
189
|
+
/* Metadata Display */
|
|
190
|
+
.change-metadata {
|
|
191
|
+
display: flex;
|
|
192
|
+
flex-wrap: wrap;
|
|
193
|
+
gap: 0.5rem;
|
|
194
|
+
align-items: center;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.metadata-item {
|
|
198
|
+
display: inline-flex;
|
|
199
|
+
align-items: center;
|
|
200
|
+
gap: 0.25rem;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/* Links */
|
|
204
|
+
a {
|
|
205
|
+
color: var(--primary-color);
|
|
206
|
+
text-decoration: none;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
a:hover {
|
|
210
|
+
text-decoration: underline;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* Responsive Design */
|
|
214
|
+
@media (max-width: 768px) {
|
|
215
|
+
.release-history {
|
|
216
|
+
padding: 1rem;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.release-section {
|
|
220
|
+
padding: 1.5rem;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.change-entry {
|
|
224
|
+
padding: 0.5rem 0.75rem;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
{%- if theme == 'detailed' %}
|
|
228
|
+
h1 { font-size: 2rem; }
|
|
229
|
+
h2 { font-size: 1.75rem; }
|
|
230
|
+
h3 { font-size: 1.5rem; }
|
|
231
|
+
{%- endif %}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* Print Styles */
|
|
235
|
+
@media print {
|
|
236
|
+
body {
|
|
237
|
+
background: white;
|
|
238
|
+
color: black;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.release-section {
|
|
242
|
+
box-shadow: none;
|
|
243
|
+
border: 1px solid var(--border-color);
|
|
244
|
+
break-inside: avoid;
|
|
245
|
+
page-break-inside: avoid;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.release-note {
|
|
249
|
+
break-inside: avoid;
|
|
250
|
+
page-break-inside: avoid;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
a {
|
|
254
|
+
color: black;
|
|
255
|
+
text-decoration: none;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
a:after {
|
|
259
|
+
content: " (" attr(href) ")";
|
|
260
|
+
font-size: 0.8em;
|
|
261
|
+
color: #666;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
{%- embed metadata-entry.adoc.liquid -%}
|
|
2
1
|
{%- assign frame = content_config.items.frame %}
|
|
3
2
|
{%- assign summ = change.summ %}
|
|
4
3
|
{%- case frame %}
|
|
@@ -16,11 +15,9 @@
|
|
|
16
15
|
{%- if frame == "ordered" %}
|
|
17
16
|
[start={{ item_count }}]
|
|
18
17
|
{%- endif %}
|
|
18
|
+
[.change-entry]
|
|
19
19
|
{{ bullet -}}
|
|
20
|
-
{{ change.summ | trim }}
|
|
21
|
-
{%- if
|
|
22
|
-
{{
|
|
23
|
-
{%- endif %}
|
|
24
|
-
{%- if change.note %}
|
|
25
|
-
xref:note-{{ change.chid }}[icon:sticky-note[]NOTE]
|
|
20
|
+
{{ change.summ | trim }}
|
|
21
|
+
{%- if change.note %} +
|
|
22
|
+
xref:note-{{ change.chid }}[NOTE]
|
|
26
23
|
{%- endif %}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
{%- embed metadata-entry.html.liquid -%}
|
|
2
1
|
{%- assign frame = frame %}
|
|
3
2
|
{%- case frame %}
|
|
4
3
|
{%- when "unordered" %}
|
|
@@ -10,29 +9,31 @@
|
|
|
10
9
|
{%- assign item_class = "list-group-item border-0 px-0" %}
|
|
11
10
|
{%- assign bullet = "" %}
|
|
12
11
|
{%- else %}
|
|
13
|
-
{%- assign list_class = "list-
|
|
14
|
-
{%- assign item_class = "
|
|
12
|
+
{%- assign list_class = "list-group" %}
|
|
13
|
+
{%- assign item_class = "list-group-item px-3 py-2" %}
|
|
15
14
|
{%- assign bullet = "" %}
|
|
16
15
|
{%- endcase %}
|
|
17
16
|
|
|
18
17
|
<div class="change-entry {{ item_class }}" id="entry-{{ change.chid }}">
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
</
|
|
35
|
-
|
|
18
|
+
<div class="d-flex align-items-start justify-content-between">
|
|
19
|
+
<div class="flex-grow-1">
|
|
20
|
+
<p class="change-summary mb-2">
|
|
21
|
+
<span class="text-body">{{ bullet }}{{ change.summ | trim | pasterize }}</span>
|
|
22
|
+
</p>
|
|
23
|
+
{%- if change_metadata != "" -%}
|
|
24
|
+
<div class="change-metadata">
|
|
25
|
+
{{ change_metadata | trim }}
|
|
26
|
+
</div>
|
|
27
|
+
{%- endif %}
|
|
28
|
+
</div>
|
|
29
|
+
{%- if change.note %}
|
|
30
|
+
<div class="note-link ms-3 ps-2 text-nowrap">
|
|
31
|
+
<a href="#note-{{ change.chid }}" class="badge bg-warning text-decoration-none" title="Has a release note">
|
|
32
|
+
<i class="fa fa-sticky-note-o"></i>
|
|
33
|
+
<small>NOTE</small>
|
|
34
|
+
</a>
|
|
36
35
|
</div>
|
|
36
|
+
{%- endif %}
|
|
37
|
+
</div>
|
|
37
38
|
</div>
|
|
38
39
|
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
+
<!-- .change-entry -->
|
|
1
2
|
{%- embed metadata-entry.md.liquid -%}
|
|
2
|
-
{%- assign frame = content_config.items.frame | default:
|
|
3
|
-
{%- assign summ = change.summ %}
|
|
3
|
+
{%- assign frame = content_config.items.frame | default: 'unordered' %}
|
|
4
4
|
{%- case frame %}
|
|
5
|
-
{%-
|
|
6
|
-
{%-
|
|
7
|
-
{%-
|
|
8
|
-
{%-
|
|
9
|
-
{%-
|
|
10
|
-
{%-
|
|
11
|
-
{%-
|
|
12
|
-
{%-
|
|
5
|
+
{%- when 'unordered' %}
|
|
6
|
+
{%- assign bullet = '- ' %}
|
|
7
|
+
{%- when 'ordered' %}
|
|
8
|
+
{%- assign bullet = '1. ' %}
|
|
9
|
+
{%- when 'basic' %}
|
|
10
|
+
{%- assign bullet = '- ' %}
|
|
11
|
+
{%- else %}
|
|
12
|
+
{%- assign bullet = '' %}
|
|
13
13
|
{%- endcase %}
|
|
14
14
|
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
{
|
|
18
|
-
{%-
|
|
19
|
-
|
|
20
|
-
{{ change.summ | trim }}{% if change_metadata != "" %} ({{ change_metadata | trim }}){% endif %}{% if change.note and change.note != "" %} [NOTE](#note-{{ change.chid }}){% endif %}
|
|
21
|
-
{%- else %}
|
|
22
|
-
|
|
23
|
-
{{ bullet }}{{ change.summ | trim }}{% if change_metadata != "" %} ({{ change_metadata | trim }}){% endif %}{% if change.note and change.note != "" %} [NOTE](#note-{{ change.chid }}){% endif %}
|
|
24
|
-
{%- endif %}
|
|
25
|
-
|
|
15
|
+
{{ bullet -}}
|
|
16
|
+
{{- change.summ | trim }}
|
|
17
|
+
{%- if change_metadata != '' %} {{ change_metadata | trim }}{%- endif -%}
|
|
18
|
+
{%- if change.note and change.note != '' %} [📝](#note-{{ change.chid }}){%- endif -%}
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
{%- assign tplt_extn = "html" %}
|
|
14
14
|
{%- assign show_frontmatter = config.modes.html_frontmatter %}
|
|
15
15
|
{%- assign format_frontmatter = config.history.html_frontmatter %}
|
|
16
|
+
{%- comment %} Force frontmatter off when HTML is wrapped (full HTML structure) {%- endcomment %}
|
|
17
|
+
{%- if config.modes.html_wrap == true %}
|
|
18
|
+
{%- assign show_frontmatter = false %}
|
|
19
|
+
{%- endif %}
|
|
16
20
|
{%- endcase %}
|
|
17
21
|
{%- assign header_level = config.history.htag | replace: "h", "" | plus: 0 %}
|
|
18
22
|
{%- assign dflt_next_header_level = header_level | plus: 1 %}
|
|
@@ -27,8 +31,8 @@
|
|
|
27
31
|
|
|
28
32
|
{%- assign group_kinds_list = "tag,type,part" | split: "," %}
|
|
29
33
|
|
|
30
|
-
{%- if show_frontmatter
|
|
34
|
+
{%- if show_frontmatter -%}
|
|
31
35
|
{{ format_frontmatter | render: vars -}}
|
|
32
|
-
{%- endif
|
|
36
|
+
{%- endif -%}
|
|
33
37
|
|
|
34
38
|
{%- include header.liquid format=format level=header_level text=history_header %}
|
|
@@ -2,7 +2,18 @@
|
|
|
2
2
|
{%- assign level = include.level %}
|
|
3
3
|
{%- assign format = include.format %}
|
|
4
4
|
{%- if format == "html" %}
|
|
5
|
-
|
|
5
|
+
{%- case level %}
|
|
6
|
+
{%- when 1 %}
|
|
7
|
+
<h{{ level }} class="display-5 fw-bold mb-4">{{ text }}</h{{ level }}>
|
|
8
|
+
{%- when 2 %}
|
|
9
|
+
<h{{ level }} class="h2 fw-bold border-bottom pb-3 mb-3">{{ text }}</h{{ level }}>
|
|
10
|
+
{%- when 3 %}
|
|
11
|
+
<h{{ level }} class="h3 fw-bold text-primary mt-4 mb-2">{{ text }}</h{{ level }}>
|
|
12
|
+
{%- when 4 %}
|
|
13
|
+
<h{{ level }} class="h4 fw-semibold mt-3 mb-2">{{ text }}</h{{ level }}>
|
|
14
|
+
{%- else %}
|
|
15
|
+
<h{{ level }} class="fw-semibold mt-2 mb-2">{{ text }}</h{{ level }}>
|
|
16
|
+
{%- endcase %}
|
|
6
17
|
{%- else %}
|
|
7
18
|
{%- if format == "asciidoc" %}
|
|
8
19
|
{%- assign header_char = "=" %}
|
|
@@ -12,6 +23,4 @@
|
|
|
12
23
|
{%- capture header_chars %}
|
|
13
24
|
{%- for i in (1..level) %}{{ header_char }}{% endfor %}
|
|
14
25
|
{%- endcapture %}
|
|
15
|
-
{{ header_chars }} {{ text }}
|
|
16
|
-
|
|
17
|
-
{%- endif %}
|
|
26
|
+
{{ header_chars }} {{ text }}{%- endif %}
|
|
@@ -1,51 +1,170 @@
|
|
|
1
1
|
{% raw %}
|
|
2
|
-
{%- if config.modes.
|
|
2
|
+
{%- if config.modes.html_wrap != false -%}
|
|
3
3
|
<!DOCTYPE html>
|
|
4
4
|
<html lang="en">
|
|
5
5
|
<head>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
<meta charset="UTF-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
<meta name="description" content="Release history and changelog">
|
|
9
|
+
<title>{{ config.history.head | default: "Release History" }}</title>
|
|
10
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
|
12
|
+
<style>
|
|
13
|
+
:root {
|
|
14
|
+
--release-spacing: 3rem;
|
|
15
|
+
--section-spacing: 2.5rem;
|
|
16
|
+
--item-spacing: 1rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
body {
|
|
20
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
21
|
+
background-color: #f8f9fa;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.release-history {
|
|
25
|
+
max-width: 1200px;
|
|
26
|
+
margin: 0 auto;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.release-section {
|
|
30
|
+
margin-bottom: var(--release-spacing);
|
|
31
|
+
padding: 2rem;
|
|
32
|
+
background-color: white;
|
|
33
|
+
border-radius: 0.375rem;
|
|
34
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.changelog-section, .notes-section {
|
|
38
|
+
margin-bottom: var(--section-spacing);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.changelog-section {
|
|
42
|
+
border-left: 4px solid #198754;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.notes-section {
|
|
46
|
+
border-left: 4px solid #0dcaf0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.release-note {
|
|
50
|
+
margin-bottom: var(--item-spacing);
|
|
51
|
+
transition: box-shadow 0.2s ease;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.release-note:hover {
|
|
55
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.change-entry {
|
|
59
|
+
margin-bottom: var(--item-spacing);
|
|
60
|
+
padding: 0.75rem 0;
|
|
61
|
+
transition: background-color 0.15s ease;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.change-entry:hover {
|
|
65
|
+
background-color: #f8f9fa;
|
|
66
|
+
border-radius: 0.25rem;
|
|
67
|
+
padding: 0.75rem 0.5rem;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.change-summary {
|
|
71
|
+
color: #212529;
|
|
72
|
+
line-height: 1.5;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.change-metadata {
|
|
76
|
+
font-size: 0.875rem;
|
|
77
|
+
margin-top: 0.5rem;
|
|
78
|
+
display: flex;
|
|
79
|
+
flex-wrap: wrap;
|
|
80
|
+
gap: 0.5rem;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.meta-icon {
|
|
84
|
+
margin-right: 0.25rem;
|
|
85
|
+
opacity: 0.7;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.meta-label, .meta-link {
|
|
89
|
+
margin-right: 0.25rem;
|
|
90
|
+
display: inline-block;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.note-link {
|
|
94
|
+
margin-left: 0.5rem;
|
|
95
|
+
flex-shrink: 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.issue-link, .git-link, .docs-link, .user-link {
|
|
99
|
+
font-size: 0.8rem;
|
|
100
|
+
text-decoration: none;
|
|
101
|
+
padding: 0.25rem 0.5rem;
|
|
102
|
+
border-radius: 0.25rem;
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Print styles */
|
|
107
|
+
@media print {
|
|
108
|
+
body {
|
|
109
|
+
background-color: white;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.release-section {
|
|
113
|
+
page-break-inside: avoid;
|
|
114
|
+
box-shadow: none;
|
|
115
|
+
border: 1px solid #dee2e6;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.release-note {
|
|
119
|
+
page-break-inside: avoid;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.change-entry:hover {
|
|
123
|
+
background-color: white;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
a[href]:after {
|
|
127
|
+
content: " (" attr(href) ")";
|
|
128
|
+
font-size: 0.75rem;
|
|
129
|
+
color: #6c757d;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
</style>
|
|
22
133
|
</head>
|
|
23
|
-
<body
|
|
134
|
+
<body>
|
|
135
|
+
<div class="container-lg py-5">
|
|
24
136
|
{%- endif -%}
|
|
25
137
|
|
|
26
138
|
{%- if config.modes.html_frontmatter -%}
|
|
27
139
|
{%- assign frontmatter = config.history.html_frontmatter | render: vars -%}
|
|
28
140
|
{%- if frontmatter and frontmatter != "" -%}
|
|
29
|
-
<!-- {{ frontmatter }} -->
|
|
141
|
+
<!-- {{ frontmatter }} -->
|
|
30
142
|
{%- endif -%}
|
|
31
143
|
{%- endif -%}
|
|
32
144
|
|
|
33
|
-
<
|
|
34
|
-
|
|
145
|
+
<article class="release-history">
|
|
146
|
+
<header class="mb-5">
|
|
147
|
+
<h1 class="display-4 fw-bold mb-2">{{ config.history.head | render: vars | default: "Release History" }}</h1>
|
|
148
|
+
<p class="lead text-muted">Complete history of releases, changes, and improvements</p>
|
|
149
|
+
</header>
|
|
35
150
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
151
|
+
<main>
|
|
152
|
+
{%- for release in var.releases %}
|
|
153
|
+
{%- assign config = var.config %}
|
|
154
|
+
{%- assign release = var.release %}
|
|
155
|
+
{%- assign changes = var.changes %}
|
|
156
|
+
{%- assign sorted = var.sorted -%}
|
|
157
|
+
{%- include release.html.liquid
|
|
158
|
+
release=release
|
|
159
|
+
config=config
|
|
160
|
+
level=2 %}
|
|
161
|
+
{%- endfor %}
|
|
162
|
+
</main>
|
|
163
|
+
</article>
|
|
47
164
|
|
|
48
|
-
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
{%- if config.modes.html_wrap != false -%}
|
|
49
168
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
50
169
|
</body>
|
|
51
170
|
</html>
|