jekyll-theme-centos 2.52.0.beta.52 → 2.52.0.beta.54
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/bits_schema.yml +5 -4
- data/_data/base/heading_anchor.yml +4 -0
- data/_data/base/heading_anchor_schema.yml +37 -0
- data/_data/base/link_schema.yml +101 -67
- data/_data/base/locales_schema.yml +1 -1
- data/_data/base/{content_schema.yml → partials/content_schema.yml} +1 -1
- data/_data/base/partials/footer.yml +9 -0
- data/_data/base/partials/footer_schema.yml +55 -0
- data/_data/base/project_schema.yml +8 -4
- data/_data/base/title_schema.yml +1 -1
- data/_data/base/toc_schema.yml +16 -2
- data/_includes/base/announcement.html.liquid +19 -7
- data/_includes/base/artwork.html.liquid +18 -6
- data/_includes/base/backtotop.html.liquid +20 -6
- data/_includes/base/bits.html.liquid +31 -18
- data/_includes/base/breadcrumb.html.liquid +7 -1
- data/_includes/base/breakingnews.html.liquid +19 -7
- data/_includes/base/card.html.liquid +43 -29
- data/_includes/base/configuration-variables-nested.html.liquid +1 -1
- data/_includes/base/configuration-variables.html.liquid +3 -3
- data/_includes/base/copyright.html.liquid +18 -6
- data/_includes/base/copyvalue.html.liquid +19 -5
- data/_includes/base/datatable.html.liquid +20 -6
- data/_includes/base/event.html.liquid +33 -21
- data/_includes/base/fontawesome.html.liquid +21 -7
- data/_includes/base/heading_anchor.html.liquid +62 -0
- data/_includes/base/highlight.html.liquid +19 -5
- data/_includes/base/link.html.liquid +47 -53
- data/_includes/base/locales.html.liquid +41 -30
- data/_includes/base/navindex.html.liquid +14 -2
- data/_includes/base/ogp.html.liquid +89 -75
- data/_includes/base/partials/footer.html.liquid +69 -0
- data/_includes/base/partials/head.html.liquid +93 -0
- data/_includes/base/{navbar.html.liquid → partials/navbar.html.liquid} +22 -12
- data/_includes/base/{script.html.liquid → partials/script.html.liquid} +7 -19
- data/_includes/base/project.html.liquid +34 -22
- data/_includes/base/shortcut.html.liquid +32 -24
- data/_includes/base/social.html.liquid +33 -23
- data/_includes/base/sponsors-cards.html.liquid +17 -6
- data/_includes/base/sponsors-carousel.html.liquid +21 -8
- data/_includes/base/title.html.liquid +21 -10
- data/_includes/base/toc.html.liquid +2 -2
- data/_layouts/base/default.html +8 -8
- data/_sass/base/_customization.scss +47 -0
- data/assets/img/base/page-layout-default.png +0 -0
- data/assets/img/base/page-layout-default.svg +878 -1241
- data/assets/img/base/page-with-backtotop.png +0 -0
- data/assets/img/base/page-with-backtotop.svg +800 -573
- data/assets/img/base/page-with-copyright.png +0 -0
- data/assets/img/base/page-with-copyright.svg +818 -645
- data/assets/img/base/page-with-footer.png +0 -0
- data/assets/img/base/page-with-footer.svg +1018 -0
- data/assets/img/base/page-with-link.png +0 -0
- data/assets/img/base/page-with-link.svg +142 -139
- data/assets/img/base/page-with-locales.png +0 -0
- data/assets/img/base/page-with-locales.svg +795 -577
- data/assets/img/base/page-with-shortcut.png +0 -0
- data/assets/img/base/page-with-shortcut.svg +796 -569
- data/assets/img/base/page-with-social.png +0 -0
- data/assets/img/base/page-with-social.svg +811 -673
- data/assets/img/base/page-with-sponsors.png +0 -0
- data/assets/img/base/page-with-sponsors.svg +795 -568
- data/assets/js/base/heading-anchor.js +108 -0
- data/assets/js/base/init-tooltips.js +5 -4
- metadata +20 -13
- data/_data/base/toc_generator_schema.yml +0 -102
- data/_includes/base/footer.html.liquid +0 -62
- data/_includes/base/head.html.liquid +0 -101
- /data/_data/base/{content.yml → partials/content.yml} +0 -0
- /data/_data/base/{head_schema.yml → partials/head_schema.yml} +0 -0
- /data/_data/base/{navbar.yml → partials/navbar.yml} +0 -0
- /data/_data/base/{navbar_schema.yml → partials/navbar_schema.yml} +0 -0
- /data/_data/base/{script_schema.yml → partials/script_schema.yml} +0 -0
- /data/_includes/base/{toc_generator.html.liquid → toc-generator.html.liquid} +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{% comment %}
|
|
2
|
+
================================================================================
|
|
3
|
+
Template: Page Head Section Component
|
|
4
|
+
Purpose: Generates complete HTML <head> section with meta tags, stylesheets,
|
|
5
|
+
icons, fonts, and conditional library includes.
|
|
6
|
+
================================================================================
|
|
7
|
+
|
|
8
|
+
Design Logic:
|
|
9
|
+
- Comprehensive meta tags: charset, viewport, responsive design
|
|
10
|
+
- Dynamic title generation: page title + site title
|
|
11
|
+
- Favicon support: multiple formats (16x16, 32x32, SVG, Apple Touch)
|
|
12
|
+
- Google Fonts: Montserrat and Source Code Pro preloaded
|
|
13
|
+
- Breakingnews scroll offset: dynamic CSS calculation
|
|
14
|
+
- Conditional includes: OGP, Font Awesome, Highlight.js, DataTables
|
|
15
|
+
- CSS prioritization: custom stylesheet last for override
|
|
16
|
+
|
|
17
|
+
Required Inputs:
|
|
18
|
+
- page.title: Current page title
|
|
19
|
+
- site.title: Site name/title
|
|
20
|
+
- site.baseurl: Base URL for asset paths
|
|
21
|
+
|
|
22
|
+
Optional Inputs:
|
|
23
|
+
- page.with_ogp, page.with_fontawesome: Include OGP/Font Awesome (boolean)
|
|
24
|
+
- page.with_breakingnews, page.with_highlight: Include breaking news/highlight
|
|
25
|
+
- page.with_datatable: Include DataTables (boolean)
|
|
26
|
+
- page.with_breakingnews_data: Array of breaking news items
|
|
27
|
+
================================================================================
|
|
28
|
+
{% endcomment %}
|
|
29
|
+
|
|
30
|
+
<head>
|
|
31
|
+
{% if page.title == site.title -%}
|
|
32
|
+
<title>{{ page.title }}</title>
|
|
33
|
+
{% else -%}
|
|
34
|
+
<title>{{ page.title }} - {{ site.title }}</title>
|
|
35
|
+
{% endif -%}
|
|
36
|
+
<meta charset="utf-8" />
|
|
37
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no" />
|
|
38
|
+
{% include base/ogp.html.liquid %}
|
|
39
|
+
<link rel="icon" href="{{ site.baseurl }}/assets/icons/favicon-16.png" sizes="16x16" />
|
|
40
|
+
<link rel="icon" href="{{ site.baseurl }}/assets/icons/favicon-32.png" sizes="32x32" />
|
|
41
|
+
<link rel="icon" href="{{ site.baseurl }}/assets/icons/favicon.svg" sizes="any" />
|
|
42
|
+
<link rel="apple-touch-icon" href="{{ site.baseurl }}/assets/icons/apple-touch-icon.png" sizes="180x180" />
|
|
43
|
+
<link rel="manifest" href="{{ site.baseurl }}/site.webmanifest" />
|
|
44
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
45
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
46
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Source+Code+Pro:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap" />
|
|
47
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap" />
|
|
48
|
+
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/base/stylesheet.min.css" />
|
|
49
|
+
{%- comment %}
|
|
50
|
+
Dynamic Breaking News Offset CSS
|
|
51
|
+
Adjust scroll-margin-top values based on the number of breaking news items.
|
|
52
|
+
Uses CSS custom properties for cleaner, more maintainable dynamic styling.
|
|
53
|
+
{%- endcomment %}
|
|
54
|
+
{%- assign breakingnews = page.with_breakingnews_data | default: site.data.breakingnews | default: site.data.base.breakingnews %}
|
|
55
|
+
{%- if page.with_breakingnews == true and breakingnews.size > 0 %}
|
|
56
|
+
{%- assign breakingnews_alert_height = 31 %}
|
|
57
|
+
{%- assign navbar_height = 42 %}
|
|
58
|
+
{%- assign breakingnews_offset = 0 %}
|
|
59
|
+
{%- for item in breakingnews %}
|
|
60
|
+
{%- if forloop.first %}
|
|
61
|
+
{%- assign breakingnews_offset = breakingnews_alert_height | plus: navbar_height %}
|
|
62
|
+
{%- else %}
|
|
63
|
+
{%- assign breakingnews_offset = breakingnews_offset | plus: breakingnews_alert_height %}
|
|
64
|
+
{%- endif %}
|
|
65
|
+
{%- endfor %}
|
|
66
|
+
{%- assign heading_margin_px = 48 %}
|
|
67
|
+
{%- assign heading_scroll_margin_height = breakingnews_offset | plus: heading_margin_px %}
|
|
68
|
+
{%- assign accordion_scroll_margin_height = breakingnews_offset %}
|
|
69
|
+
<style>
|
|
70
|
+
:root {
|
|
71
|
+
--calculated-heading-offset: {{ heading_scroll_margin_height }}px;
|
|
72
|
+
--calculated-accordion-offset: {{ accordion_scroll_margin_height }}px;
|
|
73
|
+
}
|
|
74
|
+
main {
|
|
75
|
+
.content > h1,
|
|
76
|
+
.content > h2,
|
|
77
|
+
.content > h3,
|
|
78
|
+
.content > h4,
|
|
79
|
+
.content > h5,
|
|
80
|
+
.content > h6 {
|
|
81
|
+
scroll-margin-top: calc(var(--calculated-heading-offset) * 1.3) !important;
|
|
82
|
+
}
|
|
83
|
+
.content .accordion,
|
|
84
|
+
.content .accordion-item {
|
|
85
|
+
scroll-margin-top: calc(var(--calculated-accordion-offset) * 1.5) !important;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
</style>
|
|
89
|
+
{%- endif %}
|
|
90
|
+
{% include base/fontawesome.html.liquid type="head" %}
|
|
91
|
+
{% include base/highlight.html.liquid type="head" %}
|
|
92
|
+
{% include base/datatable.html.liquid type="head" %}
|
|
93
|
+
</head>
|
|
@@ -26,21 +26,31 @@ Data Source Hierarchy (priority):
|
|
|
26
26
|
1. include.data
|
|
27
27
|
2. page.with_navbar_data
|
|
28
28
|
3. site.data.navbar
|
|
29
|
-
4. site.data.base.navbar
|
|
29
|
+
4. site.data.base.partials.navbar
|
|
30
30
|
================================================================================
|
|
31
31
|
{% endcomment %}
|
|
32
32
|
|
|
33
|
-
{%-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
{%- assign
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{%- assign
|
|
33
|
+
{%- assign with_navbar = include.with_navbar
|
|
34
|
+
| default: page.with_navbar
|
|
35
|
+
%}
|
|
36
|
+
|
|
37
|
+
{%- assign with_navbar_data = include.data
|
|
38
|
+
| default: page.with_navbar_data
|
|
39
|
+
| default: site.data.navbar
|
|
40
|
+
| default: site.data.base.partials.navbar
|
|
41
|
+
%}
|
|
42
|
+
|
|
43
|
+
{%- assign with_navbar_schema = site.data.base.partials.navbar_schema.properties.with_navbar_data.properties %}
|
|
44
|
+
|
|
45
|
+
{%- if with_navbar %}
|
|
46
|
+
|
|
47
|
+
{%- assign navbar_class = with_navbar_data.class | default: with_navbar_schema.class.default %}
|
|
48
|
+
{%- assign navbar_brand_image = with_navbar_data.brand_image | default: with_navbar_schema.brand_image.default %}
|
|
49
|
+
{%- assign navbar_brand_image_class = with_navbar_data.brand_image_class | default: with_navbar_schema.brand_image_class.default %}
|
|
50
|
+
{%- assign navbar_brand_image_height = with_navbar_data.brand_image_height | default: with_navbar_schema.brand_image_height.default %}
|
|
51
|
+
{%- assign navbar_brand_manifestation = with_navbar_data.brand_manifestation | default: with_navbar_schema.brand_manifestation.default %}
|
|
52
|
+
{%- assign navbar_brand_manifestation_class = with_navbar_data.brand_manifestation_class | default: with_navbar_schema.brand_manifestation_class.default %}
|
|
53
|
+
{%- assign navbar_navitems = with_navbar_data.navitems | where: "visible_on", "navbar" | default: with_navbar_schema.navitems.default %}
|
|
44
54
|
|
|
45
55
|
<nav class="navbar bg-dark fixed-top navbar-expand-lg shadow{% if navbar_class != "" %} {{ navbar_class }}{% endif %}" aria-label="{{ include.arialable | default: 'navbar'}}" data-bs-theme="dark">
|
|
46
56
|
<div class="container">
|
|
@@ -22,6 +22,7 @@ Conditional Inputs (from page front matter):
|
|
|
22
22
|
- page.with_datatable: Load DataTables (boolean)
|
|
23
23
|
- page.with_backtotop: Load Back-to-Top (boolean)
|
|
24
24
|
- page.with_copyvalue: Load Copy Value functionality (boolean)
|
|
25
|
+
- page.with_heading_anchor: Load Heading Anchor copy behavior (boolean)
|
|
25
26
|
|
|
26
27
|
Bootstrap Tooltip Initialization:
|
|
27
28
|
```javascript
|
|
@@ -38,22 +39,9 @@ Dependencies:
|
|
|
38
39
|
<script src="{{ site.baseurl }}/assets/js/bootstrap.bundle.min.js"></script>
|
|
39
40
|
<script src="{{ site.baseurl }}/assets/js/base/init-tooltips.min.js"></script>
|
|
40
41
|
|
|
41
|
-
{
|
|
42
|
-
{
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
{
|
|
47
|
-
{% endif -%}
|
|
48
|
-
|
|
49
|
-
{% if page.with_datatable %}
|
|
50
|
-
{% include base/datatable.html.liquid type="script" %}
|
|
51
|
-
{% endif %}
|
|
52
|
-
|
|
53
|
-
{% if page.with_backtotop -%}
|
|
54
|
-
{% include base/backtotop.html.liquid %}
|
|
55
|
-
{% endif %}
|
|
56
|
-
|
|
57
|
-
{% if page.with_copyvalue -%}
|
|
58
|
-
{% include base/copyvalue.html.liquid %}
|
|
59
|
-
{% endif %}
|
|
42
|
+
{%- include base/fontawesome.html.liquid type="script" %}
|
|
43
|
+
{%- include base/highlight.html.liquid type="script" %}
|
|
44
|
+
{%- include base/datatable.html.liquid type="script" %}
|
|
45
|
+
{%- include base/backtotop.html.liquid %}
|
|
46
|
+
{%- include base/copyvalue.html.liquid %}
|
|
47
|
+
{%- include base/heading_anchor.html.liquid %}
|
|
@@ -27,29 +27,40 @@ Data Source Hierarchy (priority):
|
|
|
27
27
|
================================================================================
|
|
28
28
|
{% endcomment %}
|
|
29
29
|
|
|
30
|
-
{%-
|
|
31
|
-
|
|
30
|
+
{%- assign with_project = include.with_project
|
|
31
|
+
| default: page.with_project
|
|
32
|
+
%}
|
|
32
33
|
|
|
33
|
-
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
{
|
|
42
|
-
|
|
43
|
-
{% assign
|
|
44
|
-
{% assign
|
|
45
|
-
{% assign
|
|
46
|
-
{% assign
|
|
47
|
-
{% assign
|
|
48
|
-
{% assign
|
|
49
|
-
{% assign
|
|
50
|
-
{% assign
|
|
51
|
-
{% assign
|
|
52
|
-
{% assign
|
|
34
|
+
{%- assign with_project_data = include.data
|
|
35
|
+
| default: page.with_project_data
|
|
36
|
+
| default: site.data.project
|
|
37
|
+
| default: site.data.base.project
|
|
38
|
+
%}
|
|
39
|
+
|
|
40
|
+
{%- assign with_project_schema = site.data.base.project_schema.properties.with_project_data.properties %}
|
|
41
|
+
|
|
42
|
+
{%- if with_project -%}
|
|
43
|
+
|
|
44
|
+
{% assign project_class = with_project_data.class | default: with_project_schema.class.default %}
|
|
45
|
+
{% assign project_screenshot = with_project_data.screenshot | default: with_project_schema.screenshot.default %}
|
|
46
|
+
{% assign project_screenshot_class = with_project_data.screenshot_class | default: with_project_schema.screenshot_class.default %}
|
|
47
|
+
{% assign project_screenshot_alt = with_project_data.screenshot_alt | default: with_project_schema.screenshot_alt.default %}
|
|
48
|
+
{% assign project_image = with_project_data.image | default: with_project_schema.image.default %}
|
|
49
|
+
{% assign project_image_alt = with_project_data.image_alt | default: with_project_schema.image_alt.default %}
|
|
50
|
+
{% assign project_image_class = with_project_data.image_class | default: with_project_schema.image_class.default %}
|
|
51
|
+
{% assign project_image_style = with_project_data.image_style | default: with_project_schema.image_style.default %}
|
|
52
|
+
{% assign project_icon = with_project_data.icon | default: with_project_schema.icon.default %}
|
|
53
|
+
{% assign project_icon_class = with_project_data.icon_class | default: with_project_schema.icon_class.default %}
|
|
54
|
+
{% assign project_name = with_project_data.name | default: with_project_schema.name.default %}
|
|
55
|
+
{% assign project_name_class = with_project_data.name_class | default: with_project_schema.name_class.default %}
|
|
56
|
+
{% assign project_description = with_project_data.description | default: with_project_schema.description.default %}
|
|
57
|
+
{% assign project_description_class = with_project_data.description_class | default: with_project_schema.description_class.default %}
|
|
58
|
+
{% assign project_actions = with_project_data.actions | default: with_project_schema.actions.default %}
|
|
59
|
+
{% assign project_actions_class = with_project_data.actions_class | default: with_project_schema.actions_class.default %}
|
|
60
|
+
{% assign project_actions_btn_class = with_project_data.actions_btn_class | default: with_project_schema.actions_btn_class.default %}
|
|
61
|
+
{% assign project_resources = with_project_data.resources | default: with_project_schema.resources.default %}
|
|
62
|
+
{% assign project_resources_class = with_project_data.resources_class | default: with_project_schema.resources_class.default %}
|
|
63
|
+
{% assign project_resources_btn_class = with_project_data.resources_btn_class | default: with_project_schema.resources_btn_class.default %}
|
|
53
64
|
|
|
54
65
|
<div class="d-flex{% if project_class != "" %} {{ project_class }}{% endif %}">
|
|
55
66
|
<div class="container pt-5">
|
|
@@ -89,4 +100,5 @@ Data Source Hierarchy (priority):
|
|
|
89
100
|
{%- endif %}
|
|
90
101
|
</div>
|
|
91
102
|
</div>
|
|
103
|
+
|
|
92
104
|
{%- endif -%}
|
|
@@ -33,36 +33,44 @@ Conditional Logic:
|
|
|
33
33
|
================================================================================
|
|
34
34
|
{% endcomment %}
|
|
35
35
|
|
|
36
|
-
{%-
|
|
37
|
-
|
|
36
|
+
{%- assign with_shortcut = include.with_shortcut
|
|
37
|
+
| default: page.with_shortcut
|
|
38
|
+
%}
|
|
39
|
+
|
|
40
|
+
{%- assign with_shortcut_data = include.data
|
|
38
41
|
| default: page.with_shortcut_data
|
|
39
42
|
| default: page.with_navbar_data
|
|
40
43
|
| default: site.data.shortcut
|
|
41
44
|
| default: site.data.navbar
|
|
42
45
|
| default: site.data.base.shortcut
|
|
43
|
-
| default: site.data.base.navbar
|
|
44
|
-
|
|
46
|
+
| default: site.data.base.navbar
|
|
47
|
+
%}
|
|
48
|
+
|
|
49
|
+
{%- assign shortcut_navitems = with_shortcut_data.navitems | where: "visible_on", "footer" %}
|
|
45
50
|
|
|
46
|
-
{%-
|
|
47
|
-
{% if shortcut_navitems.size > 0 %}
|
|
48
|
-
<div class="d-flex flex-wrap justify-content-evenly mb-4">
|
|
51
|
+
{%- if with_shortcut -%}
|
|
49
52
|
|
|
50
|
-
{%
|
|
51
|
-
|
|
52
|
-
<div class="
|
|
53
|
-
|
|
54
|
-
{% for
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
{%- comment %} === Presentation === {% endcomment %}
|
|
54
|
+
{% if shortcut_navitems.size > 0 %}
|
|
55
|
+
<div class="d-flex flex-wrap justify-content-evenly mb-4">
|
|
56
|
+
|
|
57
|
+
{% for section in shortcut_navitems -%}
|
|
58
|
+
<div class="pe-4">
|
|
59
|
+
<p class="h6">{% if section.icon %}<i class="{{ section.icon }} me-1"></i>{% endif %}{{ section.name }}</p>
|
|
60
|
+
<ul class="px-0 mb-4">
|
|
61
|
+
{% for item in section.menu -%}
|
|
62
|
+
<li class="list-unstyled my-1">
|
|
63
|
+
{% include base/link.html.liquid
|
|
64
|
+
name = item.name
|
|
65
|
+
link = item.link
|
|
66
|
+
color = "primary"
|
|
67
|
+
%}
|
|
68
|
+
</li>
|
|
69
|
+
{% endfor %}
|
|
70
|
+
</ul>
|
|
71
|
+
</div>
|
|
62
72
|
{% endfor %}
|
|
63
|
-
</
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
</div>
|
|
67
|
-
{% endif %}
|
|
73
|
+
</div>
|
|
74
|
+
{% endif %}
|
|
75
|
+
|
|
68
76
|
{%- endif -%}
|
|
@@ -37,30 +37,40 @@ Conditional Logic:
|
|
|
37
37
|
================================================================================
|
|
38
38
|
{% endcomment %}
|
|
39
39
|
|
|
40
|
-
{%- assign
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{%- assign social_preamble_class = social.preamble_class | default: site.data.base.social_schema.properties.with_social_data.properties.preamble_class.default %}
|
|
44
|
-
{%- assign social_media = social.media | default: site.data.base.social_schema.properties.with_social_data.properties.media.default %}
|
|
40
|
+
{%- assign with_social = include.with_social
|
|
41
|
+
| default: page.with_social
|
|
42
|
+
%}
|
|
45
43
|
|
|
46
|
-
{
|
|
47
|
-
|
|
44
|
+
{%- assign with_social_data = include.data
|
|
45
|
+
| default: page.with_social_data
|
|
46
|
+
| default: site.data.social
|
|
47
|
+
| default: site.data.base.social
|
|
48
|
+
%}
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
{%- assign with_social_schema = site.data.base.social_schema.properties.with_social_data.properties %}
|
|
51
|
+
|
|
52
|
+
{%- assign social_class = with_social_data.class | default: with_social_schema.class.default %}
|
|
53
|
+
{%- assign social_preamble = with_social_data.preamble | default: with_social_schema.preamble.default %}
|
|
54
|
+
{%- assign social_preamble_class = with_social_data.preamble_class | default: with_social_schema.preamble_class.default %}
|
|
55
|
+
{%- assign social_media = with_social_data.media | default: with_social_schema.media.default %}
|
|
56
|
+
|
|
57
|
+
{% if with_social %}
|
|
58
|
+
|
|
59
|
+
{%- comment %} === Presentation (Begin) === {% endcomment %}
|
|
60
|
+
{%- if social_preamble %}
|
|
61
|
+
<p class="{{ social_preamble_class }}">{{ social_preamble }}</p>
|
|
62
|
+
{%- endif %}
|
|
63
|
+
|
|
64
|
+
{%- for item in social_media -%}
|
|
65
|
+
{%- include base/link.html.liquid
|
|
66
|
+
class = "btn btn-outline-primary m-1"
|
|
67
|
+
link = item.link
|
|
68
|
+
role = "button"
|
|
69
|
+
icon = item.icon
|
|
70
|
+
aria_label = item.name
|
|
71
|
+
data_bs_title = item.name
|
|
72
|
+
%}
|
|
73
|
+
{%- endfor %}
|
|
74
|
+
{%- comment %} === Presentation (End) === {% endcomment %}
|
|
53
75
|
|
|
54
|
-
{%- for item in social_media -%}
|
|
55
|
-
{%- include base/link.html.liquid
|
|
56
|
-
class = "btn btn-outline-primary m-1"
|
|
57
|
-
link = item.link
|
|
58
|
-
role = "button"
|
|
59
|
-
icon = item.icon
|
|
60
|
-
aria_label = item.name
|
|
61
|
-
data_bs_title = item.name
|
|
62
|
-
%}
|
|
63
|
-
{%- endfor %}
|
|
64
|
-
{%- comment %} === Presentation (End) === {% endcomment %}
|
|
65
|
-
</div>
|
|
66
76
|
{% endif %}
|
|
@@ -33,13 +33,24 @@ Conditional Logic:
|
|
|
33
33
|
================================================================================
|
|
34
34
|
{% endcomment %}
|
|
35
35
|
|
|
36
|
-
{%- assign
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
{%- assign with_sponsors = include.with_sponsors
|
|
37
|
+
| default: page.with_sponsors
|
|
38
|
+
%}
|
|
39
39
|
|
|
40
|
-
{%-
|
|
41
|
-
|
|
40
|
+
{%- assign with_sponsors_data = include.data
|
|
41
|
+
| default: page.with_sponsors_data
|
|
42
|
+
| default: site.data.sponsors
|
|
43
|
+
| default: site.data.base.sponsors
|
|
44
|
+
%}
|
|
45
|
+
|
|
46
|
+
{%- assign with_sponsors_schema = site.data.base.sponsors_schema.properties.with_sponsors_data.properties %}
|
|
47
|
+
|
|
48
|
+
{%- assign sponsors_members = with_sponsors_data.members | default: with_sponsors_schema.members.default -%}
|
|
49
|
+
{%- assign sponsors_image_base = with_sponsors_data.image_base_path | default: with_sponsors_schema.image_base_path.default -%}
|
|
50
|
+
|
|
51
|
+
{%- if with_sponsors -%}
|
|
42
52
|
|
|
53
|
+
<div class="d-flex flex-wrap justify-content-between py-4 my-4 border-top border-bottom border-top-1 border-bottom-1">
|
|
43
54
|
{%- comment %} === Presentation (Begin) === {% endcomment %}
|
|
44
55
|
{%- for member in sponsors_members -%}
|
|
45
56
|
{%- if member.is_active != false %}
|
|
@@ -53,6 +64,6 @@ Conditional Logic:
|
|
|
53
64
|
{%- endif -%}
|
|
54
65
|
{%- endfor %}
|
|
55
66
|
{%- comment %} === Presentation (End) === {% endcomment %}
|
|
56
|
-
|
|
57
67
|
</div>
|
|
68
|
+
|
|
58
69
|
{%- endif -%}
|
|
@@ -37,21 +37,33 @@ Conditional Logic:
|
|
|
37
37
|
================================================================================
|
|
38
38
|
{% endcomment %}
|
|
39
39
|
|
|
40
|
-
{%- assign
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{%- assign
|
|
45
|
-
|
|
40
|
+
{%- assign with_sponsors = include.with_sponsors
|
|
41
|
+
| default: page.with_sponsors
|
|
42
|
+
%}
|
|
43
|
+
|
|
44
|
+
{%- assign with_sponsors_data = include.data
|
|
45
|
+
| default: page.with_sponsors_data
|
|
46
|
+
| default: site.data.sponsors
|
|
47
|
+
| default: site.data.base.sponsors
|
|
48
|
+
%}
|
|
49
|
+
|
|
50
|
+
{%- assign with_sponsors_schema = site.data.base.sponsors_schema.properties.with_sponsors_data.properties %}
|
|
51
|
+
|
|
52
|
+
{%- assign sponsors_title = with_sponsors_data.title | default: with_sponsors_schema.title.default -%}
|
|
53
|
+
{%- assign sponsors_icon = with_sponsors_data.icon | default: with_sponsors_schema.icon.default -%}
|
|
54
|
+
{%- assign sponsors_message = with_sponsors_data.message | default: with_sponsors_schema.message.default -%}
|
|
55
|
+
{%- assign sponsors_members = with_sponsors_data.members | default: with_sponsors_schema.members.default -%}
|
|
56
|
+
{%- assign sponsors_image_base = with_sponsors_data.image_base_path | default: with_sponsors_schema.image_base_path.default -%}
|
|
46
57
|
|
|
47
58
|
{%- assign carousel_id = include.id | default: "sponsorsCarousel" -%}
|
|
48
59
|
|
|
49
|
-
{%- if
|
|
60
|
+
{%- if with_sponsors -%}
|
|
61
|
+
|
|
50
62
|
<div id="{{ carousel_id }}" class="d-flex flex-wrap mb-5">
|
|
51
63
|
|
|
52
64
|
{%- comment %} === Presentation (Begin) === {% endcomment %}
|
|
53
65
|
{%- if include.with_title != false %}
|
|
54
|
-
<
|
|
66
|
+
<p class="h6"><i class="{{ sponsors_icon }}"></i> {{ sponsors_title }}</p>
|
|
55
67
|
{{ sponsors_message | markdownify | decorate_links }}
|
|
56
68
|
{%- endif %}
|
|
57
69
|
|
|
@@ -75,4 +87,5 @@ Conditional Logic:
|
|
|
75
87
|
{%- comment %} === Presentation (End) === {% endcomment %}
|
|
76
88
|
|
|
77
89
|
</div>
|
|
90
|
+
|
|
78
91
|
{%- endif -%}
|
|
@@ -34,21 +34,32 @@ Conditional Logic:
|
|
|
34
34
|
================================================================================
|
|
35
35
|
{% endcomment %}
|
|
36
36
|
|
|
37
|
-
{%-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
{%- assign with_title = include.with_title
|
|
38
|
+
| default: page.with_title
|
|
39
|
+
%}
|
|
40
|
+
|
|
41
|
+
{%- assign with_title_data = include.data
|
|
42
|
+
| default: page.with_title_data
|
|
43
|
+
| default: site.data.title
|
|
44
|
+
| default: site.data.base.title
|
|
45
|
+
%}
|
|
46
|
+
|
|
47
|
+
{%- assign with_title_schema = site.data.base.title_schema.properties.with_title_data.properties %}
|
|
40
48
|
|
|
41
49
|
{%- comment %} === Presentation === {% endcomment %}
|
|
42
|
-
{%- assign class =
|
|
43
|
-
{%- assign title =
|
|
44
|
-
{%- assign title_class =
|
|
45
|
-
{%- assign title_lead =
|
|
46
|
-
{%- assign title_lead_class =
|
|
50
|
+
{%- assign class = with_title_data.class | default: with_title_schema.class.default %}
|
|
51
|
+
{%- assign title = with_title_data.title | default: page.title %}
|
|
52
|
+
{%- assign title_class = with_title_data.title_class | default: with_title_schema.title_class.default %}
|
|
53
|
+
{%- assign title_lead = with_title_data.title_lead | default: page.title_lead %}
|
|
54
|
+
{%- assign title_lead_class = with_title_data.title_lead_class | default: with_title_schema.title_lead_class.default %}
|
|
55
|
+
|
|
56
|
+
{%- if page.with_title -%}
|
|
47
57
|
|
|
48
58
|
<div class="{{ class }}">
|
|
49
|
-
<
|
|
59
|
+
<p class="{{ title_class }}">{{ title }}</p>
|
|
50
60
|
{% if title_lead != "" %}
|
|
51
|
-
<
|
|
61
|
+
<p class="{{ title_lead_class }}">{{ title_lead }}</p>
|
|
52
62
|
{% endif %}
|
|
53
63
|
</div>
|
|
64
|
+
|
|
54
65
|
{%- endif -%}
|
|
@@ -65,13 +65,13 @@ Data Source Hierarchy (in priority order):
|
|
|
65
65
|
<div class="accordion-item">
|
|
66
66
|
<div class="accordion-header" id="flush-headingOne">
|
|
67
67
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
|
|
68
|
-
<i class="fa-solid fa-list"></i>
|
|
68
|
+
<i class="fa-solid fa-list" aria-hidden="true"></i>
|
|
69
69
|
<span class="mx-3 fw-bold">On this page</span>
|
|
70
70
|
</button>
|
|
71
71
|
</div>
|
|
72
72
|
<div id="flush-collapseOne" class="accordion-collapse collapse" data-bs-parent="#pageToc">
|
|
73
73
|
<div class="accordion-body small">
|
|
74
|
-
{%- include base/
|
|
74
|
+
{%- include base/toc-generator.html.liquid
|
|
75
75
|
id=id
|
|
76
76
|
html=content
|
|
77
77
|
class=class
|
data/_layouts/base/default.html
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="{{ page.lang | default: 'en' }}"{% if page.with_ogp %} prefix="og: https://ogp.me/ns#"{% endif %}>
|
|
3
|
-
{% include base/head.html.liquid -%}
|
|
3
|
+
{% include base/partials/head.html.liquid -%}
|
|
4
4
|
<body id="top" class="bg-body">
|
|
5
5
|
|
|
6
|
-
{% include base/navbar.html.liquid -%}
|
|
6
|
+
{% include base/partials/navbar.html.liquid -%}
|
|
7
7
|
|
|
8
8
|
{% include base/project.html.liquid %}
|
|
9
9
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
{% if page.with_title %}
|
|
29
29
|
<div class="row mb-3">
|
|
30
|
-
<div class="{{ site.data.base.content.class | default: 'col' }}">
|
|
30
|
+
<div class="{{ site.data.base.partials.content.class | default: 'col' }}">
|
|
31
31
|
{% include base/title.html.liquid %}
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
{% if page.with_artwork %}
|
|
37
37
|
<div class="row mb-3">
|
|
38
|
-
<div class="{{ site.data.base.content.class | default: 'col' }}">
|
|
38
|
+
<div class="{{ site.data.base.partials.content.class | default: 'col' }}">
|
|
39
39
|
{% include base/artwork.html.liquid %}
|
|
40
40
|
</div>
|
|
41
41
|
</div>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
{% if page.with_toc %}
|
|
45
45
|
<div class="row mb-3">
|
|
46
|
-
<div class="{{ site.data.base.content.class | default: 'col' }}">
|
|
46
|
+
<div class="{{ site.data.base.partials.content.class | default: 'col' }}">
|
|
47
47
|
{% include base/toc.html.liquid %}
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
{% if page.with_content %}
|
|
53
53
|
<div class="row mb-3">
|
|
54
|
-
<div class="{{ site.data.base.content.class | default: 'col' }} content">
|
|
54
|
+
<div class="{{ site.data.base.partials.content.class | default: 'col' }} content">
|
|
55
55
|
{{ content }}
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
|
|
62
62
|
{% if page.with_footer %}
|
|
63
63
|
<footer class="footer small bg-dark text-centos-purple-100 pt-5">
|
|
64
|
-
{% include base/footer.html.liquid -%}
|
|
64
|
+
{% include base/partials/footer.html.liquid -%}
|
|
65
65
|
</footer>
|
|
66
66
|
{% endif %}
|
|
67
67
|
|
|
68
|
-
{% include base/script.html.liquid -%}
|
|
68
|
+
{% include base/partials/script.html.liquid -%}
|
|
69
69
|
|
|
70
70
|
</body>
|
|
71
71
|
</html>
|
|
@@ -176,6 +176,53 @@ main {
|
|
|
176
176
|
scroll-margin-bottom: 100px;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
// -------------------------------------------------------------------------------
|
|
180
|
+
// Heading Anchor Component
|
|
181
|
+
// -------------------------------------------------------------------------------
|
|
182
|
+
// :has() guard: position context + right slot for the anchor icon.
|
|
183
|
+
// padding-right reserves space so the icon never overlaps heading text.
|
|
184
|
+
.content > h1:has(.heading-anchor),
|
|
185
|
+
.content > h2:has(.heading-anchor),
|
|
186
|
+
.content > h3:has(.heading-anchor),
|
|
187
|
+
.content > h4:has(.heading-anchor),
|
|
188
|
+
.content > h5:has(.heading-anchor),
|
|
189
|
+
.content > h6:has(.heading-anchor) {
|
|
190
|
+
position: relative;
|
|
191
|
+
padding-right: 1.5rem;
|
|
192
|
+
}
|
|
193
|
+
.content > h1 .heading-anchor,
|
|
194
|
+
.content > h2 .heading-anchor,
|
|
195
|
+
.content > h3 .heading-anchor,
|
|
196
|
+
.content > h4 .heading-anchor,
|
|
197
|
+
.content > h5 .heading-anchor,
|
|
198
|
+
.content > h6 .heading-anchor {
|
|
199
|
+
position: absolute;
|
|
200
|
+
right: 0;
|
|
201
|
+
top: 50%;
|
|
202
|
+
transform: translateY(-50%);
|
|
203
|
+
font-size: $font-size-base;
|
|
204
|
+
margin-left: 0 !important;
|
|
205
|
+
margin-right: 0 !important;
|
|
206
|
+
opacity: 0.2;
|
|
207
|
+
pointer-events: auto;
|
|
208
|
+
text-decoration: none;
|
|
209
|
+
}
|
|
210
|
+
.content > h1:hover .heading-anchor,
|
|
211
|
+
.content > h2:hover .heading-anchor,
|
|
212
|
+
.content > h3:hover .heading-anchor,
|
|
213
|
+
.content > h4:hover .heading-anchor,
|
|
214
|
+
.content > h5:hover .heading-anchor,
|
|
215
|
+
.content > h6:hover .heading-anchor,
|
|
216
|
+
.heading-anchor:focus {
|
|
217
|
+
opacity: 1;
|
|
218
|
+
}
|
|
219
|
+
.heading-anchor.is-active,
|
|
220
|
+
.heading-anchor.is-active i {
|
|
221
|
+
opacity: 1 !important;
|
|
222
|
+
visibility: visible !important;
|
|
223
|
+
color: var(--bs-primary);
|
|
224
|
+
}
|
|
225
|
+
|
|
179
226
|
// Accordion containers' correction.
|
|
180
227
|
//
|
|
181
228
|
// When accessing accordion containers via internal anchor links, they wouldn't be
|