jekyll-theme-zer0 1.29.0 → 1.31.0
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/CHANGELOG.md +886 -2
- data/_data/README.md +2 -0
- data/_data/ai.yml +5 -3
- data/_data/ai_pricing.yml +36 -0
- data/_data/backlog.yml +196 -22
- data/_data/consumers.yml +147 -5
- data/_data/features.yml +147 -21
- data/_data/feedback_types.yml +17 -12
- data/_data/landing.yml +5 -2
- data/_data/navigation/quickstart.yml +4 -0
- data/_data/site_builder.yml +874 -0
- data/_data/theme-manifest.yml +132 -122
- data/_data/ui-text.yml +19 -0
- data/_includes/README.md +11 -1
- data/_includes/analytics/posthog.html +30 -11
- data/_includes/components/README.md +1 -1
- data/_includes/components/admin-links.html +2 -2
- data/_includes/components/admin-tabs.html +2 -2
- data/_includes/components/ai-chat.html +14 -11
- data/_includes/components/analytics-dashboard.html +8 -8
- data/_includes/components/author-bio.html +1 -1
- data/_includes/components/author-card.html +10 -2
- data/_includes/components/author-eeat.html +4 -4
- data/_includes/components/background-customizer.html +8 -8
- data/_includes/components/background-image.html +120 -0
- data/_includes/components/background-settings.html +28 -15
- data/_includes/components/collection-manager.html +5 -5
- data/_includes/components/component-showcase.html +13 -13
- data/_includes/components/config-editor.html +12 -12
- data/_includes/components/config-viewer.html +8 -8
- data/_includes/components/cookie-consent.html +41 -41
- data/_includes/components/cta-button.html +7 -2
- data/_includes/components/dev-shortcuts.html +7 -7
- data/_includes/components/env-dashboard.html +8 -8
- data/_includes/components/env-switcher.html +9 -9
- data/_includes/components/feature-card.html +2 -2
- data/_includes/components/halfmoon.html +2 -2
- data/_includes/components/info-section.html +36 -36
- data/_includes/components/js-cdn.html +15 -15
- data/_includes/components/language-toggle.html +4 -4
- data/_includes/components/mermaid.html +79 -435
- data/_includes/components/nanobar.html +5 -5
- data/_includes/components/nav-editor.html +2 -2
- data/_includes/components/nav-export.html +2 -2
- data/_includes/components/nav-overview.html +2 -2
- data/_includes/components/page-feedback.html +45 -30
- data/_includes/components/page-views-init.html +1 -1
- data/_includes/components/post-card.html +22 -22
- data/_includes/components/post-type-badge.html +2 -2
- data/_includes/components/powered-by.html +2 -2
- data/_includes/components/preview-image.html +28 -3
- data/_includes/components/quick-index.html +2 -2
- data/_includes/components/search-modal.html +27 -2
- data/_includes/components/searchbar.html +2 -2
- data/_includes/components/svg-background.html +2 -2
- data/_includes/components/theme-customizer.html +2 -2
- data/_includes/components/theme-info.html +6 -6
- data/_includes/components/theme-preview-gallery.html +23 -23
- data/_includes/content/giscus.html +2 -2
- data/_includes/content/intro.html +15 -8
- data/_includes/content/jsonld-faq.html +2 -2
- data/_includes/content/jsonld-software.html +2 -2
- data/_includes/content/seo.html +12 -4
- data/_includes/content/sitemap.html +247 -290
- data/_includes/content/toc.html +183 -183
- data/_includes/core/branding.html +13 -20
- data/_includes/core/console-capture.html +32 -74
- data/_includes/core/favicon.html +49 -7
- data/_includes/core/footer-fabs.html +17 -3
- data/_includes/core/footer.html +31 -18
- data/_includes/core/head.html +128 -92
- data/_includes/core/header.html +85 -54
- data/_includes/core/tokens-inline.html +16 -1
- data/_includes/docs/bootstrap-docs.html +8 -8
- data/_includes/landing/landing-install-cards.html +2 -2
- data/_includes/landing/landing-quick-links.html +1 -1
- data/_includes/navigation/admin-nav.html +2 -2
- data/_includes/navigation/nav-tree.html +8 -8
- data/_includes/navigation/navbar.html +21 -18
- data/_includes/navigation/section-sidebar.html +16 -16
- data/_includes/navigation/sidebar-config.html +36 -2
- data/_includes/navigation/sidebar-left.html +15 -15
- data/_includes/navigation/sidebar-right.html +6 -6
- data/_includes/obsidian/full-graph.html +2 -2
- data/_includes/setup/claude-session.html +72 -0
- data/_includes/setup/prereq-checklist.html +90 -0
- data/_includes/setup/wizard.html +910 -291
- data/_includes/stats/stats-categories.html +8 -8
- data/_includes/stats/stats-header.html +14 -14
- data/_includes/stats/stats-metrics.html +12 -12
- data/_includes/stats/stats-no-data.html +12 -12
- data/_includes/stats/stats-overview.html +6 -6
- data/_includes/stats/stats-tags.html +8 -8
- data/_layouts/404.html +38 -24
- data/_layouts/admin.html +22 -22
- data/_layouts/article.html +54 -37
- data/_layouts/author.html +20 -20
- data/_layouts/authors.html +2 -2
- data/_layouts/book-abc.html +12 -12
- data/_layouts/book-story.html +15 -15
- data/_layouts/book.html +12 -12
- data/_layouts/collection.html +33 -33
- data/_layouts/cookbook.html +12 -12
- data/_layouts/default.html +27 -24
- data/_layouts/home.html +36 -24
- data/_layouts/index.html +10 -10
- data/_layouts/landing.html +17 -17
- data/_layouts/news.html +44 -44
- data/_layouts/note.html +40 -39
- data/_layouts/notebook.html +36 -35
- data/_layouts/recipe.html +24 -24
- data/_layouts/root.html +95 -55
- data/_layouts/section.html +23 -23
- data/_layouts/setup.html +3 -3
- data/_layouts/sitemap-collection.html +49 -49
- data/_layouts/stats.html +40 -40
- data/_layouts/tag.html +12 -12
- data/_layouts/welcome.html +21 -21
- data/_sass/components/_cookie-banner.scss +48 -0
- data/_sass/components/_mermaid.scss +375 -0
- data/_sass/components/_setup-wizard.scss +588 -41
- data/_sass/components/_ui-enhancements.scss +11 -0
- data/_sass/core/_navbar.scss +147 -100
- data/_sass/core/_sidebar-extras.scss +2 -14
- data/_sass/core/code-copy.scss +27 -8
- data/_sass/layouts/_navbar-extras.scss +14 -4
- data/assets/css/extension-points-demo.css +27 -0
- data/assets/css/main.scss +1 -0
- data/assets/data/wiki-index.json +19 -0
- data/assets/js/ai-chat.js +47 -5
- data/assets/js/auto-hide-nav.js +53 -13
- data/assets/js/code-copy.js +72 -1
- data/assets/js/extension-points-demo.js +48 -0
- data/assets/js/fleet-feedback-capture.js +124 -0
- data/assets/js/fleet-feedback.js +853 -0
- data/assets/js/mermaid-diagrams.js +1373 -0
- data/assets/js/modules/navigation/config.js +9 -6
- data/assets/js/modules/navigation/scroll-spy.js +315 -80
- data/assets/js/modules/theme/appearance.js +8 -2
- data/assets/js/obsidian-local-graph.js +27 -5
- data/assets/js/obsidian-wiki-links.js +8 -3
- data/assets/js/page-feedback.js +125 -192
- data/assets/js/search-modal.js +26 -0
- data/assets/js/setup-wizard.js +2119 -363
- data/assets/js/site-builder.js +1834 -0
- data/assets/js/ui-enhancements.js +11 -3
- data/scripts/README.md +15 -0
- data/scripts/ai/README.md +38 -0
- data/scripts/ai/api_call.rb +124 -0
- data/scripts/ai/usage.rb +314 -0
- data/scripts/ai/usage_report.rb +225 -0
- data/scripts/ci/test_visual_evidence_autogen.py +403 -0
- data/scripts/ci/visual_evidence_autogen.py +1070 -0
- data/scripts/content-review.rb +20 -1
- data/scripts/features/install-preview-generator +1 -1
- data/scripts/lib/README.md +12 -0
- data/scripts/lib/preview_generator.py +2 -2
- data/scripts/test/integration/mermaid +22 -8
- data/scripts/test/lib/run_tests.sh +1 -0
- data/scripts/test/lib/test_visual_evidence_autogen.sh +24 -0
- data/scripts/translate.rb +23 -1
- metadata +21 -2
data/_layouts/collection.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Feature: ZER0-019
|
|
3
3
|
layout: default
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
{% comment %}
|
|
6
6
|
===================================================================
|
|
7
7
|
COLLECTION LAYOUT - Display template for Jekyll collections
|
|
8
8
|
===================================================================
|
|
@@ -42,18 +42,18 @@ layout: default
|
|
|
42
42
|
- Bootstrap 5 card and grid components
|
|
43
43
|
- Site configuration for public_folder and teaser image
|
|
44
44
|
===================================================================
|
|
45
|
-
|
|
45
|
+
{% endcomment %}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
{% comment %} ========================== {% endcomment %}
|
|
48
|
+
{% comment %} COLLECTION PAGE CONTENT {% endcomment %}
|
|
49
|
+
{% comment %} ========================== {% endcomment %}
|
|
50
|
+
{% comment %} Main content area for collection description or introduction {% endcomment %}
|
|
51
51
|
{{ content }}
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
{% comment %} ========================== {% endcomment %}
|
|
54
|
+
{% comment %} COLLECTION DATA PROCESSING {% endcomment %}
|
|
55
|
+
{% comment %} ========================== {% endcomment %}
|
|
56
|
+
{% comment %} Extract and sort collection entries based on page configuration.
|
|
57
57
|
|
|
58
58
|
Jekyll sets page.collection automatically for a document inside a
|
|
59
59
|
collection, but a standalone page can also select this layout in its front
|
|
@@ -61,12 +61,12 @@ layout: default
|
|
|
61
61
|
declare — site[page.collection] is nil, and `sort` on nil raises
|
|
62
62
|
"Cannot sort a null object.", which aborts the ENTIRE build rather than
|
|
63
63
|
just this page. Resolve to an empty list instead so one misconfigured page
|
|
64
|
-
cannot take the site down.
|
|
64
|
+
cannot take the site down. {% endcomment %}
|
|
65
65
|
{% assign entries = site[page.collection] %}
|
|
66
66
|
{% if entries %}
|
|
67
67
|
{% assign entries = entries | sort: page.sort_order %}
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
{% comment %} Handle reverse sorting if specified {% endcomment %}
|
|
70
70
|
{% if page.sort_order == 'reverse' %}
|
|
71
71
|
{% assign entries = entries | reverse %}
|
|
72
72
|
{% endif %}
|
|
@@ -74,53 +74,53 @@ layout: default
|
|
|
74
74
|
{% assign entries = "" | split: "" %}
|
|
75
75
|
{% endif %}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
{% comment %} ========================== {% endcomment %}
|
|
78
|
+
{% comment %} COLLECTION INDEX HEADER {% endcomment %}
|
|
79
|
+
{% comment %} ========================== {% endcomment %}
|
|
80
80
|
<h2 id="index-collection">
|
|
81
81
|
Collection Index - {{ page.collection }}
|
|
82
82
|
</h2>
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
{% comment %} ================================ {% endcomment %}
|
|
85
|
+
{% comment %} COLLECTION ITEMS GRID {% endcomment %}
|
|
86
|
+
{% comment %} ================================ {% endcomment %}
|
|
87
|
+
{% comment %} Responsive card grid: 1 column mobile, up to 3 columns desktop {% endcomment %}
|
|
88
88
|
<div class="row row-cols-1 row-cols-md-3 g-4">
|
|
89
89
|
|
|
90
90
|
{% for post in entries %}
|
|
91
91
|
<div class="col">
|
|
92
|
-
|
|
92
|
+
{% comment %} Bootstrap card with equal height for consistent layout {% endcomment %}
|
|
93
93
|
<div class="card h-100">
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
{% comment %} ====================== {% endcomment %}
|
|
96
|
+
{% comment %} CARD IMAGE SECTION {% endcomment %}
|
|
97
|
+
{% comment %} ====================== {% endcomment %}
|
|
98
|
+
{% comment %} Display preview image with fallback to site teaser {% endcomment %}
|
|
99
99
|
{% assign coll_img = post.preview | default: site.teaser %}
|
|
100
100
|
{% include components/preview-image.html src=coll_img alt=post.title class="card-img-top" %}
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
{% comment %} ====================== {% endcomment %}
|
|
103
|
+
{% comment %} CARD CONTENT SECTION {% endcomment %}
|
|
104
|
+
{% comment %} ====================== {% endcomment %}
|
|
105
105
|
<div class="card-body">
|
|
106
|
-
|
|
106
|
+
{% comment %} Post title with SEO microdata {% endcomment %}
|
|
107
107
|
<h5 class="card-title" itemprop="headline">
|
|
108
108
|
<a class="card-link" href="{{ post.url | relative_url }}" rel="permalink">
|
|
109
109
|
{{ post.title }}
|
|
110
110
|
</a>
|
|
111
111
|
</h5>
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
{% comment %} Post excerpt with HTML stripped and character limit {% endcomment %}
|
|
114
114
|
<p class="card-text" itemprop="description">
|
|
115
115
|
{{ post.excerpt | strip_html | truncate: 160 }}
|
|
116
116
|
</p>
|
|
117
117
|
</div>
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
{% comment %} ====================== {% endcomment %}
|
|
120
|
+
{% comment %} CARD FOOTER SECTION {% endcomment %}
|
|
121
|
+
{% comment %} ====================== {% endcomment %}
|
|
122
122
|
<div class="card-footer">
|
|
123
|
-
|
|
123
|
+
{% comment %} Last modified date for content freshness indicator {% endcomment %}
|
|
124
124
|
<small class="text-body-secondary post-meta">
|
|
125
125
|
Last updated {{ post.lastmod | date: '%B %d, %Y' }}
|
|
126
126
|
</small>
|
data/_layouts/cookbook.html
CHANGED
|
@@ -25,9 +25,9 @@ layout: default
|
|
|
25
25
|
{%- assign _cb_image = page.image | default: page.preview -%}
|
|
26
26
|
|
|
27
27
|
<div class="cookbook">
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
{% comment %} ================================ {% endcomment %}
|
|
29
|
+
{% comment %} COVER {% endcomment %}
|
|
30
|
+
{% comment %} ================================ {% endcomment %}
|
|
31
31
|
<header class="cookbook-header">
|
|
32
32
|
<div class="row g-4 align-items-center">
|
|
33
33
|
{%- if _cb_image -%}
|
|
@@ -56,9 +56,9 @@ layout: default
|
|
|
56
56
|
</div>
|
|
57
57
|
</header>
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
{% comment %} ================================ {% endcomment %}
|
|
60
|
+
{% comment %} ABOUT (the markdown body) {% endcomment %}
|
|
61
|
+
{% comment %} ================================ {% endcomment %}
|
|
62
62
|
{%- assign _cb_body = content | strip -%}
|
|
63
63
|
{%- if _cb_body != "" -%}
|
|
64
64
|
<section class="cookbook-about">
|
|
@@ -66,9 +66,9 @@ layout: default
|
|
|
66
66
|
</section>
|
|
67
67
|
{%- endif -%}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
{% comment %} ================================ {% endcomment %}
|
|
70
|
+
{% comment %} COURSE JUMP NAV {% endcomment %}
|
|
71
|
+
{% comment %} ================================ {% endcomment %}
|
|
72
72
|
{%- if _cb_courses.size > 1 and page.grouped != false -%}
|
|
73
73
|
<nav class="cookbook-jump" aria-label="Jump to a course">
|
|
74
74
|
{%- for _cb_pair in site.data.recipe_courses -%}
|
|
@@ -81,8 +81,8 @@ layout: default
|
|
|
81
81
|
</nav>
|
|
82
82
|
{%- endif -%}
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
{% comment %} ================================ {% endcomment %}
|
|
85
|
+
{% comment %} RECIPE INDEX {% endcomment %}
|
|
86
|
+
{% comment %} ================================ {% endcomment %}
|
|
87
87
|
{%- include components/recipe-index.html cookbook=_cb_slug grouped=page.grouped heading_level="h2" -%}
|
|
88
88
|
</div>
|
data/_layouts/default.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Features: ZER0-001, ZER0-008, ZER0-019
|
|
3
3
|
layout: root
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
{% comment %}
|
|
6
6
|
===================================================================
|
|
7
7
|
DEFAULT LAYOUT - Standard content layout with sidebars
|
|
8
8
|
===================================================================
|
|
@@ -43,7 +43,7 @@ layout: root
|
|
|
43
43
|
- bd-toc: Table of contents styling
|
|
44
44
|
- bd-content: Content area styling
|
|
45
45
|
===================================================================
|
|
46
|
-
|
|
46
|
+
{% endcomment %}
|
|
47
47
|
|
|
48
48
|
{%- comment -%}
|
|
49
49
|
Sidebar visibility + nav mode are resolved by the shared include below
|
|
@@ -58,16 +58,16 @@ layout: root
|
|
|
58
58
|
{%- endcomment -%}
|
|
59
59
|
{% include navigation/sidebar-config.html %}
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
{% comment %} ================================================ {% endcomment %}
|
|
62
|
+
{% comment %} MAIN LAYOUT CONTAINER {% endcomment %}
|
|
63
|
+
{% comment %} Bootstrap responsive container with custom grid {% endcomment %}
|
|
64
|
+
{% comment %} ================================================ {% endcomment %}
|
|
65
65
|
<div class="container-xxl bd-gutter mt-3 my-md-4 bd-layout{% unless sidebar_has_content %} bd-layout--no-sidebar{% endunless %}">
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
{% comment %} ================================ {% endcomment %}
|
|
68
|
+
{% comment %} LEFT SIDEBAR - Navigation {% endcomment %}
|
|
69
|
+
{% comment %} ================================ {% endcomment %}
|
|
70
|
+
{% comment %} Site navigation, content outline, and offcanvas menu for mobile {% endcomment %}
|
|
71
71
|
{% if sidebar_has_content %}
|
|
72
72
|
<aside class="bd-sidebar">
|
|
73
73
|
{% include navigation/sidebar-left.html %}
|
|
@@ -83,13 +83,16 @@ layout: root
|
|
|
83
83
|
</div>
|
|
84
84
|
{% endif %}
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
{% comment %} ================================ {% endcomment %}
|
|
87
|
+
{% comment %} MAIN CONTENT AREA {% endcomment %}
|
|
88
|
+
{% comment %} ================================ {% endcomment %}
|
|
89
|
+
{% comment %} Primary content section. TOC highlighting is handled by the
|
|
90
|
+
theme's own scroll spy (assets/js/modules/navigation/scroll-spy.js) —
|
|
91
|
+
no `data-bs-spy` here, because Bootstrap's native ScrollSpy fought it
|
|
92
|
+
for the `.active` class and made the bolding jump around.
|
|
90
93
|
Not a <main>: root.html already provides the single <main id="main-content">
|
|
91
|
-
landmark; a nested <main> here would duplicate it (issue #299).
|
|
92
|
-
<div class="bd-main order-1"
|
|
94
|
+
landmark; a nested <main> here would duplicate it (issue #299). {% endcomment %}
|
|
95
|
+
<div class="bd-main order-1">
|
|
93
96
|
|
|
94
97
|
{%- comment -%}
|
|
95
98
|
Page introduction: title, breadcrumbs, metadata.
|
|
@@ -105,20 +108,20 @@ layout: root
|
|
|
105
108
|
{% include content/intro.html %}
|
|
106
109
|
{% endunless %}
|
|
107
110
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
{% comment %} =============================== {% endcomment %}
|
|
112
|
+
{% comment %} RIGHT SIDEBAR - Table of Contents {% endcomment %}
|
|
113
|
+
{% comment %} =============================== {% endcomment %}
|
|
114
|
+
{% comment %} Page outline, shortcuts, and related links (hidden on mobile) {% endcomment %}
|
|
112
115
|
{% unless sidebar_enabled == false %}
|
|
113
116
|
<div class="bd-toc text-body-secondary">
|
|
114
117
|
{% include navigation/sidebar-right.html %}
|
|
115
118
|
</div>
|
|
116
119
|
{% endunless %}
|
|
117
120
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
{% comment %} =============================== {% endcomment %}
|
|
122
|
+
{% comment %} MAIN CONTENT BODY {% endcomment %}
|
|
123
|
+
{% comment %} =============================== {% endcomment %}
|
|
124
|
+
{% comment %} Where the actual page content is rendered {% endcomment %}
|
|
122
125
|
<div class="bd-content ps-lg-2">
|
|
123
126
|
{{ content }}
|
|
124
127
|
|
data/_layouts/home.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Feature: ZER0-019
|
|
3
3
|
layout: root
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
{% comment %}
|
|
6
6
|
===================================================================
|
|
7
7
|
HOME LAYOUT - Homepage template with minimal structure
|
|
8
8
|
===================================================================
|
|
@@ -45,36 +45,48 @@ layout: root
|
|
|
45
45
|
- RSS link maintains blog connectivity
|
|
46
46
|
- Clean presentation suitable for landing pages
|
|
47
47
|
===================================================================
|
|
48
|
-
|
|
48
|
+
{% endcomment %}
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
{% comment %} ================================ {% endcomment %}
|
|
51
|
+
{% comment %} HOME PAGE CONTAINER {% endcomment %}
|
|
52
|
+
{% comment %} ================================ {% endcomment %}
|
|
53
53
|
<div class="home">
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
{% comment %} ========================== {% endcomment %}
|
|
55
|
+
{% comment %} OPTIONAL PAGE TITLE {% endcomment %}
|
|
56
|
+
{% comment %} ========================== {% endcomment %}
|
|
57
|
+
{% comment %} Display title only if specified in page frontmatter. {% endcomment %}
|
|
58
|
+
{% comment %} Usage: Add 'title: "Homepage Title"' to page frontmatter. {% endcomment %}
|
|
59
|
+
{% comment %} Landing/showcase pages can keep `title` for SEO but suppress the {% endcomment %}
|
|
60
|
+
{% comment %} visible heading (e.g. when a custom hero supplies its own <h1>) {% endcomment %}
|
|
61
|
+
{% comment %} with `hide_title: true`. {% endcomment %}
|
|
62
62
|
{%- if page.title and page.hide_title != true and page.hide_intro != true -%}
|
|
63
63
|
<h1 class="page-heading">{{ page.title }}</h1>
|
|
64
64
|
{%- endif -%}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
|
|
66
|
+
{% comment %} ========================== {% endcomment %}
|
|
67
|
+
{% comment %} SITE SUBTITLE (HOME HERO) {% endcomment %}
|
|
68
|
+
{% comment %} ========================== {% endcomment %}
|
|
69
|
+
{% comment %} `site.subtitle` reads here, on the home hero, instead of in the {% endcomment %}
|
|
70
|
+
{% comment %} navbar, where it competed with the menubar for bar width (#405). {% endcomment %}
|
|
71
|
+
{% comment %} Suppressed alongside the heading, so a custom hero that supplies {% endcomment %}
|
|
72
|
+
{% comment %} its own copy is not doubled up. {% endcomment %}
|
|
73
|
+
{%- assign _subtitle = site.subtitle | strip -%}
|
|
74
|
+
{%- if _subtitle != "" and page.hide_title != true and page.hide_intro != true -%}
|
|
75
|
+
<p class="site-subtitle-text home-subtitle lead text-body-secondary">{{ _subtitle }}</p>
|
|
76
|
+
{%- endif -%}
|
|
77
|
+
|
|
78
|
+
{% comment %} ========================== {% endcomment %}
|
|
79
|
+
{% comment %} MAIN CONTENT AREA {% endcomment %}
|
|
80
|
+
{% comment %} ========================== {% endcomment %}
|
|
81
|
+
{% comment %} Homepage content rendered from Markdown or HTML {% endcomment %}
|
|
82
|
+
{% comment %} Can include hero sections, feature cards, etc. {% endcomment %}
|
|
71
83
|
{{ content }}
|
|
72
84
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
{% comment %} ========================== {% endcomment %}
|
|
86
|
+
{% comment %} RSS SUBSCRIPTION LINK {% endcomment %}
|
|
87
|
+
{% comment %} ========================== {% endcomment %}
|
|
88
|
+
{% comment %} Provides easy access to RSS feed for blog updates. {% endcomment %}
|
|
89
|
+
{% comment %} Opt out on landing/showcase homepages with `rss_subscribe: false`. {% endcomment %}
|
|
78
90
|
{%- unless page.rss_subscribe == false -%}
|
|
79
91
|
<p class="rss-subscribe">
|
|
80
92
|
subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a>
|
data/_layouts/index.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Feature: ZER0-019
|
|
3
3
|
layout: root
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
{% comment %}
|
|
6
6
|
===================================================================
|
|
7
7
|
INDEX LAYOUT - Search indexing template
|
|
8
8
|
===================================================================
|
|
@@ -40,16 +40,16 @@ layout: root
|
|
|
40
40
|
- Provides proper container context for search tools
|
|
41
41
|
- Maintains consistent navigation patterns
|
|
42
42
|
===================================================================
|
|
43
|
-
|
|
43
|
+
{% endcomment %}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
{% comment %} ================================ {% endcomment %}
|
|
46
|
+
{% comment %} SEARCH INDEX CONTAINER {% endcomment %}
|
|
47
|
+
{% comment %} ================================ {% endcomment %}
|
|
48
|
+
{% comment %} Full-width container optimized for search interfaces and content discovery {% endcomment %}
|
|
49
49
|
<div id="search-index" class="container-fluid pt-5 py-5">
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
{% comment %} ========================== {% endcomment %}
|
|
51
|
+
{% comment %} SEARCH CONTENT AREA {% endcomment %}
|
|
52
|
+
{% comment %} ========================== {% endcomment %}
|
|
53
|
+
{% comment %} Main content area for search forms, results, filters, and indexing {% endcomment %}
|
|
54
54
|
{{ content }}
|
|
55
55
|
</div>
|
data/_layouts/landing.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Feature: ZER0-019
|
|
3
3
|
layout: root
|
|
4
4
|
---
|
|
5
|
-
|
|
5
|
+
{% comment %}
|
|
6
6
|
===================================================================
|
|
7
7
|
LANDING LAYOUT - Welcome page for first-time visitors
|
|
8
8
|
===================================================================
|
|
@@ -43,7 +43,7 @@ layout: root
|
|
|
43
43
|
- Custom CSS for enhanced styling
|
|
44
44
|
- Responsive images and icons
|
|
45
45
|
===================================================================
|
|
46
|
-
|
|
46
|
+
{% endcomment %}
|
|
47
47
|
|
|
48
48
|
{%- comment -%}
|
|
49
49
|
Landing copy is data-driven via _data/landing.yml. Defaults shipped with the
|
|
@@ -53,9 +53,9 @@ layout: root
|
|
|
53
53
|
{%- assign landing = site.data.landing -%}
|
|
54
54
|
{%- assign github_url = site.resources.github_repo | default: "" | join: "" -%}
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
{% comment %} ================================ {% endcomment %}
|
|
57
|
+
{% comment %} HERO SECTION {% endcomment %}
|
|
58
|
+
{% comment %} ================================ {% endcomment %}
|
|
59
59
|
<div class="bg-primary zer0-bg-hero text-white position-relative overflow-hidden landing-hero">
|
|
60
60
|
<div class="container-xl py-5 px-4 px-md-5">
|
|
61
61
|
<div class="row align-items-center min-vh-50 g-4 g-lg-5">
|
|
@@ -130,9 +130,9 @@ layout: root
|
|
|
130
130
|
</div>
|
|
131
131
|
</div>
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
{% comment %} ================================ {% endcomment %}
|
|
134
|
+
{% comment %} MAIN CONTENT AREA {% endcomment %}
|
|
135
|
+
{% comment %} ================================ {% endcomment %}
|
|
136
136
|
{% include landing/landing-quick-links.html %}
|
|
137
137
|
|
|
138
138
|
{%- comment -%}
|
|
@@ -145,9 +145,9 @@ layout: root
|
|
|
145
145
|
{{ content }}
|
|
146
146
|
</div>
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
{% comment %} ================================ {% endcomment %}
|
|
149
|
+
{% comment %} FEATURES SECTION (data-driven) {% endcomment %}
|
|
150
|
+
{% comment %} ================================ {% endcomment %}
|
|
151
151
|
{%- if landing.features.items -%}
|
|
152
152
|
<section id="features" class="zer0-section bg-body-tertiary" aria-labelledby="features-heading">
|
|
153
153
|
<div class="container-xl py-5 px-4 px-md-5">
|
|
@@ -179,9 +179,9 @@ layout: root
|
|
|
179
179
|
</section>
|
|
180
180
|
{%- endif -%}
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
{% comment %} ================================ {% endcomment %}
|
|
183
|
+
{% comment %} QUICK START SECTION (data-driven){% endcomment %}
|
|
184
|
+
{% comment %} ================================ {% endcomment %}
|
|
185
185
|
{%- comment -%}
|
|
186
186
|
Rendered only when the site ships a `get_started` block in
|
|
187
187
|
_data/landing.yml. The install cards advertise THEME installation
|
|
@@ -203,7 +203,7 @@ layout: root
|
|
|
203
203
|
</section>
|
|
204
204
|
{%- endif -%}
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
{% comment %} ================================ {% endcomment %}
|
|
207
|
+
{% comment %} AUTHOR / E-E-A-T SECTION {% endcomment %}
|
|
208
|
+
{% comment %} ================================ {% endcomment %}
|
|
209
209
|
{% include components/author-eeat.html %}
|