jekyll-theme-zer0 1.8.2 → 1.9.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 +26 -0
- data/README.md +98 -7
- data/_data/content_statistics.yml +253 -251
- data/_includes/components/nav-export.html +61 -0
- data/_includes/components/nav-overview.html +54 -0
- data/scripts/bin/install +52 -705
- data/scripts/install/README.md +162 -0
- data/scripts/install/ai/client.sh +164 -0
- data/scripts/install/ai/diagnose.sh +81 -0
- data/scripts/install/ai/prompts/diagnose.system.md +42 -0
- data/scripts/install/ai/prompts/spec.schema.json +129 -0
- data/scripts/install/ai/prompts/suggest.system.md +43 -0
- data/scripts/install/ai/prompts/wizard.system.md +142 -0
- data/scripts/install/ai/suggest.sh +57 -0
- data/scripts/install/ai/wizard.sh +150 -0
- data/scripts/install/apply.sh +156 -0
- data/scripts/install/cli.sh +561 -0
- data/scripts/install/diff.sh +128 -0
- data/scripts/install/doctor.sh +168 -0
- data/scripts/install/fs.sh +138 -0
- data/scripts/install/log.sh +119 -0
- data/scripts/install/plan.sh +299 -0
- data/scripts/install/platform.sh +122 -0
- data/scripts/install/prompt.sh +124 -0
- data/scripts/install/repair.sh +45 -0
- data/scripts/install/scrape.sh +535 -0
- data/scripts/install/scrape_html.py +764 -0
- data/scripts/install/spec.sh +486 -0
- data/scripts/install/tasks/_registry.sh +65 -0
- data/scripts/install/tasks/agents.sh +60 -0
- data/scripts/install/tasks/config.sh +37 -0
- data/scripts/install/tasks/data.sh +18 -0
- data/scripts/install/tasks/deploy_azure-swa.sh +17 -0
- data/scripts/install/tasks/deploy_docker-prod.sh +21 -0
- data/scripts/install/tasks/deploy_github-pages.sh +18 -0
- data/scripts/install/tasks/devcontainer.sh +26 -0
- data/scripts/install/tasks/docker.sh +29 -0
- data/scripts/install/tasks/gemfile.sh +42 -0
- data/scripts/install/tasks/gitignore.sh +26 -0
- data/scripts/install/tasks/marker.sh +46 -0
- data/scripts/install/tasks/nav.sh +18 -0
- data/scripts/install/tasks/pages.sh +61 -0
- data/scripts/install/tasks/readme.sh +27 -0
- data/scripts/install/tasks/scrape.sh +348 -0
- data/scripts/install/template.sh +138 -0
- data/scripts/install/tui.sh +110 -0
- data/scripts/install/upgrade.sh +49 -0
- data/scripts/lib/install/template.sh +1 -0
- metadata +45 -2
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
NAV EXPORT — Export navigation data as YAML
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: nav-export.html
|
|
7
|
+
Path: _includes/components/nav-export.html
|
|
8
|
+
Purpose: Renders the current navigation data files as copyable YAML
|
|
9
|
+
so users can download or inspect the raw navigation config.
|
|
10
|
+
|
|
11
|
+
Dependencies: Bootstrap 5, Bootstrap Icons,
|
|
12
|
+
_data/navigation/*.yml
|
|
13
|
+
Used by: pages/_about/settings/navigation.md
|
|
14
|
+
===================================================================
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
{% assign nav_files = "main,home,about,docs,posts,quickstart,admin" | split: "," %}
|
|
18
|
+
|
|
19
|
+
<div class="mb-3 d-flex align-items-center gap-2">
|
|
20
|
+
<label class="form-label mb-0 fw-semibold" for="exportNavSelect">Navigation file:</label>
|
|
21
|
+
<select class="form-select form-select-sm w-auto" id="exportNavSelect" onchange="showNavExport(this.value)">
|
|
22
|
+
{% for nav_name in nav_files %}
|
|
23
|
+
<option value="{{ nav_name }}">{{ nav_name }}</option>
|
|
24
|
+
{% endfor %}
|
|
25
|
+
</select>
|
|
26
|
+
<button class="btn btn-sm btn-outline-secondary" onclick="copyNavExport()" title="Copy to clipboard">
|
|
27
|
+
<i class="bi bi-clipboard me-1"></i>Copy
|
|
28
|
+
</button>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
{% for nav_name in nav_files %}
|
|
32
|
+
{% assign nav_data = site.data.navigation[nav_name] %}
|
|
33
|
+
<div class="nav-export-block" id="export-{{ nav_name }}" {% unless forloop.first %}style="display:none"{% endunless %}>
|
|
34
|
+
<pre class="bg-body-secondary rounded p-3 small overflow-auto" style="max-height:400px" id="export-pre-{{ nav_name }}">{% if nav_data %}{% for item in nav_data %}- title: "{{ item.title | default: item.name }}"
|
|
35
|
+
url: "{{ item.url }}"{% if item.children %}
|
|
36
|
+
children:{% for child in item.children %}
|
|
37
|
+
- title: "{{ child.title | default: child.name }}"
|
|
38
|
+
url: "{{ child.url }}"{% endfor %}{% endif %}
|
|
39
|
+
{% endfor %}{% else %}# No navigation data found for {{ nav_name }}{% endif %}</pre>
|
|
40
|
+
</div>
|
|
41
|
+
{% endfor %}
|
|
42
|
+
|
|
43
|
+
<script>
|
|
44
|
+
function showNavExport(name) {
|
|
45
|
+
document.querySelectorAll('.nav-export-block').forEach(function(el) {
|
|
46
|
+
el.style.display = 'none';
|
|
47
|
+
});
|
|
48
|
+
var target = document.getElementById('export-' + name);
|
|
49
|
+
if (target) target.style.display = '';
|
|
50
|
+
}
|
|
51
|
+
function copyNavExport() {
|
|
52
|
+
var visible = document.querySelector('.nav-export-block:not([style*="display:none"])');
|
|
53
|
+
if (!visible) return;
|
|
54
|
+
var pre = visible.querySelector('pre');
|
|
55
|
+
if (!pre) return;
|
|
56
|
+
navigator.clipboard.writeText(pre.innerText).then(function() {
|
|
57
|
+
var btn = document.querySelector('[onclick="copyNavExport()"]');
|
|
58
|
+
if (btn) { btn.innerHTML = '<i class="bi bi-check2 me-1"></i>Copied!'; setTimeout(function(){ btn.innerHTML = '<i class="bi bi-clipboard me-1"></i>Copy'; }, 2000); }
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
NAV OVERVIEW — Navigation structure summary
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: nav-overview.html
|
|
7
|
+
Path: _includes/components/nav-overview.html
|
|
8
|
+
Purpose: Displays a high-level overview of all navigation menus,
|
|
9
|
+
their item counts, and quick links to edit them.
|
|
10
|
+
|
|
11
|
+
Dependencies: Bootstrap 5, Bootstrap Icons,
|
|
12
|
+
_data/navigation/*.yml
|
|
13
|
+
Used by: pages/_about/settings/navigation.md
|
|
14
|
+
===================================================================
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
{% assign nav_files = "main,home,about,docs,posts,quickstart,admin" | split: "," %}
|
|
18
|
+
|
|
19
|
+
<div class="row g-3 mb-4">
|
|
20
|
+
{% for nav_name in nav_files %}
|
|
21
|
+
{% assign nav_data = site.data.navigation[nav_name] %}
|
|
22
|
+
<div class="col-sm-6 col-lg-4">
|
|
23
|
+
<div class="card h-100">
|
|
24
|
+
<div class="card-body">
|
|
25
|
+
<div class="d-flex align-items-center mb-2">
|
|
26
|
+
<i class="bi bi-signpost-2 me-2 text-primary"></i>
|
|
27
|
+
<h6 class="card-title mb-0 text-capitalize">{{ nav_name }}</h6>
|
|
28
|
+
</div>
|
|
29
|
+
{% if nav_data %}
|
|
30
|
+
<p class="text-body-secondary small mb-1">
|
|
31
|
+
{{ nav_data | size }} top-level item{% if nav_data.size != 1 %}s{% endif %}
|
|
32
|
+
</p>
|
|
33
|
+
<ul class="list-unstyled small mb-0">
|
|
34
|
+
{% for item in nav_data limit:5 %}
|
|
35
|
+
<li class="text-truncate">
|
|
36
|
+
<i class="bi bi-chevron-right me-1 text-muted" style="font-size:0.7rem"></i>
|
|
37
|
+
{{ item.title | default: item.name | default: "(untitled)" }}
|
|
38
|
+
</li>
|
|
39
|
+
{% endfor %}
|
|
40
|
+
{% if nav_data.size > 5 %}
|
|
41
|
+
<li class="text-muted">… and {{ nav_data.size | minus: 5 }} more</li>
|
|
42
|
+
{% endif %}
|
|
43
|
+
</ul>
|
|
44
|
+
{% else %}
|
|
45
|
+
<p class="text-body-secondary small mb-0"><em>No data found</em></p>
|
|
46
|
+
{% endif %}
|
|
47
|
+
</div>
|
|
48
|
+
<div class="card-footer bg-transparent border-0 pt-0">
|
|
49
|
+
<small class="text-body-secondary">_data/navigation/{{ nav_name }}.yml</small>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
{% endfor %}
|
|
54
|
+
</div>
|