jekyll-theme-zer0 0.5.0 → 0.7.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 +186 -60
- data/README.md +225 -12
- data/_data/authors.yml +52 -0
- data/_data/navigation/posts.yml +13 -14
- data/_includes/analytics/posthog.html +281 -0
- data/_includes/components/author-card.html +177 -0
- data/_includes/components/cookie-consent.html +382 -0
- data/_includes/components/info-section.html +5 -0
- data/_includes/components/js-cdn.html +27 -22
- data/_includes/components/post-card.html +176 -0
- data/_includes/components/theme-info.html +312 -0
- data/_includes/core/branding.html +24 -12
- data/_includes/core/footer.html +16 -0
- data/_includes/core/head.html +8 -8
- data/_includes/navigation/sidebar-folders.html +63 -103
- data/_layouts/blog.html +424 -232
- data/_layouts/category.html +247 -0
- data/_layouts/journals.html +272 -23
- data/_layouts/root.html +6 -0
- data/_layouts/tag.html +111 -0
- data/assets/css/main.scss +5 -5
- metadata +15 -7
- /data/_sass/{it-journey → core}/_docs.scss +0 -0
- /data/_sass/{it-journey → core}/_syntax.scss +0 -0
- /data/_sass/{it-journey → core}/_theme.scss +0 -0
- /data/_sass/{it-journey → core}/_variables.scss +0 -0
- /data/_sass/{it-journey → core}/code-copy.scss +0 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
THEME INFO - Theme Version and System Information Display
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: theme-info.html
|
|
7
|
+
Path: _includes/components/theme-info.html
|
|
8
|
+
Purpose: Display theme version, Jekyll version, and system information
|
|
9
|
+
|
|
10
|
+
Template Logic:
|
|
11
|
+
- Automatically extracts theme version from gem specification
|
|
12
|
+
- Shows Jekyll and Ruby versions
|
|
13
|
+
- Displays GitHub repository information
|
|
14
|
+
- Links to theme documentation and changelog
|
|
15
|
+
|
|
16
|
+
Dependencies:
|
|
17
|
+
- site.remote_theme or site.theme configuration
|
|
18
|
+
- Jekyll's site.github metadata (for GitHub Pages)
|
|
19
|
+
|
|
20
|
+
Notes:
|
|
21
|
+
- Version is pulled dynamically during build
|
|
22
|
+
- No hardcoded version numbers
|
|
23
|
+
===================================================================
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
<div class="theme-info">
|
|
27
|
+
<h5 class="border-bottom pb-2 mb-3">
|
|
28
|
+
<i class="{{ site.default_icon }} bi-info-circle me-2"></i>
|
|
29
|
+
Theme Information
|
|
30
|
+
</h5>
|
|
31
|
+
|
|
32
|
+
<div class="row g-3">
|
|
33
|
+
<!-- Theme Details -->
|
|
34
|
+
<div class="col-12">
|
|
35
|
+
<div class="card bg-dark border-secondary">
|
|
36
|
+
<div class="card-body">
|
|
37
|
+
<h6 class="card-title">
|
|
38
|
+
<i class="{{ site.default_icon }} bi-palette me-2"></i>
|
|
39
|
+
Theme
|
|
40
|
+
</h6>
|
|
41
|
+
|
|
42
|
+
{% if site.remote_theme %}
|
|
43
|
+
{% assign theme_parts = site.remote_theme | split: "/" %}
|
|
44
|
+
{% assign theme_owner = theme_parts[0] %}
|
|
45
|
+
{% assign theme_repo = theme_parts[1] %}
|
|
46
|
+
|
|
47
|
+
<p class="mb-2">
|
|
48
|
+
<strong>Name:</strong>
|
|
49
|
+
<a href="https://github.com/{{ site.remote_theme }}"
|
|
50
|
+
target="_blank"
|
|
51
|
+
rel="noopener noreferrer"
|
|
52
|
+
class="text-info text-decoration-none">
|
|
53
|
+
{{ theme_repo }}
|
|
54
|
+
</a>
|
|
55
|
+
</p>
|
|
56
|
+
|
|
57
|
+
<p class="mb-2">
|
|
58
|
+
<strong>Repository:</strong>
|
|
59
|
+
<code class="text-warning">{{ site.remote_theme }}</code>
|
|
60
|
+
</p>
|
|
61
|
+
|
|
62
|
+
{% comment %}
|
|
63
|
+
Try to get version from Gem specification if available
|
|
64
|
+
This works when the theme is installed as a gem
|
|
65
|
+
{% endcomment %}
|
|
66
|
+
{% capture theme_version %}
|
|
67
|
+
{%- for spec in site.theme_specs -%}
|
|
68
|
+
{%- if spec.name == "jekyll-theme-zer0" -%}
|
|
69
|
+
{{ spec.version }}
|
|
70
|
+
{%- endif -%}
|
|
71
|
+
{%- endfor -%}
|
|
72
|
+
{% endcapture %}
|
|
73
|
+
|
|
74
|
+
{% if theme_version and theme_version != "" %}
|
|
75
|
+
<p class="mb-2">
|
|
76
|
+
<strong>Version:</strong>
|
|
77
|
+
<span class="badge bg-success">v{{ theme_version | strip }}</span>
|
|
78
|
+
</p>
|
|
79
|
+
{% else %}
|
|
80
|
+
<p class="mb-2">
|
|
81
|
+
<strong>Version:</strong>
|
|
82
|
+
<span class="badge bg-info">Remote (Latest)</span>
|
|
83
|
+
<small class="text-muted d-block mt-1">
|
|
84
|
+
Using latest version from GitHub
|
|
85
|
+
</small>
|
|
86
|
+
</p>
|
|
87
|
+
{% endif %}
|
|
88
|
+
|
|
89
|
+
<div class="mt-3">
|
|
90
|
+
<a href="https://github.com/{{ site.remote_theme }}/blob/main/CHANGELOG.md"
|
|
91
|
+
target="_blank"
|
|
92
|
+
rel="noopener noreferrer"
|
|
93
|
+
class="btn btn-sm btn-outline-info me-2">
|
|
94
|
+
<i class="{{ site.default_icon }} bi-journal-text"></i>
|
|
95
|
+
Changelog
|
|
96
|
+
</a>
|
|
97
|
+
<a href="https://github.com/{{ site.remote_theme }}#readme"
|
|
98
|
+
target="_blank"
|
|
99
|
+
rel="noopener noreferrer"
|
|
100
|
+
class="btn btn-sm btn-outline-info">
|
|
101
|
+
<i class="{{ site.default_icon }} bi-book"></i>
|
|
102
|
+
Documentation
|
|
103
|
+
</a>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
{% elsif site.theme %}
|
|
107
|
+
<p class="mb-2">
|
|
108
|
+
<strong>Name:</strong>
|
|
109
|
+
<code class="text-warning">{{ site.theme }}</code>
|
|
110
|
+
</p>
|
|
111
|
+
<p class="mb-2">
|
|
112
|
+
<strong>Type:</strong> Local Theme
|
|
113
|
+
</p>
|
|
114
|
+
{% else %}
|
|
115
|
+
<p class="text-muted">No theme configured</p>
|
|
116
|
+
{% endif %}
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<!-- Build Environment -->
|
|
122
|
+
<div class="col-12">
|
|
123
|
+
<div class="card bg-dark border-secondary">
|
|
124
|
+
<div class="card-body">
|
|
125
|
+
<h6 class="card-title">
|
|
126
|
+
<i class="{{ site.default_icon }} bi-cpu me-2"></i>
|
|
127
|
+
Build Environment
|
|
128
|
+
</h6>
|
|
129
|
+
|
|
130
|
+
<p class="mb-2">
|
|
131
|
+
<strong>Jekyll:</strong>
|
|
132
|
+
<span class="badge bg-primary">v{{ jekyll.version }}</span>
|
|
133
|
+
</p>
|
|
134
|
+
|
|
135
|
+
<p class="mb-2">
|
|
136
|
+
<strong>Ruby:</strong>
|
|
137
|
+
<span class="badge bg-danger">v{{ site.powered_by | where: "name", "Ruby" | map: "version" | first | default: "Unknown" }}</span>
|
|
138
|
+
</p>
|
|
139
|
+
|
|
140
|
+
<p class="mb-2">
|
|
141
|
+
<strong>Environment:</strong>
|
|
142
|
+
<span class="badge bg-secondary">{{ jekyll.environment }}</span>
|
|
143
|
+
</p>
|
|
144
|
+
|
|
145
|
+
{% if site.github %}
|
|
146
|
+
<p class="mb-2">
|
|
147
|
+
<strong>Build:</strong>
|
|
148
|
+
<span class="badge bg-info">GitHub Pages</span>
|
|
149
|
+
</p>
|
|
150
|
+
{% endif %}
|
|
151
|
+
|
|
152
|
+
<p class="mb-0">
|
|
153
|
+
<strong>Last Build:</strong>
|
|
154
|
+
<small class="text-muted">{{ site.time | date: "%Y-%m-%d %H:%M:%S %Z" }}</small>
|
|
155
|
+
</p>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
<!-- Site Information -->
|
|
161
|
+
<div class="col-12">
|
|
162
|
+
<div class="card bg-dark border-secondary">
|
|
163
|
+
<div class="card-body">
|
|
164
|
+
<h6 class="card-title">
|
|
165
|
+
<i class="{{ site.default_icon }} bi-globe me-2"></i>
|
|
166
|
+
Site Details
|
|
167
|
+
</h6>
|
|
168
|
+
|
|
169
|
+
<p class="mb-2">
|
|
170
|
+
<strong>Repository:</strong>
|
|
171
|
+
<a href="https://github.com/{{ site.repository }}"
|
|
172
|
+
target="_blank"
|
|
173
|
+
rel="noopener noreferrer"
|
|
174
|
+
class="text-info text-decoration-none">
|
|
175
|
+
{{ site.repository }}
|
|
176
|
+
</a>
|
|
177
|
+
</p>
|
|
178
|
+
|
|
179
|
+
<p class="mb-2">
|
|
180
|
+
<strong>Branch:</strong>
|
|
181
|
+
<code class="text-warning">{{ site.branch }}</code>
|
|
182
|
+
</p>
|
|
183
|
+
|
|
184
|
+
<p class="mb-0">
|
|
185
|
+
<strong>Collections:</strong>
|
|
186
|
+
<span class="badge bg-secondary">{{ site.collections | size }} configured</span>
|
|
187
|
+
</p>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
<!-- Plugin Information -->
|
|
193
|
+
<div class="col-12">
|
|
194
|
+
<div class="card bg-dark border-secondary">
|
|
195
|
+
<div class="card-body">
|
|
196
|
+
<h6 class="card-title">
|
|
197
|
+
<i class="{{ site.default_icon }} bi-plugin me-2"></i>
|
|
198
|
+
Active Plugins
|
|
199
|
+
</h6>
|
|
200
|
+
|
|
201
|
+
<div class="d-flex flex-wrap gap-2">
|
|
202
|
+
{% for plugin in site.plugins %}
|
|
203
|
+
<span class="badge bg-info">{{ plugin }}</span>
|
|
204
|
+
{% endfor %}
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
210
|
+
<!-- Powered By Framework -->
|
|
211
|
+
<div class="col-12">
|
|
212
|
+
<div class="card bg-dark border-secondary">
|
|
213
|
+
<div class="card-body">
|
|
214
|
+
<h6 class="card-title">
|
|
215
|
+
<i class="{{ site.default_icon }} bi-stack me-2"></i>
|
|
216
|
+
Technology Stack
|
|
217
|
+
</h6>
|
|
218
|
+
|
|
219
|
+
<div class="table-responsive">
|
|
220
|
+
<table class="table table-sm table-dark table-hover mb-0">
|
|
221
|
+
<thead>
|
|
222
|
+
<tr>
|
|
223
|
+
<th>Technology</th>
|
|
224
|
+
<th>Version</th>
|
|
225
|
+
</tr>
|
|
226
|
+
</thead>
|
|
227
|
+
<tbody>
|
|
228
|
+
{% for tech in site.powered_by %}
|
|
229
|
+
<tr>
|
|
230
|
+
<td>
|
|
231
|
+
{% if tech.url %}
|
|
232
|
+
<a href="{{ tech.url }}"
|
|
233
|
+
target="_blank"
|
|
234
|
+
rel="noopener noreferrer"
|
|
235
|
+
class="text-decoration-none">
|
|
236
|
+
<i class="{{ site.default_icon }} {{ tech.icon }}"></i>
|
|
237
|
+
{{ tech.name }}
|
|
238
|
+
</a>
|
|
239
|
+
{% else %}
|
|
240
|
+
<i class="{{ site.default_icon }} {{ tech.icon }}"></i>
|
|
241
|
+
{{ tech.name }}
|
|
242
|
+
{% endif %}
|
|
243
|
+
</td>
|
|
244
|
+
<td>
|
|
245
|
+
{% if tech.version %}
|
|
246
|
+
<code class="text-info">{{ tech.version }}</code>
|
|
247
|
+
{% else %}
|
|
248
|
+
<span class="text-muted">—</span>
|
|
249
|
+
{% endif %}
|
|
250
|
+
</td>
|
|
251
|
+
</tr>
|
|
252
|
+
{% endfor %}
|
|
253
|
+
</tbody>
|
|
254
|
+
</table>
|
|
255
|
+
</div>
|
|
256
|
+
</div>
|
|
257
|
+
</div>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<!-- Help Links -->
|
|
262
|
+
<div class="mt-4 pt-3 border-top">
|
|
263
|
+
<p class="text-muted mb-2">
|
|
264
|
+
<small>
|
|
265
|
+
<i class="{{ site.default_icon }} bi-question-circle me-1"></i>
|
|
266
|
+
Need help? Check out these resources:
|
|
267
|
+
</small>
|
|
268
|
+
</p>
|
|
269
|
+
<div class="d-flex flex-wrap gap-2">
|
|
270
|
+
<a href="https://jekyllrb.com/docs/"
|
|
271
|
+
target="_blank"
|
|
272
|
+
rel="noopener noreferrer"
|
|
273
|
+
class="btn btn-sm btn-outline-secondary">
|
|
274
|
+
Jekyll Docs
|
|
275
|
+
</a>
|
|
276
|
+
<a href="https://github.com/{{ site.remote_theme }}/issues"
|
|
277
|
+
target="_blank"
|
|
278
|
+
rel="noopener noreferrer"
|
|
279
|
+
class="btn btn-sm btn-outline-secondary">
|
|
280
|
+
Report Issue
|
|
281
|
+
</a>
|
|
282
|
+
<a href="https://github.com/{{ site.repository }}/discussions"
|
|
283
|
+
target="_blank"
|
|
284
|
+
rel="noopener noreferrer"
|
|
285
|
+
class="btn btn-sm btn-outline-secondary">
|
|
286
|
+
Discussions
|
|
287
|
+
</a>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
</div>
|
|
291
|
+
|
|
292
|
+
<style>
|
|
293
|
+
.theme-info .card {
|
|
294
|
+
transition: transform 0.2s ease-in-out;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.theme-info .card:hover {
|
|
298
|
+
transform: translateY(-2px);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.theme-info code {
|
|
302
|
+
font-size: 0.875rem;
|
|
303
|
+
padding: 0.2rem 0.4rem;
|
|
304
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
305
|
+
border-radius: 0.25rem;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.theme-info .badge {
|
|
309
|
+
font-size: 0.875rem;
|
|
310
|
+
padding: 0.35rem 0.65rem;
|
|
311
|
+
}
|
|
312
|
+
</style>
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
BRANDING - Site Title and Subtitle Display
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: branding.html
|
|
7
|
+
Path: _includes/core/branding.html
|
|
8
|
+
Purpose: Display site title and optional subtitle in navbar
|
|
9
|
+
|
|
10
|
+
Dependencies:
|
|
11
|
+
- site.title: Main site title from _config.yml
|
|
12
|
+
- site.subtitle: Optional subtitle from _config.yml
|
|
13
|
+
- site.default_icon: Icon framework class (e.g., 'bi')
|
|
14
|
+
- site.title_icon: Icon for title display
|
|
15
|
+
- site.subtitle_icon: Icon for subtitle display
|
|
16
|
+
===================================================================
|
|
6
17
|
-->
|
|
7
18
|
<!-- Color Schema Override
|
|
8
19
|
TODO: Add a poline plug-in to generate color scheme
|
|
@@ -22,19 +33,20 @@
|
|
|
22
33
|
<!-- Title Section -->
|
|
23
34
|
|
|
24
35
|
<div class="navbar-brand">
|
|
25
|
-
<a class="nav-link" href="{{
|
|
26
|
-
<i class="d-sm-inline d-md-none {{ site.default_icon }} {{ site
|
|
27
|
-
<!--
|
|
36
|
+
<a class="nav-link" href="{{ page.url | relative_url }}">
|
|
37
|
+
<i class="d-sm-inline d-md-none {{ site.default_icon }} {{ site.default_icon }}-{{ site.title_icon | default: 'house' }}" aria-hidden="true"></i>
|
|
38
|
+
<!-- Display name if there's enough space, else icon only -->
|
|
28
39
|
<span class="d-none d-md-inline">
|
|
29
|
-
{{ site.title
|
|
40
|
+
{{ site.title }}
|
|
30
41
|
</span>
|
|
42
|
+
</a>
|
|
31
43
|
</div>
|
|
32
44
|
|
|
33
45
|
<div class="navbar-brand">
|
|
34
|
-
<!-- If a subtitle
|
|
46
|
+
<!-- If a subtitle exists -->
|
|
35
47
|
{%- if site.subtitle -%}
|
|
36
|
-
<a class="nav-link" href="
|
|
37
|
-
<i class="d-sm-inline d-md-none {{ site.default_icon }} {{ site.default_icon }}-{{ site.subtitle_icon | default:
|
|
48
|
+
<a class="nav-link" href="{{ page.url | relative_url }}">
|
|
49
|
+
<i class="d-sm-inline d-md-none {{ site.default_icon }} {{ site.default_icon }}-{{ site.subtitle_icon | default: 'journal' }}" aria-hidden="true"></i>
|
|
38
50
|
<span class="d-none d-md-inline">
|
|
39
51
|
{{ site.subtitle }}
|
|
40
52
|
</span>
|
data/_includes/core/footer.html
CHANGED
|
@@ -52,6 +52,17 @@
|
|
|
52
52
|
{% endif %}
|
|
53
53
|
</li>
|
|
54
54
|
{% endfor %}
|
|
55
|
+
<!-- Theme Info Button -->
|
|
56
|
+
<li class="btn align-items-end">
|
|
57
|
+
<a href="#"
|
|
58
|
+
data-bs-toggle="modal"
|
|
59
|
+
data-bs-target="#info-section"
|
|
60
|
+
aria-label="View theme information and system details"
|
|
61
|
+
title="Theme Info">
|
|
62
|
+
<i class="{{ site.default_icon }} bi-info-circle" aria-hidden="true"></i>
|
|
63
|
+
<span class="d-none d-md-inline">Info</span>
|
|
64
|
+
</a>
|
|
65
|
+
</li>
|
|
55
66
|
</ul>
|
|
56
67
|
</div>
|
|
57
68
|
|
|
@@ -138,6 +149,11 @@
|
|
|
138
149
|
<ul class="list-inline mb-0">
|
|
139
150
|
<li class="list-inline-item"><a href="{{ '/privacy-policy' | relative_url }}" class="text-light text-decoration-none">Privacy Policy</a></li>
|
|
140
151
|
<li class="list-inline-item"><a href="{{ '/terms-of-service' | relative_url }}" class="text-light text-decoration-none">Terms of Service</a></li>
|
|
152
|
+
<li class="list-inline-item">
|
|
153
|
+
<a href="#" class="text-light text-decoration-none" data-bs-toggle="modal" data-bs-target="#cookieSettingsModal">
|
|
154
|
+
Cookie Preferences
|
|
155
|
+
</a>
|
|
156
|
+
</li>
|
|
141
157
|
</ul>
|
|
142
158
|
</div>
|
|
143
159
|
</div>
|
data/_includes/core/head.html
CHANGED
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
<!-- ================================ -->
|
|
36
36
|
<!-- JAVASCRIPT LIBRARIES -->
|
|
37
37
|
<!-- ================================ -->
|
|
38
|
-
<!-- Custom theme JavaScript -
|
|
39
|
-
<script src="{{ '/assets/js/myScript.js' | relative_url }}"></script>
|
|
40
|
-
<script src="{{ '/assets/js/auto-hide-nav.js' | relative_url }}"></script>
|
|
41
|
-
<script src="{{ '/assets/js/back-to-top.js' | relative_url }}"></script>
|
|
42
|
-
<script src="{{ '/assets/js/halfmoon.js' | relative_url }}"></script>
|
|
43
|
-
<script src="{{ '/assets/js/side-bar-folders.js' | relative_url }}"></script>
|
|
44
|
-
<script src="{{ '/assets/js/code-copy.js' | relative_url }}"></script>
|
|
38
|
+
<!-- Custom theme JavaScript - Deferred for performance -->
|
|
39
|
+
<script defer src="{{ '/assets/js/myScript.js' | relative_url }}"></script>
|
|
40
|
+
<script defer src="{{ '/assets/js/auto-hide-nav.js' | relative_url }}"></script>
|
|
41
|
+
<script defer src="{{ '/assets/js/back-to-top.js' | relative_url }}"></script>
|
|
42
|
+
<script defer src="{{ '/assets/js/halfmoon.js' | relative_url }}"></script>
|
|
43
|
+
<script defer src="{{ '/assets/js/side-bar-folders.js' | relative_url }}"></script>
|
|
44
|
+
<script defer src="{{ '/assets/js/code-copy.js' | relative_url }}"></script>
|
|
45
45
|
|
|
46
46
|
<!-- ================================ -->
|
|
47
47
|
<!-- THIRD PARTY INTEGRATIONS -->
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
{% endif %}
|
|
54
54
|
|
|
55
55
|
<!-- Nano Progress Bar - Visual loading indicator -->
|
|
56
|
-
<script src="{{'/assets/js/nanobar.min.js' | relative_url }}"></script>
|
|
56
|
+
<script defer src="{{'/assets/js/nanobar.min.js' | relative_url }}"></script>
|
|
57
57
|
|
|
58
58
|
<!-- Progress Bar Initialization - Creates visual loading feedback -->
|
|
59
59
|
<script>
|
|
@@ -1,107 +1,67 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
SIDEBAR FOLDERS - Collection Document Folder Structure
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: sidebar-folders.html
|
|
7
|
+
Path: _includes/navigation/sidebar-folders.html
|
|
8
|
+
Purpose: Display collection documents organized by folder structure
|
|
9
|
+
|
|
10
|
+
Template Logic:
|
|
11
|
+
- Gets the current page's collection
|
|
12
|
+
- Sorts documents by path to maintain folder hierarchy
|
|
13
|
+
- Displays folder names and document links
|
|
14
|
+
- Uses Bootstrap list-group for styling
|
|
15
|
+
|
|
16
|
+
Dependencies:
|
|
17
|
+
- page.collection: Current collection name from page front matter
|
|
18
|
+
- site.collections: Jekyll collections configuration
|
|
19
|
+
- Bootstrap 5 list-group component
|
|
20
|
+
|
|
21
|
+
Usage:
|
|
22
|
+
- Include in sidebar when page.sidebar.nav == "dynamic"
|
|
23
|
+
- Requires page to be part of a Jekyll collection
|
|
24
|
+
===================================================================
|
|
25
|
+
-->
|
|
5
26
|
|
|
6
|
-
|
|
7
|
-
<h2>{{ root_folder.label }}</h2>
|
|
8
|
-
{% assign docs = root_folder.docs | sort: 'path' %}
|
|
9
|
-
{% assign prev_path = "" %}
|
|
10
|
-
<ul class="list-group list-group-flush">
|
|
11
|
-
{% for doc in docs %}
|
|
12
|
-
{% assign current_path = doc.path | split: '/' | pop %}
|
|
13
|
-
{% if current_path != prev_path %}
|
|
14
|
-
{% for folder in current_path %}
|
|
15
|
-
{% if forloop.index != 1 %}
|
|
16
|
-
<li class="folder ">{{ folder }}</li>
|
|
17
|
-
{% endif %}
|
|
18
|
-
{% endfor %}
|
|
19
|
-
{% assign prev_path = current_path %}
|
|
20
|
-
{% endif %}
|
|
21
|
-
<li class="file list-group-item list-group-item-action"><a href="{{ doc.url | relative_url }}">{{ doc.title }}</a></li>
|
|
22
|
-
{% endfor %}
|
|
23
|
-
</ul>
|
|
27
|
+
{% assign root_folder = site.collections | where: "label", page.collection | first %}
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
{% endunless %}
|
|
29
|
+
{% if root_folder %}
|
|
30
|
+
<h2 class="h5 mb-3">
|
|
31
|
+
<i class="bi bi-folder me-2"></i>
|
|
32
|
+
{{ root_folder.label | capitalize }}
|
|
33
|
+
</h2>
|
|
34
|
+
|
|
35
|
+
{% assign docs = root_folder.docs | sort: 'path' %}
|
|
36
|
+
{% assign prev_path = "" %}
|
|
37
|
+
|
|
38
|
+
<ul class="list-group list-group-flush">
|
|
39
|
+
{% for doc in docs %}
|
|
40
|
+
{% assign current_path = doc.path | split: '/' | pop %}
|
|
41
|
+
|
|
42
|
+
{% if current_path != prev_path %}
|
|
43
|
+
{% for folder in current_path %}
|
|
44
|
+
{% if forloop.index != 1 %}
|
|
45
|
+
<li class="folder list-group-item bg-body-tertiary fw-semibold">
|
|
46
|
+
<i class="bi bi-folder2 me-1"></i>
|
|
47
|
+
{{ folder }}
|
|
48
|
+
</li>
|
|
49
|
+
{% endif %}
|
|
48
50
|
{% endfor %}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
Home
|
|
58
|
-
</button>
|
|
59
|
-
<div class="collapse show" id="home-collapse" style="">
|
|
60
|
-
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1 small">
|
|
61
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Overview</a></li>
|
|
62
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Updates</a></li>
|
|
63
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Reports</a></li>
|
|
64
|
-
</ul>
|
|
65
|
-
</div>
|
|
66
|
-
</li>
|
|
67
|
-
<li class="mb-1">
|
|
68
|
-
<button class="btn btn-toggle d-inline-flex align-items-center rounded border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#dashboard-collapse" aria-expanded="false">
|
|
69
|
-
Dashboard
|
|
70
|
-
</button>
|
|
71
|
-
<div class="collapse" id="dashboard-collapse" style="">
|
|
72
|
-
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1 small">
|
|
73
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Overview</a></li>
|
|
74
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Weekly</a></li>
|
|
75
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Monthly</a></li>
|
|
76
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Annually</a></li>
|
|
77
|
-
</ul>
|
|
78
|
-
</div>
|
|
79
|
-
</li>
|
|
80
|
-
<li class="mb-1">
|
|
81
|
-
<button class="btn btn-toggle d-inline-flex align-items-center rounded border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#orders-collapse" aria-expanded="false">
|
|
82
|
-
Orders
|
|
83
|
-
</button>
|
|
84
|
-
<div class="collapse" id="orders-collapse" style="">
|
|
85
|
-
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1 small">
|
|
86
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">New</a></li>
|
|
87
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Processed</a></li>
|
|
88
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Shipped</a></li>
|
|
89
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Returned</a></li>
|
|
90
|
-
</ul>
|
|
91
|
-
</div>
|
|
92
|
-
</li>
|
|
93
|
-
<li class="border-top my-3"></li>
|
|
94
|
-
<li class="mb-1">
|
|
95
|
-
<button class="btn btn-toggle d-inline-flex align-items-center rounded border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#account-collapse" aria-expanded="false">
|
|
96
|
-
Account
|
|
97
|
-
</button>
|
|
98
|
-
<div class="collapse" id="account-collapse">
|
|
99
|
-
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1 small">
|
|
100
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">New...</a></li>
|
|
101
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Profile</a></li>
|
|
102
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Settings</a></li>
|
|
103
|
-
<li><a href="#" class="link-body-emphasis d-inline-flex text-decoration-none rounded">Sign out</a></li>
|
|
104
|
-
</ul>
|
|
105
|
-
</div>
|
|
51
|
+
{% assign prev_path = current_path %}
|
|
52
|
+
{% endif %}
|
|
53
|
+
|
|
54
|
+
<li class="file list-group-item list-group-item-action{% if page.url == doc.url %} active{% endif %}">
|
|
55
|
+
<a href="{{ doc.url | relative_url }}" class="text-decoration-none">
|
|
56
|
+
<i class="bi bi-file-text me-1"></i>
|
|
57
|
+
{{ doc.title }}
|
|
58
|
+
</a>
|
|
106
59
|
</li>
|
|
107
|
-
|
|
60
|
+
{% endfor %}
|
|
61
|
+
</ul>
|
|
62
|
+
{% else %}
|
|
63
|
+
<p class="text-muted small">
|
|
64
|
+
<i class="bi bi-info-circle me-1"></i>
|
|
65
|
+
No collection found for this page.
|
|
66
|
+
</p>
|
|
67
|
+
{% endif %}
|