jekyll-theme-centos 2.52.0.beta.57 → 2.52.0.beta.59
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/announcement_schema.yml +2 -3
- data/_data/base/breadcrumb_schema.yml +13 -0
- data/_data/base/breakingnews_schema.yml +8 -0
- data/_data/base/event_schema.yml +10 -2
- data/_data/base/fontawesome_schema.yml +13 -0
- data/_data/base/navbar_schema.yml +8 -0
- data/_data/base/ogp.yml +1 -0
- data/_data/base/ogp_schema.yml +14 -0
- data/_includes/base/announcement.html.liquid +2 -2
- data/_includes/base/artwork.html.liquid +9 -9
- data/_includes/base/breadcrumb.html.liquid +15 -4
- data/_includes/base/breakingnews.html.liquid +6 -4
- data/_includes/base/event.html.liquid +4 -2
- data/_includes/base/fontawesome.html.liquid +23 -4
- data/_includes/base/footer.html.liquid +2 -2
- data/_includes/base/head.html.liquid +5 -3
- data/_includes/base/link.html.liquid +3 -7
- data/_includes/base/navbar.html.liquid +3 -3
- data/_includes/base/ogp.html.liquid +12 -2
- data/_includes/base/sponsors-cards.html.liquid +3 -3
- data/_includes/base/sponsors-carousel.html.liquid +3 -3
- data/_includes/base/title.html.liquid +2 -2
- data/_includes/base/toc.html.liquid +21 -19
- data/assets/img/base/page-with-alert.svg +164 -140
- data/assets/img/base/page-with-announcement.svg +792 -331
- data/assets/img/base/page-with-breakingnews.svg +861 -767
- data/assets/img/base/page-with-navbar.svg +827 -268
- data/assets/img/base/page-with-project.svg +367 -726
- data/assets/js/base/copyvalue.js +61 -177
- metadata +1 -40
- data/assets/img/base/example-ogp-image.png +0 -0
- data/assets/img/base/example-sponsors-design.png +0 -0
- data/assets/img/base/example-sponsors-logo-1.png +0 -0
- data/assets/img/base/example-sponsors-logo-2.png +0 -0
- data/assets/img/base/example-sponsors-logo-3.png +0 -0
- data/assets/img/base/example-sponsors-logo-4.png +0 -0
- data/assets/img/base/example-sponsors-logo-5.png +0 -0
- data/assets/img/base/example-sponsors-logo-6.png +0 -0
- data/assets/img/base/example-sponsors-logo-7.png +0 -0
- data/assets/img/base/example-sponsors-logo-8.png +0 -0
- data/assets/img/base/page-layout-default.png +0 -0
- data/assets/img/base/page-with-alert.png +0 -0
- data/assets/img/base/page-with-announcement.png +0 -0
- data/assets/img/base/page-with-artwork.png +0 -0
- data/assets/img/base/page-with-backtotop.png +0 -0
- data/assets/img/base/page-with-bits.png +0 -0
- data/assets/img/base/page-with-breadcrumb.png +0 -0
- data/assets/img/base/page-with-breakingnews.png +0 -0
- data/assets/img/base/page-with-color.png +0 -0
- data/assets/img/base/page-with-copyright.png +0 -0
- data/assets/img/base/page-with-copyvalue.png +0 -0
- data/assets/img/base/page-with-datatable.png +0 -0
- data/assets/img/base/page-with-event.png +0 -0
- data/assets/img/base/page-with-fontawesome.png +0 -0
- data/assets/img/base/page-with-footer.png +0 -0
- data/assets/img/base/page-with-heading.png +0 -0
- data/assets/img/base/page-with-highlight.png +0 -0
- data/assets/img/base/page-with-link.png +0 -0
- data/assets/img/base/page-with-locales.png +0 -0
- data/assets/img/base/page-with-navbar.png +0 -0
- data/assets/img/base/page-with-navindex.png +0 -0
- data/assets/img/base/page-with-ogp.png +0 -0
- data/assets/img/base/page-with-project.png +0 -0
- data/assets/img/base/page-with-shortcut.png +0 -0
- data/assets/img/base/page-with-social.png +0 -0
- data/assets/img/base/page-with-sponsors.png +0 -0
- data/assets/img/base/page-with-title.png +0 -0
- data/assets/img/base/page-with-toc.png +0 -0
- data/assets/img/base/screenshot-1200x600.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: 7c273c21392a74e2982e965a0039930859404ac3d0a498bb2be52927f2293b01
|
|
4
|
+
data.tar.gz: 01eaa12144714ace83cee8da787976e41dc483b93c3b90e0516d5891a282fb69
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 86e59a3bdafb790a2701994f52cc8893aa677a6231d2aeeb25e4afc77b893d4028913a8ef7d98cc6d5e9dbe82d63f55587d04ed7954bffbce1f02ac923a9b8d4
|
|
7
|
+
data.tar.gz: 204a009e13b631c3aafc2a4dc71f48fb62cb0b7ab708db323cdedb5584876844d59133f3bd797c41c1959cbd3ff3d35b2d4949f77d4cc1c5678586ee9c94bb50
|
|
@@ -37,12 +37,11 @@ properties:
|
|
|
37
37
|
`centos-purple-800`.
|
|
38
38
|
icon:
|
|
39
39
|
type: string
|
|
40
|
-
default: ""
|
|
40
|
+
default: "fa-solid fa-bullhorn"
|
|
41
41
|
description: >-
|
|
42
42
|
The Font Awesome icon class (e.g., `fa-solid fa-bell`) to display
|
|
43
43
|
on the left side of the announcement. Only [freely distributed Font
|
|
44
|
-
Awesome icons](https://fontawesome.com/search?ic=free-collection) are supported.
|
|
45
|
-
icon `fa-solid fa-bullhorn` will be used by the rendering engine.
|
|
44
|
+
Awesome icons](https://fontawesome.com/search?ic=free-collection) are supported.
|
|
46
45
|
required:
|
|
47
46
|
- content
|
|
48
47
|
additionalProperties: false
|
|
@@ -11,4 +11,17 @@ properties:
|
|
|
11
11
|
description: >-
|
|
12
12
|
Enables or disables the rendering of the breadcrumb navigation component.
|
|
13
13
|
Set to `true` (default) to display the breadcrumbs; set to `false` to hide them.
|
|
14
|
+
with_breadcrumb_data:
|
|
15
|
+
type: object
|
|
16
|
+
default: {}
|
|
17
|
+
description: >-
|
|
18
|
+
Configuration object for the breadcrumb navigation component.
|
|
19
|
+
properties:
|
|
20
|
+
arialabel:
|
|
21
|
+
type: string
|
|
22
|
+
default: "breadcrumb"
|
|
23
|
+
description: >-
|
|
24
|
+
The `aria-label` attribute value for the breadcrumb `<nav>` element.
|
|
25
|
+
Screen readers use this label to identify the navigation landmark.
|
|
26
|
+
additionalProperties: false
|
|
14
27
|
additionalProperties: false
|
|
@@ -11,6 +11,14 @@ properties:
|
|
|
11
11
|
Enables or disables the Breaking News component. Set to `true` to
|
|
12
12
|
display the messages; set to `false` (default) to hide them. When enabled,
|
|
13
13
|
the `with_breakingnews_data` property must be provided.
|
|
14
|
+
breakingnews_alert_height:
|
|
15
|
+
type: integer
|
|
16
|
+
default: 31
|
|
17
|
+
description: >-
|
|
18
|
+
Height in pixels of a single breaking news alert bar. Used by both the
|
|
19
|
+
breakingnews component and the head component to calculate sticky
|
|
20
|
+
positioning and scroll-margin-top offsets. Must match the rendered height
|
|
21
|
+
of `.breakingnews.alert.p-2`.
|
|
14
22
|
with_breakingnews_data:
|
|
15
23
|
type: array
|
|
16
24
|
default: [] # Corrected: Moved default to array level and set to []
|
data/_data/base/event_schema.yml
CHANGED
|
@@ -24,10 +24,18 @@ properties:
|
|
|
24
24
|
title:
|
|
25
25
|
type: string
|
|
26
26
|
description: The name or title of the event. This field is required.
|
|
27
|
-
|
|
27
|
+
description:
|
|
28
28
|
type: string
|
|
29
29
|
default: ""
|
|
30
|
-
description: A brief
|
|
30
|
+
description: A brief description of the event.
|
|
31
|
+
address:
|
|
32
|
+
type: string
|
|
33
|
+
default: ""
|
|
34
|
+
description: The street address of the event venue.
|
|
35
|
+
city:
|
|
36
|
+
type: string
|
|
37
|
+
default: ""
|
|
38
|
+
description: The city where the event takes place.
|
|
31
39
|
date:
|
|
32
40
|
type: string # Changed from 'date' to 'string' for flexibility
|
|
33
41
|
default: ""
|
|
@@ -40,6 +40,19 @@ properties:
|
|
|
40
40
|
type: string
|
|
41
41
|
default: "sha512-6BTOlkauINO65nLhXhthZMtepgJSghyimIalb+crKRPhvhmsCdnIuGcVbR5/aQY2A+260iC1OPy1oCdB6pSSwQ=="
|
|
42
42
|
description: The Subresource Integrity (SRI) JavaScript checksum (`sha512-...`) for the specified bundle, ensuring the security and integrity of the script file.
|
|
43
|
+
mode:
|
|
44
|
+
type: string
|
|
45
|
+
enum:
|
|
46
|
+
- "svg+js"
|
|
47
|
+
- "css"
|
|
48
|
+
default: "css"
|
|
49
|
+
description: >-
|
|
50
|
+
Loading mode for Font Awesome. `svg+js` (default) downloads a JavaScript
|
|
51
|
+
bundle that replaces `<i class="fa-...">` elements with inline SVGs via DOM
|
|
52
|
+
mutation — enables power transforms, layering, and pseudo-element watching.
|
|
53
|
+
`css` downloads a stylesheet and loads WOFF2 font files on demand — lighter
|
|
54
|
+
first-visit payload and no DOM manipulation cost. Use `css` when SVG+JS-exclusive
|
|
55
|
+
features are not needed.
|
|
43
56
|
required:
|
|
44
57
|
- version
|
|
45
58
|
- cdn
|
|
@@ -11,6 +11,14 @@ properties:
|
|
|
11
11
|
Controls the visibility of the Navigation Bar component. Set to `true`
|
|
12
12
|
(default) to display the navbar at the top of the page. Set to `false`
|
|
13
13
|
to hide it entirely.
|
|
14
|
+
navbar_height:
|
|
15
|
+
type: integer
|
|
16
|
+
default: 42
|
|
17
|
+
description: >-
|
|
18
|
+
Height in pixels of the fixed-top navbar bar. Used by the breakingnews
|
|
19
|
+
component and the head component to calculate sticky positioning and
|
|
20
|
+
scroll-margin-top offsets. Must match the rendered height of
|
|
21
|
+
`nav.navbar.fixed-top`.
|
|
14
22
|
with_navbar_data:
|
|
15
23
|
type: object
|
|
16
24
|
default: {}
|
data/_data/base/ogp.yml
CHANGED
data/_data/base/ogp_schema.yml
CHANGED
|
@@ -85,6 +85,20 @@ properties:
|
|
|
85
85
|
default: audio/ogg
|
|
86
86
|
description: The MIME type of the audio file via the `og:audio:type` tag.
|
|
87
87
|
additionalProperties: false
|
|
88
|
+
site_name:
|
|
89
|
+
type: string
|
|
90
|
+
description: >-
|
|
91
|
+
The name of the overall website for the `og:site_name` tag (e.g.,
|
|
92
|
+
`"CentOS"`). Distinct from the page title. Defaults to `site.title`
|
|
93
|
+
from the Jekyll configuration when not set explicitly.
|
|
94
|
+
logo:
|
|
95
|
+
type: string
|
|
96
|
+
default: "/assets/icons/apple-touch-icon.png"
|
|
97
|
+
description: >-
|
|
98
|
+
Path to the organization logo image for the `og:logo` meta tag.
|
|
99
|
+
Used by Google Knowledge Graph and some OGP validators to identify
|
|
100
|
+
the site's primary logo. Not part of the official OGP specification;
|
|
101
|
+
treated as a path relative to `site.url + site.baseurl`.
|
|
88
102
|
video:
|
|
89
103
|
type: object
|
|
90
104
|
description: Configuration for video media files to accompany the content (`og:video`).
|
|
@@ -37,10 +37,10 @@ Data Source Hierarchy (priority):
|
|
|
37
37
|
| default: site.data.base.announcement
|
|
38
38
|
%}
|
|
39
39
|
|
|
40
|
-
{%- assign with_announcement_schema = site.data.base.announcement_schema.properties.with_announcement_data.items.properties %}
|
|
41
|
-
|
|
42
40
|
{%- if with_announcement %}
|
|
43
41
|
|
|
42
|
+
{%- assign with_announcement_schema = site.data.base.announcement_schema.properties.with_announcement_data.items.properties %}
|
|
43
|
+
|
|
44
44
|
{%- comment %} === Presentation === {% endcomment %}
|
|
45
45
|
{%- for announcement in with_announcement_data %}
|
|
46
46
|
|
|
@@ -39,25 +39,25 @@ Data Source Hierarchy (priority):
|
|
|
39
39
|
| default: site.data.base.artwork
|
|
40
40
|
%}
|
|
41
41
|
|
|
42
|
-
{%- assign with_artwork_schema = site.data.base.artwork_schema.properties.with_artwork_data.properties %}
|
|
43
|
-
|
|
44
42
|
{%- if with_artwork %}
|
|
45
43
|
|
|
44
|
+
{%- assign with_artwork_schema = site.data.base.artwork_schema.properties.with_artwork_data.properties %}
|
|
45
|
+
|
|
46
46
|
{%- comment %} === Presentation === {% endcomment %}
|
|
47
47
|
|
|
48
48
|
{%- comment %} --- Defaults --- {% endcomment %}
|
|
49
|
-
{%- assign artwork_image = with_artwork_data.image | default:
|
|
50
|
-
{%- assign artwork_alt = with_artwork_data.alt | default:
|
|
51
|
-
{%- assign artwork_class = with_artwork_data.class | default:
|
|
52
|
-
{%- assign artwork_image_class = with_artwork_data.image_class | default:
|
|
49
|
+
{%- assign artwork_image = with_artwork_data.image | default: with_artwork_schema.image.default %}
|
|
50
|
+
{%- assign artwork_alt = with_artwork_data.alt | default: with_artwork_schema.alt.default %}
|
|
51
|
+
{%- assign artwork_class = with_artwork_data.class | default: with_artwork_schema.class.default %}
|
|
52
|
+
{%- assign artwork_image_class = with_artwork_data.image_class | default: with_artwork_schema.image_class.default %}
|
|
53
53
|
|
|
54
54
|
{%- comment %} --- HTML --- {% endcomment %}
|
|
55
55
|
<div class="{{ artwork_class }}">
|
|
56
|
-
{
|
|
56
|
+
{%- if artwork_image contains "://" %}
|
|
57
57
|
<img src="{{ artwork_image }}" class="{{ artwork_image_class }}" alt="{{ artwork_alt }}" />
|
|
58
|
-
{
|
|
58
|
+
{%- else %}
|
|
59
59
|
<img src="{{ site.baseurl }}{{ artwork_image }}" class="{{ artwork_image_class }}" alt="{{ artwork_alt }}" />
|
|
60
|
-
{
|
|
60
|
+
{%- endif %}
|
|
61
61
|
</div>
|
|
62
62
|
|
|
63
63
|
{%- endif -%}
|
|
@@ -18,9 +18,12 @@ Required Inputs:
|
|
|
18
18
|
- page.original_url: URL without locale prefix (used for breadcrumb structure)
|
|
19
19
|
- page.title: Display text for active breadcrumb
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
21
|
+
Optional Inputs:
|
|
22
|
+
- with_breadcrumb_data.arialabel: aria-label for the <nav> element (default: "breadcrumb")
|
|
23
|
+
|
|
24
|
+
Data Source Hierarchy:
|
|
25
|
+
- with_breadcrumb: include.with_breadcrumb → page.with_breadcrumb
|
|
26
|
+
- with_breadcrumb_data: include.data → page.with_breadcrumb_data → site.data.breadcrumb → site.data.base.breadcrumb
|
|
24
27
|
================================================================================
|
|
25
28
|
{% endcomment %}
|
|
26
29
|
|
|
@@ -28,15 +31,23 @@ Data Sources:
|
|
|
28
31
|
| default: page.with_breadcrumb
|
|
29
32
|
%}
|
|
30
33
|
|
|
34
|
+
{%- assign with_breadcrumb_data = include.data
|
|
35
|
+
| default: page.with_breadcrumb_data
|
|
36
|
+
| default: site.data.breadcrumb
|
|
37
|
+
| default: site.data.base.breadcrumb
|
|
38
|
+
%}
|
|
39
|
+
|
|
31
40
|
{%- if with_breadcrumb %}
|
|
32
41
|
|
|
42
|
+
{%- assign with_breadcrumb_schema = site.data.base.breadcrumb_schema.properties.with_breadcrumb_data.properties %}
|
|
43
|
+
|
|
33
44
|
{%- comment %} Use original_url if available (without locale), otherwise use full url {%- endcomment %}
|
|
34
45
|
{%- assign breadcrumb_url = page.original_url | default: page.url %}
|
|
35
46
|
|
|
36
47
|
{%- comment %} Use plugin-provided locale (set for localized pages, defaults to 'en') {%- endcomment %}
|
|
37
48
|
{%- assign detected_locale = page.locale | default: 'en' %}
|
|
38
49
|
|
|
39
|
-
<nav aria-label="{{
|
|
50
|
+
<nav aria-label="{{ with_breadcrumb_data.arialabel | default: with_breadcrumb_schema.arialabel.default | default: 'breadcrumb' }}">
|
|
40
51
|
<ol class="breadcrumb mb-0">
|
|
41
52
|
{%- comment %} Home link - adjust for locale {%- endcomment %}
|
|
42
53
|
{%- if detected_locale == 'en' or detected_locale == '' %}
|
|
@@ -39,14 +39,15 @@ Data Source Hierarchy (priority):
|
|
|
39
39
|
| default: site.data.base.breakingnews
|
|
40
40
|
%}
|
|
41
41
|
|
|
42
|
-
{%- assign with_breakingnews_schema = site.data.base.breakingnews_schema.properties.with_breakingnews_data.items.properties %}
|
|
43
|
-
|
|
44
42
|
{%- if with_breakingnews %}
|
|
45
43
|
|
|
44
|
+
{%- assign with_breakingnews_schema = site.data.base.breakingnews_schema.properties.with_breakingnews_data.items.properties %}
|
|
45
|
+
|
|
46
46
|
{%- comment %} === Presentation === {% endcomment %}
|
|
47
|
-
{
|
|
48
|
-
{
|
|
47
|
+
{%- assign breakingnews_alert_height = site.data.base.breakingnews_schema.properties.breakingnews_alert_height.default %}
|
|
48
|
+
{%- assign navbar_height = site.data.base.navbar_schema.properties.navbar_height.default %}
|
|
49
49
|
|
|
50
|
+
{%- if with_breakingnews_data.size > 0 %}
|
|
50
51
|
<div class="sticky-top sticky-top-breakingnews">
|
|
51
52
|
{% for item in with_breakingnews_data %}
|
|
52
53
|
|
|
@@ -84,5 +85,6 @@ Data Source Hierarchy (priority):
|
|
|
84
85
|
</div>
|
|
85
86
|
{% endfor %}
|
|
86
87
|
</div>
|
|
88
|
+
{%- endif %}
|
|
87
89
|
|
|
88
90
|
{%- endif -%}
|
|
@@ -44,11 +44,12 @@ Data Source Hierarchy (priority):
|
|
|
44
44
|
| default: site.data.base.event
|
|
45
45
|
%}
|
|
46
46
|
|
|
47
|
-
{%- assign with_event_schema = site.data.base.event_schema.properties.with_event_data.properties %}
|
|
48
|
-
|
|
49
47
|
{%- if with_event %}
|
|
50
48
|
|
|
49
|
+
{%- assign with_event_schema = site.data.base.event_schema.properties.with_event_data.items.properties %}
|
|
50
|
+
|
|
51
51
|
{%- comment %} === Presentation === {% endcomment %}
|
|
52
|
+
{%- if with_event_data.size > 0 %}
|
|
52
53
|
<div class="mb-3">
|
|
53
54
|
{%- for event in with_event_data %}
|
|
54
55
|
{%- comment %} --- Defaults --- {% endcomment %}
|
|
@@ -99,5 +100,6 @@ Data Source Hierarchy (priority):
|
|
|
99
100
|
</div>
|
|
100
101
|
{% endfor %}
|
|
101
102
|
</div>
|
|
103
|
+
{%- endif %}
|
|
102
104
|
|
|
103
105
|
{%- endif -%}
|
|
@@ -7,14 +7,18 @@ with integrity checks.
|
|
|
7
7
|
|
|
8
8
|
Design Logic:
|
|
9
9
|
- CDN-based library loading with SRI integrity verification
|
|
10
|
-
-
|
|
11
|
-
-
|
|
10
|
+
- Two loading modes: svg+js (default) and css
|
|
11
|
+
- svg+js: JavaScript bundle replaces <i> tags with inline SVGs via DOM mutation;
|
|
12
|
+
enables power transforms, layering, pseudo-element watching
|
|
13
|
+
- css: stylesheet + WOFF2 font files loaded on demand; lighter payload, no DOM cost
|
|
14
|
+
- Format switching: separate head (CSS link) and script (JS) includes; preload hints mode-aware
|
|
12
15
|
- Subresource Integrity (SRI): ensures file hasn't been tampered with
|
|
13
16
|
- Privacy-focused: referrerpolicy="no-referrer"
|
|
14
17
|
|
|
15
18
|
Optional Inputs:
|
|
16
|
-
- type: "head" for CSS, "script" for JavaScript
|
|
17
|
-
-
|
|
19
|
+
- type: "preload" for resource hint, "head" for CSS link, "script" for JavaScript
|
|
20
|
+
- mode: "svg+js" (default) or "css" — controls which assets are emitted per type
|
|
21
|
+
- version: Font Awesome version (e.g., "7.0.1")
|
|
18
22
|
- cdn: CDN base URL (default: cdnjs.cloudflare.com)
|
|
19
23
|
- css_bundle_name, js_bundle_name: Bundle identifiers
|
|
20
24
|
- css_bundle_integrity, js_bundle_integrity: SRI hashes
|
|
@@ -51,18 +55,33 @@ Data Source Hierarchy (priority):
|
|
|
51
55
|
{%- assign fontawesome_css_bundle_integrity = with_fontawesome_data.css_bundle_integrity | default: with_fontawesome_schema.css_bundle_integrity.default %}
|
|
52
56
|
{%- assign fontawesome_js_bundle_name = with_fontawesome_data.js_bundle_name | default: with_fontawesome_schema.js_bundle_name.default %}
|
|
53
57
|
{%- assign fontawesome_js_bundle_integrity = with_fontawesome_data.js_bundle_integrity | default: with_fontawesome_schema.js_bundle_integrity.default %}
|
|
58
|
+
{%- assign fontawesome_mode = with_fontawesome_data.mode | default: with_fontawesome_schema.mode.default | default: "svg+js" %}
|
|
59
|
+
|
|
60
|
+
{%- capture html_fontawesome_preload %}
|
|
61
|
+
{%- if fontawesome_mode == "css" %}
|
|
62
|
+
<link rel="preload" href="{{ fontawesome_cdn }}/{{ fontawesome_version }}/css/{{ fontawesome_css_bundle_name }}.min.css" as="style" fetchpriority="high" crossorigin="anonymous" />
|
|
63
|
+
{%- else %}
|
|
64
|
+
<link rel="preload" href="{{ fontawesome_cdn }}/{{ fontawesome_version }}/js/{{ fontawesome_js_bundle_name }}.min.js" as="script" fetchpriority="high" crossorigin="anonymous" />
|
|
65
|
+
{%- endif %}
|
|
66
|
+
{%- endcapture %}
|
|
54
67
|
|
|
55
68
|
{%- capture html_fontawesome_head %}
|
|
69
|
+
{%- if fontawesome_mode == "css" %}
|
|
56
70
|
<link rel="stylesheet" href="{{ fontawesome_cdn }}/{{ fontawesome_version }}/css/{{ fontawesome_css_bundle_name }}.min.css" integrity="{{ fontawesome_css_bundle_integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
71
|
+
{%- endif %}
|
|
57
72
|
{%- endcapture %}
|
|
58
73
|
|
|
59
74
|
{%- capture html_fontawesome_script %}
|
|
75
|
+
{%- if fontawesome_mode == "svg+js" %}
|
|
60
76
|
<script src="{{ fontawesome_cdn }}/{{ fontawesome_version }}/js/{{ fontawesome_js_bundle_name }}.min.js" integrity="{{ fontawesome_js_bundle_integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
|
|
77
|
+
{%- endif %}
|
|
61
78
|
{%- endcapture %}
|
|
62
79
|
|
|
63
80
|
{%- comment %} --- HTML --- {% endcomment %}
|
|
64
81
|
{%- assign type = include.type %}
|
|
65
82
|
{%- case type %}
|
|
83
|
+
{%- when "preload" %}
|
|
84
|
+
{{ html_fontawesome_preload }}
|
|
66
85
|
{%- when "head" %}
|
|
67
86
|
{{ html_fontawesome_head }}
|
|
68
87
|
{%- when "script" %}
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
| default: site.data.base.footer
|
|
9
9
|
%}
|
|
10
10
|
|
|
11
|
+
{%- if with_footer -%}
|
|
12
|
+
|
|
11
13
|
{%- assign with_footer_schema = site.data.base.footer_schema.properties.with_footer_data.properties %}
|
|
12
14
|
|
|
13
15
|
{%- assign footer_brand_image = with_footer_data.brand_image | default: with_footer_schema.brand_image.default %}
|
|
@@ -16,8 +18,6 @@
|
|
|
16
18
|
{%- assign footer_brand_manifestation = with_footer_data.brand_manifestation | default: with_footer_schema.brand_manifestation.default %}
|
|
17
19
|
{%- assign footer_brand_manifestation_class = with_footer_data.brand_manifestation_class | default: with_footer_schema.brand_manifestation_class.default %}
|
|
18
20
|
|
|
19
|
-
{%- if with_footer -%}
|
|
20
|
-
|
|
21
21
|
<div class="container">
|
|
22
22
|
<div class="row justify-content-between align-items-start gx-5">
|
|
23
23
|
<div class="col-sm-12 col-lg-4">
|
|
@@ -14,7 +14,7 @@ Design Logic:
|
|
|
14
14
|
- Conditional includes: OGP, Highlight.js, DataTables, FontAwesome (SVG+JS)
|
|
15
15
|
- CSS prioritization: custom stylesheet last for override
|
|
16
16
|
- Script loading: Bootstrap base first (defer), then optional extensions, then UI behaviors
|
|
17
|
-
- Bootstrap preloaded (high-priority fetch); CDN origins preconnected + dns-prefetched per active component
|
|
17
|
+
- Bootstrap and FontAwesome preloaded (high-priority fetch); CDN origins preconnected + dns-prefetched per active component
|
|
18
18
|
|
|
19
19
|
Required Inputs:
|
|
20
20
|
- page.title: Current page title
|
|
@@ -68,6 +68,7 @@ Optional Inputs:
|
|
|
68
68
|
<link rel="dns-prefetch" href="https://cdn.datatables.net" />
|
|
69
69
|
{%- endif %}
|
|
70
70
|
<link rel="preload" href="{{ site.baseurl }}/assets/js/bootstrap.bundle.min.js" as="script" fetchpriority="high" />
|
|
71
|
+
{%- include base/fontawesome.html.liquid type="preload" %}
|
|
71
72
|
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Source+Code+Pro:ital,wght@0,400;0,700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'" />
|
|
72
73
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Source+Code+Pro:ital,wght@0,400;0,700&display=swap" /></noscript>
|
|
73
74
|
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/base/stylesheet.min.css" />
|
|
@@ -78,8 +79,8 @@ Uses CSS custom properties for cleaner, more maintainable dynamic styling.
|
|
|
78
79
|
{%- endcomment %}
|
|
79
80
|
{%- assign breakingnews = page.with_breakingnews_data | default: site.data.breakingnews | default: site.data.base.breakingnews %}
|
|
80
81
|
{%- if page.with_breakingnews == true and breakingnews.size > 0 %}
|
|
81
|
-
{%- assign breakingnews_alert_height =
|
|
82
|
-
{%- assign navbar_height =
|
|
82
|
+
{%- assign breakingnews_alert_height = site.data.base.breakingnews_schema.properties.breakingnews_alert_height.default %}
|
|
83
|
+
{%- assign navbar_height = site.data.base.navbar_schema.properties.navbar_height.default %}
|
|
83
84
|
{%- assign breakingnews_offset = 0 %}
|
|
84
85
|
{%- for item in breakingnews %}
|
|
85
86
|
{%- if forloop.first %}
|
|
@@ -114,6 +115,7 @@ Uses CSS custom properties for cleaner, more maintainable dynamic styling.
|
|
|
114
115
|
{%- endif %}
|
|
115
116
|
|
|
116
117
|
{%- comment %} CSS dependencies {%- endcomment %}
|
|
118
|
+
{%- include base/fontawesome.html.liquid type="head" %}
|
|
117
119
|
{%- include base/highlight.html.liquid type="head" %}
|
|
118
120
|
{%- include base/datatable.html.liquid type="head" %}
|
|
119
121
|
|
|
@@ -40,6 +40,7 @@ Security & External Links:
|
|
|
40
40
|
================================================================================
|
|
41
41
|
{% endcomment %}
|
|
42
42
|
|
|
43
|
+
{%- if page.with_link -%}
|
|
43
44
|
{%- capture html_link -%}
|
|
44
45
|
{%- comment %} === Data source selection === {% endcomment %}
|
|
45
46
|
{%- assign link = include.link | default: nil %}
|
|
@@ -80,10 +81,7 @@ Security & External Links:
|
|
|
80
81
|
{%- if class != nil -%}
|
|
81
82
|
{%- assign link_class = class %}
|
|
82
83
|
{%- else -%}
|
|
83
|
-
{%-
|
|
84
|
-
{%- assign link_class = link_class | append: " link-offset-3 link-offset-3-hover link-underline-" %}
|
|
85
|
-
{%- assign link_class = link_class | append: color %}
|
|
86
|
-
{%- assign link_class = link_class | append: " link-underline-opacity-0 link-underline-opacity-100-hover" %}
|
|
84
|
+
{%- capture link_class -%}link link-{{ color }} link-offset-3 link-offset-3-hover link-underline-{{ color }} link-underline-opacity-0 link-underline-opacity-100-hover{%- endcapture -%}
|
|
87
85
|
{%- endif -%}
|
|
88
86
|
|
|
89
87
|
{%- comment %} --- Security attributes for external links --- {% endcomment %}
|
|
@@ -127,7 +125,5 @@ Security & External Links:
|
|
|
127
125
|
{{- link_name | strip_newlines | strip -}}
|
|
128
126
|
</a>
|
|
129
127
|
{%- endcapture -%}
|
|
130
|
-
|
|
131
|
-
{%- if page.with_link -%}
|
|
132
|
-
{{- html_link }}
|
|
128
|
+
{{- html_link }}
|
|
133
129
|
{%- endif -%}
|
|
@@ -40,10 +40,10 @@ Data Source Hierarchy (priority):
|
|
|
40
40
|
| default: site.data.base.navbar
|
|
41
41
|
%}
|
|
42
42
|
|
|
43
|
-
{%- assign with_navbar_schema = site.data.base.navbar_schema.properties.with_navbar_data.properties %}
|
|
44
|
-
|
|
45
43
|
{%- if with_navbar %}
|
|
46
44
|
|
|
45
|
+
{%- assign with_navbar_schema = site.data.base.navbar_schema.properties.with_navbar_data.properties %}
|
|
46
|
+
|
|
47
47
|
{%- assign navbar_class = with_navbar_data.class | default: with_navbar_schema.class.default %}
|
|
48
48
|
{%- assign navbar_brand_image = with_navbar_data.brand_image | default: with_navbar_schema.brand_image.default %}
|
|
49
49
|
{%- assign navbar_brand_image_class = with_navbar_data.brand_image_class | default: with_navbar_schema.brand_image_class.default %}
|
|
@@ -94,7 +94,7 @@ Data Source Hierarchy (priority):
|
|
|
94
94
|
{%- else %}
|
|
95
95
|
<li class="nav-item dropdown">
|
|
96
96
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-{{ forloop.index }}" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
97
|
-
<i class="{{ navitem.icon }} me-1"></i>{{ navitem.name }}
|
|
97
|
+
<i class="{{ navitem.icon }} me-1" aria-hidden="true"></i>{{ navitem.name }}
|
|
98
98
|
</a>
|
|
99
99
|
<ul class="dropdown-menu dropdown-menu-dark shadow">
|
|
100
100
|
{%- for dropdownitem in navitem.menu %}
|
|
@@ -25,6 +25,8 @@ Optional Inputs:
|
|
|
25
25
|
|
|
26
26
|
Data Source Hierarchy:
|
|
27
27
|
- og:type: with_ogp_data.og.type → schema default → 'website'
|
|
28
|
+
- og:site_name: with_ogp_data.og.site_name → site.title
|
|
29
|
+
- og:logo: with_ogp_data.og.logo → schema default → '/assets/icons/apple-touch-icon.png'
|
|
28
30
|
- og:locale: page.locale (jekyll-l10n) → with_ogp_data.locale → schema default → 'en_US'
|
|
29
31
|
- og:image:type: with_ogp_data.og.image.type → schema default → 'image/png'
|
|
30
32
|
- og:image:width: with_ogp_data.og.image.width → schema default → 1200
|
|
@@ -91,9 +93,13 @@ Data Source Hierarchy:
|
|
|
91
93
|
<meta {{ meta_attr }}="{{ property }}:title" content="{{ page.title }}" />
|
|
92
94
|
{%- endif %}
|
|
93
95
|
|
|
94
|
-
{%- comment %} --- OG type (after title, before url) --- {% endcomment %}
|
|
96
|
+
{%- comment %} --- OG type and logo (after title, before url) --- {% endcomment %}
|
|
95
97
|
{%- if property == "og" %}
|
|
96
98
|
<meta property="og:type" content="{{ ogp_og_type }}" />
|
|
99
|
+
{%- assign ogp_logo = with_ogp_data.og.logo | default: with_ogp_schema.og.properties.logo.default %}
|
|
100
|
+
{%- if ogp_logo %}
|
|
101
|
+
<meta property="og:logo" content="{{ site.url }}{{ site.baseurl }}{{ ogp_logo }}" />
|
|
102
|
+
{%- endif %}
|
|
97
103
|
{%- endif %}
|
|
98
104
|
|
|
99
105
|
{%- comment %} --- URL --- {% endcomment %}
|
|
@@ -124,8 +130,12 @@ Data Source Hierarchy:
|
|
|
124
130
|
<meta {{ meta_attr }}="{{ property }}:image:alt" content="{{ with_ogp_data[property].image.alt | default: with_ogp_og_image_schema.alt.default | default: 'The CentOS Project' }}" />
|
|
125
131
|
{%- endif %}
|
|
126
132
|
|
|
127
|
-
{%- comment %} --- OG locale (after image) --- {% endcomment %}
|
|
133
|
+
{%- comment %} --- OG site_name and locale (after image) --- {% endcomment %}
|
|
128
134
|
{%- if property == "og" %}
|
|
135
|
+
{%- assign ogp_site_name = with_ogp_data.og.site_name | default: site.title %}
|
|
136
|
+
{%- if ogp_site_name %}
|
|
137
|
+
<meta property="og:site_name" content="{{ ogp_site_name }}" />
|
|
138
|
+
{%- endif %}
|
|
129
139
|
<meta property="og:locale" content="{{ ogp_locale }}" />
|
|
130
140
|
{%- endif %}
|
|
131
141
|
|
|
@@ -43,19 +43,19 @@ Conditional Logic:
|
|
|
43
43
|
| default: site.data.base.sponsors
|
|
44
44
|
%}
|
|
45
45
|
|
|
46
|
+
{%- if with_sponsors -%}
|
|
47
|
+
|
|
46
48
|
{%- assign with_sponsors_schema = site.data.base.sponsors_schema.properties.with_sponsors_data.properties %}
|
|
47
49
|
|
|
48
50
|
{%- assign sponsors_members = with_sponsors_data.members | default: with_sponsors_schema.members.default -%}
|
|
49
51
|
{%- assign sponsors_image_base = with_sponsors_data.image_base_path | default: with_sponsors_schema.image_base_path.default -%}
|
|
50
52
|
|
|
51
|
-
{%- if with_sponsors -%}
|
|
52
|
-
|
|
53
53
|
<div class="d-flex flex-wrap justify-content-between py-4 my-4 border-top border-bottom border-top-1 border-bottom-1">
|
|
54
54
|
{%- comment %} === Presentation (Begin) === {% endcomment %}
|
|
55
55
|
{%- for member in sponsors_members -%}
|
|
56
56
|
{%- if member.is_active != false %}
|
|
57
57
|
<div class="card border-light m-4" style="max-height: 60px; max-width: 242px">
|
|
58
|
-
{%- if member.image contains "
|
|
58
|
+
{%- if member.image contains "://" -%}
|
|
59
59
|
<a href="{{ member.url }}"><img src="{{ member.image }}" class="card-img-top rounded" style="max-height: 60px; max-width: 242px" alt="{{ member.name }}"></a>
|
|
60
60
|
{%- else -%}
|
|
61
61
|
<a href="{{ member.url }}"><img src="{{ site.baseurl }}{{ sponsors_image_base }}{{ member.image }}" class="card-img-top rounded" style="max-height: 60px; max-width: 242px" alt="{{ member.name }}"></a>
|
|
@@ -47,6 +47,8 @@ Conditional Logic:
|
|
|
47
47
|
| default: site.data.base.sponsors
|
|
48
48
|
%}
|
|
49
49
|
|
|
50
|
+
{%- if with_sponsors -%}
|
|
51
|
+
|
|
50
52
|
{%- assign with_sponsors_schema = site.data.base.sponsors_schema.properties.with_sponsors_data.properties %}
|
|
51
53
|
|
|
52
54
|
{%- assign sponsors_title = with_sponsors_data.title | default: with_sponsors_schema.title.default -%}
|
|
@@ -57,8 +59,6 @@ Conditional Logic:
|
|
|
57
59
|
|
|
58
60
|
{%- assign carousel_id = include.id | default: "sponsorsCarousel" -%}
|
|
59
61
|
|
|
60
|
-
{%- if with_sponsors -%}
|
|
61
|
-
|
|
62
62
|
<div id="{{ carousel_id }}" class="d-flex flex-wrap mb-5">
|
|
63
63
|
|
|
64
64
|
{%- comment %} === Presentation (Begin) === {% endcomment %}
|
|
@@ -73,7 +73,7 @@ Conditional Logic:
|
|
|
73
73
|
{%- if member.is_active != false %}
|
|
74
74
|
<div class="carousel-item{% if forloop.first %} active{% endif %}">
|
|
75
75
|
<div class="w-100 align-middle" style="height: 80px; width: 262px">
|
|
76
|
-
{%- if member.image contains "
|
|
76
|
+
{%- if member.image contains "://" -%}
|
|
77
77
|
<a href="{{ member.url }}"><img src="{{ member.image }}" class="rounded" style="max-height: 60px; max-width: 242px" alt="{{ member.name }}"></a>
|
|
78
78
|
{%- else -%}
|
|
79
79
|
<a href="{{ member.url }}"><img src="{{ site.baseurl }}{{ sponsors_image_base }}{{ member.image }}" class="rounded" style="max-height: 60px; max-width: 242px" alt="{{ member.name }}"></a>
|
|
@@ -44,6 +44,8 @@ Conditional Logic:
|
|
|
44
44
|
| default: site.data.base.title
|
|
45
45
|
%}
|
|
46
46
|
|
|
47
|
+
{%- if with_title -%}
|
|
48
|
+
|
|
47
49
|
{%- assign with_title_schema = site.data.base.title_schema.properties.with_title_data.properties %}
|
|
48
50
|
|
|
49
51
|
{%- comment %} === Presentation === {% endcomment %}
|
|
@@ -53,8 +55,6 @@ Conditional Logic:
|
|
|
53
55
|
{%- assign title_lead = with_title_data.title_lead | default: page.title_lead %}
|
|
54
56
|
{%- assign title_lead_class = with_title_data.title_lead_class | default: with_title_schema.title_lead_class.default %}
|
|
55
57
|
|
|
56
|
-
{%- if page.with_title -%}
|
|
57
|
-
|
|
58
58
|
<div class="{{ class }}">
|
|
59
59
|
<p class="{{ title_class }}">{{ title }}</p>
|
|
60
60
|
{% if title_lead != "" %}
|
|
@@ -33,30 +33,32 @@ Optional Inputs (from include):
|
|
|
33
33
|
- data: TOC configuration object
|
|
34
34
|
|
|
35
35
|
Data Source Hierarchy (in priority order):
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
3. site.data.toc - Site configuration
|
|
39
|
-
4. site.data.base.toc - Theme defaults
|
|
36
|
+
- with_toc: include.with_toc → page.with_toc
|
|
37
|
+
- with_toc_data: include.data → page.with_toc_data → site.data.toc → site.data.base.toc
|
|
40
38
|
================================================================================
|
|
41
39
|
{% endcomment %}
|
|
42
40
|
|
|
43
|
-
{%-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
{%- assign with_toc = include.with_toc
|
|
42
|
+
| default: page.with_toc
|
|
43
|
+
%}
|
|
44
|
+
|
|
45
|
+
{%- if with_toc -%}
|
|
46
|
+
{%- assign with_toc_data = include.data | default: page.with_toc_data | default: site.data.toc | default: site.data.base.toc %}
|
|
47
|
+
{%- assign with_toc_schema = site.data.base.toc_schema.properties["with_toc_data"].properties %}
|
|
46
48
|
|
|
47
49
|
{%- comment %} === Configuration properties === {% endcomment %}
|
|
48
|
-
{%- assign class =
|
|
49
|
-
{%- assign id =
|
|
50
|
-
{%- assign item_class =
|
|
51
|
-
{%- assign anchor_class =
|
|
52
|
-
{%- assign h_min =
|
|
53
|
-
{%- assign h_max =
|
|
54
|
-
{%- assign ordered =
|
|
55
|
-
{%- assign submenu_class =
|
|
56
|
-
{%- assign base_url =
|
|
57
|
-
{%- assign sanitize =
|
|
58
|
-
{%- assign skip_no_ids =
|
|
59
|
-
{%- assign flat_toc =
|
|
50
|
+
{%- assign class = with_toc_data.class | default: with_toc_schema["class"].default %}
|
|
51
|
+
{%- assign id = with_toc_data.id | default: with_toc_schema["id"].default | default: "page-toc" %}
|
|
52
|
+
{%- assign item_class = with_toc_data.item_class | default: with_toc_schema["item_class"].default | default: "my-2" %}
|
|
53
|
+
{%- assign anchor_class = with_toc_data.anchor_class | default: with_toc_schema["anchor_class"].default | default: site.with_link_decorator_data.default_link_classes %}
|
|
54
|
+
{%- assign h_min = with_toc_data.h_min | default: with_toc_schema["h_min"].default %}
|
|
55
|
+
{%- assign h_max = with_toc_data.h_max | default: with_toc_schema["h_max"].default %}
|
|
56
|
+
{%- assign ordered = with_toc_data.ordered | default: with_toc_schema["ordered"].default %}
|
|
57
|
+
{%- assign submenu_class = with_toc_data.submenu_class | default: with_toc_schema["submenu_class"].default %}
|
|
58
|
+
{%- assign base_url = with_toc_data.base_url | default: with_toc_schema["base_url"].default %}
|
|
59
|
+
{%- assign sanitize = with_toc_data.sanitize | default: with_toc_schema["sanitize"].default %}
|
|
60
|
+
{%- assign skip_no_ids = with_toc_data.skip_no_ids | default: with_toc_schema["skip_no_ids"].default %}
|
|
61
|
+
{%- assign flat_toc = with_toc_data.flat_toc | default: with_toc_schema["flat_toc"].default %}
|
|
60
62
|
|
|
61
63
|
{%- comment %} === Presentation === {% endcomment %}
|
|
62
64
|
|