jekyll-theme-centos 2.52.0.beta.89 → 2.52.0.beta.90
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/_data/base/download.yml +23 -0
- data/_data/base/download_schema.yml +254 -0
- data/_data/base/navbar_schema.yml +6 -6
- data/_data/base/navindex_schema.yml +1 -1
- data/_data/base/sponsors.yml +0 -1
- data/_data/base/sponsors_schema.yml +13 -4
- data/_data/base/title_schema.yml +3 -1
- data/_includes/base/download.html.liquid +146 -0
- data/_includes/base/download_accordion_item.html.liquid +39 -0
- data/_includes/base/download_architecture.html.liquid +240 -0
- data/_includes/base/download_commands.html.liquid +27 -0
- data/_includes/base/download_documentation.html.liquid +24 -0
- data/_includes/base/download_eol.html.liquid +29 -0
- data/_includes/base/download_filevalue.html.liquid +68 -0
- data/_includes/base/download_screenshots.html.liquid +79 -0
- data/_includes/base/download_sections.html.liquid +51 -0
- data/_includes/base/navindex.html.liquid +7 -5
- data/_includes/base/sponsors-cards.html.liquid +1 -1
- data/_includes/base/sponsors-carousel.html.liquid +1 -1
- data/_includes/base/title.html.liquid +6 -1
- data/_sass/base/_download.scss +70 -0
- data/_sass/base/_variables.scss +7 -0
- data/assets/css/base/stylesheet.min.scss +1 -0
- data/assets/js/base/datatable.js +7 -2
- data/assets/js/base/highlight.js +1 -1
- metadata +13 -77
- data/_data/download/cards.yml +0 -309
- data/_data/download/navbar.yml +0 -11
- data/_includes/download/cards-body-commands.html +0 -7
- data/_includes/download/cards-body-convert.html +0 -10
- data/_includes/download/cards-body-doc.html +0 -9
- data/_includes/download/cards-body-documentation.html +0 -11
- data/_includes/download/cards-body-eol.html +0 -16
- data/_includes/download/cards-body-mirrors.html +0 -8
- data/_includes/download/cards-body-screenshot.html +0 -26
- data/_includes/download/cards-body-screenshots.html +0 -32
- data/_includes/download/cards-body.html +0 -8
- data/_includes/download/cards-footer.html +0 -3
- data/_includes/download/cards-header-commands.html +0 -8
- data/_includes/download/cards-header-convert.html +0 -8
- data/_includes/download/cards-header-doc.html +0 -8
- data/_includes/download/cards-header-documentation.html +0 -8
- data/_includes/download/cards-header-eol.html +0 -8
- data/_includes/download/cards-header-mirrors.html +0 -13
- data/_includes/download/cards-header-screenshot.html +0 -8
- data/_includes/download/cards-header-screenshots.html +0 -8
- data/_includes/download/cards-header.html +0 -13
- data/_includes/download/cards.html +0 -120
- data/_layouts/download/cards.html +0 -7
- data/_layouts/download/default.html +0 -7
- data/assets/img/base/centos-colors.gpl +0 -55
- data/assets/img/base/example-ogp-image.svg +0 -297
- data/assets/img/base/example-sponsors-design.svg +0 -226
- data/assets/img/base/example-sponsors-logo-1.svg +0 -120
- data/assets/img/base/example-sponsors-logo-2.svg +0 -116
- data/assets/img/base/example-sponsors-logo-3.svg +0 -123
- data/assets/img/base/example-sponsors-logo-4.svg +0 -116
- data/assets/img/base/example-sponsors-logo-5.svg +0 -116
- data/assets/img/base/example-sponsors-logo-6.svg +0 -116
- data/assets/img/base/example-sponsors-logo-7.svg +0 -116
- data/assets/img/base/example-sponsors-logo-8.svg +0 -110
- data/assets/img/base/page-layout-default.svg +0 -1196
- data/assets/img/base/page-with-alert.svg +0 -438
- data/assets/img/base/page-with-announcement.svg +0 -441
- data/assets/img/base/page-with-artwork.svg +0 -384
- data/assets/img/base/page-with-backtotop.svg +0 -502
- data/assets/img/base/page-with-bits.svg +0 -377
- data/assets/img/base/page-with-breadcrumb.svg +0 -354
- data/assets/img/base/page-with-breakingnews.svg +0 -433
- data/assets/img/base/page-with-calendar.svg +0 -57
- data/assets/img/base/page-with-color.svg +0 -57
- data/assets/img/base/page-with-copyright.svg +0 -506
- data/assets/img/base/page-with-copyvalue.svg +0 -57
- data/assets/img/base/page-with-datatable.svg +0 -57
- data/assets/img/base/page-with-event.svg +0 -448
- data/assets/img/base/page-with-fontawesome.svg +0 -147
- data/assets/img/base/page-with-footer.svg +0 -506
- data/assets/img/base/page-with-heading.svg +0 -57
- data/assets/img/base/page-with-highlight.svg +0 -86
- data/assets/img/base/page-with-image.svg +0 -57
- data/assets/img/base/page-with-link.svg +0 -57
- data/assets/img/base/page-with-locales.svg +0 -502
- data/assets/img/base/page-with-navbar.svg +0 -1060
- data/assets/img/base/page-with-navindex.svg +0 -279
- data/assets/img/base/page-with-ogp.svg +0 -401
- data/assets/img/base/page-with-project.svg +0 -853
- data/assets/img/base/page-with-shortcut.svg +0 -502
- data/assets/img/base/page-with-social.svg +0 -502
- data/assets/img/base/page-with-sponsors.svg +0 -502
- data/assets/img/base/page-with-title.svg +0 -324
- data/assets/img/base/page-with-toc.svg +0 -324
- data/assets/img/base/screenshot-1200x600.svg +0 -114
- data/assets/img/download/centos-linux-7-2009-screenshot-n.png +0 -0
- data/assets/img/download/centos-stream-8-screenshot-n.png +0 -0
- data/assets/img/download/centos-stream-9-screenshot-n.png +0 -0
- data/assets/img/download/distribution-release-screenshot-1.png +0 -0
- data/assets/img/download/distribution-release-screenshot-2.png +0 -0
- data/assets/img/download/distribution-release-screenshot-3.png +0 -0
- data/assets/img/download/distribution-release-screenshot-n.png +0 -0
- data/assets/img/download/distribution-release-screenshot-n.svg +0 -134
- data/assets/img/download/download.svg +0 -421
- data/assets/img/download/fig-the-downloads-cards-presentation-template.png +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Architecture Grid
|
|
4
|
+
Purpose: One box per architecture, each with that architecture's own main
|
|
5
|
+
download/checksum/signature and mirror links — the single per-architecture
|
|
6
|
+
data source for a release. Called from download_sections.html.liquid.
|
|
7
|
+
|
|
8
|
+
Required Inputs:
|
|
9
|
+
- architecture: Map of architecture label (e.g. `x86_64`) to
|
|
10
|
+
{download, checksum, signature, checksum_value, signature_value,
|
|
11
|
+
mirrors: {iso, rpm, cloud, containers, vagrant, torrent}} — see
|
|
12
|
+
download_schema.yml for the full field-by-field description.
|
|
13
|
+
- release_id: The parent release's unique id, combined with each
|
|
14
|
+
architecture's own label to build a page-unique id_prefix for the
|
|
15
|
+
checksum/signature rows — see download_filevalue.html.liquid's id_prefix
|
|
16
|
+
note for why that's needed.
|
|
17
|
+
|
|
18
|
+
Within each box: icon + architecture title, then (if present) a Download
|
|
19
|
+
button, then (if present) one input-group row each for checksum and
|
|
20
|
+
signature, then (if present) the outline-primary mirror buttons — mirrors
|
|
21
|
+
is always the last section, so it never carries a trailing rule.
|
|
22
|
+
|
|
23
|
+
Design rationale for specific decisions lives as inline comments next to the
|
|
24
|
+
code they explain: the architecture map's shape versus mirrors/flavors
|
|
25
|
+
(above the grid loop below), the Download button's layout (above its
|
|
26
|
+
markup), the checksum/signature row design (above the download_filevalue
|
|
27
|
+
includes), and the responsive column/divider/orphan-row grid math (above
|
|
28
|
+
the column-count and orphan-detection blocks immediately below).
|
|
29
|
+
================================================================================
|
|
30
|
+
{% endcomment %}
|
|
31
|
+
|
|
32
|
+
{%- comment %} Column count tracks item count (capped at 4) so the grid always
|
|
33
|
+
fills the row width, instead of a fixed row-cols-md-3 leaving a gap when there
|
|
34
|
+
are only 1 or 2 architectures. {% endcomment %}
|
|
35
|
+
{%- assign arch_count = include.architecture.size -%}
|
|
36
|
+
{%- case arch_count -%}
|
|
37
|
+
{%- when 1 -%}{%- assign arch_cols = 1 -%}
|
|
38
|
+
{%- when 2 -%}{%- assign arch_cols = 2 -%}
|
|
39
|
+
{%- when 3 -%}{%- assign arch_cols = 3 -%}
|
|
40
|
+
{%- else -%}{%- assign arch_cols = 4 -%}
|
|
41
|
+
{%- endcase -%}
|
|
42
|
+
|
|
43
|
+
{%- comment %} Orphan-row detection: for each breakpoint's column count,
|
|
44
|
+
figure out whether arch_count leaves a trailing partial row, and if so, the
|
|
45
|
+
0-based index where that partial row starts (orphan_*_start) and the width
|
|
46
|
+
each of its boxes should stretch to (orphan_*_width = 100% / remainder). A
|
|
47
|
+
value of -1 means "no orphan row at this breakpoint" — every box divides
|
|
48
|
+
evenly, or this breakpoint isn't reached at all (arch_cols too low).
|
|
49
|
+
{% endcomment %}
|
|
50
|
+
{%- assign row_cols_classes = "row-cols-1" -%}
|
|
51
|
+
{%- assign arch_divider_class = "" -%}
|
|
52
|
+
{%- assign orphan_sm_start = -1 -%}
|
|
53
|
+
{%- assign orphan_sm_width = "" -%}
|
|
54
|
+
{%- assign orphan_md_start = -1 -%}
|
|
55
|
+
{%- assign orphan_md_width = "" -%}
|
|
56
|
+
{%- assign orphan_lg_start = -1 -%}
|
|
57
|
+
{%- assign orphan_lg_width = "" -%}
|
|
58
|
+
|
|
59
|
+
{%- comment %} Steps up one column per breakpoint (1 → sm:2 → md:3 → lg:4)
|
|
60
|
+
instead of jumping straight from 1 to arch_cols at a single breakpoint, so
|
|
61
|
+
stretching the window grows the grid progressively rather than in one hard
|
|
62
|
+
jump. Capped at arch_cols throughout — a 2-architecture release stops
|
|
63
|
+
adding columns at sm and never reaches 3 or 4, so it doesn't leave empty
|
|
64
|
+
gaps at wider viewports. {% endcomment %}
|
|
65
|
+
{%- if arch_cols >= 2 -%}
|
|
66
|
+
{%- assign row_cols_classes = row_cols_classes | append: " row-cols-sm-2" -%}
|
|
67
|
+
{%- assign arch_divider_class = "download-arch-divider-sm" -%}
|
|
68
|
+
{%- assign remainder = arch_count | modulo: 2 -%}
|
|
69
|
+
{%- if remainder != 0 -%}
|
|
70
|
+
{%- assign orphan_sm_start = arch_count | minus: remainder -%}
|
|
71
|
+
{%- assign orphan_sm_width = "100%" -%}
|
|
72
|
+
{%- endif -%}
|
|
73
|
+
{%- endif -%}
|
|
74
|
+
|
|
75
|
+
{%- if arch_cols >= 3 -%}
|
|
76
|
+
{%- assign row_cols_classes = row_cols_classes | append: " row-cols-md-3" -%}
|
|
77
|
+
{%- assign arch_divider_class = "download-arch-divider-md" -%}
|
|
78
|
+
{%- assign remainder = arch_count | modulo: 3 -%}
|
|
79
|
+
{%- if remainder != 0 -%}
|
|
80
|
+
{%- assign orphan_md_start = arch_count | minus: remainder -%}
|
|
81
|
+
{%- case remainder -%}
|
|
82
|
+
{%- when 1 -%}{%- assign orphan_md_width = "100%" -%}
|
|
83
|
+
{%- else -%}{%- assign orphan_md_width = "50%" -%}
|
|
84
|
+
{%- endcase -%}
|
|
85
|
+
{%- endif -%}
|
|
86
|
+
{%- endif -%}
|
|
87
|
+
|
|
88
|
+
{%- if arch_cols >= 4 -%}
|
|
89
|
+
{%- assign row_cols_classes = row_cols_classes | append: " row-cols-lg-4" -%}
|
|
90
|
+
{%- assign arch_divider_class = "download-arch-divider-lg" -%}
|
|
91
|
+
{%- assign remainder = arch_count | modulo: 4 -%}
|
|
92
|
+
{%- if remainder != 0 -%}
|
|
93
|
+
{%- assign orphan_lg_start = arch_count | minus: remainder -%}
|
|
94
|
+
{%- case remainder -%}
|
|
95
|
+
{%- when 1 -%}{%- assign orphan_lg_width = "100%" -%}
|
|
96
|
+
{%- when 2 -%}{%- assign orphan_lg_width = "50%" -%}
|
|
97
|
+
{%- else -%}{%- assign orphan_lg_width = "33.33333333%" -%}
|
|
98
|
+
{%- endcase -%}
|
|
99
|
+
{%- endif -%}
|
|
100
|
+
{%- endif -%}
|
|
101
|
+
|
|
102
|
+
{%- comment %} Each architecture owns its own download/checksum/signature/
|
|
103
|
+
mirrors row directly in the architecture map, replacing an older separate
|
|
104
|
+
mirrors array (which carried its own `architecture` field per row and could
|
|
105
|
+
drift out of sync with itself across rows). Alternative images (flavors,
|
|
106
|
+
e.g. a desktop spin) are deliberately NOT part of this grid — a flavor is
|
|
107
|
+
just another download entry, not a smaller variant of this one; model it as
|
|
108
|
+
its own with_download_data entry instead (releases keyed by flavor name
|
|
109
|
+
reuse the tab selector) and link the two via `documentation` or page
|
|
110
|
+
content — see examples/components/download-alternative-images.md.
|
|
111
|
+
{% endcomment %}
|
|
112
|
+
<div class="row {{ row_cols_classes }} g-3 align-items-start">
|
|
113
|
+
{%- for arch in include.architecture %}
|
|
114
|
+
{%- assign arch_name = arch[0] %}
|
|
115
|
+
{%- assign arch_data = arch[1] %}
|
|
116
|
+
{%- comment %} Each box beyond the first in its row gets the divider
|
|
117
|
+
class for the breakpoint the grid has reached (arch_divider_class, set
|
|
118
|
+
above per breakpoint) — a border-left shown only once the grid reaches
|
|
119
|
+
its full arch_cols width, not at every intermediate step. That's
|
|
120
|
+
deliberate: forloop.index0 modulo arch_cols only identifies "first in
|
|
121
|
+
its row" correctly once the grid is actually arch_cols-wide, so dividers
|
|
122
|
+
are hidden during the narrower intermediate steps rather than risk
|
|
123
|
+
misplaced lines while the grid is still at 2 or 3 columns. A box that
|
|
124
|
+
starts a wrapped second row (5+ architectures) correctly gets no divider
|
|
125
|
+
either, same as the very first box overall. {% endcomment %}
|
|
126
|
+
{%- assign arch_row_position = forloop.index0 | modulo: arch_cols %}
|
|
127
|
+
{%- assign arch_col_class = "col" %}
|
|
128
|
+
{%- unless arch_row_position == 0 %}
|
|
129
|
+
{%- assign arch_col_class = "col " | append: arch_divider_class %}
|
|
130
|
+
{%- endunless %}
|
|
131
|
+
|
|
132
|
+
{%- assign arch_orphan_style = "" -%}
|
|
133
|
+
{%- if orphan_sm_start >= 0 and forloop.index0 >= orphan_sm_start -%}
|
|
134
|
+
{%- assign arch_col_class = arch_col_class | append: " download-arch-orphan-sm" -%}
|
|
135
|
+
{%- assign arch_orphan_style = arch_orphan_style | append: "--download-arch-orphan-sm-width: " | append: orphan_sm_width | append: ";" -%}
|
|
136
|
+
{%- endif -%}
|
|
137
|
+
{%- if orphan_md_start >= 0 and forloop.index0 >= orphan_md_start -%}
|
|
138
|
+
{%- assign arch_col_class = arch_col_class | append: " download-arch-orphan-md" -%}
|
|
139
|
+
{%- assign arch_orphan_style = arch_orphan_style | append: "--download-arch-orphan-md-width: " | append: orphan_md_width | append: ";" -%}
|
|
140
|
+
{%- endif -%}
|
|
141
|
+
{%- if orphan_lg_start >= 0 and forloop.index0 >= orphan_lg_start -%}
|
|
142
|
+
{%- assign arch_col_class = arch_col_class | append: " download-arch-orphan-lg" -%}
|
|
143
|
+
{%- assign arch_orphan_style = arch_orphan_style | append: "--download-arch-orphan-lg-width: " | append: orphan_lg_width | append: ";" -%}
|
|
144
|
+
{%- endif -%}
|
|
145
|
+
|
|
146
|
+
{%- assign has_mirrors = false %}
|
|
147
|
+
{%- if arch_data.mirrors.iso and arch_data.mirrors.iso != "" or arch_data.mirrors.rpm and arch_data.mirrors.rpm != "" or arch_data.mirrors.cloud and arch_data.mirrors.cloud != "" or arch_data.mirrors.containers and arch_data.mirrors.containers != "" or arch_data.mirrors.vagrant and arch_data.mirrors.vagrant != "" or arch_data.mirrors.torrent and arch_data.mirrors.torrent != "" %}
|
|
148
|
+
{%- assign has_mirrors = true %}
|
|
149
|
+
{%- endif %}
|
|
150
|
+
{%- comment %} arch_name is a raw YAML map key — strip the same
|
|
151
|
+
attribute/markup-breaking characters entry_title_id_safe strips in
|
|
152
|
+
download.html.liquid before it seeds arch_id_prefix, which in turn
|
|
153
|
+
becomes id/data-copy-value scoping in download_filevalue.html.liquid. {% endcomment %}
|
|
154
|
+
{%- assign arch_name_id_safe = arch_name | remove: '"' | remove: "'" | remove: '<' | remove: '>' | remove: '&' | remove: '#' | remove: '?' | remove: '/' %}
|
|
155
|
+
{%- assign arch_id_prefix = include.release_id | default: "download" | append: "-" | append: arch_name_id_safe | downcase | replace: " ", "-" %}
|
|
156
|
+
<div class="{{ arch_col_class }}"{% if arch_orphan_style != "" %} style="{{ arch_orphan_style }}"{% endif %}>
|
|
157
|
+
<div class="d-flex flex-column align-items-start p-3">
|
|
158
|
+
<div class="mb-2">
|
|
159
|
+
<div class="fs-2"><i class="fa-solid fa-microchip"></i></div>
|
|
160
|
+
<div class="h3">{{ arch_name | escape }}</div>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
{%- assign has_download_button = false %}
|
|
164
|
+
{%- if arch_data.download and arch_data.download != "" %}
|
|
165
|
+
{%- assign has_download_button = true %}
|
|
166
|
+
{%- endif %}
|
|
167
|
+
|
|
168
|
+
{%- assign has_checksum_row = false %}
|
|
169
|
+
{%- if arch_data.checksum and arch_data.checksum != "" or arch_data.checksum_value and arch_data.checksum_value != "" %}
|
|
170
|
+
{%- assign has_checksum_row = true %}
|
|
171
|
+
{%- endif %}
|
|
172
|
+
|
|
173
|
+
{%- assign has_signature_row = false %}
|
|
174
|
+
{%- if arch_data.signature and arch_data.signature != "" or arch_data.signature_value and arch_data.signature_value != "" %}
|
|
175
|
+
{%- assign has_signature_row = true %}
|
|
176
|
+
{%- endif %}
|
|
177
|
+
|
|
178
|
+
{%- if has_download_button or has_checksum_row or has_signature_row %}
|
|
179
|
+
{%- comment %} These rows share this gap-2 flex-column wrapper so
|
|
180
|
+
spacing between whichever rows are present is handled by the gap
|
|
181
|
+
alone — no per-row conditional mt-2 class needed (Bootstrap's spacing
|
|
182
|
+
scale maps 2 to the same 0.5rem for both mt-* and gap-*, so this is a
|
|
183
|
+
visual no-op versus a conditional-margin approach, just less
|
|
184
|
+
conditional logic). {% endcomment %}
|
|
185
|
+
<div class="w-100 mb-3 pb-3 border-bottom d-flex flex-column gap-2">
|
|
186
|
+
{%- if has_download_button %}
|
|
187
|
+
{%- comment %} d-flex flex-wrap gap-2, not Bootstrap's joined
|
|
188
|
+
.btn-group, so the button reflows instead of overflowing into the
|
|
189
|
+
neighboring architecture box at narrow column widths (e.g. the
|
|
190
|
+
4-column arrangement). Reuses base/link.html.liquid, the theme's
|
|
191
|
+
canonical link/button component. {% endcomment %}
|
|
192
|
+
<div class="d-flex flex-wrap gap-2" role="group" aria-label="Primary download actions">
|
|
193
|
+
{%- include base/link.html.liquid class="btn btn-primary flex-fill text-start" role="button" name="Download" link=arch_data.download icon="fa-solid fa-download" icon_position="start" -%}
|
|
194
|
+
</div>
|
|
195
|
+
{%- endif %}
|
|
196
|
+
|
|
197
|
+
{%- if has_checksum_row %}
|
|
198
|
+
{%- comment %} checksum/signature and checksum_value/signature_value
|
|
199
|
+
are two views of the same file, merged into one input-group row
|
|
200
|
+
(rather than a link button plus a separate copy field) via
|
|
201
|
+
base/download_filevalue.html.liquid — see that file for the row's
|
|
202
|
+
own markup and its .link-primary / copy-value details.
|
|
203
|
+
{% endcomment %}
|
|
204
|
+
{%- assign checksum_display = arch_data.checksum_value | default: arch_data.checksum %}
|
|
205
|
+
{%- include base/download_filevalue.html.liquid arch_name=arch_name field=arch_data.checksum field_value=checksum_display icon="fa-solid fa-shield-halved" label="checksum" id_prefix=arch_id_prefix -%}
|
|
206
|
+
{%- endif %}
|
|
207
|
+
|
|
208
|
+
{%- if has_signature_row %}
|
|
209
|
+
{%- assign signature_display = arch_data.signature_value | default: arch_data.signature %}
|
|
210
|
+
{%- include base/download_filevalue.html.liquid arch_name=arch_name field=arch_data.signature field_value=signature_display icon="fa-solid fa-file-signature" label="signature" id_prefix=arch_id_prefix -%}
|
|
211
|
+
{%- endif %}
|
|
212
|
+
</div>
|
|
213
|
+
{%- endif %}
|
|
214
|
+
|
|
215
|
+
{%- if has_mirrors %}
|
|
216
|
+
<div class="d-flex flex-wrap gap-2">
|
|
217
|
+
{%- if arch_data.mirrors.iso and arch_data.mirrors.iso != "" %}
|
|
218
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="ISO Mirrors" link=arch_data.mirrors.iso icon="fa-solid fa-compact-disc" icon_position="start" -%}
|
|
219
|
+
{%- endif %}
|
|
220
|
+
{%- if arch_data.mirrors.rpm and arch_data.mirrors.rpm != "" %}
|
|
221
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="RPM Mirrors" link=arch_data.mirrors.rpm icon="fa-solid fa-box" icon_position="start" -%}
|
|
222
|
+
{%- endif %}
|
|
223
|
+
{%- if arch_data.mirrors.cloud and arch_data.mirrors.cloud != "" %}
|
|
224
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Cloud Images" link=arch_data.mirrors.cloud icon="fa-solid fa-cloud" icon_position="start" -%}
|
|
225
|
+
{%- endif %}
|
|
226
|
+
{%- if arch_data.mirrors.containers and arch_data.mirrors.containers != "" %}
|
|
227
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Container Images" link=arch_data.mirrors.containers icon="fa-solid fa-cubes" icon_position="start" -%}
|
|
228
|
+
{%- endif %}
|
|
229
|
+
{%- if arch_data.mirrors.vagrant and arch_data.mirrors.vagrant != "" %}
|
|
230
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Vagrant Boxes" link=arch_data.mirrors.vagrant icon="fa-solid fa-box-archive" icon_position="start" -%}
|
|
231
|
+
{%- endif %}
|
|
232
|
+
{%- if arch_data.mirrors.torrent and arch_data.mirrors.torrent != "" %}
|
|
233
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Torrent" link=arch_data.mirrors.torrent icon="fa-solid fa-magnet" icon_position="start" -%}
|
|
234
|
+
{%- endif %}
|
|
235
|
+
</div>
|
|
236
|
+
{%- endif %}
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
{%- endfor %}
|
|
240
|
+
</div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Commands List
|
|
4
|
+
Purpose: Command snippets for one release, rendered as one collapsible item
|
|
5
|
+
inside download_sections.html.liquid's shared documentation/commands/eol
|
|
6
|
+
accordion — release-wide metadata that applies in common to every
|
|
7
|
+
architecture above. Called from download_sections.html.liquid.
|
|
8
|
+
|
|
9
|
+
Required Inputs:
|
|
10
|
+
- commands: Array of {title, lines}
|
|
11
|
+
- accordion_id: Parent accordion's id, for data-bs-parent scoping
|
|
12
|
+
- item_id: This item's unique collapse id
|
|
13
|
+
- expanded: true starts this item open; false starts it closed. Passed
|
|
14
|
+
through from the caller (see download_sections.html.liquid).
|
|
15
|
+
================================================================================
|
|
16
|
+
{% endcomment %}
|
|
17
|
+
{%- capture download_commands_body -%}
|
|
18
|
+
{%- for row in include.commands %}
|
|
19
|
+
{%- if row.title and row.title != "" %}
|
|
20
|
+
<p class="mb-1">{{ row.title }}</p>
|
|
21
|
+
{%- endif %}
|
|
22
|
+
{%- if row.lines and row.lines != "" %}
|
|
23
|
+
<pre class="mb-3"><code>{{ row.lines | escape }}</code></pre>
|
|
24
|
+
{%- endif %}
|
|
25
|
+
{%- endfor %}
|
|
26
|
+
{%- endcapture -%}
|
|
27
|
+
{%- include base/download_accordion_item.html.liquid icon="fa-solid fa-terminal" title="Migration" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body=download_commands_body -%}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Documentation List
|
|
4
|
+
Purpose: Documentation links for one release, rendered as one collapsible
|
|
5
|
+
item inside download_sections.html.liquid's shared documentation/commands/
|
|
6
|
+
eol/screenshots accordion — release-wide metadata that applies in common to
|
|
7
|
+
every architecture above. Called from download_sections.html.liquid.
|
|
8
|
+
|
|
9
|
+
Required Inputs:
|
|
10
|
+
- documentation: Array of {title, link}
|
|
11
|
+
- accordion_id: Parent accordion's id, for data-bs-parent scoping
|
|
12
|
+
- item_id: This item's unique collapse id
|
|
13
|
+
- expanded: true starts this item open; false starts it closed. Passed
|
|
14
|
+
through from the caller (see download_sections.html.liquid).
|
|
15
|
+
================================================================================
|
|
16
|
+
{% endcomment %}
|
|
17
|
+
{%- capture download_documentation_body -%}
|
|
18
|
+
{%- for row in include.documentation %}
|
|
19
|
+
{%- if row.title and row.title != "" %}
|
|
20
|
+
{%- include base/link.html.liquid class="btn btn-outline-primary" role="button" name=row.title link=row.link icon="fa-solid fa-up-right-from-square" icon_position="start" -%}
|
|
21
|
+
{%- endif %}
|
|
22
|
+
{%- endfor %}
|
|
23
|
+
{%- endcapture -%}
|
|
24
|
+
{%- include base/download_accordion_item.html.liquid icon="fa-solid fa-book" title="Documentation" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body_class="d-flex flex-wrap gap-2" body=download_documentation_body -%}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download End-of-life List
|
|
4
|
+
Purpose: End-of-life milestones for one release, rendered as one collapsible
|
|
5
|
+
item inside download_sections.html.liquid's shared documentation/commands/
|
|
6
|
+
eol accordion — release-wide metadata that applies in common to every
|
|
7
|
+
architecture above. Called from download_sections.html.liquid.
|
|
8
|
+
|
|
9
|
+
Required Inputs:
|
|
10
|
+
- eol: Array of {date, description}
|
|
11
|
+
- accordion_id: Parent accordion's id, for data-bs-parent scoping
|
|
12
|
+
- item_id: This item's unique collapse id
|
|
13
|
+
- expanded: true starts this item open; false starts it closed. Passed
|
|
14
|
+
through from the caller (see download_sections.html.liquid).
|
|
15
|
+
================================================================================
|
|
16
|
+
{% endcomment %}
|
|
17
|
+
{%- capture download_eol_body -%}
|
|
18
|
+
<ul class="list-unstyled mb-0">
|
|
19
|
+
{%- for row in include.eol %}
|
|
20
|
+
<li class="mb-1">
|
|
21
|
+
{%- if row.date and row.date != "" -%}
|
|
22
|
+
<strong>{{ row.date }}</strong>{% if row.description and row.description != "" %} — {% endif %}
|
|
23
|
+
{%- endif -%}
|
|
24
|
+
{{ row.description }}
|
|
25
|
+
</li>
|
|
26
|
+
{%- endfor %}
|
|
27
|
+
</ul>
|
|
28
|
+
{%- endcapture -%}
|
|
29
|
+
{%- include base/download_accordion_item.html.liquid icon="fa-solid fa-hourglass-end" title="End-of-life" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body=download_eol_body -%}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download File Value Row
|
|
4
|
+
Purpose: One input-group row pairing a link-to-file icon with its copyable
|
|
5
|
+
text value — the shared shape behind the checksum and signature rows in
|
|
6
|
+
download_architecture.html.liquid's per-architecture box.
|
|
7
|
+
|
|
8
|
+
A page using the copy button below must set `with_copyvalue: true` in its
|
|
9
|
+
front matter — base/copyvalue.html.liquid (loaded globally from
|
|
10
|
+
head.html.liquid, see src/JS/copyvalue.js for the copy-btn contract) is an
|
|
11
|
+
opt-in include, not a global default, despite its own schema listing `true`
|
|
12
|
+
as with_copyvalue's default (that default only covers with_copyvalue_data's
|
|
13
|
+
sub-fields once the feature is already on).
|
|
14
|
+
|
|
15
|
+
Required Inputs:
|
|
16
|
+
- arch_name: Architecture label, used only in the input's aria-label
|
|
17
|
+
(e.g. "Checksum value for x86_64").
|
|
18
|
+
- field: The file's own URL (checksum/signature). Empty renders the
|
|
19
|
+
left icon as a non-interactive glyph instead of a link.
|
|
20
|
+
- field_value: The literal value to render/copy. Callers resolve their own
|
|
21
|
+
`X_value | default: X` fallback before calling this include —
|
|
22
|
+
this include renders field_value as-is.
|
|
23
|
+
- icon: Font Awesome icon class for the left icon (e.g.
|
|
24
|
+
"fa-solid fa-shield-halved").
|
|
25
|
+
- label: Lowercase noun used in tooltip/aria-label text (e.g.
|
|
26
|
+
"checksum", "signature").
|
|
27
|
+
- id_prefix: Page-unique prefix (release id + architecture label, built by
|
|
28
|
+
download_architecture.html.liquid) combined with `label` to
|
|
29
|
+
give the `<input>` a unique id — every form field needs an id
|
|
30
|
+
or name so the browser can autofill/target it correctly, and
|
|
31
|
+
arch_name/label alone aren't page-unique (the same
|
|
32
|
+
architecture repeats across every release/tab on the page).
|
|
33
|
+
|
|
34
|
+
The clickable icon-link (when `field` is present) is rendered via
|
|
35
|
+
base/link.html.liquid — the theme's canonical link component — rather than a
|
|
36
|
+
hand-rolled `<a>`, so it inherits that component's javascript:/data:/vbscript:
|
|
37
|
+
scheme neutralization and escaping. This also means, like the Download and
|
|
38
|
+
Mirror buttons in download_architecture.html.liquid, it only renders when
|
|
39
|
+
`page.with_link` is true; the non-interactive `<span>` fallback below covers
|
|
40
|
+
both an empty `field` and a with_link-disabled page.
|
|
41
|
+
================================================================================
|
|
42
|
+
{% endcomment %}
|
|
43
|
+
{%- assign download_filevalue_label_cap = include.label | capitalize -%}
|
|
44
|
+
{%- assign download_filevalue_id = include.id_prefix | append: "-" | append: include.label -%}
|
|
45
|
+
{%- assign download_filevalue_open_text = "Open " | append: include.label | append: " file" -%}
|
|
46
|
+
<div class="input-group input-group-sm">
|
|
47
|
+
{%- comment %} .link-primary is a Bootstrap utility, not a custom class —
|
|
48
|
+
it reads as a clickable link instead of the plain body-color text
|
|
49
|
+
.input-group-text renders by default, and compiles with `!important` so
|
|
50
|
+
it wins over .input-group-text's color unconditionally, no custom SCSS or
|
|
51
|
+
cascade ordering required. {% endcomment %}
|
|
52
|
+
{%- if include.field and include.field != "" %}
|
|
53
|
+
{%- include base/link.html.liquid
|
|
54
|
+
class="input-group-text link-primary text-decoration-none"
|
|
55
|
+
role="button"
|
|
56
|
+
link=include.field
|
|
57
|
+
icon=include.icon
|
|
58
|
+
aria_label=download_filevalue_open_text
|
|
59
|
+
data_bs_toggle="tooltip"
|
|
60
|
+
data_bs_title=download_filevalue_open_text -%}
|
|
61
|
+
{%- else %}
|
|
62
|
+
<span class="input-group-text"><i class="{{ include.icon }}"></i></span>
|
|
63
|
+
{%- endif %}
|
|
64
|
+
<input type="text" id="{{ download_filevalue_id }}" class="form-control font-monospace" readonly value="{{ include.field_value | escape }}" aria-label="{{ download_filevalue_label_cap }} value for {{ include.arch_name | escape }}">
|
|
65
|
+
{%- comment %} data-copy-value MUST go through `| escape` — see
|
|
66
|
+
base/copyvalue.html.liquid's own security note. {% endcomment %}
|
|
67
|
+
<span class="input-group-text copy-btn" role="button" data-copy-value="{{ include.field_value | escape }}" data-bs-toggle="tooltip" data-bs-title="Copy {{ include.label }} value" aria-label="Copy {{ include.label }} value"><span class="fa-regular fa-copy"></span></span>
|
|
68
|
+
</div>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Screenshots Carousel
|
|
4
|
+
Purpose: Bootstrap carousel of screenshots for one release, rendered as one
|
|
5
|
+
collapsible item inside download_sections.html.liquid's shared
|
|
6
|
+
documentation/commands/eol/screenshots accordion — a sibling of Documentation
|
|
7
|
+
and Migration, not nested inside either of them. Called from
|
|
8
|
+
download_sections.html.liquid.
|
|
9
|
+
|
|
10
|
+
Required Inputs:
|
|
11
|
+
- screenshots: Array of {src, alt, title, description} — title/description
|
|
12
|
+
are optional; when present they render as a Bootstrap carousel caption
|
|
13
|
+
(https://getbootstrap.com/docs/5.3/components/carousel/#captions)
|
|
14
|
+
overlaid on the slide, hidden below md so it doesn't crowd small screens.
|
|
15
|
+
The caption heading is a `<div class="h5">`, not a real `<h5>` — same as
|
|
16
|
+
the accordion-item headers' `<div class="accordion-header h2">` — because
|
|
17
|
+
jekyll-toc auto-injects a "#" anchor into every real heading tag it scans,
|
|
18
|
+
which an overlaid caption doesn't want.
|
|
19
|
+
- image_base_path: Resolved base path under /assets/img/ (see
|
|
20
|
+
download_schema.yml's image_base_path description)
|
|
21
|
+
- release_id: Unique id of the parent tab-pane, used to scope carousel ids
|
|
22
|
+
- accordion_id: Parent accordion's id, for data-bs-parent scoping
|
|
23
|
+
- item_id: This item's unique collapse id
|
|
24
|
+
- expanded: true starts this item open; false starts it closed. Passed
|
|
25
|
+
through from the caller (see download_sections.html.liquid).
|
|
26
|
+
|
|
27
|
+
Each slide is wrapped in Bootstrap's `ratio ratio-16x9` utility, the same
|
|
28
|
+
ratio artwork.html.liquid uses for its own image presentation
|
|
29
|
+
(artwork_schema.yml's image_class default: `ratio ratio-16x9 rounded
|
|
30
|
+
bg-dark bg-artwork`), so screenshots of any native size crop to a
|
|
31
|
+
consistent 16:9 box instead of each slide having its own height.
|
|
32
|
+
`object-fit-cover` on the `<img>` itself does the actual cropping — `.ratio`
|
|
33
|
+
alone only stretches its child to fill the box.
|
|
34
|
+
================================================================================
|
|
35
|
+
{% endcomment %}
|
|
36
|
+
{%- capture download_screenshots_body -%}
|
|
37
|
+
<div class="p-3">
|
|
38
|
+
<div id="carouselScreenshotsIndicators-{{ include.release_id }}" class="carousel carousel-dark slide" data-bs-ride="true">
|
|
39
|
+
<div class="carousel-indicators">
|
|
40
|
+
{%- for row in include.screenshots %}
|
|
41
|
+
<button
|
|
42
|
+
{%- if forloop.first %} class="active" aria-current="true"{% endif %}
|
|
43
|
+
type="button"
|
|
44
|
+
data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}"
|
|
45
|
+
data-bs-slide-to="{{ forloop.index0 }}"
|
|
46
|
+
aria-label="Screenshot {{ forloop.index }}"></button>
|
|
47
|
+
{%- endfor %}
|
|
48
|
+
</div>
|
|
49
|
+
<div class="carousel-inner">
|
|
50
|
+
{%- for row in include.screenshots %}
|
|
51
|
+
<div class="carousel-item{% if forloop.first %} active{% endif %}">
|
|
52
|
+
<div class="ratio ratio-16x9">
|
|
53
|
+
<img class="object-fit-cover" src="{{ site.baseurl }}{{ include.image_base_path }}{{ row.src | escape }}" alt="{{ row.alt | escape }}" />
|
|
54
|
+
</div>
|
|
55
|
+
{%- if row.title and row.title != "" or row.description and row.description != "" %}
|
|
56
|
+
<div class="carousel-caption d-none d-md-block">
|
|
57
|
+
{%- if row.title and row.title != "" %}
|
|
58
|
+
<div class="h5">{{ row.title }}</div>
|
|
59
|
+
{%- endif %}
|
|
60
|
+
{%- if row.description and row.description != "" %}
|
|
61
|
+
<p>{{ row.description }}</p>
|
|
62
|
+
{%- endif %}
|
|
63
|
+
</div>
|
|
64
|
+
{%- endif %}
|
|
65
|
+
</div>
|
|
66
|
+
{%- endfor %}
|
|
67
|
+
</div>
|
|
68
|
+
<button class="carousel-control-prev" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="prev">
|
|
69
|
+
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
|
70
|
+
<span class="visually-hidden">Previous</span>
|
|
71
|
+
</button>
|
|
72
|
+
<button class="carousel-control-next" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="next">
|
|
73
|
+
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
|
74
|
+
<span class="visually-hidden">Next</span>
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
{%- endcapture -%}
|
|
79
|
+
{%- include base/download_accordion_item.html.liquid icon="fa-solid fa-desktop" title="Screenshots" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body_class="p-0" body=download_screenshots_body -%}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Release Sections
|
|
4
|
+
Purpose: Renders one release's architecture/documentation/eol/commands/
|
|
5
|
+
screenshots sections, in a fixed order, each only if its data is present.
|
|
6
|
+
Shared by download.html.liquid's tabbed (multiple releases) and untabbed
|
|
7
|
+
(single release) render paths, since the section content is identical either
|
|
8
|
+
way — only the surrounding tab markup differs. Documentation, commands, eol,
|
|
9
|
+
and screenshots render as sibling items inside one shared Bootstrap accordion
|
|
10
|
+
below the architecture grid — collapsible, so they read as release-wide
|
|
11
|
+
metadata that applies in common to every architecture above rather than
|
|
12
|
+
disconnected trailing content. All start collapsed.
|
|
13
|
+
|
|
14
|
+
Required Inputs:
|
|
15
|
+
- release_data: One release's content object
|
|
16
|
+
- release_id: Unique id for this release, used to scope nested element ids
|
|
17
|
+
(the documentation/commands/eol/screenshots accordion, the screenshots
|
|
18
|
+
carousel's own ids)
|
|
19
|
+
- image_base_path: Resolved base path under /assets/img/
|
|
20
|
+
================================================================================
|
|
21
|
+
{% endcomment %}
|
|
22
|
+
|
|
23
|
+
{%- if include.release_data.architecture.size > 0 %}
|
|
24
|
+
{%- include base/download_architecture.html.liquid architecture=include.release_data.architecture release_id=include.release_id -%}
|
|
25
|
+
{%- endif %}
|
|
26
|
+
|
|
27
|
+
{%- assign meta_accordion_id = include.release_id | append: "-meta-accordion" %}
|
|
28
|
+
{%- assign meta_screenshots_id = meta_accordion_id | append: "-screenshots" %}
|
|
29
|
+
{%- assign meta_documentation_id = meta_accordion_id | append: "-documentation" %}
|
|
30
|
+
{%- assign meta_commands_id = meta_accordion_id | append: "-commands" %}
|
|
31
|
+
{%- assign meta_eol_id = meta_accordion_id | append: "-eol" %}
|
|
32
|
+
|
|
33
|
+
{%- if include.release_data.documentation.size > 0 or include.release_data.commands.size > 0 or include.release_data.eol.size > 0 or include.release_data.screenshots.size > 0 %}
|
|
34
|
+
<div class="accordion accordion-flush mt-3" id="{{ meta_accordion_id }}">
|
|
35
|
+
{%- if include.release_data.screenshots.size > 0 %}
|
|
36
|
+
{%- include base/download_screenshots.html.liquid screenshots=include.release_data.screenshots image_base_path=include.image_base_path release_id=include.release_id accordion_id=meta_accordion_id item_id=meta_screenshots_id expanded=false -%}
|
|
37
|
+
{%- endif %}
|
|
38
|
+
|
|
39
|
+
{%- if include.release_data.documentation.size > 0 %}
|
|
40
|
+
{%- include base/download_documentation.html.liquid documentation=include.release_data.documentation accordion_id=meta_accordion_id item_id=meta_documentation_id expanded=false -%}
|
|
41
|
+
{%- endif %}
|
|
42
|
+
|
|
43
|
+
{%- if include.release_data.commands.size > 0 %}
|
|
44
|
+
{%- include base/download_commands.html.liquid commands=include.release_data.commands accordion_id=meta_accordion_id item_id=meta_commands_id expanded=false -%}
|
|
45
|
+
{%- endif %}
|
|
46
|
+
|
|
47
|
+
{%- if include.release_data.eol.size > 0 %}
|
|
48
|
+
{%- include base/download_eol.html.liquid eol=include.release_data.eol accordion_id=meta_accordion_id item_id=meta_eol_id expanded=false -%}
|
|
49
|
+
{%- endif %}
|
|
50
|
+
</div>
|
|
51
|
+
{%- endif %}
|
|
@@ -83,7 +83,9 @@ Data Object Properties:
|
|
|
83
83
|
{%- endif %}
|
|
84
84
|
</div>
|
|
85
85
|
{%- if item.title_lead %}
|
|
86
|
-
|
|
86
|
+
{%- capture item_title_lead_source %}{{ item.title_lead | strip_newlines }}
|
|
87
|
+
{: .mb-3 }{% endcapture %}
|
|
88
|
+
{{ item_title_lead_source | markdownify }}
|
|
87
89
|
{%- endif %}
|
|
88
90
|
</div>
|
|
89
91
|
</div>
|
|
@@ -117,9 +119,9 @@ Data Object Properties:
|
|
|
117
119
|
{%- if item.title != page.title %}
|
|
118
120
|
{%- if show_page_filename == "true" %}
|
|
119
121
|
{%- assign item_name = item.name | remove: '.md' %}
|
|
120
|
-
<li>{% include base/link.html.liquid name=item_name link=item.url %}{% if item.title_lead != nil %} — {{ item.title_lead }}{% endif %}</li>
|
|
122
|
+
<li>{% include base/link.html.liquid name=item_name link=item.url %}{% if item.title_lead != nil %} — {{ item.title_lead | strip_newlines | markdownify | remove: "<p>" | remove: "</p>" | strip }}{% endif %}</li>
|
|
121
123
|
{%- else %}
|
|
122
|
-
<li>{% include base/link.html.liquid name=item.title link=item.url %}{% if item.title_lead != nil %} — {{ item.title_lead }}{% endif %}</li>
|
|
124
|
+
<li>{% include base/link.html.liquid name=item.title link=item.url %}{% if item.title_lead != nil %} — {{ item.title_lead | strip_newlines | markdownify | remove: "<p>" | remove: "</p>" | strip }}{% endif %}</li>
|
|
123
125
|
{%- endif %}
|
|
124
126
|
{%- endif %}
|
|
125
127
|
{%- endfor %}
|
|
@@ -146,7 +148,7 @@ Data Object Properties:
|
|
|
146
148
|
<td>{% include base/link.html.liquid name=item.title link=item.url %}</td>
|
|
147
149
|
{%- endif %}
|
|
148
150
|
{%- endif %}
|
|
149
|
-
<td>{{ item.title_lead }}</td>
|
|
151
|
+
<td>{{ item.title_lead | strip_newlines | markdownify }}</td>
|
|
150
152
|
</tr>
|
|
151
153
|
{%- endfor %}
|
|
152
154
|
</tbody>
|
|
@@ -179,7 +181,7 @@ Data Object Properties:
|
|
|
179
181
|
<tr>
|
|
180
182
|
<td>{% include base/link.html.liquid name=item.component.name link=item.url %}</td>
|
|
181
183
|
<td class="text-nowrap">{{ status_icon }}</td>
|
|
182
|
-
<td>{{ item.title_lead }}</td>
|
|
184
|
+
<td>{{ item.title_lead | strip_newlines | markdownify }}</td>
|
|
183
185
|
</tr>
|
|
184
186
|
{%- endfor %}
|
|
185
187
|
</tbody>
|
|
@@ -16,7 +16,7 @@ Required Fields (per item in the members array):
|
|
|
16
16
|
- url: Sponsor website URL
|
|
17
17
|
|
|
18
18
|
Optional Data Fields:
|
|
19
|
-
- image_base_path: Base path for bare filenames (default: /assets/img/
|
|
19
|
+
- image_base_path: Base path for bare filenames (default: /assets/img/components/sponsors/)
|
|
20
20
|
|
|
21
21
|
Optional Inputs (from include):
|
|
22
22
|
- data: Sponsors data object (overrides all fallbacks)
|
|
@@ -17,7 +17,7 @@ Required Fields (per item in the members array):
|
|
|
17
17
|
- url: Sponsor website URL
|
|
18
18
|
|
|
19
19
|
Optional Data Fields:
|
|
20
|
-
- image_base_path: Base path for bare filenames (default: /assets/img/
|
|
20
|
+
- image_base_path: Base path for bare filenames (default: /assets/img/components/sponsors/)
|
|
21
21
|
|
|
22
22
|
Optional Inputs (from include):
|
|
23
23
|
- data: Sponsors data object (overrides all fallbacks)
|
|
@@ -63,7 +63,12 @@ Conditional Logic:
|
|
|
63
63
|
<div class="{{ class }}">
|
|
64
64
|
<p class="{{ title_class }}">{{ title }}</p>
|
|
65
65
|
{% if title_lead != "" %}
|
|
66
|
-
|
|
66
|
+
{%- assign title_lead_ial = title_lead_class | split: " " | join: " ." | prepend: "." %}
|
|
67
|
+
{%- capture title_lead_source %}{{ title_lead | strip_newlines }}
|
|
68
|
+
{%- if title_lead_class and title_lead_class != "" %}
|
|
69
|
+
{: {{ title_lead_ial }} }
|
|
70
|
+
{%- endif %}{% endcapture %}
|
|
71
|
+
{{ title_lead_source | markdownify }}
|
|
67
72
|
{% endif %}
|
|
68
73
|
</div>
|
|
69
74
|
</div>
|