jekyll-theme-zer0 0.20.2 → 0.21.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 +81 -0
- data/_data/navigation/main.yml +37 -5
- data/_data/navigation/posts.yml +10 -10
- data/_includes/components/dev-shortcuts.html +97 -50
- data/_includes/components/env-switcher.html +212 -0
- data/_includes/components/info-section.html +173 -32
- data/_includes/components/js-cdn.html +3 -0
- data/_includes/components/post-card.html +14 -2
- data/_includes/components/post-type-badge.html +74 -0
- data/_includes/components/theme-info.html +65 -273
- data/_includes/core/header.html +36 -32
- data/_includes/navigation/navbar.html +11 -272
- data/_includes/navigation/section-sidebar.html +242 -0
- data/_layouts/README.md +68 -15
- data/_layouts/article.html +519 -0
- data/_layouts/default.html +6 -0
- data/_layouts/{blog.html → news.html} +211 -50
- data/_layouts/note.html +307 -0
- data/_layouts/section.html +573 -0
- data/_sass/core/_navbar.scss +390 -0
- data/_sass/custom.scss +260 -0
- data/assets/data/notebooks/sales_data.csv +99 -0
- data/assets/data/notebooks/survey_responses.csv +76 -0
- data/assets/data/notebooks/weather_data.csv +50 -0
- data/assets/js/navigation.js +206 -0
- data/scripts/docker-publish +238 -0
- data/scripts/lib/git.sh +3 -1
- data/scripts/lib/version.sh +34 -0
- metadata +15 -5
- data/_layouts/category.html +0 -237
- data/_layouts/journals.html +0 -277
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6efa1fb4e9fdc23aa63e90c94762e62c2f568a379133ca8674f78b6c2ed19046
|
|
4
|
+
data.tar.gz: c9eba9e9cff455d23cdeebdbc92facbafc0a6ec6063c366cfeb7819a044a3cc6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9a4fa8676d4589896c9feaa8fd9e440e6bb1c76e686c5b5860d3a9112e873ac2cb4f98543391495456236e689bce451a1de36285de122c6793210914baa62c9
|
|
7
|
+
data.tar.gz: da070bafa01bfd3a7507da4160a31f396b94c1163299c788cab1aeaa011291f1e6955ddf29128c4045425821feea34a83bf62290f7c75183fd411e48099deece
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,86 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.0] - 2026-02-01
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Environment Switcher**: New settings modal tab with dev/prod URL shortcuts and copy actions
|
|
7
|
+
- **Navigation Assets**: Extracted navigation styles and scripts into `_sass/core/_navbar.scss` and `assets/js/navigation.js`
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **Settings Modal**: Redesigned info section with tabbed layout and compact theme info
|
|
11
|
+
- **Navigation UI**: Refined header utility controls, navbar labels/icons, and loaded navigation JS via js-cdn include
|
|
12
|
+
- **Dev Shortcuts**: Updated source shortcuts layout and labeling for clarity
|
|
13
|
+
- **Theme Branding**: Updated default title icon and subtitle in `_config.yml`
|
|
14
|
+
|
|
15
|
+
## [0.20.8] - 2026-02-02
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Version bump: patch release
|
|
19
|
+
|
|
20
|
+
### Commits in this release
|
|
21
|
+
- d71a42a feat(docker): add local Docker publishing capability
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## [0.20.7] - 2026-02-01
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- Version bump: patch release
|
|
28
|
+
|
|
29
|
+
### Commits in this release
|
|
30
|
+
- 969ce94 refactor(ci): abstract hardcoded values to GitHub variables and secrets
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## [0.20.6] - 2026-02-01
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- Version bump: patch release
|
|
37
|
+
|
|
38
|
+
### Commits in this release
|
|
39
|
+
- af25fc8 fix(ci): improve Docker compose compatibility for CI environments
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## [0.20.5] - 2026-02-01
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
- Version bump: patch release
|
|
46
|
+
|
|
47
|
+
### Commits in this release
|
|
48
|
+
- 7a2eeaf fix(docker): add PAGES_REPO_NWO environment variable for Jekyll builds
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## [0.20.4] - 2026-02-01
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
- Version bump: patch release
|
|
55
|
+
|
|
56
|
+
### Commits in this release
|
|
57
|
+
- a71e7a3 fix(ci): add PAGES_REPO_NWO env var and skip-remote for Jekyll builds
|
|
58
|
+
- 74e0929 fix(ci): ensure Gemfile.lock is updated during version bumps
|
|
59
|
+
- e06520e docs(prompts): enhance release pipeline documentation with best practices
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## [0.20.3] - 2026-02-01
|
|
63
|
+
|
|
64
|
+
### Added
|
|
65
|
+
- **Notes Collection**: 5 new developer reference notes
|
|
66
|
+
- `bash-shortcuts.md` - Essential terminal keyboard shortcuts
|
|
67
|
+
- `docker-commands.md` - Docker and Docker Compose command reference
|
|
68
|
+
- `git-cheatsheet.md` - Git commands quick reference
|
|
69
|
+
- `jekyll-front-matter.md` - Jekyll front matter variables guide
|
|
70
|
+
- `markdown-tips.md` - Advanced Markdown formatting tricks
|
|
71
|
+
- **Python Statistics Notebook**: New `python-statistics.ipynb` Jupyter notebook with scipy, pandas, and statistical analysis examples
|
|
72
|
+
- **Enhanced Notes page**: Added tag filtering and improved card-based layout
|
|
73
|
+
- **Enhanced Notebooks page**: Added difficulty filtering and improved card-based layout with download links
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
- **Layout Standardization**: Updated all posts from `layout: journals` to `layout: article` for consistency
|
|
77
|
+
- **Section Index Pages**: Updated category index pages to use `layout: section` with proper section_style settings
|
|
78
|
+
- **News URL Structure**: Changed permalinks from `/posts/` to `/news/` across all news sections
|
|
79
|
+
- **Removed**: Deleted unused `pages/blog.md` page
|
|
80
|
+
|
|
81
|
+
### Fixed
|
|
82
|
+
- **Layout consistency**: Standardized layouts across Business, Development, Science, Technology, Tutorial, and World news sections
|
|
83
|
+
|
|
3
84
|
## [0.20.2] - 2026-01-30
|
|
4
85
|
|
|
5
86
|
### Added
|
data/_data/navigation/main.yml
CHANGED
|
@@ -14,17 +14,49 @@
|
|
|
14
14
|
- title: GitHub Setup
|
|
15
15
|
url: /quickstart/github-setup/
|
|
16
16
|
|
|
17
|
-
- title:
|
|
18
|
-
icon: bi-
|
|
19
|
-
url: /
|
|
17
|
+
- title: News
|
|
18
|
+
icon: bi-newspaper
|
|
19
|
+
url: /news/
|
|
20
20
|
children:
|
|
21
|
-
- title: All
|
|
22
|
-
url: /
|
|
21
|
+
- title: All News
|
|
22
|
+
url: /news/
|
|
23
23
|
- title: Categories
|
|
24
24
|
url: /categories/
|
|
25
25
|
- title: Tags
|
|
26
26
|
url: /tags/
|
|
27
27
|
|
|
28
|
+
- title: Notes
|
|
29
|
+
icon: bi-journal-text
|
|
30
|
+
url: /notes/
|
|
31
|
+
children:
|
|
32
|
+
- title: All Notes
|
|
33
|
+
url: /notes/
|
|
34
|
+
- title: Git Cheatsheet
|
|
35
|
+
url: /notes/git-cheatsheet/
|
|
36
|
+
- title: Docker Commands
|
|
37
|
+
url: /notes/docker-commands/
|
|
38
|
+
- title: Jekyll Front Matter
|
|
39
|
+
url: /notes/jekyll-front-matter/
|
|
40
|
+
- title: Markdown Tips
|
|
41
|
+
url: /notes/markdown-tips/
|
|
42
|
+
- title: Bash Shortcuts
|
|
43
|
+
url: /notes/bash-shortcuts/
|
|
44
|
+
|
|
45
|
+
- title: Notebooks
|
|
46
|
+
icon: bi-journal-code
|
|
47
|
+
url: /notebooks/
|
|
48
|
+
children:
|
|
49
|
+
- title: All Notebooks
|
|
50
|
+
url: /notebooks/
|
|
51
|
+
- title: Pandas Data Analysis
|
|
52
|
+
url: /notebooks/pandas-data-analysis/
|
|
53
|
+
- title: Matplotlib Visualization
|
|
54
|
+
url: /notebooks/matplotlib-visualization/
|
|
55
|
+
- title: Python Statistics
|
|
56
|
+
url: /notebooks/python-statistics/
|
|
57
|
+
- title: API Requests
|
|
58
|
+
url: /notebooks/api-requests/
|
|
59
|
+
|
|
28
60
|
- title: Docs
|
|
29
61
|
icon: bi-journal-bookmark
|
|
30
62
|
url: /docs/
|
data/_data/navigation/posts.yml
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Used by:
|
|
3
|
-
# Purpose:
|
|
4
|
-
# Note:
|
|
1
|
+
# News Section Navigation Configuration
|
|
2
|
+
# Used by: News layout, section pages, and article navigation
|
|
3
|
+
# Purpose: Section-based navigation for news content
|
|
4
|
+
# Note: Sections match folders in pages/_posts/
|
|
5
5
|
|
|
6
6
|
- title: Development
|
|
7
7
|
icon: bi-code-slash
|
|
8
|
-
url: /
|
|
8
|
+
url: /news/development/
|
|
9
9
|
description: "Software development, coding practices, and programming tutorials"
|
|
10
10
|
|
|
11
11
|
- title: Technology
|
|
12
12
|
icon: bi-cpu
|
|
13
|
-
url: /
|
|
13
|
+
url: /news/technology/
|
|
14
14
|
description: "Tech news, tools, and emerging technologies"
|
|
15
15
|
|
|
16
16
|
- title: Tutorial
|
|
17
17
|
icon: bi-journal-code
|
|
18
|
-
url: /
|
|
18
|
+
url: /news/tutorial/
|
|
19
19
|
description: "Step-by-step guides and how-to articles"
|
|
20
20
|
|
|
21
21
|
- title: World
|
|
22
22
|
icon: bi-globe
|
|
23
|
-
url: /
|
|
23
|
+
url: /news/world/
|
|
24
24
|
description: "Global trends, remote work, and industry insights"
|
|
25
25
|
|
|
26
26
|
- title: Business
|
|
27
27
|
icon: bi-briefcase
|
|
28
|
-
url: /
|
|
28
|
+
url: /news/business/
|
|
29
29
|
description: "Business strategies, startups, and entrepreneurship"
|
|
30
30
|
|
|
31
31
|
- title: Science
|
|
32
32
|
icon: bi-mortarboard
|
|
33
|
-
url: /
|
|
33
|
+
url: /news/science/
|
|
34
34
|
description: "Scientific discoveries, research, and innovation"
|
|
@@ -1,57 +1,104 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- testvar
|
|
16
|
-
references:
|
|
17
|
-
- https://shopify.github.io/liquid/tags/variable/#capture
|
|
18
|
-
- https://getbootstrap.com/docs/5.3/components/collapse/
|
|
19
|
-
tutorial:
|
|
20
|
-
- https://jekyllcodex.org/without-plugin/hidden-settings/
|
|
21
|
-
- https://jekyllcodex.org/without-plugin/hidden-settings/#collapse-feature
|
|
22
|
-
-->
|
|
2
|
+
===================================================================
|
|
3
|
+
DEV SHORTCUTS - Source Code Quick Access Links
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: dev-shortcuts.html
|
|
7
|
+
Path: _includes/components/dev-shortcuts.html
|
|
8
|
+
Purpose: Provide quick access to source code editing in various IDEs
|
|
9
|
+
|
|
10
|
+
Dependencies:
|
|
11
|
+
- site.repository, site.branch, site.collections_dir
|
|
12
|
+
- page.collection, page.path
|
|
13
|
+
===================================================================
|
|
14
|
+
-->
|
|
23
15
|
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
{% comment %} Determine page directory for collections {% endcomment %}
|
|
17
|
+
{% if page.collection %}
|
|
18
|
+
{% capture page_dir %}{{ site.collections_dir }}{% endcapture %}
|
|
19
|
+
{% else %}
|
|
20
|
+
{% assign page_dir = "" %}
|
|
21
|
+
{% endif %}
|
|
26
22
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{% if page.collection %}
|
|
31
|
-
{% capture page_dir %}{{ site.collections_dir }}{% endcapture %}
|
|
32
|
-
{% assign testvar = "collection exists" %}
|
|
33
|
-
{% endif %}
|
|
23
|
+
<div class="dev-shortcuts">
|
|
24
|
+
<div class="d-flex flex-column gap-2">
|
|
34
25
|
|
|
35
|
-
<!--
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
</a>
|
|
40
|
-
<a class="btn bg-primary" href="https://github.dev/{{site.repository}}/blob/{{site.branch}}/{{ page_dir }}/{{ page.path }}">
|
|
41
|
-
<i class="{{site.default_icon}} {{site.default_icon}}-cloud"></i>
|
|
42
|
-
<!-- https://icons.getbootstrap.com/icons/microsoft/ -->
|
|
43
|
-
</a>
|
|
26
|
+
<!-- Section Label -->
|
|
27
|
+
<small class="text-body-secondary fw-medium text-uppercase">
|
|
28
|
+
<i class="bi bi-code-slash me-1"></i>Source Code
|
|
29
|
+
</small>
|
|
44
30
|
|
|
45
|
-
<!--
|
|
31
|
+
<!-- Button Group -->
|
|
32
|
+
<div class="btn-group-vertical" role="group" aria-label="Source code shortcuts">
|
|
33
|
+
|
|
34
|
+
<!-- View on GitHub -->
|
|
35
|
+
<a href="https://github.com/{{ site.repository }}/blob/{{ site.branch }}/{{ page_dir }}/{{ page.path }}"
|
|
36
|
+
target="_blank"
|
|
37
|
+
rel="noopener"
|
|
38
|
+
class="btn btn-outline-secondary btn-sm d-flex align-items-center justify-content-between"
|
|
39
|
+
data-bs-toggle="tooltip"
|
|
40
|
+
data-bs-placement="left"
|
|
41
|
+
title="View source file on GitHub">
|
|
42
|
+
<span>
|
|
43
|
+
<i class="bi bi-github me-2"></i>
|
|
44
|
+
View on GitHub
|
|
45
|
+
</span>
|
|
46
|
+
<i class="bi bi-box-arrow-up-right text-body-secondary small"></i>
|
|
47
|
+
</a>
|
|
48
|
+
|
|
49
|
+
<!-- Edit in GitHub.dev -->
|
|
50
|
+
<a href="https://github.dev/{{ site.repository }}/blob/{{ site.branch }}/{{ page_dir }}/{{ page.path }}"
|
|
51
|
+
target="_blank"
|
|
52
|
+
rel="noopener"
|
|
53
|
+
class="btn btn-outline-secondary btn-sm d-flex align-items-center justify-content-between"
|
|
54
|
+
data-bs-toggle="tooltip"
|
|
55
|
+
data-bs-placement="left"
|
|
56
|
+
title="Open in browser-based VS Code editor">
|
|
57
|
+
<span>
|
|
58
|
+
<i class="bi bi-cloud me-2"></i>
|
|
59
|
+
Edit in GitHub.dev
|
|
60
|
+
</span>
|
|
61
|
+
<i class="bi bi-box-arrow-up-right text-body-secondary small"></i>
|
|
62
|
+
</a>
|
|
63
|
+
|
|
64
|
+
<!-- Open in Local VS Code -->
|
|
65
|
+
<a href="vscode://file{{ site.local_git }}/{{ site.repository_name }}/{{ page_dir }}/{{ page.path }}"
|
|
66
|
+
class="btn btn-outline-secondary btn-sm d-flex align-items-center justify-content-between"
|
|
67
|
+
data-bs-toggle="tooltip"
|
|
68
|
+
data-bs-placement="left"
|
|
69
|
+
title="Open in local VS Code (requires local clone)">
|
|
70
|
+
<span>
|
|
71
|
+
<i class="bi bi-code-square me-2"></i>
|
|
72
|
+
Open in VS Code
|
|
73
|
+
</span>
|
|
74
|
+
<i class="bi bi-window text-body-secondary small"></i>
|
|
75
|
+
</a>
|
|
76
|
+
|
|
77
|
+
</div>
|
|
46
78
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
<!-- Config Links -->
|
|
80
|
+
<small class="text-body-secondary fw-medium text-uppercase mt-2">
|
|
81
|
+
<i class="bi bi-sliders me-1"></i>Configuration
|
|
82
|
+
</small>
|
|
83
|
+
|
|
84
|
+
<div class="btn-group-vertical" role="group" aria-label="Configuration shortcuts">
|
|
85
|
+
|
|
86
|
+
<!-- Site Config -->
|
|
87
|
+
<a href="https://github.com/{{ site.repository }}/blob/{{ site.branch }}/_config.yml"
|
|
88
|
+
target="_blank"
|
|
89
|
+
rel="noopener"
|
|
90
|
+
class="btn btn-outline-secondary btn-sm d-flex align-items-center justify-content-between"
|
|
91
|
+
data-bs-toggle="tooltip"
|
|
92
|
+
data-bs-placement="left"
|
|
93
|
+
title="View Jekyll site configuration">
|
|
94
|
+
<span>
|
|
95
|
+
<i class="bi bi-gear me-2"></i>
|
|
96
|
+
Site Config
|
|
97
|
+
</span>
|
|
98
|
+
<code class="small ms-2">_config.yml</code>
|
|
99
|
+
</a>
|
|
100
|
+
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
</div>
|
|
57
104
|
</div>
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
ENVIRONMENT SWITCHER - Dev/Prod URL Display and Toggle
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: env-switcher.html
|
|
7
|
+
Path: _includes/components/env-switcher.html
|
|
8
|
+
Purpose: Display current environment and provide URL switching
|
|
9
|
+
|
|
10
|
+
Dependencies:
|
|
11
|
+
- jekyll.environment: Current build environment
|
|
12
|
+
- site.url: Production URL
|
|
13
|
+
- site.port: Development port (default 4000)
|
|
14
|
+
- Bootstrap 5 components
|
|
15
|
+
===================================================================
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
{% assign current_env = jekyll.environment | default: "development" %}
|
|
19
|
+
{% assign is_production = current_env == "production" %}
|
|
20
|
+
{% assign prod_url = site.url | append: site.baseurl %}
|
|
21
|
+
{% assign dev_url = "http://localhost:" | append: site.port | default: 4000 | append: site.baseurl %}
|
|
22
|
+
|
|
23
|
+
<!-- Environment Status Card -->
|
|
24
|
+
<div class="card border-{{ is_production | if: 'success', 'warning' }} mb-3">
|
|
25
|
+
<div class="card-header d-flex align-items-center justify-content-between py-2 bg-{{ is_production | if: 'success', 'warning' }} bg-opacity-10">
|
|
26
|
+
<span class="fw-semibold">
|
|
27
|
+
<i class="bi bi-{{ is_production | if: 'cloud-check', 'pc-display' }} me-2"></i>
|
|
28
|
+
Current Environment
|
|
29
|
+
</span>
|
|
30
|
+
{% if is_production %}
|
|
31
|
+
<span class="badge bg-success">
|
|
32
|
+
<i class="bi bi-globe me-1"></i>Production
|
|
33
|
+
</span>
|
|
34
|
+
{% else %}
|
|
35
|
+
<span class="badge bg-warning text-dark">
|
|
36
|
+
<i class="bi bi-code-slash me-1"></i>Development
|
|
37
|
+
</span>
|
|
38
|
+
{% endif %}
|
|
39
|
+
</div>
|
|
40
|
+
<div class="card-body">
|
|
41
|
+
<!-- Active URL Display -->
|
|
42
|
+
<div class="mb-3">
|
|
43
|
+
<label class="form-label small text-body-secondary mb-1">
|
|
44
|
+
<i class="bi bi-link-45deg me-1"></i>Current Page URL
|
|
45
|
+
</label>
|
|
46
|
+
<div class="input-group input-group-sm">
|
|
47
|
+
<span class="input-group-text">
|
|
48
|
+
<i class="bi bi-{{ is_production | if: 'lock', 'unlock' }}"></i>
|
|
49
|
+
</span>
|
|
50
|
+
<input type="text"
|
|
51
|
+
class="form-control font-monospace"
|
|
52
|
+
value="{{ is_production | if: prod_url, dev_url }}{{ page.url }}"
|
|
53
|
+
readonly
|
|
54
|
+
id="currentUrlInput">
|
|
55
|
+
<button class="btn btn-outline-secondary"
|
|
56
|
+
type="button"
|
|
57
|
+
onclick="copyToClipboard('currentUrlInput', this)"
|
|
58
|
+
title="Copy to clipboard">
|
|
59
|
+
<i class="bi bi-clipboard"></i>
|
|
60
|
+
</button>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<!-- Build Info -->
|
|
65
|
+
<div class="row g-2 text-center mb-3">
|
|
66
|
+
<div class="col-6">
|
|
67
|
+
<div class="p-2 bg-body-tertiary rounded">
|
|
68
|
+
<small class="text-body-secondary d-block">Build Time</small>
|
|
69
|
+
<strong class="small">{{ site.time | date: "%b %d, %H:%M" }}</strong>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="col-6">
|
|
73
|
+
<div class="p-2 bg-body-tertiary rounded">
|
|
74
|
+
<small class="text-body-secondary d-block">Jekyll</small>
|
|
75
|
+
<strong class="small">v{{ jekyll.version }}</strong>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<!-- Quick URL Links -->
|
|
83
|
+
<div class="card border-secondary">
|
|
84
|
+
<div class="card-header py-2 bg-body-tertiary">
|
|
85
|
+
<span class="fw-semibold small">
|
|
86
|
+
<i class="bi bi-signpost-2 me-2"></i>Quick Links
|
|
87
|
+
</span>
|
|
88
|
+
</div>
|
|
89
|
+
<ul class="list-group list-group-flush">
|
|
90
|
+
<!-- Production URL -->
|
|
91
|
+
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
92
|
+
<div class="d-flex align-items-center">
|
|
93
|
+
<span class="badge bg-success me-2">Prod</span>
|
|
94
|
+
<a href="{{ prod_url }}{{ page.url }}"
|
|
95
|
+
target="_blank"
|
|
96
|
+
rel="noopener"
|
|
97
|
+
class="text-decoration-none font-monospace small text-truncate"
|
|
98
|
+
style="max-width: 180px;"
|
|
99
|
+
title="{{ prod_url }}{{ page.url }}">
|
|
100
|
+
{{ site.url | remove: "https://" | remove: "http://" | truncate: 25 }}{{ page.url | truncate: 15 }}
|
|
101
|
+
</a>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="btn-group btn-group-sm">
|
|
104
|
+
<a href="{{ prod_url }}{{ page.url }}"
|
|
105
|
+
target="_blank"
|
|
106
|
+
rel="noopener"
|
|
107
|
+
class="btn btn-outline-success"
|
|
108
|
+
title="Open in new tab">
|
|
109
|
+
<i class="bi bi-box-arrow-up-right"></i>
|
|
110
|
+
</a>
|
|
111
|
+
<button class="btn btn-outline-secondary"
|
|
112
|
+
type="button"
|
|
113
|
+
onclick="copyUrl('{{ prod_url }}{{ page.url }}', this)"
|
|
114
|
+
title="Copy URL">
|
|
115
|
+
<i class="bi bi-clipboard"></i>
|
|
116
|
+
</button>
|
|
117
|
+
</div>
|
|
118
|
+
</li>
|
|
119
|
+
|
|
120
|
+
<!-- Development URL -->
|
|
121
|
+
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
122
|
+
<div class="d-flex align-items-center">
|
|
123
|
+
<span class="badge bg-warning text-dark me-2">Dev</span>
|
|
124
|
+
<a href="{{ dev_url }}{{ page.url }}"
|
|
125
|
+
target="_blank"
|
|
126
|
+
rel="noopener"
|
|
127
|
+
class="text-decoration-none font-monospace small text-truncate"
|
|
128
|
+
style="max-width: 180px;"
|
|
129
|
+
title="{{ dev_url }}{{ page.url }}">
|
|
130
|
+
localhost:{{ site.port | default: 4000 }}{{ page.url | truncate: 15 }}
|
|
131
|
+
</a>
|
|
132
|
+
</div>
|
|
133
|
+
<div class="btn-group btn-group-sm">
|
|
134
|
+
<a href="{{ dev_url }}{{ page.url }}"
|
|
135
|
+
target="_blank"
|
|
136
|
+
rel="noopener"
|
|
137
|
+
class="btn btn-outline-warning"
|
|
138
|
+
title="Open in new tab">
|
|
139
|
+
<i class="bi bi-box-arrow-up-right"></i>
|
|
140
|
+
</a>
|
|
141
|
+
<button class="btn btn-outline-secondary"
|
|
142
|
+
type="button"
|
|
143
|
+
onclick="copyUrl('{{ dev_url }}{{ page.url }}', this)"
|
|
144
|
+
title="Copy URL">
|
|
145
|
+
<i class="bi bi-clipboard"></i>
|
|
146
|
+
</button>
|
|
147
|
+
</div>
|
|
148
|
+
</li>
|
|
149
|
+
|
|
150
|
+
{% if site.repository %}
|
|
151
|
+
<!-- GitHub Source -->
|
|
152
|
+
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
153
|
+
<div class="d-flex align-items-center">
|
|
154
|
+
<span class="badge bg-dark me-2">Source</span>
|
|
155
|
+
<span class="font-monospace small text-truncate" style="max-width: 180px;">
|
|
156
|
+
{{ page.path | split: "/" | last }}
|
|
157
|
+
</span>
|
|
158
|
+
</div>
|
|
159
|
+
<a href="https://github.com/{{ site.repository }}/blob/{{ site.branch | default: 'main' }}/{% if page.collection %}{{ site.collections_dir }}/{% endif %}{{ page.path }}"
|
|
160
|
+
target="_blank"
|
|
161
|
+
rel="noopener"
|
|
162
|
+
class="btn btn-sm btn-outline-dark"
|
|
163
|
+
title="View on GitHub">
|
|
164
|
+
<i class="bi bi-github"></i>
|
|
165
|
+
</a>
|
|
166
|
+
</li>
|
|
167
|
+
{% endif %}
|
|
168
|
+
</ul>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
171
|
+
<!-- Environment Tip -->
|
|
172
|
+
<div class="alert alert-{{ is_production | if: 'success', 'warning' }} alert-dismissible fade show mt-3 py-2 small" role="alert">
|
|
173
|
+
<i class="bi bi-info-circle me-1"></i>
|
|
174
|
+
{% if is_production %}
|
|
175
|
+
Viewing <strong>production</strong> build. Changes require deployment.
|
|
176
|
+
{% else %}
|
|
177
|
+
<strong>Development</strong> mode. Changes auto-reload on save.
|
|
178
|
+
{% endif %}
|
|
179
|
+
<button type="button" class="btn-close btn-close-sm" data-bs-dismiss="alert" aria-label="Close" style="padding: 0.5rem;"></button>
|
|
180
|
+
</div>
|
|
181
|
+
|
|
182
|
+
<script>
|
|
183
|
+
function copyToClipboard(inputId, btn) {
|
|
184
|
+
const input = document.getElementById(inputId);
|
|
185
|
+
navigator.clipboard.writeText(input.value).then(() => {
|
|
186
|
+
showCopyFeedback(btn, true);
|
|
187
|
+
}).catch(() => {
|
|
188
|
+
showCopyFeedback(btn, false);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function copyUrl(url, btn) {
|
|
193
|
+
navigator.clipboard.writeText(url).then(() => {
|
|
194
|
+
showCopyFeedback(btn, true);
|
|
195
|
+
}).catch(() => {
|
|
196
|
+
showCopyFeedback(btn, false);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function showCopyFeedback(btn, success) {
|
|
201
|
+
const originalHtml = btn.innerHTML;
|
|
202
|
+
btn.innerHTML = success ? '<i class="bi bi-check2"></i>' : '<i class="bi bi-x"></i>';
|
|
203
|
+
btn.classList.add(success ? 'btn-success' : 'btn-danger');
|
|
204
|
+
btn.classList.remove('btn-outline-secondary');
|
|
205
|
+
|
|
206
|
+
setTimeout(() => {
|
|
207
|
+
btn.innerHTML = originalHtml;
|
|
208
|
+
btn.classList.remove('btn-success', 'btn-danger');
|
|
209
|
+
btn.classList.add('btn-outline-secondary');
|
|
210
|
+
}, 1500);
|
|
211
|
+
}
|
|
212
|
+
</script>
|