jekyll-theme-centos 2.52.0.beta.89 → 2.52.0.beta.91
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/_config.yml +1 -0
- 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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 23bf21a6e35d2941d90d11a7aefac6c245c1e2811fa5945eccf8bca522c02b90
|
|
4
|
+
data.tar.gz: 3f4e5a418e6a8e949b528bc4762899a351bebb05bd835c53df0945517d825e4b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 02da80654ac1f33df8888665c3f562face66490047e0726437ad8ac56c501e16046f6b1b3d993678159483204bf3612fb2086de5fdee8ce2b608aa4fda176130
|
|
7
|
+
data.tar.gz: 8d39190e6c26dc5c274933988326cbabe1152052e9f6e60f1eeeb2faacfbf472918f572b15c84122f77120f2d4e71d0b5385b1e5cd2981412b70f02bc6a21699
|
data/_config.yml
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
#
|
|
3
|
+
# site.data.base.download - Theme-shipped default data for the 'download'
|
|
4
|
+
# component. Sites normally override this via _data/download.yml.
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
- title: "Example Distribution"
|
|
8
|
+
description: |
|
|
9
|
+
A minimal example download entry, used as the fallback when a site
|
|
10
|
+
doesn't provide its own `_data/download.yml`.
|
|
11
|
+
releases:
|
|
12
|
+
"1.0":
|
|
13
|
+
architecture:
|
|
14
|
+
x86_64:
|
|
15
|
+
mirrors:
|
|
16
|
+
iso: "https://example.com/mirrorlist?arch=x86_64"
|
|
17
|
+
rpm: "https://example.com/repo/x86_64/"
|
|
18
|
+
documentation:
|
|
19
|
+
- title: Release Notes
|
|
20
|
+
link: "https://example.com/release-notes/"
|
|
21
|
+
eol:
|
|
22
|
+
- date: "1 January 2030"
|
|
23
|
+
description: "End of support."
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
title: Download Component Configuration
|
|
2
|
+
description: >-
|
|
3
|
+
Schema for configuring the 'Download' presentation component. Renders one or
|
|
4
|
+
more download entries, each with a tabbed release selector; every release
|
|
5
|
+
carries an architecture grid (each architecture with its own main
|
|
6
|
+
download/checksum/signature and mirror links),
|
|
7
|
+
release-wide documentation links, end-of-life notices, command snippets,
|
|
8
|
+
and a screenshot carousel. Sections render automatically when their data
|
|
9
|
+
is present — no separate visibility flag is needed per section. Data can
|
|
10
|
+
also come from a product-keyed `_data/download-<slug>.yml` file; assign
|
|
11
|
+
`site.data["download-<slug>"]` to a variable, then pass that variable as
|
|
12
|
+
the component's `data` parameter.
|
|
13
|
+
type: object
|
|
14
|
+
properties:
|
|
15
|
+
with_download:
|
|
16
|
+
type: boolean
|
|
17
|
+
default: false
|
|
18
|
+
description: >-
|
|
19
|
+
Enables or disables the Download component rendering. Set to `true` to
|
|
20
|
+
display the component; set to `false` (default) to skip rendering.
|
|
21
|
+
with_download_data:
|
|
22
|
+
type: array
|
|
23
|
+
default: []
|
|
24
|
+
description: >-
|
|
25
|
+
An array of download entries (e.g. one per distribution). When defined,
|
|
26
|
+
this data overrides any values set in the component's default
|
|
27
|
+
configuration file. Use the component's `title` include parameter to
|
|
28
|
+
render only a single matching entry from this list.
|
|
29
|
+
items:
|
|
30
|
+
type: object
|
|
31
|
+
properties:
|
|
32
|
+
title:
|
|
33
|
+
type: string
|
|
34
|
+
default: ""
|
|
35
|
+
description: >-
|
|
36
|
+
The name of this download entry (e.g. `CentOS Stream`). Also used
|
|
37
|
+
to match the component's `title` include parameter when filtering
|
|
38
|
+
to a single entry.
|
|
39
|
+
description:
|
|
40
|
+
type: string
|
|
41
|
+
default: ""
|
|
42
|
+
description: A short description of this download entry, shown above the release selector. Supports Markdown.
|
|
43
|
+
image_base_path:
|
|
44
|
+
type: string
|
|
45
|
+
default: ""
|
|
46
|
+
description: >-
|
|
47
|
+
Base path used to resolve bare filenames in this entry's
|
|
48
|
+
`screenshots` field below. Always a path under
|
|
49
|
+
`/assets/img/`; never include `site.baseurl` in this value — only
|
|
50
|
+
the path that comes after it, since the component prepends
|
|
51
|
+
`site.baseurl` itself at render time. When left empty (the
|
|
52
|
+
default), download.html.liquid computes it dynamically from the
|
|
53
|
+
current page's own URL — `/assets/img` + `page.url` — so every
|
|
54
|
+
page hosting this component gets its own collision-free
|
|
55
|
+
screenshot directory automatically (e.g. a page rendered at
|
|
56
|
+
`/examples/components/download-single-release/` resolves
|
|
57
|
+
screenshots under
|
|
58
|
+
`/assets/img/examples/components/download-single-release/`),
|
|
59
|
+
with no per-page configuration required. Set this explicitly only
|
|
60
|
+
to point at a shared/external location instead of the hosting
|
|
61
|
+
page's own directory.
|
|
62
|
+
releases:
|
|
63
|
+
type: object
|
|
64
|
+
default: {}
|
|
65
|
+
description: >-
|
|
66
|
+
A map of release identifiers (e.g. `9`, `8`, `v1.0`) to release
|
|
67
|
+
content. Always required, even for a project like CentOS Stream
|
|
68
|
+
that only ever has one active version — a single entry still
|
|
69
|
+
identifies which version the surrounding sections belong to. With
|
|
70
|
+
more than one entry, order determines tab order and the first key
|
|
71
|
+
is the active tab on load; with exactly one entry, no tab
|
|
72
|
+
selector renders at all and that release's sections render
|
|
73
|
+
directly, since a permanently-active single tab has nothing to
|
|
74
|
+
switch between.
|
|
75
|
+
properties:
|
|
76
|
+
"{release_id}":
|
|
77
|
+
type: object
|
|
78
|
+
description: >-
|
|
79
|
+
Placeholder for a release identifier — the actual map key is
|
|
80
|
+
any string you choose (e.g. `9`, `8`, `v1.0`); each key
|
|
81
|
+
identifies one release and the content described below.
|
|
82
|
+
properties:
|
|
83
|
+
icon:
|
|
84
|
+
type: string
|
|
85
|
+
default: ""
|
|
86
|
+
description: >-
|
|
87
|
+
Font Awesome icon class shown alongside this release's tab
|
|
88
|
+
label in the nav-pills selector (e.g. `fa-solid fa-expand`).
|
|
89
|
+
Only rendered when there's more than one release — a single,
|
|
90
|
+
non-interactive tab has no selector to label. Empty shows
|
|
91
|
+
the label alone.
|
|
92
|
+
architecture:
|
|
93
|
+
type: object
|
|
94
|
+
default: {}
|
|
95
|
+
description: >-
|
|
96
|
+
A map of architecture label (e.g. `x86_64`, `aarch64`) to
|
|
97
|
+
that architecture's own content — its main download/
|
|
98
|
+
checksum/signature and mirror links. Each architecture's
|
|
99
|
+
identity is defined once, as this map's key, instead of
|
|
100
|
+
being repeated as a field inside a separate structure that
|
|
101
|
+
could drift out of sync. Alternative images (flavors, e.g.
|
|
102
|
+
a desktop spin) are not modeled here — a flavor is just
|
|
103
|
+
another download entry, not a smaller variant of this one;
|
|
104
|
+
give it its own `with_download_data` entry (with its own
|
|
105
|
+
`architecture`/`mirrors`/`download`/`checksum`, and
|
|
106
|
+
`releases` keyed by flavor name to reuse the tab selector)
|
|
107
|
+
and link the two together via `documentation` or page
|
|
108
|
+
content.
|
|
109
|
+
properties:
|
|
110
|
+
"{architecture}":
|
|
111
|
+
type: object
|
|
112
|
+
description: >-
|
|
113
|
+
Placeholder for an architecture label — the actual map
|
|
114
|
+
key is any string you choose (e.g. `x86_64`,
|
|
115
|
+
`aarch64`); each key identifies one architecture and
|
|
116
|
+
the content described below.
|
|
117
|
+
properties:
|
|
118
|
+
download:
|
|
119
|
+
type: string
|
|
120
|
+
default: ""
|
|
121
|
+
description: >-
|
|
122
|
+
Direct download URL for this architecture's main
|
|
123
|
+
image. Rendered as a filled-primary Download button
|
|
124
|
+
above the checksum/signature rows and mirror
|
|
125
|
+
buttons. Empty hides the Download button.
|
|
126
|
+
checksum:
|
|
127
|
+
type: string
|
|
128
|
+
default: ""
|
|
129
|
+
description: >-
|
|
130
|
+
Checksum file URL for the `download` image above.
|
|
131
|
+
Rendered together with `checksum_value` as a single
|
|
132
|
+
input-group row: this URL becomes the row's left
|
|
133
|
+
icon-link (opens the checksum file); empty renders
|
|
134
|
+
the icon as a non-interactive glyph instead of a
|
|
135
|
+
link, but the row itself still renders if
|
|
136
|
+
`checksum_value` is set.
|
|
137
|
+
signature:
|
|
138
|
+
type: string
|
|
139
|
+
default: ""
|
|
140
|
+
description: >-
|
|
141
|
+
Detached GPG signature URL (e.g. a `.asc`/`.sig`
|
|
142
|
+
file) for the `checksum` manifest above, so its
|
|
143
|
+
authenticity can be verified independently of its
|
|
144
|
+
integrity. Rendered together with `signature_value`
|
|
145
|
+
as a single input-group row, the same pattern as
|
|
146
|
+
`checksum`/`checksum_value`: this URL becomes the
|
|
147
|
+
row's left icon-link; empty renders the icon as a
|
|
148
|
+
non-interactive glyph instead of a link.
|
|
149
|
+
checksum_value:
|
|
150
|
+
type: string
|
|
151
|
+
default: ""
|
|
152
|
+
description: >-
|
|
153
|
+
The literal checksum digest (e.g. a SHA256 hex
|
|
154
|
+
string) for the `download` image above, distinct
|
|
155
|
+
from `checksum`, which links to the checksum file
|
|
156
|
+
itself rather than holding its value. Rendered as
|
|
157
|
+
the read-only, copy-to-clipboard text of the same
|
|
158
|
+
input-group row as `checksum` (via the copyvalue
|
|
159
|
+
component), so it can be pasted directly into a
|
|
160
|
+
terminal to compare against a locally computed
|
|
161
|
+
checksum. When empty but `checksum` is set, the row
|
|
162
|
+
still renders and its copyable text falls back to
|
|
163
|
+
the `checksum` URL itself.
|
|
164
|
+
signature_value:
|
|
165
|
+
type: string
|
|
166
|
+
default: ""
|
|
167
|
+
description: >-
|
|
168
|
+
The GPG key fingerprint used to produce `signature`
|
|
169
|
+
above, distinct from `signature`, which links to the
|
|
170
|
+
detached signature file itself rather than holding a
|
|
171
|
+
copyable value. Rendered as the read-only,
|
|
172
|
+
copy-to-clipboard text of the same input-group row as
|
|
173
|
+
`signature` (via the copyvalue component), the same
|
|
174
|
+
pattern most distros use to publish a signing key's
|
|
175
|
+
fingerprint for manual verification. When empty but
|
|
176
|
+
`signature` is set, the row still renders and its
|
|
177
|
+
copyable text falls back to the `signature` URL
|
|
178
|
+
itself.
|
|
179
|
+
mirrors:
|
|
180
|
+
type: object
|
|
181
|
+
default: {}
|
|
182
|
+
description: >-
|
|
183
|
+
Mirror links for this architecture's image types,
|
|
184
|
+
each rendered as its own outline-primary button
|
|
185
|
+
below the download/checksum/signature group.
|
|
186
|
+
properties:
|
|
187
|
+
iso: { type: string, default: "", description: "ISO mirror list URL. Empty hides the ISO Mirrors button." }
|
|
188
|
+
rpm: { type: string, default: "", description: "RPM repository URL. Empty hides the RPM Mirrors button." }
|
|
189
|
+
cloud: { type: string, default: "", description: "Cloud image directory URL. Empty hides the Cloud Images button." }
|
|
190
|
+
containers: { type: string, default: "", description: "Container image registry URL. Empty hides the Container Images button." }
|
|
191
|
+
vagrant: { type: string, default: "", description: "Vagrant box URL. Empty hides the Vagrant Boxes button." }
|
|
192
|
+
torrent: { type: string, default: "", description: "Torrent (.torrent/magnet) URL, an alternate mirror-load-reducing distribution method. Empty hides the Torrent button." }
|
|
193
|
+
additionalProperties: false
|
|
194
|
+
additionalProperties: false
|
|
195
|
+
additionalProperties: false
|
|
196
|
+
documentation:
|
|
197
|
+
type: array
|
|
198
|
+
description: >-
|
|
199
|
+
Documentation links, release-wide rather than per
|
|
200
|
+
architecture, presented as a compact secondary section
|
|
201
|
+
below the architecture grid — a small heading and a row of
|
|
202
|
+
outline buttons, not full cards.
|
|
203
|
+
items:
|
|
204
|
+
type: object
|
|
205
|
+
properties:
|
|
206
|
+
title: { type: string, default: "", description: "Visible link label." }
|
|
207
|
+
link: { type: string, default: "", description: "Target URL." }
|
|
208
|
+
additionalProperties: false
|
|
209
|
+
eol:
|
|
210
|
+
type: array
|
|
211
|
+
description: >-
|
|
212
|
+
End-of-life milestones, release-wide rather than per
|
|
213
|
+
architecture, presented as a compact secondary section
|
|
214
|
+
below the architecture grid — a small heading and a plain
|
|
215
|
+
list, not full cards.
|
|
216
|
+
items:
|
|
217
|
+
type: object
|
|
218
|
+
properties:
|
|
219
|
+
date: { type: string, default: "", description: "End-of-life date or milestone label, e.g. `31 May 2024`." }
|
|
220
|
+
description: { type: string, default: "", description: "Supporting text or HTML for this milestone." }
|
|
221
|
+
additionalProperties: false
|
|
222
|
+
commands:
|
|
223
|
+
type: array
|
|
224
|
+
description: >-
|
|
225
|
+
Command snippets ("Migration"), release-wide rather than
|
|
226
|
+
per architecture, presented as a compact secondary section
|
|
227
|
+
below the architecture grid — a small heading, each
|
|
228
|
+
command's own `title` as a smaller sub-title, and its code
|
|
229
|
+
block, not full cards.
|
|
230
|
+
items:
|
|
231
|
+
type: object
|
|
232
|
+
properties:
|
|
233
|
+
title: { type: string, default: "", description: "Sub-title shown above this command's code block." }
|
|
234
|
+
lines: { type: string, default: "", description: "Shell command(s), rendered inside a <pre><code> block." }
|
|
235
|
+
additionalProperties: false
|
|
236
|
+
screenshots:
|
|
237
|
+
type: array
|
|
238
|
+
description: >-
|
|
239
|
+
Images shown in the release's screenshot carousel,
|
|
240
|
+
release-wide rather than per architecture.
|
|
241
|
+
items:
|
|
242
|
+
type: object
|
|
243
|
+
properties:
|
|
244
|
+
src: { type: string, default: "", description: "Bare filename, resolved against `image_base_path`." }
|
|
245
|
+
alt: { type: string, default: "", description: "Alternative text for the image." }
|
|
246
|
+
title: { type: string, default: "", description: "Caption heading overlaid on the slide. Empty hides the caption's heading." }
|
|
247
|
+
description: { type: string, default: "", description: "Caption body text overlaid on the slide. Empty hides the caption's body." }
|
|
248
|
+
additionalProperties: false
|
|
249
|
+
additionalProperties: false
|
|
250
|
+
additionalProperties: false
|
|
251
|
+
required:
|
|
252
|
+
- title
|
|
253
|
+
additionalProperties: false
|
|
254
|
+
additionalProperties: false
|
|
@@ -120,10 +120,10 @@ properties:
|
|
|
120
120
|
- name
|
|
121
121
|
- link # Required for all nested links
|
|
122
122
|
additionalProperties: false
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
required:
|
|
124
|
+
- name # Required for all top-level links/menus
|
|
125
|
+
additionalProperties: false
|
|
126
|
+
required:
|
|
127
|
+
- navitems # Navigation is critical for the navbar
|
|
128
|
+
additionalProperties: false
|
|
129
129
|
additionalProperties: false
|
|
@@ -25,7 +25,7 @@ properties:
|
|
|
25
25
|
format: uri-reference
|
|
26
26
|
title_lead:
|
|
27
27
|
type: string
|
|
28
|
-
description: A short description or lead paragraph displayed alongside the link in most formats.
|
|
28
|
+
description: A short description or lead paragraph displayed alongside the link in most formats. Supports Markdown.
|
|
29
29
|
name:
|
|
30
30
|
type: string
|
|
31
31
|
description: The original filename or slug of the page, used when `show_page_filename` is `true`.
|
data/_data/base/sponsors.yml
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Sponsors
|
|
3
3
|
icon: "fa-solid fa-hand-holding-heart"
|
|
4
|
-
image_base_path: "/assets/img/base/"
|
|
5
4
|
message: |
|
|
6
5
|
CentOS would not be possible without the support of our sponsors. We would
|
|
7
6
|
like to thank the following product/service for being a CentOS sponsor. If
|
|
@@ -27,14 +27,23 @@ properties:
|
|
|
27
27
|
type: string
|
|
28
28
|
default: ""
|
|
29
29
|
description: Introductory text rendered above the carousel, supports Markdown.
|
|
30
|
+
# NOTE: this default is hardcoded to match examples/jekyll/components/
|
|
31
|
+
# sponsors.md's current page.url (/components/sponsors/), not computed
|
|
32
|
+
# from it (YAML can't run Liquid). If that page is ever renamed or its
|
|
33
|
+
# permalink changes, update this default to match — nothing else does
|
|
34
|
+
# so automatically.
|
|
30
35
|
image_base_path:
|
|
31
36
|
type: string
|
|
32
|
-
default: "/assets/img/
|
|
37
|
+
default: "/assets/img/components/sponsors/"
|
|
33
38
|
description: >-
|
|
34
39
|
Base path prepended to bare logo filenames when building the image `src`
|
|
35
|
-
attribute. Defaults to `/assets/img/
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
attribute. Defaults to `/assets/img/components/sponsors/`, where this
|
|
41
|
+
theme's own example logos live — a fixed, static default (not
|
|
42
|
+
page-derived) since sponsors data is typically shared across every
|
|
43
|
+
page that enables with_sponsors, not unique per page. Set to a
|
|
44
|
+
different path (e.g. `/assets/img/my-real-sponsors/`) to store real
|
|
45
|
+
logos elsewhere on the site. Ignored when `image` is an absolute URL
|
|
46
|
+
(`http://` or `https://`).
|
|
38
47
|
members:
|
|
39
48
|
type: array
|
|
40
49
|
default: []
|
data/_data/base/title_schema.yml
CHANGED
|
@@ -36,7 +36,9 @@ properties:
|
|
|
36
36
|
title_lead:
|
|
37
37
|
type: string
|
|
38
38
|
default: "`page.title_lead`"
|
|
39
|
-
description:
|
|
39
|
+
description: >-
|
|
40
|
+
An optional lead text or introductory paragraph displayed immediately
|
|
41
|
+
beneath the H1, providing context or summary. Supports Markdown.
|
|
40
42
|
title_lead_class:
|
|
41
43
|
type: string
|
|
42
44
|
default: "lead"
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Download Component
|
|
4
|
+
Purpose: Renders one or more download entries. Full data-driven section
|
|
5
|
+
component (like bits/sponsors), gated by with_download and resolved through
|
|
6
|
+
the standard 4-level fallback chain. Each entry in with_download_data is an
|
|
7
|
+
independent download "card" (e.g. one per distribution); include.title
|
|
8
|
+
filters to a single entry. Per-release sections (architecture/documentation/
|
|
9
|
+
eol/commands/screenshots) render automatically when their data is present —
|
|
10
|
+
no separate with_X flag per section, matching how card.html.liquid renders
|
|
11
|
+
its own sections only "if content". Shared between both render paths via
|
|
12
|
+
download_sections.html.liquid.
|
|
13
|
+
|
|
14
|
+
Alternative images (flavors) are not a section of this schema — a flavor
|
|
15
|
+
is just another download entry, linked via `documentation` or page
|
|
16
|
+
content rather than nested inside this one.
|
|
17
|
+
|
|
18
|
+
Data Source Hierarchy (in priority order):
|
|
19
|
+
1. include.data - Explicitly passed array
|
|
20
|
+
2. page.with_download_data - Page front matter
|
|
21
|
+
3. site.data.download - Site data
|
|
22
|
+
4. site.data.base.download - Theme defaults
|
|
23
|
+
|
|
24
|
+
Optional Inputs (from include):
|
|
25
|
+
- title: Render only the entry whose title matches exactly.
|
|
26
|
+
- id: HTML id prefix for the nav-pills tab selector (default: DownloadsCard-1).
|
|
27
|
+
================================================================================
|
|
28
|
+
{% endcomment %}
|
|
29
|
+
|
|
30
|
+
{%- assign with_download = include.with_download
|
|
31
|
+
| default: page.with_download
|
|
32
|
+
%}
|
|
33
|
+
|
|
34
|
+
{%- assign with_download_data = include.data
|
|
35
|
+
| default: page.with_download_data
|
|
36
|
+
| default: site.data.download
|
|
37
|
+
| default: site.data.base.download
|
|
38
|
+
%}
|
|
39
|
+
|
|
40
|
+
{%- assign with_download_schema = site.data.base.download_schema.properties.with_download_data.items.properties %}
|
|
41
|
+
|
|
42
|
+
{%- if with_download %}
|
|
43
|
+
{%- for entry in with_download_data %}
|
|
44
|
+
|
|
45
|
+
{%- if include.title and include.title != "" and include.title != entry.title %}
|
|
46
|
+
{%- continue %}
|
|
47
|
+
{%- endif %}
|
|
48
|
+
|
|
49
|
+
{%- comment %} image_base_path defaults to a path derived from the current
|
|
50
|
+
page's own URL (page.url already ends in "/" for pretty permalinks) rather
|
|
51
|
+
than a fixed schema default — every page gets its own collision-free
|
|
52
|
+
screenshot directory automatically, with no per-page front matter needed,
|
|
53
|
+
unless the entry explicitly overrides it. See download_schema.yml's
|
|
54
|
+
image_base_path description for the full rationale. {% endcomment %}
|
|
55
|
+
{%- if entry.image_base_path and entry.image_base_path != "" %}
|
|
56
|
+
{%- assign entry_image_base_path = entry.image_base_path %}
|
|
57
|
+
{%- else %}
|
|
58
|
+
{%- assign entry_image_base_path = "/assets/img" | append: page.url %}
|
|
59
|
+
{%- endif %}
|
|
60
|
+
|
|
61
|
+
{%- comment %} entry.title feeds an HTML id (card_id) below. A hand-picked
|
|
62
|
+
remove: chain (mirroring link.html.liquid's anchor assignment) missed
|
|
63
|
+
characters like em dashes, which the id spec forbids just the same —
|
|
64
|
+
slugify handles any non-alphanumeric character, not just a fixed list. {% endcomment %}
|
|
65
|
+
{%- assign entry_title_id_safe = entry.title | slugify %}
|
|
66
|
+
|
|
67
|
+
{%- if include.id and include.id != "" %}
|
|
68
|
+
{%- assign card_id = include.id | append: "-" | append: entry_title_id_safe | downcase | replace: " ", "-" %}
|
|
69
|
+
{%- else %}
|
|
70
|
+
{%- assign card_id = "DownloadsCard-1-" | append: entry_title_id_safe | downcase | replace: " ", "-" %}
|
|
71
|
+
{%- endif %}
|
|
72
|
+
|
|
73
|
+
<div class="mb-1">
|
|
74
|
+
{%- assign single_release = nil %}
|
|
75
|
+
{%- if entry.releases.size == 1 %}
|
|
76
|
+
{%- assign single_release = entry.releases | first %}
|
|
77
|
+
{%- endif %}
|
|
78
|
+
|
|
79
|
+
{%- if entry.title and entry.title != "" %}
|
|
80
|
+
<div class="h2">
|
|
81
|
+
{{ entry.title | escape }}{% if single_release %} {{ single_release[0] | escape }}{% endif %}
|
|
82
|
+
</div>
|
|
83
|
+
{%- endif %}
|
|
84
|
+
|
|
85
|
+
{%- if entry.description and entry.description != "" %}
|
|
86
|
+
{{ entry.description | strip_newlines | markdownify }}
|
|
87
|
+
{%- endif %}
|
|
88
|
+
|
|
89
|
+
{%- comment %} A `releases` field always identifies which version(s) an
|
|
90
|
+
entry covers; when there's more than one, a tabbed nav-pills selector
|
|
91
|
+
switches between them. When there's exactly one — the common case for a
|
|
92
|
+
project like CentOS Stream, which only ever has one active version —
|
|
93
|
+
the tab selector is skipped and that release's sections render
|
|
94
|
+
directly, since a single, permanently-active, non-interactive tab would
|
|
95
|
+
just be chrome with nothing to switch between. {% endcomment %}
|
|
96
|
+
{%- if entry.releases.size == 1 %}
|
|
97
|
+
{%- for release in entry.releases %}
|
|
98
|
+
{%- assign release_data = release[1] %}
|
|
99
|
+
{%- assign release_id = card_id | append: "-pills1" %}
|
|
100
|
+
<div id="{{ release_id }}" class="bg-white rounded py-3 border">
|
|
101
|
+
{%- include base/download_sections.html.liquid release_data=release_data release_id=release_id image_base_path=entry_image_base_path -%}
|
|
102
|
+
</div>
|
|
103
|
+
{%- endfor %}
|
|
104
|
+
{%- elsif entry.releases.size > 1 %}
|
|
105
|
+
<ul class="nav nav-pills my-3 justify-content-start" id="{{ card_id }}-pills-tab" role="tablist">
|
|
106
|
+
{%- for release in entry.releases %}
|
|
107
|
+
<li class="nav-item" role="presentation">
|
|
108
|
+
<button class="nav-link{% if forloop.first %} active{% endif %} fw-bold"
|
|
109
|
+
id="{{ card_id }}-pills-tab{{ forloop.index }}"
|
|
110
|
+
data-bs-toggle="tab"
|
|
111
|
+
data-bs-target="#{{ card_id }}-pills{{ forloop.index }}"
|
|
112
|
+
type="button"
|
|
113
|
+
role="tab"
|
|
114
|
+
aria-controls="{{ card_id }}-pills-tab{{ forloop.index }}"
|
|
115
|
+
{%- if forloop.first %} aria-selected="true"{% endif %}
|
|
116
|
+
>{%- if release[1].icon and release[1].icon != "" %}<i class="{{ release[1].icon }} me-1"></i>{% endif %}{{ release[0] }}</button>
|
|
117
|
+
</li>
|
|
118
|
+
{%- endfor %}
|
|
119
|
+
</ul>
|
|
120
|
+
|
|
121
|
+
{%- comment %} border/rounded/bg-white live on this outer .tab-content div,
|
|
122
|
+
not the inner .tab-pane — a .tab-pane's own corners are always square, so if
|
|
123
|
+
the rounded, filled look lived there instead, its corners would poke past
|
|
124
|
+
this div's border at each corner. overflow-hidden clips each pane to match.
|
|
125
|
+
Mirrors the single-release path above, which only ever needs one
|
|
126
|
+
rounded/bordered/filled box. {% endcomment %}
|
|
127
|
+
<div class="tab-content border rounded overflow-hidden bg-white" id="{{ card_id }}-pills-tabContent">
|
|
128
|
+
{%- for release in entry.releases %}
|
|
129
|
+
{%- assign release_data = release[1] %}
|
|
130
|
+
{%- assign release_id = card_id | append: "-pills" | append: forloop.index %}
|
|
131
|
+
{%- assign tab_id = card_id | append: "-pills-tab" | append: forloop.index %}
|
|
132
|
+
|
|
133
|
+
<div class="tab-pane fade{% if forloop.first %} show active{% endif %} py-3"
|
|
134
|
+
id="{{ release_id }}"
|
|
135
|
+
role="tabpanel"
|
|
136
|
+
aria-labelledby="{{ tab_id }}"
|
|
137
|
+
tabindex="0">
|
|
138
|
+
{%- include base/download_sections.html.liquid release_data=release_data release_id=release_id image_base_path=entry_image_base_path -%}
|
|
139
|
+
</div>
|
|
140
|
+
{%- endfor %}
|
|
141
|
+
</div>
|
|
142
|
+
{%- endif %}
|
|
143
|
+
|
|
144
|
+
</div>
|
|
145
|
+
{%- endfor %}
|
|
146
|
+
{%- endif %}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Utility: Download Accordion Item
|
|
4
|
+
Purpose: The Bootstrap accordion-item/header/button/collapse/body shell
|
|
5
|
+
shared by the four sibling sections below a release's architecture grid
|
|
6
|
+
(Screenshots, Documentation, Migration, End-of-life) — see
|
|
7
|
+
download_sections.html.liquid for how these compose into one shared
|
|
8
|
+
accordion. Body content is built by the caller via a capture tag and passed
|
|
9
|
+
in as a pre-rendered HTML string, since Jekyll's Liquid include mechanism
|
|
10
|
+
has no block/yield content-passing.
|
|
11
|
+
|
|
12
|
+
Required Inputs:
|
|
13
|
+
- icon: Font Awesome icon class shown before the title.
|
|
14
|
+
- title: Accordion button label text.
|
|
15
|
+
- item_id: This item's unique collapse id.
|
|
16
|
+
- accordion_id: Parent accordion's id, for data-bs-parent scoping.
|
|
17
|
+
- expanded: true starts this item open; false starts it closed.
|
|
18
|
+
- body: Pre-rendered HTML string (built via a capture tag at the
|
|
19
|
+
call site) for the accordion-body's contents.
|
|
20
|
+
|
|
21
|
+
Optional Inputs:
|
|
22
|
+
- body_class: Extra classes appended to "accordion-body" (e.g.
|
|
23
|
+
"d-flex flex-wrap gap-2", "p-0"). Omit for a plain
|
|
24
|
+
accordion-body.
|
|
25
|
+
================================================================================
|
|
26
|
+
{% endcomment %}
|
|
27
|
+
<div class="accordion-item">
|
|
28
|
+
<div class="accordion-header h2">
|
|
29
|
+
<button class="accordion-button{% unless include.expanded %} collapsed{% endunless %}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ include.item_id }}" aria-expanded="{{ include.expanded }}" aria-controls="{{ include.item_id }}">
|
|
30
|
+
<i class="{{ include.icon }} me-2"></i>
|
|
31
|
+
<span class="mx-3 fw-bold">{{ include.title }}</span>
|
|
32
|
+
</button>
|
|
33
|
+
</div>
|
|
34
|
+
<div id="{{ include.item_id }}" class="accordion-collapse collapse{% if include.expanded %} show{% endif %}" data-bs-parent="#{{ include.accordion_id }}">
|
|
35
|
+
<div class="accordion-body{% if include.body_class and include.body_class != "" %} {{ include.body_class }}{% endif %}">
|
|
36
|
+
{{ include.body }}
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|