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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 19c84811dcc56b5cb437c118f6a66ce6895db10702f4011be545003bc9d6f134
4
- data.tar.gz: 61f3707a93a6ac230276cb64fb007c7e2531fa23e940f9039db05fab061b99ee
3
+ metadata.gz: 6efa1fb4e9fdc23aa63e90c94762e62c2f568a379133ca8674f78b6c2ed19046
4
+ data.tar.gz: c9eba9e9cff455d23cdeebdbc92facbafc0a6ec6063c366cfeb7819a044a3cc6
5
5
  SHA512:
6
- metadata.gz: 87b0384c193e4f0ae8c75268e7a784f3c0bb90e99fdfdb4113edee8425682eb59cb9888ad8d1c28d77e4ec62c6d00e81e1f3f01d9a0e1dce278011f48cd6dfbb
7
- data.tar.gz: f5bff135bbf740f16cbc0eb487568d633bffe37e5cdd5b23e33626cba98f091784c10036eababf6428f516c2618ee3956b677d8b9fde944b608d1d91947a3123
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
@@ -14,17 +14,49 @@
14
14
  - title: GitHub Setup
15
15
  url: /quickstart/github-setup/
16
16
 
17
- - title: Blog
18
- icon: bi-journal-text
19
- url: /blog/
17
+ - title: News
18
+ icon: bi-newspaper
19
+ url: /news/
20
20
  children:
21
- - title: All Posts
22
- url: /posts/
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/
@@ -1,34 +1,34 @@
1
- # Posts/Blog Category Navigation Configuration
2
- # Used by: Blog layout, category pages, and post navigation
3
- # Purpose: Category-based navigation for blog posts
4
- # Note: Categories match folders in pages/_posts/
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: /posts/development/
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: /posts/technology/
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: /posts/tutorial/
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: /posts/world/
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: /posts/business/
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: /posts/science/
33
+ url: /news/science/
34
34
  description: "Scientific discoveries, research, and innovation"
@@ -1,57 +1,104 @@
1
1
  <!--
2
- Title: Dev Shortcuts
3
- Description: This file contains the dev shortcuts for the site.
4
- file: dev-shortcuts.html
5
- variables:
6
- - site.repository
7
- - site.default_icon
8
- - site.collections_dir
9
- - site.repository_name
10
- - site.nav-file
11
- - site.local_git_pc
12
- - site.local_git_mac
13
- - page.collection
14
- - page_dir
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
- <!-- TODO: Article about the collapse feature in Bootstrap https://getbootstrap.com/docs/5.3/components/collapse/-->
25
- <!-- TODO: Write tutorial on creating this hidden settings feature -->
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
- <!-- Source Code Control Shortcuts - Page -->
28
- <div class="container text-center">
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
- <!-- Source Code Control Shortcuts - Page -->
36
- <a class="btn bg-primary" href="https://github.com/{{site.repository}}/blob/{{site.branch}}/{{ page_dir }}/{{page.path}}">
37
- <i class="{{site.default_icon}} {{site.default_icon}}-github"></i>
38
- <!-- https://icons.getbootstrap.com/icons/github/ -->
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
- <!-- Source Code Control Shortcuts - Site and Nav -->
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
- <a class="btn bg-primary" href="vscode://file{{ site.local_git}}/{{ site.repository_name }}/{{ page_dir }}/{{ page.path }}">
48
- <i class="{{site.default_icon}} {{site.default_icon}}-code"></i>
49
- </a>
50
-
51
- <!-- site config -->
52
- <a class="btn bg-primary" href="https://github.com/{{site.repository}}/blob/{{site.branch}}/_config.yml">
53
- <i class="bi bi-gear"></i>
54
- <!-- https://icons.getbootstrap.com/icons/gear/ -->
55
- </a>
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>