jekyll-theme-centos 2.52.0.beta.104 → 2.52.0.beta.106
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 +2 -2
- data/_data/base/accordion_schema.yml +6 -0
- data/_data/base/announcement_schema.yml +1 -1
- data/_data/base/artwork_schema.yml +17 -3
- data/_data/base/bits_schema.yml +9 -4
- data/_data/base/breadcrumb_schema.yml +14 -0
- data/_data/base/breakingnews_schema.yml +1 -1
- data/_data/base/calendar_schema.yml +17 -2
- data/_data/base/card_schema.yml +2 -2
- data/_data/base/copyright_schema.yml +7 -17
- data/_data/base/copyvalue_schema.yml +4 -1
- data/_data/base/datatable_schema.yml +3 -3
- data/_data/base/download_schema.yml +42 -16
- data/_data/base/event_schema.yml +1 -1
- data/_data/base/footer_schema.yml +7 -6
- data/_data/base/highlight_schema.yml +7 -5
- data/_data/base/image_schema.yml +1 -1
- data/_data/base/link_schema.yml +13 -19
- data/_data/base/navbar_schema.yml +6 -0
- data/_data/base/preview_schema.yml +8 -4
- data/_data/base/project_schema.yml +4 -2
- data/_data/base/script_schema.yml +4 -4
- data/_data/base/shortcut_schema.yml +2 -2
- data/_data/base/social_schema.yml +2 -2
- data/_data/base/sponsors.yml +3 -2
- data/_data/base/sponsors_schema.yml +20 -0
- data/_data/base/title_schema.yml +14 -0
- data/_data/base/toc_schema.yml +16 -2
- data/_includes/base/accordion-item.html.liquid +11 -32
- data/_includes/base/accordion.html.liquid +3 -29
- data/_includes/base/announcement.html.liquid +8 -35
- data/_includes/base/artwork.html.liquid +5 -38
- data/_includes/base/backtotop.html.liquid +3 -42
- data/_includes/base/bits.html.liquid +26 -74
- data/_includes/base/breadcrumb.html.liquid +15 -49
- data/_includes/base/breakingnews.html.liquid +6 -43
- data/_includes/base/calendar-events.html.liquid +3 -37
- data/_includes/base/calendar-init.html.liquid +7 -63
- data/_includes/base/calendar.html.liquid +3 -34
- data/_includes/base/card.html.liquid +4 -44
- data/_includes/base/color-table.html.liquid +18 -4
- data/_includes/base/configuration_variables-default-cell.html.liquid +6 -50
- data/_includes/base/configuration_variables-nested.html.liquid +6 -7
- data/_includes/base/configuration_variables.html.liquid +9 -11
- data/_includes/base/content.html.liquid +7 -4
- data/_includes/base/copyright.html.liquid +8 -39
- data/_includes/base/copyvalue.html.liquid +3 -70
- data/_includes/base/datatable.html.liquid +4 -40
- data/_includes/base/download.html.liquid +12 -66
- data/_includes/base/download_architecture.html.liquid +29 -117
- data/_includes/base/download_commands.html.liquid +2 -14
- data/_includes/base/download_documentation.html.liquid +13 -47
- data/_includes/base/download_eol.html.liquid +5 -15
- data/_includes/base/download_filevalue.html.liquid +9 -49
- data/_includes/base/download_screenshots.html.liquid +10 -65
- data/_includes/base/download_sections.html.liquid +2 -19
- data/_includes/base/event.html.liquid +8 -63
- data/_includes/base/fontawesome.html.liquid +4 -38
- data/_includes/base/footer.html.liquid +9 -2
- data/_includes/base/head.html.liquid +6 -47
- data/_includes/base/highlight.html.liquid +4 -37
- data/_includes/base/image.html.liquid +5 -22
- data/_includes/base/link.html.liquid +38 -57
- data/_includes/base/locales.html.liquid +6 -26
- data/_includes/base/navbar.html.liquid +16 -45
- data/_includes/base/navindex.html.liquid +40 -111
- data/_includes/base/ogp.html.liquid +17 -83
- data/_includes/base/preview.html.liquid +18 -57
- data/_includes/base/project.html.liquid +4 -29
- data/_includes/base/shortcut.html.liquid +7 -37
- data/_includes/base/social.html.liquid +4 -42
- data/_includes/base/sponsors-cards.html.liquid +4 -55
- data/_includes/base/sponsors-carousel.html.liquid +11 -59
- data/_includes/base/sponsors-data.html.liquid +32 -0
- data/_includes/base/title.html.liquid +5 -42
- data/_includes/base/toc-generator.html.liquid +4 -0
- data/_includes/base/toc.html.liquid +28 -81
- data/_sass/base/_customization.scss +18 -0
- data/_sass/base/_preview.scss +5 -9
- data/assets/icons/favicon.ico +0 -0
- data/assets/js/base/backtotop.js +3 -3
- data/assets/js/base/copyvalue.js +15 -11
- data/assets/js/base/datatable.js +6 -13
- data/assets/js/base/highlight.js +46 -31
- metadata +2 -1
|
@@ -27,6 +27,13 @@ properties:
|
|
|
27
27
|
type: string
|
|
28
28
|
default: ""
|
|
29
29
|
description: Introductory text rendered above the carousel, supports Markdown.
|
|
30
|
+
closing_message:
|
|
31
|
+
type: string
|
|
32
|
+
default: ""
|
|
33
|
+
description: >-
|
|
34
|
+
Closing text rendered below the carousel, supports Markdown. Use it
|
|
35
|
+
to invite visitors to act, e.g. to link to a page about becoming a
|
|
36
|
+
sponsor.
|
|
30
37
|
# NOTE: this default is hardcoded to match examples/jekyll/components/
|
|
31
38
|
# sponsors.md's current page.url (/components/sponsors/), not computed
|
|
32
39
|
# from it (YAML can't run Liquid). If that page is ever renamed or its
|
|
@@ -79,4 +86,17 @@ properties:
|
|
|
79
86
|
required:
|
|
80
87
|
- members
|
|
81
88
|
additionalProperties: false
|
|
89
|
+
id:
|
|
90
|
+
type: string
|
|
91
|
+
default: sponsorsCarousel
|
|
92
|
+
description: >-
|
|
93
|
+
Include parameter for `sponsors-carousel.html.liquid`. The DOM id of
|
|
94
|
+
the carousel wrapper. Give each carousel a distinct `id` when a page
|
|
95
|
+
shows more than one.
|
|
96
|
+
with_title:
|
|
97
|
+
type: boolean
|
|
98
|
+
default: true
|
|
99
|
+
description: >-
|
|
100
|
+
Include parameter for `sponsors-carousel.html.liquid`. Set to `false`
|
|
101
|
+
to hide the title, icon, and message above the carousel.
|
|
82
102
|
additionalProperties: false
|
data/_data/base/title_schema.yml
CHANGED
|
@@ -48,4 +48,18 @@ properties:
|
|
|
48
48
|
required:
|
|
49
49
|
- title
|
|
50
50
|
additionalProperties: false
|
|
51
|
+
row_class:
|
|
52
|
+
type: string
|
|
53
|
+
description: >-
|
|
54
|
+
Include parameter. CSS classes for the wrapping `div.row`. When
|
|
55
|
+
omitted, the content component's `row_class` default applies. The
|
|
56
|
+
content component passes its own `row_class` here, so every row
|
|
57
|
+
inside `<main>` shares the same spacing.
|
|
58
|
+
column_class:
|
|
59
|
+
type: string
|
|
60
|
+
description: >-
|
|
61
|
+
Include parameter. CSS classes for the column `div` inside the row.
|
|
62
|
+
When omitted, the content component's `col_class` default applies.
|
|
63
|
+
The content component passes its own `col_class` here, so every row
|
|
64
|
+
inside `<main>` shares the same column width.
|
|
51
65
|
additionalProperties: false
|
data/_data/base/toc_schema.yml
CHANGED
|
@@ -26,13 +26,13 @@ properties:
|
|
|
26
26
|
Multiple classes can be specified separated by spaces (e.g., `my-custom-class another-class`).
|
|
27
27
|
id:
|
|
28
28
|
type: string
|
|
29
|
-
default: ""
|
|
29
|
+
default: "page-toc"
|
|
30
30
|
description: >-
|
|
31
31
|
The HTML ID attribute assigned to the TOC root list element, used for targeting
|
|
32
32
|
with CSS or JavaScript (e.g., `page-toc`).
|
|
33
33
|
item_class:
|
|
34
34
|
type: string
|
|
35
|
-
default: ""
|
|
35
|
+
default: "my-2"
|
|
36
36
|
description: >-
|
|
37
37
|
CSS class(es) applied to each list item in the TOC. Supports the `%level%`
|
|
38
38
|
placeholder which is replaced with the current heading level (e.g., `my-2.%level%`).
|
|
@@ -111,4 +111,18 @@ properties:
|
|
|
111
111
|
Deprecated. Use `skip_no_ids` instead. When provided, a deprecation warning
|
|
112
112
|
comment is emitted in the HTML output.
|
|
113
113
|
additionalProperties: false
|
|
114
|
+
row_class:
|
|
115
|
+
type: string
|
|
116
|
+
description: >-
|
|
117
|
+
Include parameter. CSS classes for the wrapping `div.row`. When
|
|
118
|
+
omitted, the content component's `row_class` default applies. The
|
|
119
|
+
content component passes its own `row_class` here, so every row
|
|
120
|
+
inside `<main>` shares the same spacing.
|
|
121
|
+
column_class:
|
|
122
|
+
type: string
|
|
123
|
+
description: >-
|
|
124
|
+
Include parameter. CSS classes for the column `div` inside the row.
|
|
125
|
+
When omitted, the content component's `col_class` default applies.
|
|
126
|
+
The content component passes its own `col_class` here, so every row
|
|
127
|
+
inside `<main>` shares the same column width.
|
|
114
128
|
additionalProperties: false
|
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
{% comment %}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Purpose: Renders a single Bootstrap accordion-item (header/button/collapse/
|
|
5
|
-
body), the shared shell for one collapsible entry within an accordion.
|
|
6
|
-
Pairs with accordion.html.liquid, which renders the surrounding wrapper —
|
|
7
|
-
this component only renders one item; callers loop/capture as many as they
|
|
8
|
-
need and pass the concatenated result to accordion.html.liquid as `items`.
|
|
9
|
-
|
|
10
|
-
Design Logic:
|
|
11
|
-
- Bootstrap's accordion-item/header/button/collapse/body markup, driven
|
|
12
|
-
entirely by include parameters — no data-source fallback chain
|
|
13
|
-
- `item_id`/`accordion_id` scope this item's collapse behavior to the
|
|
14
|
-
caller-supplied parent accordion via `data-bs-parent`
|
|
15
|
-
- `expanded` toggles the initial open/closed state across button, collapse
|
|
16
|
-
container, and ARIA attributes together
|
|
17
|
-
|
|
18
|
-
Optional Inputs:
|
|
19
|
-
- title_class: Classes for the title span, replacing the "ms-1" default
|
|
20
|
-
(e.g. "ms-1 fw-bold" for a bold title).
|
|
21
|
-
- body_class: Extra classes appended to "accordion-body" (e.g. "p-0" to
|
|
22
|
-
remove body padding when the content supplies its own).
|
|
23
|
-
|
|
24
|
-
Data Source:
|
|
25
|
-
- Derived from include parameters only
|
|
26
|
-
================================================================================
|
|
2
|
+
accordion-item: renders one Bootstrap accordion item whose collapse is scoped to the parent accordion_id.
|
|
3
|
+
Schema: src/YAML/accordion_schema.yml
|
|
27
4
|
{% endcomment %}
|
|
28
5
|
|
|
29
6
|
{%- assign with_accordion_item_schema = site.data.base.accordion_schema.properties.item.properties %}
|
|
@@ -31,19 +8,21 @@ Data Source:
|
|
|
31
8
|
{%- assign accordion_item_icon = include.icon | default: with_accordion_item_schema.icon.default %}
|
|
32
9
|
{%- assign accordion_item_title = include.title | default: with_accordion_item_schema.title.default %}
|
|
33
10
|
{%- assign accordion_item_title_class = include.title_class | default: with_accordion_item_schema.title_class.default %}
|
|
11
|
+
{%- comment %} == nil tells an omitted header_class apart from an explicit "", which removes the heading style. {% endcomment %}
|
|
12
|
+
{%- assign accordion_item_header_class = include.header_class %}
|
|
13
|
+
{%- if include.header_class == nil %}
|
|
14
|
+
{%- assign accordion_item_header_class = with_accordion_item_schema.header_class.default %}
|
|
15
|
+
{%- endif %}
|
|
34
16
|
{%- assign accordion_item_item_id = include.item_id | default: with_accordion_item_schema.item_id.default %}
|
|
35
17
|
{%- assign accordion_item_accordion_id = include.accordion_id | default: with_accordion_item_schema.accordion_id.default %}
|
|
36
18
|
{%- assign accordion_item_expanded = include.expanded | default: with_accordion_item_schema.expanded.default %}
|
|
37
19
|
{%- assign accordion_item_body = include.body | default: with_accordion_item_schema.body.default %}
|
|
38
|
-
{%- assign accordion_item_body_class = include.body_class | default: with_accordion_item_schema.body_class.default
|
|
39
|
-
|
|
40
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
41
|
-
{%- comment %} --- HTML --- {% endcomment -%}
|
|
20
|
+
{%- assign accordion_item_body_class = include.body_class | default: with_accordion_item_schema.body_class.default -%}
|
|
42
21
|
<div class="accordion-item">
|
|
43
|
-
<div class="accordion-header
|
|
22
|
+
<div class="accordion-header{% if accordion_item_header_class != "" %} {{ accordion_item_header_class }}{% endif %}">
|
|
44
23
|
<button class="accordion-button{% unless accordion_item_expanded %} collapsed{% endunless %}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ accordion_item_item_id }}" aria-expanded="{{ accordion_item_expanded }}" aria-controls="{{ accordion_item_item_id }}">
|
|
45
|
-
<i class="{{ accordion_item_icon }} me-2"></i>
|
|
46
|
-
<span{%
|
|
24
|
+
<i class="{{ accordion_item_icon }} me-2" aria-hidden="true"></i>
|
|
25
|
+
<span{% if accordion_item_title_class != "" %} class="{{ accordion_item_title_class }}"{% endif %}>{{ accordion_item_title }}</span>
|
|
47
26
|
</button>
|
|
48
27
|
</div>
|
|
49
28
|
<div id="{{ accordion_item_item_id }}" class="accordion-collapse collapse{% if accordion_item_expanded %} show{% endif %}" data-bs-parent="#{{ accordion_item_accordion_id }}">
|
|
@@ -1,39 +1,13 @@
|
|
|
1
1
|
{% comment %}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Purpose: Renders the Bootstrap accordion wrapper `<div class="accordion"
|
|
5
|
-
id="...">`, given a pre-rendered HTML string of one or more accordion-item
|
|
6
|
-
includes. Pairs with accordion-item.html.liquid, which renders each
|
|
7
|
-
individual item — see that file for the item-level markup. Callers build
|
|
8
|
-
`items` via a capture tag: loop-and-append when the item count is dynamic
|
|
9
|
-
(see bits.html.liquid), or capture several sibling accordion-item includes
|
|
10
|
-
together when the items are fixed (see download_sections.html.liquid).
|
|
11
|
-
|
|
12
|
-
Design Logic:
|
|
13
|
-
- Wrapper only: no looping over structured item data — Jekyll's Liquid
|
|
14
|
-
include mechanism has no block/yield content-passing, so per-item body
|
|
15
|
-
content must already be caller-rendered HTML by the time it reaches this
|
|
16
|
-
component
|
|
17
|
-
- `id` is the scoping anchor every child accordion-item's `accordion_id`
|
|
18
|
-
parameter must match, via `data-bs-parent`
|
|
19
|
-
|
|
20
|
-
Optional Inputs:
|
|
21
|
-
- class: Extra classes appended to "accordion" (e.g. "accordion-flush
|
|
22
|
-
mt-3", "w-100 mb-3").
|
|
23
|
-
|
|
24
|
-
Data Source:
|
|
25
|
-
- Derived from include parameters only
|
|
26
|
-
================================================================================
|
|
2
|
+
accordion: renders a Bootstrap accordion wrapper around the caller-built accordion-item HTML passed as items.
|
|
3
|
+
Schema: src/YAML/accordion_schema.yml
|
|
27
4
|
{% endcomment %}
|
|
28
5
|
|
|
29
6
|
{%- assign with_accordion_schema = site.data.base.accordion_schema.properties %}
|
|
30
7
|
|
|
31
8
|
{%- assign accordion_id = include.id | default: with_accordion_schema.id.default %}
|
|
32
9
|
{%- assign accordion_class = include.class | default: with_accordion_schema.class.default %}
|
|
33
|
-
{%- assign accordion_items = include.items | default: with_accordion_schema.items.default
|
|
34
|
-
|
|
35
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
36
|
-
{%- comment %} --- HTML --- {% endcomment -%}
|
|
10
|
+
{%- assign accordion_items = include.items | default: with_accordion_schema.items.default -%}
|
|
37
11
|
<div class="accordion{% if accordion_class != "" %} {{ accordion_class }}{% endif %}" id="{{ accordion_id }}">
|
|
38
12
|
{{- accordion_items -}}
|
|
39
13
|
</div>
|
|
@@ -1,31 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Design Logic:
|
|
8
|
-
- Multi-level data source hierarchy for flexibility
|
|
9
|
-
- Dismissible alerts for user visibility management
|
|
10
|
-
- Icon and color support for visual categorization
|
|
11
|
-
- Looping structure for multiple announcements
|
|
12
|
-
- Consistent fallback chain for content
|
|
13
|
-
|
|
14
|
-
Required Inputs:
|
|
15
|
-
- content: The announcement message or HTML content
|
|
16
|
-
|
|
17
|
-
Optional Inputs:
|
|
18
|
-
- data: Array of announcement objects (overrides fallbacks)
|
|
19
|
-
- color: Alert color scheme (default: 'primary')
|
|
20
|
-
- icon: Icon class for Font Awesome (default: 'fa-solid fa-bullhorn')
|
|
21
|
-
|
|
22
|
-
Data Source Hierarchy (priority):
|
|
23
|
-
1. include.data
|
|
24
|
-
2. page.with_announcement_data
|
|
25
|
-
3. site.data.announcement
|
|
26
|
-
4. site.data.base.announcement
|
|
27
|
-
================================================================================
|
|
28
|
-
{%- endcomment %}
|
|
1
|
+
{% comment %}
|
|
2
|
+
announcement: renders each announcement as a dismissible alert with an icon.
|
|
3
|
+
Data: include.data > page.with_announcement_data > site.data.announcement > site.data.base.announcement
|
|
4
|
+
Schema: src/YAML/announcement_schema.yml
|
|
5
|
+
{% endcomment %}
|
|
29
6
|
|
|
30
7
|
{%- assign with_announcement = include.with_announcement
|
|
31
8
|
| default: page.with_announcement
|
|
@@ -40,22 +17,18 @@ Data Source Hierarchy (priority):
|
|
|
40
17
|
{%- if with_announcement %}
|
|
41
18
|
|
|
42
19
|
{%- assign with_announcement_schema = site.data.base.announcement_schema.properties.with_announcement_data.items.properties %}
|
|
43
|
-
|
|
44
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
45
20
|
{%- for announcement in with_announcement_data %}
|
|
46
|
-
|
|
47
|
-
{%- comment %} --- Defaults --- {% endcomment %}
|
|
48
21
|
{%- assign announcement_color = announcement.color | default: with_announcement_schema.color.default %}
|
|
49
22
|
{%- assign announcement_icon = announcement.icon | default: with_announcement_schema.icon.default %}
|
|
50
|
-
|
|
51
|
-
{%-
|
|
23
|
+
{%- comment %} The pinned Liquid has no remove_last, so split/join drops the trailing "</p>" markdownify adds. {% endcomment %}
|
|
24
|
+
{%- assign announcement_content_html = announcement.content | markdownify | strip | remove_first: "<p>" | split: "</p>" | join: "</p>" | strip %}
|
|
52
25
|
<div class="announcement alert alert-{{ announcement_color }} alert-dismissible fade show shadow mb-3" role="alert">
|
|
53
26
|
<div class="d-flex justify-content-between align-items-center">
|
|
54
27
|
<div class="me-3">
|
|
55
28
|
<div class="h6 my-1"><i class="{{ announcement_icon }}"></i></div>
|
|
56
29
|
</div>
|
|
57
30
|
<p class="flex-fill text-start mb-0">
|
|
58
|
-
{{-
|
|
31
|
+
{{- announcement_content_html }}
|
|
59
32
|
</p>
|
|
60
33
|
</div>
|
|
61
34
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
@@ -1,34 +1,7 @@
|
|
|
1
1
|
{% comment %}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
src/SASS/_customization.scss) at breakpoint-appropriate sizes.
|
|
6
|
-
================================================================================
|
|
7
|
-
|
|
8
|
-
Design Logic:
|
|
9
|
-
- Background image comes entirely from the .bg-artwork CSS class (breakpoint
|
|
10
|
-
URLs are hardcoded in SCSS) — this component does not accept a custom image
|
|
11
|
-
- Schema-based defaults for consistent styling
|
|
12
|
-
- role="img" + aria-label for accessibility, since there is no <img> element
|
|
13
|
-
|
|
14
|
-
Optional Inputs:
|
|
15
|
-
- alt: Text used as the element's aria-label
|
|
16
|
-
- class: Container div CSS classes
|
|
17
|
-
- image_class: CSS classes for the .bg-artwork element itself, including the Bootstrap
|
|
18
|
-
`ratio` + `ratio-*` modifier classes that control presentation ratio
|
|
19
|
-
- data: Artwork data object (overrides fallbacks)
|
|
20
|
-
- column_class: Bootstrap column class for the row wrapper (set by the layout to
|
|
21
|
-
keep this component aligned with the content column; defaults to "col")
|
|
22
|
-
- row_class: Bootstrap class(es) for the row wrapper (set by the layout to
|
|
23
|
-
keep this component's row aligned with breadcrumb, title, toc, and
|
|
24
|
-
content; defaults to "row mb-3")
|
|
25
|
-
|
|
26
|
-
Data Source Hierarchy (priority):
|
|
27
|
-
1. include.data
|
|
28
|
-
2. page.with_artwork_data
|
|
29
|
-
3. site.data.artwork
|
|
30
|
-
4. site.data.base.artwork
|
|
31
|
-
================================================================================
|
|
2
|
+
artwork: renders the .bg-artwork background box inside a row and column; content.html.liquid sets row_class and column_class.
|
|
3
|
+
Data: include.data > page.with_artwork_data > site.data.artwork > site.data.base.artwork
|
|
4
|
+
Schema: src/YAML/artwork_schema.yml
|
|
32
5
|
{% endcomment %}
|
|
33
6
|
|
|
34
7
|
{%- assign with_artwork = include.with_artwork
|
|
@@ -44,17 +17,11 @@ Data Source Hierarchy (priority):
|
|
|
44
17
|
{%- if with_artwork %}
|
|
45
18
|
|
|
46
19
|
{%- assign with_artwork_schema = site.data.base.artwork_schema.properties.with_artwork_data.properties %}
|
|
47
|
-
|
|
48
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
49
|
-
|
|
50
|
-
{%- comment %} --- Defaults --- {% endcomment %}
|
|
51
20
|
{%- assign artwork_alt = with_artwork_data.alt | default: with_artwork_schema.alt.default %}
|
|
52
21
|
{%- assign artwork_class = with_artwork_data.class | default: with_artwork_schema.class.default %}
|
|
53
22
|
{%- assign artwork_image_class = with_artwork_data.image_class | default: with_artwork_schema.image_class.default %}
|
|
54
|
-
{%- assign column_class = include.column_class | default:
|
|
55
|
-
{%- assign row_class = include.row_class | default:
|
|
56
|
-
|
|
57
|
-
{%- comment %} --- HTML --- {% endcomment %}
|
|
23
|
+
{%- assign column_class = include.column_class | default: site.data.base.content_schema.properties.with_content_data.properties.col_class.default %}
|
|
24
|
+
{%- assign row_class = include.row_class | default: site.data.base.content_schema.properties.with_content_data.properties.row_class.default %}
|
|
58
25
|
<div class="{{ row_class }}">
|
|
59
26
|
<div class="{{ column_class }}">
|
|
60
27
|
<div class="{{ artwork_class }}">
|
|
@@ -1,31 +1,7 @@
|
|
|
1
1
|
{% comment %}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Customizable size and colors with CDN-based loading.
|
|
6
|
-
================================================================================
|
|
7
|
-
|
|
8
|
-
Design Logic:
|
|
9
|
-
- CDN-based library loading for performance
|
|
10
|
-
- Configurable button size (diameter) and colors
|
|
11
|
-
- Floating button widget (standard UX pattern)
|
|
12
|
-
- Vanilla JavaScript (no jQuery dependency)
|
|
13
|
-
- Schema-based defaults
|
|
14
|
-
|
|
15
|
-
Optional Inputs:
|
|
16
|
-
- cdn: CDN base URL (defaults to unpkg.com)
|
|
17
|
-
- version: Library version (e.g., "7.0.4")
|
|
18
|
-
- diameter: Button diameter in pixels (default: 56)
|
|
19
|
-
- background_color: Button background color (CSS hex)
|
|
20
|
-
- text_color: Button text/icon color (CSS hex)
|
|
21
|
-
- data: Configuration object (overrides fallbacks)
|
|
22
|
-
|
|
23
|
-
Data Source Hierarchy (priority):
|
|
24
|
-
1. include.data
|
|
25
|
-
2. page.with_backtotop_data
|
|
26
|
-
3. site.data.backtotop
|
|
27
|
-
4. site.data.base.backtotop
|
|
28
|
-
================================================================================
|
|
2
|
+
backtotop: loads vanilla-back-to-top from the CDN and the theme script that creates the button.
|
|
3
|
+
Data: include.data > page.with_backtotop_data > site.data.backtotop > site.data.base.backtotop
|
|
4
|
+
Schema: src/YAML/backtotop_schema.yml
|
|
29
5
|
{% endcomment %}
|
|
30
6
|
|
|
31
7
|
{%- assign with_backtotop = include.with_backtotop
|
|
@@ -41,32 +17,17 @@ Data Source Hierarchy (priority):
|
|
|
41
17
|
{%- assign with_backtotop_schema = site.data.base.backtotop_schema.properties.with_backtotop_data.properties %}
|
|
42
18
|
|
|
43
19
|
{%- if with_backtotop %}
|
|
44
|
-
|
|
45
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
46
|
-
|
|
47
|
-
{%- comment %} --- Defaults --- {% endcomment %}
|
|
48
20
|
{%- assign backtotop_cdn = with_backtotop_data.cdn | default: with_backtotop_schema.cdn.default %}
|
|
49
21
|
{%- assign backtotop_version = with_backtotop_data.version | default: with_backtotop_schema.version.default %}
|
|
50
22
|
{%- assign backtotop_script_integrity = with_backtotop_data.script_integrity | default: with_backtotop_schema.script_integrity.default %}
|
|
51
23
|
{%- assign backtotop_diameter = with_backtotop_data.diameter | default: with_backtotop_schema.diameter.default %}
|
|
52
24
|
{%- assign backtotop_background_color = with_backtotop_data.background_color | default: with_backtotop_schema.background_color.default %}
|
|
53
25
|
{%- assign backtotop_text_color = with_backtotop_data.text_color | default: with_backtotop_schema.text_color.default %}
|
|
54
|
-
|
|
55
|
-
{%- comment %} --- HTML --- {% endcomment %}
|
|
56
|
-
<!-- Load vanilla-back-to-top library from CDN -->
|
|
57
26
|
<script src="{{ backtotop_cdn }}/vanilla-back-to-top@{{ backtotop_version }}/dist/vanilla-back-to-top.min.js" integrity="{{ backtotop_script_integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
|
|
58
|
-
|
|
59
|
-
<!-- Initialize back-to-top button with configuration via data attributes -->
|
|
60
27
|
<script id="centos-backtop"
|
|
61
|
-
{%- if with_backtotop_data.diameter %}
|
|
62
28
|
data-diameter="{{ backtotop_diameter }}"
|
|
63
|
-
{%- endif %}
|
|
64
|
-
{%- if with_backtotop_data.background_color %}
|
|
65
29
|
data-background-color="{{ backtotop_background_color }}"
|
|
66
|
-
{%- endif %}
|
|
67
|
-
{%- if with_backtotop_data.text_color %}
|
|
68
30
|
data-text-color="{{ backtotop_text_color }}"
|
|
69
|
-
{%- endif %}
|
|
70
31
|
src="{{ site.baseurl }}/assets/js/base/backtotop.min.js"
|
|
71
32
|
defer></script>
|
|
72
33
|
|
|
@@ -1,47 +1,7 @@
|
|
|
1
1
|
{% comment %}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
preamble/card/finale block, followed by its related downstream Bits in one
|
|
6
|
-
of two switchable presentation styles.
|
|
7
|
-
|
|
8
|
-
Design Logic:
|
|
9
|
-
- Hierarchical relationships: upstream parent, downstream children, linked
|
|
10
|
-
by matching `relationship` to the upstream's `name`
|
|
11
|
-
- Card-based presentation: reuses base/card.html.liquid for the upstream Bit
|
|
12
|
-
- Switchable downstream presentation, picked per upstream Bit via
|
|
13
|
-
`downstream_style`: `card` (default, fixed 3-item preview grid) or
|
|
14
|
-
`accordion` (every related item, optionally capped via `downstream_limit`)
|
|
15
|
-
- Optional sections: preamble, finale, "View All" link (shown once the
|
|
16
|
-
downstream count exceeds the effective style cap)
|
|
17
|
-
- Per-item downstream card width: each downstream Bit's own `col_class`
|
|
18
|
-
(card style only) controls its Bootstrap grid column class, so cards in the
|
|
19
|
-
same row need not be equal width
|
|
20
|
-
|
|
21
|
-
Required Inputs (from data objects):
|
|
22
|
-
- type: 'upstream' or 'downstream'
|
|
23
|
-
- name: Component name
|
|
24
|
-
- relationship: For downstream, name of its upstream parent
|
|
25
|
-
|
|
26
|
-
Optional Inputs (from data objects):
|
|
27
|
-
- description, screenshot, icon, image, actions, color
|
|
28
|
-
- preamble, finale: Text before/after the upstream card; each falls back to
|
|
29
|
-
its own schema-documented default when omitted — set explicitly to `false`
|
|
30
|
-
or an empty string to render neither element instead
|
|
31
|
-
- class, card_class, preamble_class, finale_class: Custom styling
|
|
32
|
-
- downstream_style: 'card' (default) or 'accordion'
|
|
33
|
-
- downstream_limit: accordion style only; caps items shown, omit for
|
|
34
|
-
unlimited (all shown, "View All" link never rendered)
|
|
35
|
-
- col_class: card style only; Bootstrap column class per downstream card
|
|
36
|
-
(default: three-across)
|
|
37
|
-
- index_page_name, index_page_url: For the "View All" link
|
|
38
|
-
|
|
39
|
-
Data Source Hierarchy (priority order):
|
|
40
|
-
1. include.data
|
|
41
|
-
2. page.with_bits_data
|
|
42
|
-
3. site.data.bits
|
|
43
|
-
4. site.data.base.bits
|
|
44
|
-
================================================================================
|
|
2
|
+
bits: renders each upstream bit as a card followed by its downstream bits as a card grid or an accordion.
|
|
3
|
+
Data: include.data > page.with_bits_data > site.data.bits > site.data.base.bits
|
|
4
|
+
Schema: src/YAML/bits_schema.yml
|
|
45
5
|
{% endcomment %}
|
|
46
6
|
|
|
47
7
|
{%- assign with_bits = include.with_bits
|
|
@@ -57,12 +17,8 @@ Data Source Hierarchy (priority order):
|
|
|
57
17
|
{%- assign with_bits_schema = site.data.base.bits_schema.properties.with_bits_data.items.properties %}
|
|
58
18
|
|
|
59
19
|
{%- if with_bits %}
|
|
60
|
-
|
|
61
|
-
{%- comment %} === Presentation === {% endcomment %}
|
|
62
20
|
{%- assign upstream_bits = with_bits_data | where: "type", "upstream" %}
|
|
63
21
|
{%- for upstream_bit in upstream_bits %}
|
|
64
|
-
|
|
65
|
-
{%- comment %} --- Upstream Defaults --- {% endcomment %}
|
|
66
22
|
{%- assign upstream_bit_id = upstream_bit.name | replace: " ", "" | capitalize %}
|
|
67
23
|
{%- assign upstream_bit_class = upstream_bit.class | default: with_bits_schema.class.default %}
|
|
68
24
|
{%- assign upstream_bit_card_class = upstream_bit.card_class | default: with_bits_schema.card_class.default %}
|
|
@@ -73,6 +29,7 @@ Data Source Hierarchy (priority order):
|
|
|
73
29
|
{%- assign upstream_bit_index_page_url = upstream_bit.index_page_url | default: with_bits_schema.index_page_url.default %}
|
|
74
30
|
{%- assign upstream_bit_screenshot_class = upstream_bit.screenshot_class | default: with_bits_schema.screenshot_class.default %}
|
|
75
31
|
{%- assign upstream_bit_actions_class = upstream_bit.actions_class | default: with_bits_schema.actions_class.default %}
|
|
32
|
+
{%- comment %} == nil tells an omitted preamble or finale apart from an explicit false or "", which hide it. {% endcomment %}
|
|
76
33
|
{%- assign upstream_bit_preamble = upstream_bit.preamble %}
|
|
77
34
|
{%- if upstream_bit.preamble == nil %}
|
|
78
35
|
{%- assign upstream_bit_preamble = with_bits_schema.preamble.default %}
|
|
@@ -81,19 +38,18 @@ Data Source Hierarchy (priority order):
|
|
|
81
38
|
{%- if upstream_bit.finale == nil %}
|
|
82
39
|
{%- assign upstream_bit_finale = with_bits_schema.finale.default %}
|
|
83
40
|
{%- endif %}
|
|
84
|
-
{%-
|
|
41
|
+
{%- comment %} The pinned Liquid has no remove_last, so split/join drops the trailing "</p>" markdownify adds. {% endcomment %}
|
|
42
|
+
{%- assign upstream_bit_preamble_html = upstream_bit_preamble | markdownify | strip | remove_first: "<p>" | split: "</p>" | join: "</p>" | strip %}
|
|
43
|
+
{%- assign upstream_bit_finale_html = upstream_bit_finale | markdownify | strip | remove_first: "<p>" | split: "</p>" | join: "</p>" | strip %}
|
|
44
|
+
{%- assign upstream_bit_btn_class = "btn btn-sm m-1 btn-{color}" | replace: "{color}", upstream_bit_color %}
|
|
85
45
|
{%- assign upstream_bit_downstream_style = upstream_bit.downstream_style | default: with_bits_schema.downstream_style.default %}
|
|
86
46
|
{%- assign upstream_bit_downstream_limit = upstream_bit.downstream_limit %}
|
|
87
47
|
{%- assign card_style_downstream_cap = 3 %}
|
|
88
48
|
|
|
89
49
|
<div class="d-flex flex-column{% if upstream_bit_class != "" %} {{ upstream_bit_class }}{% endif %}">
|
|
90
|
-
|
|
91
|
-
{%- comment %} --- Upstream Preamble --- {% endcomment %}
|
|
92
50
|
{%- if upstream_bit_preamble and upstream_bit_preamble != empty %}
|
|
93
|
-
<p{% if upstream_bit_preamble_class != "" %} class="{{ upstream_bit_preamble_class }}"{% endif %}>{{
|
|
51
|
+
<p{% if upstream_bit_preamble_class != "" %} class="{{ upstream_bit_preamble_class }}"{% endif %}>{{ upstream_bit_preamble_html }}</p>
|
|
94
52
|
{%- endif %}
|
|
95
|
-
|
|
96
|
-
{%- comment %} --- Upstream Card --- {% endcomment %}
|
|
97
53
|
{%- include base/card.html.liquid
|
|
98
54
|
class = upstream_bit_card_class
|
|
99
55
|
screenshot = upstream_bit.screenshot
|
|
@@ -114,8 +70,6 @@ Data Source Hierarchy (priority order):
|
|
|
114
70
|
actions_class = upstream_bit_actions_class
|
|
115
71
|
color = upstream_bit_color
|
|
116
72
|
-%}
|
|
117
|
-
|
|
118
|
-
{%- comment %} --- Upstream Finale (Downstream Introduction) --- {% endcomment %}
|
|
119
73
|
{%- assign downstream_bits = with_bits_data | where: "type", "downstream" | where: "relationship", upstream_bit.name %}
|
|
120
74
|
{%- assign downstream_bit_total = downstream_bits | size %}
|
|
121
75
|
{%- assign downstream_bit_index_name = upstream_bit_index_page_name | append: " (" | append: downstream_bit_total | append: ")" %}
|
|
@@ -132,7 +86,7 @@ Data Source Hierarchy (priority order):
|
|
|
132
86
|
|
|
133
87
|
{%- if upstream_bit_finale and upstream_bit_finale != empty %}
|
|
134
88
|
<div class="d-flex flex-row w-100 justify-content-between align-items-center">
|
|
135
|
-
<p class="m-1{% if upstream_bit_finale_class != "" %} {{ upstream_bit_finale_class }}{% endif %}">{{
|
|
89
|
+
<p class="m-1{% if upstream_bit_finale_class != "" %} {{ upstream_bit_finale_class }}{% endif %}">{{ upstream_bit_finale_html }}</p>
|
|
136
90
|
{%- if show_index_link %}
|
|
137
91
|
<div class="m-1">
|
|
138
92
|
{%- include base/link.html.liquid
|
|
@@ -146,8 +100,6 @@ Data Source Hierarchy (priority order):
|
|
|
146
100
|
{%- endif %}
|
|
147
101
|
</div>
|
|
148
102
|
{%- endif %}
|
|
149
|
-
|
|
150
|
-
{%- comment %} --- Downstream Items --- {% endcomment %}
|
|
151
103
|
{%- if downstream_display_limit %}
|
|
152
104
|
{%- assign visible_downstream_bits = downstream_bits | slice: 0, downstream_display_limit %}
|
|
153
105
|
{%- else %}
|
|
@@ -163,23 +115,11 @@ Data Source Hierarchy (priority order):
|
|
|
163
115
|
|
|
164
116
|
{%- capture downstream_items_html %}
|
|
165
117
|
{%- for downstream_bit in visible_downstream_bits %}
|
|
166
|
-
{%- assign
|
|
167
|
-
{%- capture downstream_bit_action_button %}
|
|
168
|
-
{%- if downstream_bit_first_action %}
|
|
169
|
-
{%- include base/link.html.liquid
|
|
170
|
-
name = downstream_bit_first_action.name
|
|
171
|
-
link = downstream_bit_first_action.link
|
|
172
|
-
class = upstream_bit_btn_class
|
|
173
|
-
icon = downstream_bit_first_action.icon
|
|
174
|
-
icon_position = downstream_bit_first_action.icon_position
|
|
175
|
-
-%}
|
|
176
|
-
{%- endif %}
|
|
177
|
-
{%- endcapture %}
|
|
178
|
-
|
|
118
|
+
{%- assign downstream_bit_description_html = downstream_bit.description | markdownify | strip | remove_first: "<p>" | split: "</p>" | join: "</p>" | strip %}
|
|
179
119
|
{%- capture downstream_bit_media %}
|
|
180
120
|
{% if downstream_bit.screenshot and downstream_bit.screenshot != "" %}
|
|
181
121
|
<div class="bg-{{ upstream_bit_color }} rounded-top">
|
|
182
|
-
<img src="{{ site.baseurl }}/assets/img/{{ downstream_bit.screenshot }}" class="{{ downstream_item_img_class }}" alt="{{ downstream_bit.screenshot }}">
|
|
122
|
+
<img src="{{ site.baseurl }}/assets/img/{{ downstream_bit.screenshot }}" class="{{ downstream_item_img_class }}" alt="{{ downstream_bit.screenshot_alt | default: downstream_bit.screenshot }}">
|
|
183
123
|
</div>
|
|
184
124
|
{% endif %}
|
|
185
125
|
{%- endcapture %}
|
|
@@ -204,7 +144,7 @@ Data Source Hierarchy (priority order):
|
|
|
204
144
|
{%- endcapture %}
|
|
205
145
|
{%- capture downstream_bit_body %}
|
|
206
146
|
{{- downstream_bit_media | strip -}}
|
|
207
|
-
<p class="card-text mt-3">{{
|
|
147
|
+
<p class="card-text mt-3">{{ downstream_bit_description_html }}</p>
|
|
208
148
|
{{ downstream_bit_actions_full }}
|
|
209
149
|
{%- endcapture %}
|
|
210
150
|
{%- include base/accordion-item.html.liquid
|
|
@@ -217,12 +157,24 @@ Data Source Hierarchy (priority order):
|
|
|
217
157
|
-%}
|
|
218
158
|
{%- else %}
|
|
219
159
|
{%- assign downstream_bit_col_class = downstream_bit.col_class | default: with_bits_schema.col_class.default %}
|
|
160
|
+
{%- assign downstream_bit_first_action = downstream_bit.actions | first %}
|
|
161
|
+
{%- capture downstream_bit_action_button %}
|
|
162
|
+
{%- if downstream_bit_first_action %}
|
|
163
|
+
{%- include base/link.html.liquid
|
|
164
|
+
name = downstream_bit_first_action.name
|
|
165
|
+
link = downstream_bit_first_action.link
|
|
166
|
+
class = upstream_bit_btn_class
|
|
167
|
+
icon = downstream_bit_first_action.icon
|
|
168
|
+
icon_position = downstream_bit_first_action.icon_position
|
|
169
|
+
-%}
|
|
170
|
+
{%- endif %}
|
|
171
|
+
{%- endcapture %}
|
|
220
172
|
<div class="{{ downstream_bit_col_class }}">
|
|
221
173
|
<div class="card border-{{ upstream_bit_color }}-subtle h-100">
|
|
222
174
|
{{- downstream_bit_media | strip -}}
|
|
223
175
|
<div class="card-body">
|
|
224
176
|
<p class="h5 card-title">{{ downstream_bit.name }}</p>
|
|
225
|
-
<p class="card-text">{{
|
|
177
|
+
<p class="card-text">{{ downstream_bit_description_html }}</p>
|
|
226
178
|
{{ downstream_bit_action_button }}
|
|
227
179
|
</div>
|
|
228
180
|
</div>
|