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
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f37ea0f076470c3436f05b334bf9383f221f24e2764cc54abff7521742557805
|
|
4
|
+
data.tar.gz: b1120afbc821f22615cb541d09f3389d9171e2bd590c76e1d5edb4d4d842d4d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b5c039925b416c2732ae22a440b9c890fcd82e78db38ddab94901c2d361874534fe747a03a65a41a8077a24dbbe584407d020fb6118ded97224601f759edd1ca
|
|
7
|
+
data.tar.gz: 7fc3ffd210d70a23a3ac36dfd3de6ce97dae4ba0b9a76b2ef9f00f65f5864ab82a3db099f8296d9902f95d3089829c01d1c805bc1be6fee6b922535e46b63945
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.9.0] - 2026-05-27
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Version bump: minor release
|
|
7
|
+
|
|
8
|
+
### Commits in this release
|
|
9
|
+
- 8a2bd84 feat(install): modular installer with deploy plugins, AI wizard pipeline, scrape v2, and test suite (#111)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **Modular installer (`scripts/install/`)**: spec-driven, AI-aware installer dispatched by `scripts/bin/install`. Single `.zer0/install.spec.json` contract feeds CLI flags, the TUI wizard, and the OpenAI wizard into one apply pipeline.
|
|
16
|
+
- **Deploy plugins**: `tasks/deploy_github-pages.sh`, `tasks/deploy_azure-swa.sh`, `tasks/deploy_docker-prod.sh`. Spec deploy targets now auto-render the matching workflow / config from `templates/deploy/`.
|
|
17
|
+
- **AI wizard end-to-end**: `install wizard --ai` now chains spec generation → `apply_run`, records AI provenance (`ai.used/provider/model`) in the spec, lets CLI flags override AI guesses, and falls back to profile defaults when the model returns empty arrays.
|
|
18
|
+
- **Profile defaults fallback**: `ai/wizard.sh` re-loads the selected profile to fill in empty `deploy`/`agents` arrays from the AI output, ensuring decisive installs.
|
|
19
|
+
- **`generic` agent target** added to spec schema enum (cross-tool `AGENTS.md` baseline alongside `claude`, `cursor`, `aider`, `copilot`).
|
|
20
|
+
- **Installer test suite (`test/test_installer.sh`)**: 17-check regression harness covering module syntax, all 6 profile inits, all 3 deploy plugins, all 5 agent flavours, and the AI wizard pipeline. Wired into `test/test_runner.sh` as the `installer` suite (included in `--suites all` and `--suites full`).
|
|
21
|
+
- **Site scraping (`install scrape <URL>` + `install init --scrape <URL>`)**: new `scripts/install/scrape.sh` BFS crawler + stdlib-only `scripts/install/scrape_html.py` extractor convert any existing website into a fully-rendered zer0-mistakes site. Now distributes pages by detected `kind`: home → `index.md` with `permalink: /`, events → `pages/events/<slug>.md`, posts → `pages/news/<slug>.md`, rest → `pages/<slug>.md`. Downloads referenced images into `assets/scraped/` and rewrites markdown to local paths. Wires navigation into `_data/navigation/main.yml` (the file the theme actually reads) with kind-based Bootstrap Icons, filters junk labels (Back / Cart / Folder:) and `?format=ical`/`?format=json` URLs, skips commerce paths (`/cart`, `/checkout`, `/login`). Seeds `_config.yml` `title`/`description`/`lang`/`logo` from `og:`/`<html lang>` metadata. New flags: `--scrape URL`, `--scrape-depth N` (default 2), `--scrape-max-pages N` (default 25). Covered by `test/test_install_scrape.sh` (standalone + init-integration, asserts new layout + nav cleanliness).
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- `_cmd_wizard` previously left targets containing only `.zer0/install.spec.json`; now chains `apply_run` to write all task outputs.
|
|
25
|
+
- `plan.sh` YAML parser now accepts both `deploy:`/`deploy_targets:` keys and parses `agents:` block lists *and* `ai_features.agent_files:` inline flow lists, matching the actual profile YAML shape.
|
|
26
|
+
- Rewrote `ai/prompts/wizard.system.md` with explicit profile, deploy, and agent heuristics plus a full example output, eliminating empty AI responses.
|
|
27
|
+
- `plan_load_profile` and `plan_apply_flags` now return `0` explicitly so Bash 3.2 doesn't propagate a trailing-test exit code.
|
|
28
|
+
|
|
3
29
|
## [1.8.2] - 2026-05-26
|
|
4
30
|
|
|
5
31
|
### Changed
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: zer0-mistakes
|
|
3
3
|
sub-title: AI-Native Jekyll Theme
|
|
4
4
|
description: AI-native Jekyll theme for GitHub Pages — Docker-first development, AI-powered installation, multi-agent integration (Copilot, Codex, Cursor, Claude), AI preview-image generation, and AIEO content optimization with Bootstrap 5.3.
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.9.0
|
|
6
6
|
layout: landing
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -20,7 +20,7 @@ categories:
|
|
|
20
20
|
- bootstrap
|
|
21
21
|
- ai-tooling
|
|
22
22
|
created: 2024-02-10T23:51:11.480Z
|
|
23
|
-
lastmod: 2026-05-
|
|
23
|
+
lastmod: 2026-05-27T23:17:01.000Z
|
|
24
24
|
draft: false
|
|
25
25
|
permalink: /
|
|
26
26
|
slug: zer0
|
|
@@ -252,6 +252,9 @@ flowchart LR
|
|
|
252
252
|
| Capability | What it does | Where it lives |
|
|
253
253
|
|---|---|---|
|
|
254
254
|
| **Self-healing install** | Detects platform, fixes Docker/Jekyll issues, retries with fallbacks | [`install.sh`](install.sh) |
|
|
255
|
+
| **Modular installer CLI** | Spec-driven `init`, `wizard`, `agents`, `deploy`, `doctor`, `scrape` subcommands; declarative profiles; deploy plugins (GitHub Pages, Azure SWA, Docker) | [`scripts/bin/install`](scripts/bin/install), [`scripts/install/`](scripts/install/) |
|
|
256
|
+
| **AI wizard** | `install wizard --ai` generates a site spec via OpenAI, records AI provenance, falls back to profile defaults | [`scripts/install/ai/wizard.sh`](scripts/install/ai/wizard.sh) |
|
|
257
|
+
| **Site scraper** | `install init --scrape <URL>` — BFS-crawls any site, classifies pages by kind, downloads assets, wires nav, seeds config; zero post-processing needed | [`scripts/install/scrape.sh`](scripts/install/scrape.sh), [`scripts/install/scrape_html.py`](scripts/install/scrape_html.py) |
|
|
255
258
|
| **Cross-tool agent guide** | Single entry point for any [agents.md](https://agents.md/)-aware AI tool | [`AGENTS.md`](AGENTS.md) |
|
|
256
259
|
| **Copilot project context** | Architecture, conventions, commands, release flow | [`.github/copilot-instructions.md`](.github/copilot-instructions.md) |
|
|
257
260
|
| **File-scoped instructions** | `applyTo:` globs auto-load guidance for `_layouts/`, `_includes/`, `scripts/`, `test/`, `docs/`, version files | [`.github/instructions/`](.github/instructions/) |
|
|
@@ -275,6 +278,12 @@ flowchart LR
|
|
|
275
278
|
|
|
276
279
|
# Run the AI-facilitated release pipeline (validate → version → changelog → publish)
|
|
277
280
|
./scripts/bin/release patch --dry-run
|
|
281
|
+
|
|
282
|
+
# Clone any existing website into a zer0-mistakes site (no OPENAI_API_KEY required)
|
|
283
|
+
./scripts/bin/install init ./my-clone --scrape https://example.com --scrape-depth 2
|
|
284
|
+
|
|
285
|
+
# Use the AI wizard to interactively generate a site spec (needs OPENAI_API_KEY)
|
|
286
|
+
./scripts/bin/install wizard --ai ./my-site
|
|
278
287
|
```
|
|
279
288
|
|
|
280
289
|
### Drop-in for any AI editor
|
|
@@ -375,9 +384,38 @@ pie title Technology Distribution
|
|
|
375
384
|
|
|
376
385
|
## ✨ Key Features
|
|
377
386
|
|
|
378
|
-
### 🤖 AI-Powered Installation
|
|
387
|
+
### 🤖 AI-Powered Installation & Modular Installer
|
|
388
|
+
|
|
389
|
+
Two layers of installation automation:
|
|
390
|
+
|
|
391
|
+
**Classic one-liner** (`install.sh`) — self-healing, ~95% success rate, works on macOS / Linux / Windows WSL:
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
curl -fsSL https://raw.githubusercontent.com/bamr87/zer0-mistakes/main/install.sh | bash
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Modular CLI** (`scripts/bin/install`) — declarative, spec-driven, composable:
|
|
379
398
|
|
|
380
|
-
|
|
399
|
+
```bash
|
|
400
|
+
# Initialise a new site from a profile
|
|
401
|
+
./scripts/bin/install init ./my-site --profile full
|
|
402
|
+
|
|
403
|
+
# Scaffold deploy configs (GitHub Pages + Docker)
|
|
404
|
+
./scripts/bin/install deploy github-pages,docker-prod ./my-site
|
|
405
|
+
|
|
406
|
+
# Clone any existing website into a zer0-mistakes site
|
|
407
|
+
./scripts/bin/install init ./my-clone --scrape https://example.com --scrape-depth 2 --scrape-max-pages 20
|
|
408
|
+
|
|
409
|
+
# AI wizard — generates site spec via OpenAI and runs full apply pipeline
|
|
410
|
+
./scripts/bin/install wizard --ai ./my-site
|
|
411
|
+
|
|
412
|
+
# Health check / doctor
|
|
413
|
+
./scripts/bin/install doctor ./my-site
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
The installer is driven by a single spec file (`.zer0/install.spec.json`) that records every decision — profiles chosen, deploy targets, AI provenance — so the entire setup is reproducible and version-controlled.
|
|
417
|
+
|
|
418
|
+
The ~1,100-line classic `install.sh` provides intelligent platform detection and Docker configuration:
|
|
381
419
|
|
|
382
420
|
```mermaid
|
|
383
421
|
flowchart TD
|
|
@@ -397,6 +435,57 @@ flowchart TD
|
|
|
397
435
|
style DONE fill:#c8e6c9
|
|
398
436
|
```
|
|
399
437
|
|
|
438
|
+
### 🌐 Site Scraper — Clone Any Website
|
|
439
|
+
|
|
440
|
+
`install init --scrape <URL>` BFS-crawls an existing website and turns it into a fully rendered zer0-mistakes site with zero post-processing:
|
|
441
|
+
|
|
442
|
+
```mermaid
|
|
443
|
+
flowchart LR
|
|
444
|
+
subgraph Crawl["🕷 BFS Crawl"]
|
|
445
|
+
C1[Fetch pages]
|
|
446
|
+
C2[Filter junk URLs]
|
|
447
|
+
C3[Classify page kind]
|
|
448
|
+
end
|
|
449
|
+
subgraph Extract["🔍 Extract"]
|
|
450
|
+
E1[Markdown + metadata]
|
|
451
|
+
E2[Image assets]
|
|
452
|
+
E3[Navigation links]
|
|
453
|
+
end
|
|
454
|
+
subgraph Emit["📄 Emit Jekyll"]
|
|
455
|
+
D1[index.md — home]
|
|
456
|
+
D2[pages/events/*.md]
|
|
457
|
+
D3[pages/news/*.md]
|
|
458
|
+
D4[pages/*.md]
|
|
459
|
+
end
|
|
460
|
+
subgraph Wire["🔧 Wire Site"]
|
|
461
|
+
W1[_data/navigation/main.yml]
|
|
462
|
+
W2[assets/scraped/]
|
|
463
|
+
W3[_config.yml seeded]
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
Crawl --> Extract --> Emit --> Wire
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
| What gets scraped | Where it lands |
|
|
470
|
+
|---|---|
|
|
471
|
+
| Home page | `index.md` with `permalink: /` |
|
|
472
|
+
| Event pages | `pages/events/<slug>.md` |
|
|
473
|
+
| Blog / news posts | `pages/news/<slug>.md` |
|
|
474
|
+
| All other pages | `pages/<slug>.md` |
|
|
475
|
+
| Images | `assets/scraped/<md5>.<ext>` (markdown rewritten to local paths) |
|
|
476
|
+
| Navigation | `_data/navigation/main.yml` (junk labels filtered: Back / Cart / Folder:) |
|
|
477
|
+
| Site metadata | `_config.yml` title / description / lang / logo seeded from `<og:>` tags |
|
|
478
|
+
|
|
479
|
+
Requires only `python3` (stdlib) and `curl` — no `pip` dependencies, no API key.
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
# Clone a site with default depth=2, max-pages=25
|
|
483
|
+
./scripts/bin/install init ./my-clone --scrape https://example.com
|
|
484
|
+
|
|
485
|
+
# Deeper crawl
|
|
486
|
+
./scripts/bin/install init ./my-clone --scrape https://example.com --scrape-depth 3 --scrape-max-pages 50
|
|
487
|
+
```
|
|
488
|
+
|
|
400
489
|
### 🐳 Docker-First Development
|
|
401
490
|
|
|
402
491
|
Zero local dependencies required. Works identically across all platforms:
|
|
@@ -573,7 +662,9 @@ git clone https://github.com/bamr87/zer0-mistakes.git
|
|
|
573
662
|
./zer0-mistakes/scripts/bin/install agents /path/to/new-site --all # AI agent guidance
|
|
574
663
|
```
|
|
575
664
|
|
|
576
|
-
Available subcommands: `init`, `wizard [--ai]`, `agents`, `deploy`, `doctor`, `diagnose [--ai]`, `upgrade`, `list-profiles`, `list-targets`, `version`, `help`.
|
|
665
|
+
Available subcommands: `init`, `wizard [--ai]`, `agents`, `deploy`, `doctor`, `diagnose [--ai]`, `scrape`, `upgrade`, `list-profiles`, `list-targets`, `version`, `help`.
|
|
666
|
+
|
|
667
|
+
Key `init` flags: `--profile <name>`, `--scrape <URL>`, `--scrape-depth N` (default 2), `--scrape-max-pages N` (default 25), `--skip-doctor`, `--force`.
|
|
577
668
|
|
|
578
669
|
### Method 2: Remote Theme (GitHub Pages)
|
|
579
670
|
|
|
@@ -1119,7 +1210,7 @@ git push origin feature/awesome-feature
|
|
|
1119
1210
|
|
|
1120
1211
|
| Metric | Value |
|
|
1121
1212
|
|--------|-------|
|
|
1122
|
-
| **Current Version** | 1.
|
|
1213
|
+
| **Current Version** | 1.9.0 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
|
|
1123
1214
|
| **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
|
|
1124
1215
|
| **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
|
|
1125
1216
|
| **Documentation Pages** | 70+ ([browse docs](/pages/)) |
|
|
@@ -1170,6 +1261,6 @@ And these AI partners that make zer0-mistakes truly AI-native:
|
|
|
1170
1261
|
|
|
1171
1262
|
**Built with ❤️ — and a little help from our AI partners — for the Jekyll community**
|
|
1172
1263
|
|
|
1173
|
-
**v1.
|
|
1264
|
+
**v1.9.0** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
|
|
1174
1265
|
|
|
1175
1266
|
|