Changelog
[1.9.2] - 2026-05-29
Changed
- Version bump: patch release
Commits in this release
- 6e73c5f Update README and content statistics
[1.9.1] - 2026-05-27
Fixed
- Harden one-line installer path
[1.9.0] - 2026-05-27
Changed
- Version bump: minor release
Commits in this release
- 8a2bd84 feat(install): modular installer with deploy plugins, AI wizard pipeline, scrape v2, and test suite (#111)
Unreleased
Added
- Modular installer (
scripts/install/): spec-driven, AI-aware installer dispatched byscripts/bin/install. Single.zer0/install.spec.jsoncontract feeds CLI flags, the TUI wizard, and the OpenAI wizard into one apply pipeline. - 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 fromtemplates/deploy/. - AI wizard end-to-end:
install wizard --ainow 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. - Profile defaults fallback:
ai/wizard.shre-loads the selected profile to fill in emptydeploy/agentsarrays from the AI output, ensuring decisive installs. genericagent target added to spec schema enum (cross-toolAGENTS.mdbaseline alongsideclaude,cursor,aider,copilot).- 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 intotest/test_runner.shas theinstallersuite (included in--suites alland--suites full). - Site scraping (
install scrape <URL>+install init --scrape <URL>): newscripts/install/scrape.shBFS crawler + stdlib-onlyscripts/install/scrape_html.pyextractor convert any existing website into a fully-rendered zer0-mistakes site. Now distributes pages by detectedkind: home →index.mdwithpermalink: /, events →pages/events/<slug>.md, posts →pages/news/<slug>.md, rest →pages/<slug>.md. Downloads referenced images intoassets/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=jsonURLs, skips commerce paths (/cart,/checkout,/login). Seeds_config.ymltitle/description/lang/logofromog:/<html lang>metadata. New flags:--scrape URL,--scrape-depth N(default 2),--scrape-max-pages N(default 25). Covered bytest/test_install_scrape.sh(standalone + init-integration, asserts new layout + nav cleanliness).
Fixed
_cmd_wizardpreviously left targets containing only.zer0/install.spec.json; now chainsapply_runto write all task outputs.plan.shYAML parser now accepts bothdeploy:/deploy_targets:keys and parsesagents:block lists andai_features.agent_files:inline flow lists, matching the actual profile YAML shape.- Rewrote
ai/prompts/wizard.system.mdwith explicit profile, deploy, and agent heuristics plus a full example output, eliminating empty AI responses. plan_load_profileandplan_apply_flagsnow return0explicitly so Bash 3.2 doesn’t propagate a trailing-test exit code.
[1.8.2] - 2026-05-26
Changed
- Version bump: patch release
Unreleased
Changed
- Gem packaging:
jekyll-theme-zer0.gemspecnow excludesassets/images/(287 MB of content previews/author photos),assets/backgrounds/,.DS_Storefiles, and binary media outsideassets/vendor/, reducing gem payload to ~8.9 MB
[1.8.1] - 2026-05-26
Changed
- Version bump: patch release
Commits in this release
- 6a9bac4 chore(docker): remove unused prod and publish compose files
[1.8.0] - 2026-05-25
Changed
- Version bump: minor release
Commits in this release
- f62849f feat(ui): design tokens, navigation chrome, docs overhaul, sidebar rail & skin fixes (#108)
[1.7.2] - 2026-05-25
Changed
- Version bump: patch release
Commits in this release
- be8fd2b Expand Ruby 101 page with comprehensive beginner content (#107)
[1.7.1] - 2026-05-24
Changed
- Version bump: patch release
Commits in this release
- 580f2b4 perf: Jekyll build performance improvements + MathJax 3 fix + richer Obsidian cache (#100)
Unreleased
Added
- Design system & layouts: Sass token layers (
_sass/tokens/), component and layout partials (_sass/components/,_sass/layouts/), skins (theme_skins.yml+_sass/theme/_skins.scss), utilities, and developer docs (docs/design-system.md,design-tokens.md,theming.md,layouts-and-navigation.md, and related guides). Homepage sections are driven by_data/landing.ymlper_includes/components/README.md. - Navigation & chrome: Drawer/TOC FAB and sidebar visibility modules (
assets/js/modules/navigation/),appearance.jstheme helper, refreshed navbar/footer/breadcrumb markup aligned with Bootstrap 5.3. - Statistics:
_plugins/content_statistics_generator.rboptionally regenerates_data/content_statistics.ymlduringjekyll build(toggle viacontent_statistics.auto_generate);./scripts/generate-content-statistics.shdelegates to_data/generate_statistics.shand is wired fromrake stats:generate. - Testing: Expanded Playwright coverage (
test/visual/ui-refresh.spec.js,layouts.spec.js) and refreshed smoke visuals/results.jsonfor the new chrome.
Changed
- Testing: Consolidated three Playwright configs into a single
test/playwright.config.jswithsmoke,snapshots, andregression-{chromium,firefox,webkit}projects (tiers). The newtest/test_playwright.shrunner replacestest_styling.shand selects the tier viaPLAYWRIGHT_PROJECT. Snapshot baselines now live intest/visual/snapshots/(committed Linux images) and can be refreshed via the newtest/update-snapshots.shDocker helper. - CI: Split the styling step in
ci.ymlinto a Playwright smoke step (every code-change PR) and a path-filtered Playwright snapshot step (only when_sass/,assets/,_layouts/,_includes/,test/visual/change); both go through the new reusable.github/actions/playwright-testscomposite action and uploadtest/visual-results/artifacts on failure (14-day retention) for easier triage. - Performance:
setup-banner.html— added{% unless site.site_configured %}early-exit guard that skips all setup detection logic and thesetup-check.htmlsub-include whensite_configured: true; eliminated 151 redundant include renders per build (-87% per-render time, setup-check fully eliminated from profile) - Performance:
info-section.html— replaced full-site URL megastring (site.html_pages | map | join) with a single pre-filtered admin-page lookup (where_exp: "p.url contains '/about/'") that accessessite.html_pagesonce and builds a ~10-entry string instead of 150+, makingcontainschecks ~18× faster - Performance:
sidebar-right.html— added heading-presence guard before calling the expensivetoc.htmlLiquid parser; pages without<h2>/<h3>/<h4>headings skip TOC generation entirely (-18% per-render fortoc.html) - Performance: Made MathJax loading conditional via
page.mathjaxfront matter flag (mirrors Mermaid pattern) — saves 1.8 MB transfer on pages without math - Performance: Cached Obsidian plugin wiki-link index across incremental builds — index is rebuilt only when document URLs, titles, or aliases change
- Performance: Disabled
notebooks,hobbies, andquestscollections in dev config for faster local builds - Performance: Removed jQuery from page loads — Bootstrap 5.3.3 does not require it and no custom JS uses jQuery APIs
Fixed
- Accessibility: Dynamically-rendered color inputs in the Theme Customizer (Skin Editor gradient stops in
assets/js/skin-editor.jsand Live Preview pickers inassets/js/palette-generator.js) now have associated<label for>elements andaria-labels, fixing a regression that left them inaccessible to assistive tech. - Tests:
test/visual/theme-colors.spec.jsnow activates the Color Editor tab and waits for the panel to be visible before interacting, eliminating a 45 slocator.filltimeout caused by hitting hidden inputs in inactive tabs. - Tests: Replaced flaky
waitForTimeout(300)andnetworkidlecalls intest/visual/fixtures.jsandtest/visual/skins.spec.jswith deterministic waits ondomcontentloaded,load, thedata-theme-skinattribute, and thezer0:skin-changeevent. - Tests: Retired the legacy
test/test_visual.sh(ImageMagick + bash screenshot pipeline) and the placeholderhomepage-*-chromium-darwin.pngbaselines in favor of the unified Playwright snapshot tier. - Added missing
mathjax: truefront matter to pages that use math notation (test-notebook.md, jupyter-notebooks.md, jekyll-math-symbols-with-mathjax.md) - MathJax 3 inline math: Added
window.MathJaxconfig block before the script tag so$...$inline math (used in test-notebook.md) renders correctly — MathJax 3 does not enable dollar-sign inline delimiters by default - Updated
mathjax-math.mddocumentation to show MathJax 3 API (window.MathJax = {}) instead of the removed MathJax 2MathJax.Hub.ConfigAPI
Tests
- Added
ObsidianCacheTestsuite (5 new tests) covering fingerprint invalidation on document addition, title change, alias change, cache hit, and cache miss
Changed (UI/UX)
- Sidebar collapse — VS Code style: Left sidebar (
#bdSidebar) and right TOC (#tocContents) now collapse to a slim 36 px rail (--zer0-sidebar-rail-width) instead of being fully hidden on desktop. The visibility toggle icon (bi-layout-sidebar-inset/bi-layout-sidebar-inset-reverse) stays mounted on the rail so users can re-expand the panel with a single click — the floating action buttons (.bd-sidebar-fab,.bd-toc-fab) are now hidden at≥992 pxsince the rail toggle replaces them._sass/core/_docs-layout.scss,_sass/layouts/_navbar-extras.scss. - Smooth transitions:
.bd-layoutand.bd-mainnow animategrid-template-columnsandgapover--zer0-motion-duration-base(0.3 s) with--zer0-motion-ease-standard; sidebar contents cross-fade viaopacity+ delayedvisibility. Honors@media (prefers-reduced-motion: reduce)by disabling all related transitions. - Toggle behavior:
sidebar-visibility.jsandtoc-visibility.jsno longer setbutton.hidden = trueon the rail toggle when collapsed, keeping it interactive in the collapsed state. Aria labels (Hide…/Show…) update on each toggle. - Cache-bust: Added
?v=1780019001to the navigation ES-module<script type="module">tag in_includes/components/js-cdn.htmlto force re-fetch on rebuild (browsers cache ES modules indefinitely by URL). - Navbar dropdown: Dropdown toggle button set to
align-self: stretchso it spans the full navbar height, making it easier to invoke on touch/small screens; chevron iconfont-sizeincreased to1emfor better legibility._sass/core/_navbar.scss. - Syntax highlighting: Dual-palette system —
_sass/core/_syntax.scssnow uses a GitHub Light palette for.highlight(light mode) and scopes the Material Dark base16 palette to[data-bs-theme="dark"] .highlight, fixing near-invisible token colors on light backgrounds. - Theme preview gallery: Expanded to 20 sections with 6 new components: Callouts (5 types), Accordion, Progress & Spinners, Breadcrumb & Pagination, Tooltips & Popovers, and Icons showcase. TOC updated accordingly; Bootstrap tooltip/popover JS initializer added.
_includes/components/theme-preview-gallery.html,pages/_about/settings/theme-preview.md.
Fixed (UI)
- Contrast skin — light mode: The
contrastskin’szer0-skin-palettemixin sets--bs-link-color: #ffffff(white accent) which rendered sidebar nav links invisible on a white background in light mode. Added[data-theme-skin="contrast"]:not([data-bs-theme="dark"])override in_sass/theme/_skins.scssto pin link color to#111111in light mode while leaving dark-mode behavior unchanged.
[1.6.5] - 2026-05-19
Changed
- Version bump: patch release
Commits in this release
- 4b45cc7 docs(agents): slash .github instructions and prompts to actionable rules
[1.6.4] - 2026-05-19
Changed
- Version bump: patch release
Commits in this release
- d6ecf4e fix(features): correct stale file references in feature registry (#98)
[1.6.3] - 2026-05-21
Fixed
- Feature Registry: Remove stale
_includes/navigation/menu-collections.htmlreference from ZER0-049 - Feature Registry: Fix roadmap script path from
generate-roadmap-diagram.sh→generate-roadmap.shin ZER0-052 - Feature Registry: Replace non-existent
structured-data.html/eeat-signals.htmlwith correctseo.html,jsonld-faq.html,author-eeat.htmlin ZER0-054 - Feature Registry: Remove stale
_includes/components/settings-modal.htmlreference from ZER0-055
Commits in this release
- fix(features): correct stale file references in ZER0-049/052/054/055
[1.6.2] - 2026-05-19
Changed
- Version bump: patch release
Commits in this release
- 6651b38 fix(docs): update layout references from journals to article, add docs pages, and update feature registry (#97)
[1.6.1] - 2026-04-29
Changed
- Version bump: patch release
Commits in this release
- e1999c6 Improve About page: tighten copy, add preview image, fix CTA and broken link (#90)
[1.6.0] - 2026-04-29
Changed
- Version bump: minor release
Commits in this release
- 3dbfcad Expand About page with prerequisites, quick start, FAQ, and architecture diagram (#88)
- f969fc0 perf(jekyll): cache page-url lookups and short-circuit obsidian rewrites (#80)
- d50b04c chore(deps): update Ruby gem dependencies (#81)
- b6de350 Expand “Wizard Topples Capitalist Dominance” post with examples, diagram, and reference sections (#85)
- 21eb458 feat(search,components): remove Algolia and fix Powered By links to open in new tab (#86)
[1.5.1] - 2026-04-29
Changed
- Version bump: patch release
Commits in this release
- ad00bf3 [WIP] Optimize Git workflow page for SEO best practices (#79)
[1.5.0] - 2026-04-29
Changed
- Version bump: minor release
Commits in this release
- ffdc1eb feat(posts): add 12 example posts and regenerate all previews with gpt-image-2 (#83)
[1.4.1] - 2026-04-28
Changed
- Version bump: patch release
Commits in this release
- 9830d3d refactor(obsidian): extract full graph include and sync docs (#82)
[1.4.0] - 2026-04-25
Changed
- Version bump: minor release
Commits in this release
- d39dfa9 Add standalone Obsidian local graph panel (#77)
[1.3.0] - 2026-04-24
Changed
- Version bump: minor release
Commits in this release
- 31e042c feat: Obsidian vault integration with client-side wiki-link resolver and backlinks (#73)
[1.2.1] - 2026-04-22
Changed
- Version bump: patch release
Commits in this release
- 5c04e62 fix(footer,welcome,info): eliminate broken links on bare-minimum sites
[1.2.0] - 2026-04-22
Changed
- Version bump: minor release
Commits in this release
- 4bd3e36 feat(welcome): add bare-minimum 3-file remote-theme starter
[1.1.0] - 2026-04-21
Changed
- Version bump: minor release
Commits in this release
- 3d91006 fix(release): replace ((var++)) with var=$((var + 1)) in release path
- d33e5e6 feat(intro): refocus Copilot Agent prompts on frontend/CMS workflows (#74)
Unreleased
Changed
- Docker/Jekyll build performance — Reduced repeated full-page Liquid scans in the footer, settings offcanvas, and cookie consent includes; cached preview image checks during generation; skipped server-side Obsidian rewrites for documents without Obsidian syntax; and changed Docker dev startup to run
bundle installonly whenbundle checkreports missing dependencies. The profiled Docker build improved from 119.2s to 86.8s in local validation.
Added
- Example Posts: Added twelve new section examples across Business,
Development, Science, Technology, Tutorial, and World posts to provide
richer sample content for
_postscategory sections. - Development Automation: Added
scripts/bin/validateandscripts/validateas the canonical preflight validation command for repository files, version consistency, YAML/data parsing, active configuration contracts, config-file classification, navigation data shape, Jekyll build/doctor, compiled assets, and optional tests/Obsidian/HTMLProofer checks. CI fast checks now call./scripts/bin/validate --quick. - Obsidian Integration — The repo’s markdown content is now editable as an Obsidian vault and rendered identically on GitHub Pages.
- Shared vault config (
.obsidian/app.json,core-plugins.json,community-plugins.json,appearance.json,hotkeys.json,templates.json) and a Templates-compatible note template atpages/_notes/_templates/note-template.md. - Liquid-generated
assets/data/wiki-index.jsonlisting every collection document and standalone page (title, basename, permalink, tags, aliases, excerpt) — works on the default GitHub Pages remote_theme build, no plugin whitelist changes required. assets/js/obsidian-wiki-links.js— client-side resolver that rewrites[[wiki-links]](with aliases, header anchors, broken-link styling),![[embeds]](image with width modifiers, note transclusion), inline#tags, and Obsidian callout blockquotes (> [!note] Title …) into Bootstrap-styled HTML._includes/content/backlinks.html— server-side backlinks panel auto-rendered on everynotelayout (and on any page withbacklinks: true); fully indexable by search engines._includes/content/transclude.html— note embed renderer used by both the JS resolver and the Ruby converter._sass/core/_obsidian.scss(imported via_sass/custom.scss) — styles for wiki-links, broken links, callouts, embeds, and the backlinks panel._plugins/obsidian_links.rb— opt-in Ruby converter that performs the same transformations server-side for forks that build with vanilla Jekyll (without thegithub-pagesgem) or use a custom GH Actions workflow that bypasses the plugin whitelist.pages/_docs/obsidian/— full documentation section: index, getting started, syntax reference, authoring workflow, troubleshooting._config.yml— added*.canvasand*.excalidraw.mdtoexclude:;jekyll-redirect-fromenabled to map Obsidianaliases:to URL redirects..gitignore— ignore Obsidian’s local-only state (workspace*,cache,plugins/*/data.json,graph.json,.trash/).
- Shared vault config (
- Tests:
test/test_ruby_converter.rb— 18-test, 65-assertion Minitest suite for_plugins/obsidian_links.rbcovering wiki-links, embeds, callouts (including fold markers and unknown-type fallback), inline tags, code-block isolation, and a plain-markdown regression guard.test/test_resolver.js— 16-assertion Node test forassets/js/obsidian-wiki-links.jsusing a hand-rolled DOM shim; exercises wiki-link resolution, embeds, tags, and DOM-level callout rewriting.test/test_obsidian.sh— orchestrator that runs both unit suites and validates that the Jekyll build emits a well-formedwiki-index.json. Wired intotest/test_runner.sh.test/fixtures/obsidian/sample-note.md— representative Obsidian note exercising every supported feature.
- Obsidian Graph View — Live, force-directed knowledge graph at
/docs/obsidian/graph/mirroring Obsidian’s local graph view. Built from the sameassets/data/wiki-index.jsonthat powers the resolver and backlinks panel.pages/_docs/obsidian/graph.md— graph page (Bootstrap toolbar with title filter, “Show orphans” switch, “Reset view” button; collection-color legend; usage tips). Cytoscape.js loaded only on this page via CDN with SRI +crossorigin="anonymous".assets/js/obsidian-graph.js— vanilla-JS renderer (~330 lines, no build step). Mirrors the resolver’s normalization (toLowerCase().trim()+ whitespace collapse) so wiki-index keys match.coseforce layout, hover-highlight neighborhood, click-to-navigate (⌘/Ctrl-click for new tab), search-driven node fading, orphans hidden by default with a Bootstrap switch toggle. Broken targets render as dashed red nodes prefixed__broken__:in the graph model.assets/data/wiki-index.json— extended each entry with anoutgoing: [...]array of normalized wiki-link targets, extracted at build time via Liquid (masks![[…]]embeds, splits on[[/]]/|/#/^, downcases, dedupes).
- Docs:
README.mdandAGENTS.mdupdated with an Obsidian vault section pointing to the new docs. - Bare-minimum 3-file remote-theme starter. Consumers can now publish a
fully styled site to GitHub Pages with only
_config.yml,Gemfile, andindex.md— no installer required. The new_layouts/welcome.htmlshipped by the theme detects unconfigured sites and renders an onboarding screen with a hero checklist, a 3-step starter accordion, and the embedded_includes/setup/wizard.htmlthat generates a personalised_config.ymlon the fly. README gained a “Bare-Minimum Starter” section documenting the pattern. - Smarter setup detection in
_includes/components/setup-check.html. Whensite_configuredis not set, the heuristic now flags a site as unconfigured if it has no owner (founder/author/email) or its title matches a known placeholder (zer0-mistakes,zer0-pages-remote,Your Site Title,My Awesome Site,Welcome,Untitled, or empty).
Fixed
- Preview Image Generator: Fixed
scripts/features/generate-preview-imagesproject-root detection when invoked through the wrapper and added support for OpenAI GPT image generation responses that returnb64_jsoninstead of URL downloads. The generator now reports the active image model and defaults togpt-image-2with GPT-image-friendly size and quality settings. - Obsidian Local Graph: Moved the local graph out of the documentation navigation sidebar into its own collapsible side panel with a larger canvas and resize-on-open behavior so Cytoscape renders cleanly. Pages with no local wiki-link neighbors now keep the graph control visible and render a current-page-only graph instead of hiding the panel.
- Obsidian Resolver: The client-side wiki-link resolver now receives baseurl-safe index, attachment, and tag URLs from Liquid and derives a safe fallback from its script path for GitHub Pages project sites.
- Backlinks: The linked-mentions include now skips draft and unpublished
candidates unless
site.show_draftsis enabled. - Validation:
scripts/bin/validate --quicknow accepts YAML anchors and date values used by repository config/data files. - Tests:
test/test_runner.shnow includes anobsidiansuite key/name so suite keys, scripts, and labels stay aligned. - Footer Quick Links no longer 404 on bare-minimum sites.
_includes/core/footer.htmlpreviously hard-coded links to/about/,/services/,/news/,/contact/,/privacy-policy, and/terms-of-service— none of which exist in a 3-file remote-theme consumer. Quick Links are now resolved in this order:site.footer_quick_links(array of{label, url}) — explicit override- Auto-detection: each candidate link only renders if the target page
exists in
site.html_pages - Fallback to
Home+Sitemap (XML)only. Privacy Policy / Terms of Service links use the same existence check and optionally read fromsite.privacy_policy_url/site.terms_of_service_url.
- Welcome layout external links now point to existing README anchors.
The “Next steps” cards in
_layouts/welcome.htmllinked to#content-creationand#customisation, which don’t exist in the theme README. They now point toREADME.md#-quick-startandREADME.md#-key-featuresrespectively. - Theme info admin links are conditional.
_includes/components/info-section.htmlpreviously rendered Admin Dashboard links to/about/config/,/about/settings/theme/,/about/settings/navigation/, and/about/settings/environment/unconditionally — guaranteed 404s on bare-minimum sites. The links and surrounding section now only render when the corresponding page exists. - Source Code shortcuts skip GitHub buttons when repository is unknown.
_includes/components/dev-shortcuts.htmlrenderedhttps://github.com//blob//URLs whensite.repositoryandsite.branchwere empty (typical on bare consumer sites). It now hides the GitHub-based buttons and shows a hint to setrepository: USER/REPOin_config.yml. - Cookie-consent privacy link is conditional. The “Learn more in our
Privacy Policy” anchor in
_includes/components/cookie-consent.htmlonly renders if a/privacy-policy/page exists orsite.privacy_policy_urlis configured. - Setup banner link.
_includes/components/setup-banner.htmlno longer points at the non-existent/404.html; it now links to/#setup-wizard, which is provided by the new welcome layout. - Version-bump workflow no longer crashes on bash 5.x runners.
scripts/utils/analyze-commits(andscripts/lib/changelog.sh,scripts/lib/migrate.sh) used the((var++))post-increment idiom. On bash 5.x, whenvaris 0 the expression evaluates to 0 → exit code 1 →set -euo pipefailterminates the script silently. macOS bash 3.2 was more forgiving, so the bug only surfaced in CI. Replaced all release-path sites withvar=$((var + 1)), which always returns 0. Added a static regression check to the unit tests so the pattern can’t return.
[1.0.0] - 2026-04-20
First stable major release. Consolidates the breaking-change installer rewrite (shipped in error as v0.22.22 due to a silent bug in the version analyzer) and the fix that restored the release automation.
⚠️ Breaking changes
- Modular installer. The 2,400-line monolithic
install.shis decomposed into a CLI dispatcher (scripts/bin/install) backed by focused library modules (scripts/lib/install/*.sh) and declarative YAML profiles (templates/profiles/*.yml). The legacycurl | bashone-liner still works — it bootstraps the same pipeline. - Legacy mode flags deprecated.
--full,--minimal,--fork,--remote,--githubcontinue to work in 1.0.x with a one-line deprecation warning. They map 1:1 toinstall init --profile <name>. Targeted removal: 2.0. --azureflag removed. Replaced byinstall deploy azure-swa. Old flag emits a clear error pointing at the new command.- Templates are the single source of truth. Embedded heredoc fallbacks in
install.share gone. A stripped distribution (theme tarball withouttemplates/) will fail; the bootstrap downloads the templates tarball alongsideinstall.shforcurl | bash.
See docs/installation/migration-from-0.x.md for the full flag-by-flag mapping.
Added
Modular installer (Phases 1-7 of the refactor)
scripts/bin/install— canonical CLI with subcommands:init,wizard [--ai],agents,deploy,doctor [--ai] [--quiet] [--json],diagnose [--ai],upgrade,list-profiles,list-targets,version,help.scripts/lib/install/— focused modules:core,platform,template,fs,config,pages,profile,wizard_interactive,doctor,upgrade,agents,ai/{openai,wizard,diagnose,suggest},deploy/{registry,github-pages,azure-swa,docker-prod}. All bash 3.2 compatible.templates/profiles/*.yml— declarative profile manifests (full,minimal,fork,remote,github).templates/deploy/<target>/— pluggable deploy templates (workflow YAMLs, Dockerfile, nginx.conf).templates/agents/— distributable AI agent guidance (CLAUDE.md, aider.conf.yml templates).templates/ai/prompts/— system prompts for AI subcommands..zer0-installedmarker file — tracks installed theme version for idempotentinstall upgrade.- AI integration (opt-in, sandboxed):
install wizard --ai(OpenAI-backed_config.ymlgeneration),install diagnose --ai(unified-diff patch proposals),install deploy --ai-suggest(deploy-target recommendation). HonorsZER0_NO_AI=1kill switch. All payloads sanitized; all writes diffed before confirmation. install doctor— platform/tooling/site/AI health check with PASS/WARN/FAIL counters,--quietand--jsonmodes. Used as preflight ininstall init(opt out with--skip-doctor).install upgrade— idempotent in-place upgrade tracked via.zer0-installed.--from,--force,--dry-run,--auto-accept. Refreshes agents and checks deploy-workflow drift.docs/installation/— full doc tree:index,architecture,profiles,deploy-targets,ai-features,migration-from-0.x,customization..github/instructions/install.instructions.md— agent guidance for installer code..github/workflows/doctor.yml— CI matrix (ubuntu-latest, macos-latest) runninginstall doctor --jsonon every push/PR touching installer code..github/workflows/install-matrix.yml— full installer e2e matrix (ubuntu-latest + macos-latest × ruby 2.7/3.0/3.2) plus acurl|bashbootstrap smoke job.- Installer e2e suites under
test/:test_install_profiles.sh,test_install_deploy.sh,test_install_ai_mock.sh,test_install_legacy_flags.sh,test_install_idempotency.sh. scripts/bin/test install— new test-suite group that executes all installer e2e tests.
Versioning & release automation (new in 1.0.0)
- New unit-test file
scripts/test/lib/test_analyze_commits.sh(15 assertions) covering: scoped conventional types,!breaking-change marker,BREAKING CHANGE/BREAKING-CHANGEfooters, and stdout/stderr separation. Wired intoscripts/test/lib/run_tests.sh.
Fixed
- Versioning automation no longer silently swallows analyzer crashes.
scripts/utils/analyze-commitscalledlog_info/log_warning/log_debug/log_errorhelpers that were never defined inscripts/lib/common.sh, causing the script to exit 127 with empty stdout. The version-bump workflow then fell back topatchvia2>/dev/null || echo "patch", which is exactly what shipped v0.22.22 instead of the intended v1.0.0 for the breaking-change installer rewrite (PR #76). The analyzer now defines stderr-only logging helpers, and the workflow refuses to publish on analyzer failure or invalid output. - Conventional Commits
!breaking-change marker is now recognised.feat!:,fix(scope)!:, andrefactor(api)!:correctly trigger a major bump in both the version analyzer and changelog categoriser. Previously only the long-formBREAKING CHANGE:footer was detected. - Scoped types are recognised everywhere.
feat(auth):,fix(api):,chore(deps):, etc. are now properly classified byanalyze-commitsand grouped correctly inchangelog.sh. install.sh—gh_args[@]: unbound variablecrash when invoking the github profile with no fork environment variables set (set -u+ empty array). Guarded with${gh_args[@]+"${gh_args[@]}"}.
Changed
scripts/utils/analyze-commitsnow guarantees that only the bump type (patch|minor|major|none) is written to stdout. All progress and debug output is sent to stderr, so callers can safely useBUMP=$(./analyze-commits ...)..github/workflows/version-bump.ymlstreams the analyzer’s stderr into a collapsible job-log group and validates the returned bump type, failing the run with an annotated error if the analyzer crashes or returns garbage.README.mdInstallation Methods section now references the modular CLI alongside the legacy one-liner.docs/FORKING.mdincludes aninstall init --profile forkflow alongside the standalonefork-cleanup.shscript.AGENTS.mdinstruction map adds the new install instructions row.
[0.22.22] - 2026-04-21
Changed
- Version bump: patch release
Commits in this release
- 36cd015 feat(installer)!: modular installer + AI + deploy targets + test matrix (#76)
- 555bead docs(readme): add AI-native branding and GitHub Actions automation section
[0.22.21] - 2026-04-19
Changed
- Version bump: patch release
Commits in this release
- 7f00e4d docs(roadmap): data-driven roadmap with auto-generated README mermaid diagram (#71)
Unreleased
Changed
- Copilot Agent prompts (
_data/prompts.yml): rewritten to focus on frontend/CMS workflows for the Jekyll theme. Replaced the previous general-purpose software-engineering templates with 10 prompts split into two scopes: Page Improvements (improve-page,expand-page,update-page,fix-page,seo-optimize,accessibility-audit) that act on the current page, and Site Improvements (ui-ux-improvement,new-feature,component-enhancement,performance-optimization) for theme-wide changes. Every prompt explicitly references the auto-injected Page Context table. - Intro component (
_includes/content/intro.html): the Copilot Agent dropdown now renders Bootstrapdropdown-headersection labels and dividers when prompt entries declare agroup. Entries without agroupcontinue to render as plain items (backward compatible). - Docs (
docs/implementation/copilot-agent-prompt-button.md): updated the prompt registry table and YAML schema to document the newgroupfield and the new template set.
Added
- Roadmap data file:
_data/roadmap.ymlis now the single source of truth for the project roadmap (versions, status, dates, targets, and feature highlights). - Roadmap generator:
scripts/generate-roadmap.rb(and shell wrapperscripts/generate-roadmap.sh) renders a Mermaid gantt diagram and summary table from_data/roadmap.ymland injects them intoREADME.mdbetween<!-- ROADMAP_MERMAID:START/END -->and<!-- ROADMAP_TABLE:START/END -->markers. Supports--checkmode for CI drift detection and--stdoutfor previewing. - Roadmap sync workflow:
.github/workflows/roadmap-sync.ymlregenerates the README on push tomainwhen the data file or generator changes, and verifies sync on PRs that touch those files. - Local Graph Sidebar Widget — Per-page mini Obsidian-style local graph rendered at the top of the left sidebar on every page that has one.
_includes/navigation/local-graph.html— small widget with a “Local graph” heading, a “full ›” link to/docs/obsidian/graph/, and a#obsidian-local-graphcontainer. Honorslocal_graph: falseandlocal_graph_depth: N(default 1) in page front matter.assets/js/obsidian-local-graph.js— fetcheswiki-index.json, finds the current page bywindow.location.pathname(with title/basename fallback), BFS through both outgoing and incoming wiki-links to the configured depth, renders the subgraph with cytoscape.js (coselayout sized for ~220px sidebar canvas). Highlights the current page with an orange border + larger node + bold label. Click navigates (⌘/Ctrl-click opens new tab). Hides itself silently if the page isn’t in the wiki-index or has no neighbors. Cytoscape is lazy-loaded from CDN with SRI +crossorigin="anonymous"and de-duplicated against the full graph page’s existing load._includes/navigation/sidebar-left.html— includes the new widget at the top of.offcanvas-body, before the nav-mode chain._sass/core/_obsidian.scss— added.obsidian-local-graph-widgetstyles for the 220px container with theme-aware borders/background.
- Docs:
docs/FORKING.md— progressive fork → configure → personalize workflow for theusername.github.iouser-site pattern - Tests:
test/test_fork_cleanup.sh— 32-assertion suite covering CLI parsing, dry-run, real cleanup, YAML anchor preservation, and idempotency
Changed
- Obsidian docs:
pages/_docs/obsidian/syntax-reference.md— graph view now marked Available (was “Not yet implemented”);pages/_docs/obsidian/index.md— added Graph view row to the section table. - Documentation cross-linking: appended a
## See alsoblock of[[wiki-links]]to every page inpages/_docs/(76 files — section indexes, leaf pages, and the obsidian cluster) so the graph view shows real cluster structure. Edge count grew from 12 → 292 with 90+ visible nodes after orphan filtering. - Obsidian Graph View polish: removed the white pill backgrounds behind labels (now halo-only outlines that match the canvas color, so edges read through cleanly); labels hide by default and reveal on zoom-in or hover, while the 37 hub nodes (degree ≥ 6 — Docker, Front Matter, Jeykll, Layouts, Customization, Release Management, etc.) keep their labels always-on as landmarks; loosened
coselayout (nodeRepulsion8000→18000,idealEdgeLength80→130, addednodeOverlap: 24andcomponentSpacing: 80, dropped gravity 0.25→0.18,numIter2500); taller canvas (82vh/620pxmin, was75vh/520px); biggercy.fit()padding (40→70 default, 80→100 for search matches) so top-row labels don’t clip the canvas edge. - README roadmap section is now auto-generated from
_data/roadmap.ymlinstead of being hand-maintained, and includes status, target, and detailed highlight columns. pages/roadmap.mdrewritten to render the Mermaid gantt chart, release summary, and per-version detail sections directly from_data/roadmap.ymlvia Liquid — so the Jekyll page is always live with the canonical data._data/README.mddocuments the newroadmap.ymldata file.- Landing page:
_includes/landing/landing-install-cards.html— “Fork & Deploy” card now guides users to fork into<username>.github.ioand runscripts/fork-cleanup.sh; safergithub_forkURL handling - README:
README.md— Method 3 (Fork & Customize) reframed as “Fork & Deploy as Your Site” with a 4-step path; deployment section updated for user-site flow - Docs:
pages/_quickstart/github-setup.md,pages/_quickstart/index.md,pages/_docs/getting-started/quick-start.md,pages/_docs/deployment/github-pages.md,docs/configuration/url-configuration-guide.md— aligned with the user-site fork pattern (baseurl: "") - Templates:
templates/cleanup/reset-fields.yml— annotatedbaseurlreasoning; clarified user-site vs. project-site behavior - Templates:
templates/config/install.conf— minor consistency tweaks
Fixed
- Fork cleanup:
scripts/fork-cleanup.sh—get_reset_field_value()now usesYAML.safe_load_file(..., aliases: true)so anchors inreset-fields.ymlno longer break parsing under newer Ruby - Fork cleanup:
scripts/fork-cleanup.sh— repository name derivation now strips.gitsuffix and falls back gracefully whenoriginis missing (noset -euo pipefailaborts) - Fork cleanup:
scripts/fork-cleanup.sh—posthog/giscusblocks reset only within their own YAML range (no stray matches in unrelated blocks) - Welcome post:
templates/pages/welcome-post.md.templateand embedded fallback inscripts/fork-cleanup.sh— correctedlayout: journals→layout: articleso the generated welcome post builds without “Layout does not exist” warnings on a freshly cleaned fork
[0.22.20] - 2026-04-19
Changed
- Version bump: patch release
Commits in this release
- f5d5e97 fix(ui): UI/UX fixes — navbar dropdown, landing hero, cookie banner, nanobar, footer (#72)
[0.22.19] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- 1b3993e docs(fork): add fork-to-deploy workflow and user site guidance (#56)
[0.22.18] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- 02d0295 feat(setup): add site configuration detection and smart 404 page (#58)
[0.22.17] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- 10ba722 Add config-driven frontmatter validation system with review fixes (#34)
[0.22.16] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- bc41b0d Add AGENTS.md and refresh stale agent instructions (#70)
[0.22.15] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- 939af77 feat(nav): dynamic collection-based navigation fallback for zero-config sites (#64)
- ca7da2e docs: align project documentation with v0.22.13 (#66)
- 9b23b63 chore(deps-dev): bump dompurify from 3.3.3 to 3.4.0 (#68)
[0.22.14] - 2026-04-18
Changed
- Version bump: patch release
Commits in this release
- f0a1cac fix: correct comments for clarity in SEO-related files
- d1998ff chore(deps): update Ruby gem dependencies (#67)
[0.22.13] - 2026-04-10
Changed
- Version bump: patch release
Commits in this release
- 3c00a3d refactor: remove duplicate code — use standard libraries and existing plugins (#59)
[0.22.12] - 2026-04-10
Changed
- Version bump: patch release
Commits in this release
- 7ba0f83 feat(news): add data-driven feature showcase & live Bootstrap components to news index (#54)
[0.22.11] - 2026-04-09
Changed
- Version bump: patch release
Commits in this release
- 8e83a51 Create SECURITY.md for security policy and reporting
[0.22.10] - 2026-04-06
Changed
- Version bump: patch release
Commits in this release
- 27550da feat(admin): add admin layout and configuration dashboards (#57)
[0.22.9] - 2026-04-05
Added
- Skin Editor: New colorffy-inspired skin editor (
assets/js/skin-editor.js) for creating and customizing theme skins from the browser- Edit all 9 built-in skin gradient colors with live color pickers
- Auto-generated palettes: primary tints, surface, tonal surface, semantic colors (success/warning/danger/info)
- WCAG contrast ratio badges on all palette swatches
- Random skin generation, save/load custom skins to localStorage
- Export SVGs and copy CSS custom properties to clipboard
- Advanced SVG filter controls (turbulence, octaves, seed, scale, overlay opacity)
- Palette Generator: New standalone palette generator (
assets/js/palette-generator.js) with chroma.js-powered color mixing and live CSS variable editor - Playwright Tests: 12 new visual regression test specs (skins, backgrounds, accessibility, admin layout, config editor/viewer, env dashboard, security, theme colors)
Fixed
- Skin Rendering: Added
.zer0-bg-heroclass to landing layout to prevent Bootstrap.bg-primaryfrom overriding skin background gradients - CSS Scoping: Added
.bg-primary:not(.zer0-bg-hero)in custom SCSS to isolate skin backgrounds from Bootstrap utility classes
Changed
- Theme Customizer: Expanded to 6 tabs — added Skin Editor between Skins and Palette Generator
- Admin Navigation: Minor layout adjustment
- Environment Dashboard: Minor component update
[0.22.8] - 2026-04-04
Changed
- Version bump: patch release
Commits in this release
- e0b4f13 fix: cross-platform installation compatibility — Gemfile platform sections, fork mode tests, portable sed replacements (#55)
[0.22.7] - 2026-04-03
Changed
- Version bump: patch release
Commits in this release
- a70ae8a chore: consolidate configuration, dependencies, and installation (PRs #48, #51, #52, #53) (#51)
Unreleased — Universal Installer
Added
- Installer: New
--remoteinstall mode — forks repo and creates an orphangh-pagesbranch with only the bare minimum files needed to render viaremote_theme(no local theme source) - Installer: New
--githubinstall mode — interactive fork viaghCLI with automatic platform detection and setup - Installer: New
--codespacesflag — adds.devcontainer/devcontainer.jsonfor GitHub Codespaces support (auto-included in remote mode, opt-in for full/minimal) - Installer: Cross-platform setup scripts:
scripts/platform/setup-macos.sh,setup-linux.sh,setup-wsl.sh - Installer: GitHub CLI fork/clone helper:
scripts/github-setup.sh - Installer: Platform auto-detection (
detect_platform()) for macOS, Linux, and WSL - Templates:
_config.remote.yml.template— minimal config for remote-theme consumer sites - Templates:
_config.starter.yml.template— heavily annotated full starter config - Templates:
Gemfile.remote.template— minimal Gemfile (github-pages + jekyll-remote-theme) - Templates:
devcontainer.json.template— lightweight devcontainer for consumer sites - Templates:
theming.md.template— Bootstrap 5 customization guide (dark mode, typography, layouts) - Templates:
setup.html.template— dev-only setup wizard page - Wizard: Interactive browser-based config wizard (
pages/setup.html,_includes/setup/wizard.html,assets/js/setup-wizard.js) for generating_config.ymlvia a 5-step Bootstrap form - CI:
.github/workflows/setup-template.yml— auto-detects non-upstream repos and creates PR with prefilled config
Changed
- Installer:
install.sh— added--remote,--github,--codespacesflags and corresponding mode dispatchers - Installer:
render_template()now substitutesREPOSITORY_NAME,RAW_GITHUB_URL,FORK_GITHUB_USERvariables - Installer:
install.conf— addedremoteandgithubtoVALID_INSTALL_MODES, platform detection vars, wizard config, expandedTEMPLATE_VARS - Templates:
quickstart.md.template— enhanced with Bootstrap pill tabs for macOS/Linux/WSL/GitHub Fork platform-specific instructions - Templates:
configuration.md.template— comprehensive rewrite with URL tables, all config sections, cookie consent, dev config - Templates:
welcome-post.md.template— enhanced Day 1 tutorial with folder structure diagram, commands table, feature checklist
[0.22.6] - 2026-04-03
Changed
- Version bump: patch release
Commits in this release
- 0117620 chore(ci): streamline CI workflows with path-based change detection - Bump version to 0.22.5
[0.22.5] - 2026-04-03
Changed
- CI: Streamlined
ci.yml— added path-based change detection to skip heavy jobs on docs-only PRs, removed scheduled cron runs andcomprehensivetest scope - CI: Simplified
codeql.ymlworkflow - CI: Added
test-latest.ymlfor latest dependency testing - CI: Removed redundant summary job from
release.yml - CI: Simplified
version-bump.yml - Docs: Updated
.github/workflows/README.mdand.github/actions/README.md
Removed
- CI: Removed
.github/actions/prepare-release/action.ymlcomposite action
[0.22.4] - 2026-04-03
Changed
- Version bump: patch release
Commits in this release
- 9c56fe0 Review article: fix front matter and expand content for wizard-topples post (#47)
[0.22.3] - 2026-04-02
Changed
- Version bump: patch release
Commits in this release
- 059244d fix(landing): stabilize hero layout and scroll animations (#44)
[0.22.2] - 2026-04-02
Changed
- Version bump: patch release
Commits in this release
- a9b8daf docs(prompts): update commit-publish workflow with PR branching and CI fix guidance
[0.22.1] - 2026-04-02
Changed
- Version bump: patch release
Commits in this release
- a82f670 chore(ci): update Gemfile.lock to v0.22.0 and upgrade actions/checkout to v5
[0.22.0] - 2026-04-01
Added
- Copilot Agent dropdown: New
btn-successdropdown in the intro section action button group that lists AI prompt templates, each opening a pre-filled GitHub issue assigned to@copilotwith the selected prompt body, page context, and environment metadata _data/prompts.yml: Data-driven prompt registry with 9 built-in templates (article-review, code-implementation, code-refactoring, debugging, documentation, requirements-analysis, system-design, test-generation, prompt-engineering)docs/implementation/copilot-agent-prompt-button.md: Full implementation guide covering architecture, configuration, prompt registry, issue body structure, customization, troubleshooting, and FAQ
Changed
_includes/content/intro.html: Replaced single Copilot Agent link with a prompt-selection dropdown;repo_branchnow sourced fromsite.branch | default: "main"(fixes hardcodedmaster); file path uses dedicatedfile_pathvariable; issue title format is[Prompt Label] Page Titlewithai-agentlabel pre-applieddocs/implementation/README.md: Added Copilot Agent Prompt Button entry to contents table
[0.21.6] - 2026-03-30
Changed
- Version bump: patch release
Commits in this release
- 56c70b8 docs: fix Quick Links, harmonize bash commands, and update version references across READMEs (#42)
[0.21.5] - 2026-03-30
Changed
- Version bump: patch release
Commits in this release
- c74f26d Automate README.md version sync and fix GitHub release dispatch in release workflow (#40)
[0.21.4] - 2026-03-29
Changed
- Version bump: patch release
Commits in this release
- 3c96620 feat: vendor assets, theme architecture, CI and docs (v0.21.3) (#39)
[0.21.3] - 2026-03-29
Changed
- Test runner: When
test.confsets a non-defaultTEST_TIMEOUT_DEFAULT, pass--timeoutonly to suites whose scripts accept it (core,deployment,quality). AvoidsUnknown option: --timeouton installation and site-generation suites. - Vendor assets (GitHub Pages): Bootstrap, jQuery, Bootstrap Icons, MathJax, Mermaid, Font Awesome, and GitHub Calendar load from committed
assets/vendor/withrelative_url(no runtime CDN for core assets). Addedvendor-manifest.json,scripts/vendor-install.sh, andnpm run vendor:install..gitignoreuses/vendor/for Bundler only; removed blanketvendor/from Jekyllexcludesoassets/vendor/is published. Docker base image includesjqfor vendor installs;scripts/bin/buildruns vendor-install before gem build. - Mermaid vendor source:
mermaidis a devDependency;npm run vendor:mermaidcopiesnode_modules/mermaid/dist/mermaid.min.jsintoassets/vendor/mermaid/. The jsDelivr Mermaid entry was removed fromvendor-manifest.json;vendor-install.shcopies from npm whennode_modulesis present. - Version bump: patch release
- CSS architecture: Removed unused
assets/css/custom.css(legacy#mainNav); overrides use_sass/custom.scssor optionaluser-overrides.css. Replaced vendored_sass/core/_docs.scss(~3.2k lines) with trimmed_sass/core/_docs-layout.scss. Theme modes:_sass/theme/_color-modes.scssre-exports_wizard-mode.scss(wizard Sass/CSS) and_css-variables.scss(--bd-*tokens); dropped duplicate blocks from_theme.scss, duplicate Bootstrap font/line-height block in_variables.scss, and unused social/base16 duplicates from_variables.scss. Feature metadata now points styles at_docs-layout.scss. - Optional npm Bootstrap: Added
package.jsonwithnpm run css:bootstrap(Dart Sass + Bootstrap 5.3.3) producingassets/css/vendor/bootstrap-from-npm.css; documented alternate<link>in_includes/core/head.html.stats.cssremains a conditional stylesheet for the stats layout only.
Commits in this release
- 1fd2061 Enhance navigation UX: responsive design, accessibility, and interaction polish (#25)
- 9a27ad7 feat(aieo): add structured data, E-E-A-T signals, FAQ, glossary, and roadmap pages (#38)
- 96a31f9 chore(deps): update Ruby gem dependencies (#37)
[0.21.2] - 2026-03-21
Changed
- Version bump: patch release
- Release tooling: RubyGems publishing now supports API-key auth via
.env(RUBY_API_KEYmapped toGEM_HOST_API_KEY)
Commits in this release
- 34bed37 chore(deps): update Ruby gem dependencies (#31)
- 50ebdd4 chore(deps): update Ruby gem dependencies (#32)
[0.21.1] - 2026-03-13
Changed
- Version bump: patch release
Commits in this release
- 9665afd feat(templates): add README.md for templates directory and usage instructions
- cc81bd9 chore(deps): update Ruby gem dependencies (#24)
[0.21.0] - 2026-02-01
Added
- Environment Switcher: New settings modal tab with dev/prod URL shortcuts and copy actions
- Navigation Assets: Extracted navigation styles and scripts into
_sass/core/_navbar.scssandassets/js/navigation.js
Changed
- Settings Modal: Redesigned info section with tabbed layout and compact theme info
- Navigation UI: Refined header utility controls, navbar labels/icons, and loaded navigation JS via js-cdn include
- Dev Shortcuts: Updated source shortcuts layout and labeling for clarity
- Theme Branding: Updated default title icon and subtitle in
_config.yml
[0.20.8] - 2026-02-02
Changed
- Version bump: patch release
Commits in this release
- d71a42a feat(docker): add local Docker publishing capability
[0.20.7] - 2026-02-01
Changed
- Version bump: patch release
Commits in this release
- 969ce94 refactor(ci): abstract hardcoded values to GitHub variables and secrets
[0.20.6] - 2026-02-01
Changed
- Version bump: patch release
Commits in this release
- af25fc8 fix(ci): improve Docker compose compatibility for CI environments
[0.20.5] - 2026-02-01
Changed
- Version bump: patch release
Commits in this release
- 7a2eeaf fix(docker): add PAGES_REPO_NWO environment variable for Jekyll builds
[0.20.4] - 2026-02-01
Changed
- Version bump: patch release
Commits in this release
- a71e7a3 fix(ci): add PAGES_REPO_NWO env var and skip-remote for Jekyll builds
- 74e0929 fix(ci): ensure Gemfile.lock is updated during version bumps
- e06520e docs(prompts): enhance release pipeline documentation with best practices
[0.20.3] - 2026-02-01
Added
- Notes Collection: 5 new developer reference notes
bash-shortcuts.md- Essential terminal keyboard shortcutsdocker-commands.md- Docker and Docker Compose command referencegit-cheatsheet.md- Git commands quick referencejekyll-front-matter.md- Jekyll front matter variables guidemarkdown-tips.md- Advanced Markdown formatting tricks
- Python Statistics Notebook: New
python-statistics.ipynbJupyter notebook with scipy, pandas, and statistical analysis examples - Enhanced Notes page: Added tag filtering and improved card-based layout
- Enhanced Notebooks page: Added difficulty filtering and improved card-based layout with download links
Changed
- Layout Standardization: Updated all posts from
layout: journalstolayout: articlefor consistency - Section Index Pages: Updated category index pages to use
layout: sectionwith proper section_style settings - News URL Structure: Changed permalinks from
/posts/to/news/across all news sections - Removed: Deleted unused
pages/blog.mdpage
Fixed
- Layout consistency: Standardized layouts across Business, Development, Science, Technology, Tutorial, and World news sections
[0.20.2] - 2026-01-30
Added
- GitHub Pages Compatible Search: New out-of-box search functionality that works with GitHub Pages safe mode
_includes/search-data.json- Liquid template for generating search index_layouts/search.html- Layout wrapper for search.json generation- Enhanced search index with
date,categories, andtagsfields - Configurable content length via
site.search.content_length
Changed
- search.json: Now uses layout-based approach instead of inline Liquid for better theme integration
- Theme users only need a 5-line
search.jsonfile to enable search functionality
Technical Details
- Works in GitHub Pages safe mode (no Ruby plugins required)
- Indexes pages, posts, and all collection documents
- Produces valid JSON with 131+ items indexed
- Automatically included in gem via
_includes/and_layouts/directories
[0.20.1] - 2026-01-26
Changed
- Version bump: patch release
Commits in this release
- 80ee1da feat(release): prepare 0.20.0
- 8c74a60 Merge branch ‘main’ of https://github.com/bamr87/zer0-mistakes
- 4d1c28c chore: update README for version 0.19.1
- 8157508 chore(deps): update Ruby gem dependencies (#22)
- 0f9d100 Merge branch ‘main’ of https://github.com/bamr87/zer0-mistakes
- 0cf42e9 chore: update Docker image reference in CI workflow
[0.20.0] - 2026-01-26
Added
- Scaffolding templates: New templates directory and helper scripts for fork cleanup and content setup.
- Testing assets: New test helpers and configs including installation, site generation, and visual suites.
Changed
- CI: Expanded workflow coverage for the updated test suite and automation paths.
- Install: Enhanced installation flow for template-based setup and post-install configuration.
- Docs: Updated Jekyll documentation index.
Fixed
- Dev build: Exclude templates from Jekyll processing to prevent invalid date parsing.
[0.19.1] - 2026-01-25
Changed
- Version bump: patch release
Commits in this release
- 516e56b fix(install): include docker/ directory in full installation
- c8a3dbb ci: optimize CI pipeline performance and integration tests
- 93fce7b ci: enhance CI workflow for Jekyll with improved Docker handling and site accessibility checks
[0.19.0] - 2026-01-25
Added
- Feature Discovery: Identified and documented 15 previously unlisted features (ZER0-029 through ZER0-043):
back-to-top.md- Floating scroll-to-top buttoncode-copy.md- One-click code block copycolor-modes.md- Dark/light mode toggle with system preference detectionsite-search.md- Client-side search with modal and keyboard shortcuttoc.md- Table of contents with scroll spybreadcrumbs.md- Hierarchical navigation with Schema.org markupstatistics-dashboard.md- Content metrics visualization- Google Analytics and Google Tag Manager integrations
- Auto-hide navigation, particles background, SEO optimization, sitemap generation
- Development Documentation (
pages/_docs/development/):index.md- Development section overviewrelease-management.md- Semantic versioning and gem publishing guidetesting.md- Comprehensive test suite documentationversion-bump.md- Automated version workflow guidesecurity.md- CodeQL scanning documentationci-cd.md- CI/CD pipeline guidedependency-updates.md- Automated dependency managementscripts.md- Shell script automation librarydocumentation.md- Dual documentation architecture guideprd.md- Product requirements document
- Feature Documentation (
pages/_docs/features/):copilot-integration.md- GitHub Copilot integration guidecookie-consent.md- GDPR/CCPA compliant consent systemsidebar-navigation.md- Enhanced sidebar with scroll spymobile-toc.md- Mobile TOC floating action buttonskip-to-content.md- WCAG 2.1 accessibility linkjupyter-notebooks.md- Jupyter notebook supporttheme-version.md- Theme version display plugin
- Analytics Section (
pages/_docs/analytics/):index.md- Analytics overviewgoogle-analytics.md- GA4 integration guidegoogle-tag-manager.md- GTM setup guide
- SEO Section (
pages/_docs/seo/):index.md- SEO features overviewmeta-tags.md- Open Graph, Twitter Cards, JSON-LDsitemap.md- XML sitemap and search index generation
- Jekyll Documentation:
collections.md- Jekyll collections organization guide
- Customization Documentation:
includes.md- 70+ include components guide
Changed
- features.yml: Added 15 new features (ZER0-029 to ZER0-043) with complete metadata
- features.yml: Updated all documentation links from GitHub URLs to local
/docs/pages - bootstrap/index.md: Expanded with comprehensive examples (grid, components, utilities)
- preview-image-generator.md: Complete rewrite with AI provider details and configuration
Documentation Stats
- 43 total features now fully documented
- 40+ new/updated documentation pages created
- All features linked to
/docs/pages (no external GitHub links for docs)
[0.18.2] - 2026-01-25
Changed
- Documentation Architecture: Major restructure separating user documentation (
pages/_docs/) from developer documentation (docs/) - Navigation: Updated
_data/navigation/docs.ymlwith new section structure
Added
- User Documentation (
pages/_docs/):getting-started/- Installation guides, quick start, theme guidefeatures/- Mermaid diagrams, MathJax, Giscus comments, PostHog analytics, keyboard navigationdeployment/- GitHub Pages, Netlify, custom domain guidescustomization/- Layouts, styles, navigation customization guides
- Developer Documentation (
docs/):architecture/- Project structure, layouts/includes, build systemdevelopment/- Local setup, testing, code style guidesimplementation/- Feature implementation changelogs (renamed fromfeatures/)
Removed
- Duplicate user-facing documentation from
docs/jekyll/(moved topages/_docs/) - Legacy
docs/QUICKSTART.mdanddocs/keyboard-navigation.md(content moved to user docs)
[0.18.1] - 2026-01-24
Changed
- Documentation: Complete refactoring of Jekyll documentation from 22 tutorial-style files into 13 consolidated feature-focused guides
Added
docs/jekyll/theme-guide.md- Comprehensive theme setup and customization (461 lines)docs/jekyll/diagrams-mermaid.md- Mermaid diagrams integration guide (454 lines)docs/jekyll/analytics-posthog.md- PostHog privacy-first analytics setup (323 lines)docs/jekyll/math-mathjax.md- MathJax mathematical notation guide (257 lines)docs/jekyll/comments-giscus.md- GitHub Discussions-powered comments (223 lines)docs/jekyll/code-highlighting.md- Syntax highlighting with Rouge/highlight.js (151 lines)docs/jekyll/liquid-reference.md- Liquid templating quick reference (132 lines)docs/jekyll/pagination.md- Pagination implementation guide (130 lines)docs/jekyll/config-reference.md- Jekyll configuration options reference (102 lines)docs/jekyll/troubleshooting-port.md- Port 4000 troubleshooting guide (89 lines)docs/jekyll/deploy-netlify.md- Netlify deployment guide (84 lines)docs/jekyll/security-headers.md- Netlify security headers configuration (70 lines)docs/jekyll/custom-domain.md- GitHub Pages custom domain setup (65 lines)
Removed
- Deprecated Jekyll tutorial files replaced by new consolidated guides:
jekyll-pagination.md,jekyll-performance-optimization.md,jekyll-progress-bar.mdjekyll-search-function-for-static-website.md,jekyll-security.mdjekyll-social-share-buttons-with-sharethis.md,jekyll-social-share-buttons.mdjekyll-usage-and-customization.md,jekyll-highlighting.md,jekyll-liquid.mdjekyll-math-symbols-with-mathjax.md,jekyll-diagram-with-mermaid.mdjekyll-comments-with-disqus.md,jekyll-google-analytics.md,jekyll-config.mdjekyll-frontmatter-cms.md,mermaid-native-markdown.md,mermaid-test-suite.md,mermaid.mddeploying-jekyll-website-to-netlify.md,deploying-personal-website-with-custom-domain.mdcontinuously-deploy-jekyll-website-to-gitHub-pages-with-travis-ci.mdcannot-start-jekyll-at-specific-port.md
[0.18.0] - 2026-01-19
Added
- Search Modal: New site-wide search popup with live results, keyboard shortcuts (
/,Cmd/Ctrl+K), and offcanvas entry - Search Index: Generated
search.jsonindex including page content for client-side search
Changed
- Navigation: Added search button to the main navbar with improved mobile layout support
Fixed
- Search UX: Highlight query matches and show content-based snippets where the match occurs
[0.17.5] - 2026-01-17
Changed
- Version bump: patch release
Commits in this release
- eeb8ea3 fix(ui): remove cursor tilt and prep v0.17.4
[0.17.4] - 2026-01-16
Changed
- Version bump: patch release
Fixed
- UI/UX: Removed cursor-based 3D parallax tilt effect on cards to prevent perspective shifts on hover
- Config YAML: Corrected anchor definitions used by gravatar and local repo settings to pass YAML validation
Commits in this release
- 226b0a5 chore(structure): reorganize root directory for better maintainability
[0.17.3] - 2026-01-15
Changed
- Version bump: patch release
Commits in this release
- a0c1df4 fix(ui): fix Mermaid dark mode and cookie banner rendering
[0.17.2] - 2025-12-31
Fixed
- Mermaid Dark Mode: Fixed diagram rendering issues in dark mode by dynamically detecting Bootstrap theme (
data-bs-theme) and switching Mermaid theme accordingly - Cookie Consent Banner: Fixed banner appearing twice on initial page load by implementing CSS-first visibility control and removing inline style conflicts
Enhanced
- UI/UX Improvements: Comprehensive frontend enhancements including:
- Smooth scroll animations with Intersection Observer
- Enhanced card hover effects with 3D parallax on desktop
- Improved button styles with ripple effects and better transitions
- Better code block styling with enhanced copy functionality
- Mobile-responsive improvements with touch-friendly tap targets
- Improved focus states for accessibility
- Hero section animations with staggered fade-in effects
Added
- UI Enhancements Module: New
assets/js/ui-enhancements.jsfor scroll animations, card interactions, and smooth scrolling - Enhanced Code Copy: Improved copy-to-clipboard functionality with better visual feedback and fallback support
Changed
- CI Configuration: Made HTMLProofer non-blocking for pre-existing link issues
- Documentation: Enhanced contributing guide and release pipeline documentation 4630c33 (fix(ui): fix Mermaid dark mode and cookie banner rendering)
[0.17.1] - 2025-12-24
Changed
- Version bump: patch release
Commits in this release
- d56de0b fix(ci): update Gemfile.lock for v0.17.0 and improve HTMLProofer config
[0.17.0] - 2025-12-23
Added
- Navbar Hover Dropdowns: Desktop users can now hover over navigation items to reveal sub-menus with smooth fade transitions
- ES6 Navigation Modules: Complete rewrite of navigation JavaScript using native ES6 modules (
type="module")config.js- Centralized configuration with CSS custom propertiesscroll-spy.js- Table of contents highlightingsmooth-scroll.js- Animated scrolling to anchorskeyboard.js- Full keyboard navigation supportgestures.js- Touch gesture support for mobilefocus.js- Focus management and accessibilitysidebar-state.js- Persistent expand/collapse stateindex.js- Module orchestration and initialization
- Nav Tree Component: New
_includes/navigation/nav-tree.htmlfor rendering hierarchical YAML navigation (2 levels deep) - Navigation Schema Documentation: Added
_data/navigation/README.mdwith complete schema definition - Migration Script: Added
scripts/migrate-nav-modes.shto update front matter from old to new nav modes
Changed
- Navigation YAML Schema: Standardized on
childrenkey (previouslysublinks) across all navigation files - Navigation Modes: Simplified to 3 standard modes:
auto- Auto-generates from collection documents (replacesdynamic)tree- Uses YAML data files for hierarchical navigationcategories- Groups content by Jekyll categories (replacessearchCats)
- Sidebar Component: Refactored
_includes/navigation/sidebar-left.htmlto use new nav modes - Script Loading: Updated
_includes/components/js-cdn.htmlto usetype="module"for ES6 modules - Default Collection Config: Updated
_config.ymlwith new navigation mode defaults
Removed
- Legacy sidebar.js: Deleted 512-line IIFE-based sidebar script, replaced by modular ES6 architecture
Fixed
- Mobile Dropdown Behavior: Fixed glitch where opening one dropdown would close others; each now operates independently
- Dropdown Positioning: Fixed desktop hover dropdowns appearing on top of parent links (now correctly appear below)
[0.16.3] - 2025-01-27
Changed
- Documentation Navigation: Restructured
_data/navigation/docs.ymlwith logical sections (Getting Started, Core Technologies, Theme Features, Deployment) - Main Navigation: Updated
_data/navigation/main.ymlwith expanded Docs dropdown entries (Documentation Home, Installation, Docker, Troubleshooting)
Fixed
- Liquid Syntax Error: Fixed pre-existing bug in
pages/features.mdwherewhere_expfilters used unsupportedorconditions (Liquid 4.x compatibility)
Documentation
- Installation Guide: Expanded with platform-specific guides (macOS, Windows, Linux), Docker quick start, verification steps
- Docker Guide: Added essential commands, container workflows, configuration files, Apple Silicon support, troubleshooting
- Troubleshooting Guide: Added sections for Docker issues, Jekyll build errors, front matter problems, performance optimization
- Jekyll Guide: Added directory structure, configuration files, content collections, essential commands, topic index
- Bootstrap Guide: Added CDN loading patterns, key components, responsive breakpoints, custom styles, icons
- Liquid Guide: Added syntax examples with `` tags, filters, control flow, includes
- Ruby Guide: Added version commands, common commands, key files, Docker usage, troubleshooting
- Front Matter Guide: Added required/optional fields, layout options, collection-specific fields, complete examples
- All documentation pages now include
sidebar: nav: docsfor consistent navigation
[0.16.2] - 2025-12-20
Changed
- Version bump: patch release
Commits in this release
- 2a0057e Comprehensive features.yml with references, documentation, and showcase page (#17)
[0.16.1] - 2025-12-20
Changed
- Hardened CI workflows with least-privilege
permissionsandconcurrency - Updated landing/repo links to render correctly with YAML-array URL config
- Excluded repo technical
docs/from the published site build (GitHub links used instead)
Fixed
- Removed false-green behavior in
test-latest.yml(RSpec/HTMLProofer now fail the workflow) - Fixed broken internal links/hashes and aligned navigation anchors (strict HTMLProofer-compatible)
[0.16.0] - 2025-12-20
Added
- Configurable Assets Prefix: New
assets_prefixandauto_prefixconfiguration options for preview images- Allows shorter frontmatter paths like
/images/previews/image.pnginstead of/assets/images/previews/image.png - Automatic path normalization in Liquid templates detects external URLs vs local paths
- Configured via
_config.ymlunderpreview_images.assets_prefixandpreview_images.auto_prefix
- Allows shorter frontmatter paths like
- xAI Grok Image Provider: Added xAI as a new AI provider for preview image generation
- Uses
grok-2-imagemodel athttps://api.x.ai/v1/images/generations - Set
XAI_API_KEYenvironment variable and use--provider xaiflag
- Uses
- Preview Path Migration Script: New
scripts/update-preview-paths.shfor migrating existing frontmatter- Supports dry-run and apply modes
- Removes
/assets/prefix from preview paths in markdown files
Changed
- Updated
preview-image.htmlinclude with path normalization logic - Updated
intro.htmlinclude with assets prefix support for hero backgrounds - Updated
seo.htmlinclude with assets prefix normalization for og:image meta tags - Enhanced
preview_image_generator.rbRuby plugin withnormalize_preview_pathmethod - Enhanced
preview_generator.pywith xAI provider,--assets-prefix, and--no-auto-prefixCLI options - Migrated 24 markdown files to use shorter preview paths (without
/assets/prefix) - Updated scripts/README.md documentation with new provider and prefix options
Fixed
- Critical: Liquid syntax error in
seo.html- Fixed invalid nested curly braces on line 27
[0.15.5] - 2025-12-20
Changed
- Version bump: patch release
Commits in this release
- d46cdb1 Merge branch ‘main’ of https://github.com/bamr87/zer0-mistakes
- 36767cd fix: update last modified timestamp in quick start guide
- f606096 fix: update quick start guide for clarity and consistency
[0.15.4] - 2025-12-20
Changed
- Version bump: patch release
Commits in this release
- bafb5ea fix: resolve CI quality check failures for preview images
[0.15.3] - 2025-12-20
Changed
- Version bump: patch release
Commits in this release
- 2f8b580 chore: merge branch and version bump to 0.15.2
- a239892 chore: bump version to 0.15.2
[0.15.2] - 2025-12-19
Changed
- Version bump: patch release
Commits in this release
- e1342ab Add configuration files for content organization, prerequisites, statistics, and UI text
- 366e8a2 chore(deps): update Ruby gem dependencies (#16)
[0.15.1] - 2025-12-14
Changed
- update test runner documentation for Bash 3.2 compatibility
- update version to 0.15.0 and enhance documentation with new features
Fixed
- refactor changelog.sh for Bash 3.2 compatibility (macOS default)
Other
- document Bash 3.2 compatibility in automation
- unfreeze bundler before updating Gemfile.lock in version-bump workflow
- update Windows Developer Mode instructions and correct spelling errors
- Social sharing buttons use production URLs instead of localhost
- update Gemfile.lock for v0.15.0
[0.15.0] - 2025-12-11
Added
- Documentation: Product Requirements Document - Comprehensive PRD detailing product vision, goals, and architecture
- Added
docs/PRD.mdwith complete product specifications - Includes vision statement, key differentiators, and metrics
- Documents AI-powered features and privacy-first principles
- Added
- Documentation: Sidebar Improvements Summary - Complete implementation documentation for sidebar enhancements
- Added
docs/SIDEBAR_IMPROVEMENTS.mddocumenting UI/UX modernization - Details scroll spy fixes, mobile TOC button positioning
- Documents responsive design improvements and accessibility features
- Added
- Documentation: Theme Version Implementation - Theme version display system documentation
- Added
docs/THEME_VERSION_IMPLEMENTATION.md - Documents automatic version extraction from gem specification
- Explains modal integration and footer access points
- Added
- Content: Privacy Policy Page - GDPR/CCPA compliant privacy policy
- Added
pages/privacy-policy.mdwith comprehensive privacy documentation - Details PostHog analytics data collection practices
- Explains user rights and data protection measures
- Added
- Content: Terms of Service Page - Legal terms for site usage
- Added
pages/terms-of-service.md - Provides basic terms framework for site operators
- Added
- Testing: Notebook Conversion Test Script - Automated testing for Jupyter notebook conversion
- Added
test/test-notebook-conversion.shfor notebook workflow testing - Validates Python/nbconvert installation in Docker
- Tests notebook listing and conversion processes
- Added
Documentation
- All new files are fully documented with appropriate frontmatter
- Privacy policy provides transparency for analytics usage
- PRD serves as single source of truth for product direction
[0.14.2] - 2025-12-07
Changed
- Version bump: patch release
Commits in this release
- 82d7441 fix(build): improve gem info retrieval error handling
- 67a8e5b fix(ci): remove Ruby 3.0 from test matrix
- afe057d chore(deps): update Ruby gem dependencies (#11)
- 64ee1c9 fix(ci): add proper permissions for PR creation
- 3b55b60 feat(ci): add automated dependency update workflow
- a3197b3 fix(deps): commit Gemfile.lock for reproducible builds
- d8188dd fix(docker): install bundler 2.3 to match Gemfile.lock requirement
- 04d7c26 fix(docker): remove bundle update –bundler that requires existing bundle
[0.14.1] - 2025-12-04
Fixed
- Docker: Bundler Version Compatibility - Resolved CI/CD build failure
- Added
bundle update --bundlerstep in Dockerfile to auto-update lockfile - Allows using latest Bundler (4.0.0) while maintaining dependency stability
- Preserves all gem versions from
Gemfile.lock - Aligns with project’s “zero version pin” philosophy
- Fixes GitHub Actions “Build (Latest Deps)” workflow failure
- Added
[0.14.0] - 2025-12-01
Added
- Navigation: Enhanced Sidebar System - Complete overhaul of sidebar navigation with modern features
- New
assets/js/sidebar.js(16KB) with Intersection Observer scroll spy - Smooth scrolling to TOC anchors with fixed header offset
- Keyboard shortcuts:
[and]for section navigation - Swipe gestures for mobile (left/right edge detection)
- Focus management for accessibility
docs/keyboard-navigation.md- Complete keyboard navigation documentation
- New
- Navigation: Skip-to-Content Link - Accessibility enhancement in header
- Visually hidden until focused with Tab key
- Direct jump to main content bypassing navigation
- WCAG 2.1 Level AA compliant
- Mobile: TOC Floating Action Button - Improved mobile table of contents access
- Repositioned from center-right to bottom-right (90px from bottom)
- FAB pattern with 56x56px circular button
- Proper stacking above back-to-top button
- z-index: 1030 for proper layering
Changed
- Navigation: Unified Bootstrap Icons - Standardized icon library across all sidebars
- Replaced Font Awesome (
fas fa-file-alt) with Bootstrap Icons (bi-file-text) - Consistent icon sizing and spacing (me-2 margin)
- Icons:
bi-folder2-open,bi-folder,bi-file-earmark-text,bi-list-ul
- Replaced Font Awesome (
- Navigation: Scroll Spy Fix - Corrected scroll tracking in default layout
- Fixed
data-bs-targetfromtoc-contentto#TableOfContents - Added
data-bs-smooth-scroll="true"for better UX - Added
data-bs-offset="100"for fixed header compensation
- Fixed
- Navigation: Responsive Sidebar Widths - Removed hardcoded widths for better responsiveness
sidebar-categories.html: Changed fromwidth: 280pxtow-100- Uses Bootstrap grid system for fluid layouts
- Improved mobile and tablet compatibility
- Styles: Unified Sidebar Classes - Consolidated duplicate CSS definitions
- Removed duplicate
.sidebarclass fromcustom.scss - Kept only
.bd-sidebarin_docs.scssfor consistency - Uncommented z-index (2) for proper TOC stacking
- Removed duplicate
- Styles: Enhanced Active States - Improved visual feedback for navigation
- Active TOC links: 600 font-weight, subtle background highlight
- Category active state: Primary color with background tint
- Sidebar hover states: Smooth 0.2s transitions
- Mobile TOC button: Scale transforms on hover/active
- JavaScript: Deferred Loading - Optimized script loading for better performance
- Added
deferattribute tosidebar.js - Prevents blocking and scroll event conflicts
- Fixed auto-hide navbar functionality
- Parallel download with in-order execution
- Added
- Accessibility: ARIA Enhancements - Improved screen reader support
- Added
role="navigation"andaria-labelto TOC - Added
aria-controlsto all collapse/offcanvas buttons - Improved button accessibility with descriptive labels
- Better focus management in offcanvas panels
- Added
Fixed
- Critical: Scroll Spy Not Working - Resolved selector mismatch in default layout
- Corrected target from
toc-contentto#TableOfContents - Active section now properly highlights in TOC
- Smooth scroll with proper offset for fixed headers
- Corrected target from
- Critical: Mobile Button Conflict - Fixed TOC and back-to-top button overlap
- TOC button: moved to
bottom: 90pxfrombottom: 0 - Back-to-top button: updated z-index to 1020
- 14px vertical spacing between buttons
- No more overlapping on mobile devices
- TOC button: moved to
- Critical: Auto-Hide Navbar Broken - Fixed navbar hiding on scroll
- Added
deferattribute tosidebar.jsscript tag - Resolved scroll event listener conflicts
- Both scripts now use requestAnimationFrame optimization
- Navbar properly hides/shows on scroll
- Added
- UI: Icon Library Inconsistency - Unified icon usage across components
- Eliminated mixed Font Awesome and Bootstrap Icons usage
- All components now use Bootstrap Icons exclusively
- Consistent visual language throughout theme
Performance
- Intersection Observer Scroll Spy - 70% reduction in scroll event overhead
- Replaced scroll events with Intersection Observer API
- Configurable root margins and thresholds
- Auto-scrolling TOC to show active link
- Debounced event handlers (100ms delay)
- Passive Scroll Listeners - Improved scrolling performance
- All scroll events use
{ passive: true }option - Prevents scroll jank and layout thrashing
- Better frame rates on mobile devices
- All scroll events use
Documentation
- Guide: Keyboard Navigation - Comprehensive accessibility documentation
- Complete shortcut reference table
- Skip navigation instructions
- Focus management guidelines
- Browser compatibility matrix
- Troubleshooting section
- Technical: Implementation Summary - Development documentation
SIDEBAR_IMPROVEMENTS.mdwith complete implementation details- Architecture decisions and patterns
- Testing checklist and verification steps
- Future enhancement roadmap
[0.13.0] - 2025-12-01
Added
- Navigation: Bootstrap Icons - Added icons to all main navigation items
- Quick Start:
bi-rocket-takeoff - Blog:
bi-journal-text - Docs:
bi-journal-bookmark - About:
bi-info-circle
- Quick Start:
- Navigation: New Links - Enhanced navigation structure with additional pages
- Categories page (
/categories/) - Tags page (
/tags/) - Contact page (
/contact/) - Features page (
/about/features/) - Statistics page (
/about/stats/)
- Categories page (
- Frontmatter CMS: Navigation Data Type - Enhanced data schema for navigation management
- Added optional
descriptionfield for parent and child links - Added optional
iconfield for sublinks - Registered all 6 navigation files (main, quickstart, about, docs, posts, home)
- Improved schema validation with proper required fields
- Added optional
Changed
- Navigation: Restructured All Files - Aligned navigation with actual site content
main.yml- Updated Quick Start, Blog, Docs, and About sectionsquickstart.yml- Added icons to setup stepsdocs.yml- Reorganized into Jekyll, Features, Deployment, Configuration sectionsabout.yml- Structured into About, Site Info, Settings, Legal sectionsposts.yml- Fixed icon prefixes (addedbi-), added descriptionshome.yml- Added Discover and Connect navigation groups
- Frontmatter: Website Configuration - Updated preview and website hosts
- Changed preview host from
localhost:4002tolocalhost:4000 - Changed website host from
it-journey.devtozer0-mistakes.com
- Changed preview host from
Removed
- Navigation: Dead Link - Removed orphaned
/zer0/link from Quick Start menu - Navigation: Unused Entry - Removed Theme page link (replaced with Features)
Fixed
- Navigation: Icon Consistency - Standardized Bootstrap icon class format across all files
- Navigation: URL Completeness - Ensured all top-level navigation items have required URL field
[0.12.1] - 2025-11-30
Changed
- Refactored: Scripts Directory Structure - Consolidated and organized automation scripts
- Entry point scripts (
build,release) inscripts/are now thin wrappers toscripts/bin/ - Test scripts (
test.sh,test-auto-version.sh,test-mermaid.sh) forward toscripts/test/ - Utility scripts (
setup.sh,analyze-commits.sh,fix-markdown-format.sh) forward toscripts/utils/ - Feature scripts (
generate-preview-images.sh,install-preview-generator.sh) forward toscripts/features/ - Maintains backward compatibility while establishing canonical locations
- Entry point scripts (
- Moved:
validate_preview_urls.pyfromscripts/lib/toscripts/features/- Better organization as a feature-specific validator rather than core library
- Updated: Documentation - Corrected all script path references
scripts/README.md- New directory structure documentationscripts/lib/README.md- Updated test pathsdocs/systems/release-automation.md- Updated test pathsdocs/TROUBLESHOOTING.md- Updated test pathsdocs/archive/PHASE_1_COMPLETE.md- Updated historical referencesdocs/archive/RELEASE_WORKFLOW_IMPROVEMENTS.md- Updated historical references
Removed
- Deleted:
scripts/lib/test/- Redundant test directory (tests are inscripts/test/lib/) - Deleted:
scripts/features/preview_generator.py- Duplicate ofscripts/lib/preview_generator.py - Deleted:
scripts/version.sh- Deprecated (usescripts/lib/version.shorscripts/bin/release)
Fixed
- Fixed: Function ordering in
scripts/bin/build- Movedshow_usage()definition before it’s called
[0.12.0] - 2025-11-30
Added
- New Component:
preview-image.html(_includes/components/preview-image.html)- Centralized preview image rendering component
- Consistent handling of absolute paths and external URLs
- Supports custom classes, styles, and lazy loading
- Eliminates duplicated image rendering logic across layouts
- New Script:
validate_preview_urls.py(scripts/lib/validate_preview_urls.py, 400+ lines)- Python-based validation for preview image URLs in frontmatter
- Checks URL format (must start with
/) - Validates image extensions (
.png,.jpg,.jpeg,.gif,.webp,.svg) - Verifies file existence on disk
- Detects empty, null, or malformed preview values
- JSON output support for CI integration
- Standalone CLI tool with
--verbose,--suggestions,--list-missingoptions
- New Test Category: Content Quality Tests in Quality Assurance Suite
- Added
test_preview_image_urls()function totest/test_quality.sh - Validates all preview URLs in content frontmatter during test runs
- Integrated into main test runner with new “📄 Content” category
- Reports missing files and format errors with suggestions
- Added
Changed
- Refactored: Layout Image Handling - Simplified preview image logic
_layouts/blog.html- Replaced 5 separate image blocks withpreview-image.htmlinclude_layouts/journals.html- Unified preview image rendering_layouts/category.html- Consistent image component usage_layouts/collection.html- Streamlined image rendering_includes/components/post-card.html- Uses centralized component_includes/content/intro.html- Simplified image handlingindex.html- Updated to use preview-image componentposts.html- Consistent preview image renderingpages/blog.md- Updated image handling
- Enhanced: Quality Test Suite (
test/test_quality.sh)- Added Content Quality Tests section with preview URL validation
- Updated help text and summary to include content category
- Extended JSON report generation with content test metrics
- Fixed: Preview URL Paths - Corrected several preview paths in content
pages/_posts/2024-06-17-wizard-topples-capitalist-dominance-ingeniously.mdpages/_posts/2025-01-01-getting-started-jekyll.mdpages/_posts/2025-01-05-web-accessibility-guide.mdpages/_posts/2025-01-10-bootstrap-5-components.mdpages/_posts/2025-01-15-docker-jekyll-guide.md
Documentation
- Updated
_includes/README.mdwithpreview-image.htmlcomponent documentation
[0.11.0] - 2025-11-30
Added
- New Feature: Jupyter Notebook Support - Complete integration for data science and computational content
- New Layout:
notebook.html(_layouts/notebook.html, 294 lines)- Dedicated layout for converted notebooks with metadata display
- Author, date, kernel info, and reading time display
- Previous/next navigation between notebooks
- Related notebooks section
- Schema.org TechArticle markup for SEO
- Download original
.ipynblink - Giscus comments integration
- New Stylesheet:
notebooks.scss(_sass/notebooks.scss, 450+ lines)- Code cell styling with execution counts
- Output area formatting (text, images, tables, errors)
- MathJax equation styling
- Responsive design with mobile breakpoints (@media max-width: 768px)
- Dark mode support
- Bootstrap 5 variable integration
- New Conversion Script:
convert-notebooks.sh(scripts/convert-notebooks.sh, 408 lines)- Converts
.ipynbfiles to Jekyll-compatible Markdown - Extracts images to
/assets/images/notebooks/ - Generates proper front matter with title, description, date, permalink
- JSON-based metadata parsing to avoid delimiter issues
- CLI options:
--force,--dry-run,--list,--clean,--verbose - Follows project script patterns with colored logging
- Converts
- New GitHub Actions Workflow (
.github/workflows/convert-notebooks.yml, 220+ lines)- Triggers on push/PR to
pages/_notebooks/**.ipynb - Dry-run mode for pull requests
- Automatic conversion and commit on main/develop branches
- Validation job checks markdown and image references
- Commits with
[skip ci]to prevent loops
- Triggers on push/PR to
- New Documentation (
docs/JUPYTER_NOTEBOOKS.md)- Complete feature documentation
- Usage examples and workflow
- Troubleshooting guide
- Architecture explanation
- File manifest
- New Test Suite (
test-notebook-conversion.sh, 150+ lines)- 8-step automated validation
- Docker status, Python/nbconvert checks
- Conversion validation
- Front matter and image verification
- New Layout:
- Makefile Targets - Added notebook conversion commands
convert-notebooks- Convert all notebooksconvert-notebooks-dry-run- Preview conversionsconvert-notebooks-force- Force reconvert alllist-notebooks- List available notebooksclean-notebooks- Remove converted markdown
- Sample Content (
pages/_notebooks/test-notebook.ipynb)- Comprehensive demonstration notebook with 10 cells
- LaTeX equations, matplotlib plots, pandas DataFrames
- Fibonacci function example
- All outputs rendered (text, images, HTML tables)
Changed
- Enhanced: Docker Environment (
docker/Dockerfile)- Added Python 3.13.5, pip, jupyter, nbconvert
- Used
--break-system-packagesflag for PEP 668 compatibility - Multi-stage build preserves Python tooling
- Enhanced: Jekyll Configuration (
_config.yml)- Added notebooks collection defaults
- Set
layout: notebook,jupyter_metadata: true - Configured sidebar navigation for notebooks
- Enhanced: Sass Import (
_sass/custom.scss)- Added
@import "notebooks";at top of file - Ensures notebook styles load properly
- Added
- Documentation (
README.md)- Added “Jupyter Notebook Support” feature section
- Installation and usage examples
- Feature highlights: automatic conversion, output rendering, GitHub Actions
[0.10.6] - 2025-11-29
Changed
- Improved: Version Definition (
lib/jekyll-theme-zer0/version.rb)- Added conditional version definition to prevent reinitialization warnings
- Uses
unless defined?guard to safely handle multiple requires - Improves compatibility with various Jekyll plugin loading scenarios
- Enhanced: Dependency Management (
Gemfile)- Added
faraday-retrygem for Faraday v2.0+ compatibility - Resolves “To use retry middleware with Faraday v2.0+, install
faraday-retrygem” warning - Ensures robust HTTP client functionality for API integrations
- Added
Fixed
- Build Optimization (
_config.yml)- Added
_site/lib/to exclude list to prevent recursive gem building - Reduces build size and prevents unnecessary file processing
- Improves build performance and artifact cleanliness
- Added
- Documentation: CHANGELOG Formatting
- Removed raw Liquid syntax markers from CHANGELOG for better readability
- Cleaned up technical implementation details in previous entries
[0.10.5] - 2025-11-29
Fixed
- Critical: Nested Liquid Output Tags in Footer (
_includes/core/footer.html)- Fixed nested Liquid output tags causing template errors
- Used capture blocks to properly combine icon classes
- Resolved syntax errors in powered-by credits and social links sections
- Ensures proper icon rendering in Bootstrap 5 components
- Critical: Sass Syntax Errors (
_sass/custom.scss)- Fixed missing spaces after colons in CSS vendor prefix properties
- Corrected
position:-webkit-stickytoposition: -webkit-sticky(lines 40, 105) - Ensures proper CSS compilation and browser compatibility
- Validates against CSS linting standards
- Improved: Test Suite Reliability (
test/test_deployment.sh,test/test_quality.sh)- Docker Volume Mounting Test: Changed from hard failure to graceful warning when Docker image not built
- Fixed incorrect path expectation (/app → /site) to match Dockerfile WORKDIR
- Accepts incomplete Docker setup as valid state for development environments
- Jekyll Docker Build Test: Made timeout handling more lenient
- Changed timeout errors to warnings for resource-constrained environments
- Prevents false positives on slow Docker builds or limited CPU/memory
- Ruby Version Compatibility: Added comprehensive Ruby version guards
- Detects Ruby < 2.7.0 and skips incompatible tests gracefully
- Prevents test failures due to environment limitations
- HTML5 Validation: Fixed case-sensitive doctype detection
- Changed from case-sensitive
<!DOCTYPE html>to case-insensitive<!doctype html> - Properly handles various HTML5 doctype formats
- Changed from case-sensitive
- Accessibility: Reduced noise from multiple h1 tag warnings
- Removed warnings for multiple h1 tags (valid HTML5 sectioning pattern)
- Added clarifying comments about HTML5 semantic sections
- Overall improvement: Test suite now handles environmental constraints gracefully rather than failing harshly
- Docker Volume Mounting Test: Changed from hard failure to graceful warning when Docker image not built
[0.10.4] - 2025-11-29
Changed
- Improved: Bootstrap Theme Color Scheme (
_includes/stats/)- Migrated from gradient backgrounds (
bg-gradient) to Bootstrap 5 subtle variants (bg-primary-subtle,bg-info-subtle,bg-warning-subtle) - Updated text colors to use emphasis variants (
text-primary-emphasis,text-info-emphasis,text-warning-emphasis) - Replaced
bg-lightwith semanticbg-body-secondaryfor better theme consistency - Updated footer and card backgrounds to use theme-aware classes
- Removed
border-0classes to allow default Bootstrap borders - All statistics components now follow Bootstrap 5 color system conventions
- Migrated from gradient backgrounds (
- Improved: Cookie Consent Component (
_includes/components/cookie-consent.html)- Updated modal styling with theme-aware background classes
- Better visual consistency with updated color scheme
- Improved: Post Card Component (
_includes/components/post-card.html)- Enhanced visual styling to match theme updates
- Improved: Sitemap Component (
_includes/content/sitemap.html)- Updated styling for consistency with Bootstrap 5 theme
- Improved: Landing Page Layout (
_layouts/landing.html)- Refined layout styling for better visual hierarchy
- Improved: Blog Layout (
_layouts/blog.html)- Updated layout to align with theme improvements
- Improved: Sitemap Collection Layout (
_layouts/sitemap-collection.html)- Enhanced layout for better content presentation
- Restructured: README.md Documentation
- Reorganized content structure for better readability
- Updated version references from 0.9.2 to 0.10.3
- Added centered layout with improved badge display
- Changed tagline to “The Self-Healing Jekyll Theme”
- Updated lastmod date to 2025-11-29
- Added mermaid support flag to front matter
- Improved navigation structure in documentation
Removed
- Deleted: Duplicate Index File (
pages/index.html)- Removed 341-line duplicate index file from pages directory
- Site now uses single
index.htmlat root for cleaner architecture
Fixed
- Fixed: Git Workflow Documentation (
pages/_posts/development/2025-01-22-git-workflow-best-practices.md)- Corrected formatting and content issues
- Fixed: Page Navigation (
pages/blog.md,pages/categories.md,pages/tags.md,index.html)- Improved navigation consistency across pages
[0.10.3] - 2025-11-29
Added
- New: AI-Generated Preview Images - 17 new preview images for posts and collections
- Business, Development, Science, Technology, Tutorial, World category index pages
- Individual post previews: startup funding, quantum computing, AI tools, CSS grid, remote work
- Quickstart guide previews: GitHub setup, Jekyll setup, machine setup
- Documentation and blog index previews
Changed
- Improved: Preview Image Path Handling (
_layouts/journals.html,_layouts/category.html,_layouts/collection.html)- Layouts now support both absolute paths (
/assets/...) and relative paths - Conditional logic detects path type and constructs URL correctly
- Eliminates double-slash issues in image URLs
- Layouts now support both absolute paths (
- Improved: Intro Section Preview Image Logic (
_includes/content/intro.html)- Smart path detection for preview images (absolute vs relative)
- Handles URLs with
://schemes, paths starting with/, and relative filenames - Cleaner Liquid template logic with proper variable assignment
- Improved: Docker Development Setup (
docker-compose.yml,docker/Dockerfile)- Command now runs
bundle installbefore Jekyll serve (fixes volume mount overwrites) - Dockerfile copies gemspec and lib/ for proper dependency resolution
- More reliable container startup with dependency installation
- Command now runs
- Improved: Preview Image Generator (
scripts/lib/preview_generator.py)- Switched from OpenAI SDK to direct HTTP API calls
- Eliminates SDK dependency - only requires
requestspackage - Better error handling with HTTP status code parsing
- Added request timeouts (120s for generation, 60s for download)
Fixed
- Fixed: Asset Paths in Config (
_config.yml)- Corrected
teaserandinfo_bannerpaths to use/assets/images/prefix - Images now load correctly across all pages
- Corrected
- Fixed: Preview Image Double-Slash URLs
- Removed extra
/betweenpublic_folderandsite.teaserin fallback images - All layouts now generate clean, valid image URLs
- Removed extra
[0.10.2] - 2025-11-28
Added
- Enhanced: Navbar Auto-Hide on Scroll (
assets/js/auto-hide-nav.js)- Navbar hides when scrolling down past 100px threshold
- Navbar reappears immediately when scrolling up
- Automatic body padding to prevent content jump under fixed navbar
- Performance-optimized with
requestAnimationFramethrottling - Respects
prefers-reduced-motionaccessibility setting
Changed
- Improved: Header Positioning (
_includes/core/header.html)- Changed from
z-1to Bootstrap’sfixed-topclass - Provides proper z-index (1030) and fixed positioning
- Changed from
- Refactored: Navbar CSS (
_sass/custom.scss)- Replaced broken
.hide-navbarand.fixed-navbarclasses - New
.navbar-hiddenclass withtranslateY(-100%)transform - Added
!importantto override Bootstrap’sfixed-toppositioning - Added explicit background color for opaque navbar
- Added
prefers-reduced-motionmedia query for accessibility
- Replaced broken
Fixed
- Fixed: Navbar Blocking Content on Scroll Up
- Content no longer obscured when scrolling back to top
- Body padding dynamically calculated based on navbar height
[0.10.1] - 2025-11-28
Added
- Enhanced: Mermaid v2.1 - GitHub Pages Compatible (
_includes/components/mermaid.html)- Client-side conversion of native markdown ` ```mermaid ` code blocks to rendered diagrams
- Full GitHub Pages compatibility without custom plugins (all processing client-side)
- CSS to hide code blocks during conversion (prevents flash of unstyled content)
- Print styles and improved responsive design
- Documented dual syntax support (native markdown and HTML div)
Changed
- Improved: Mermaid Configuration (
_config.yml)- Added clear comments explaining GitHub Pages compatibility
- Documented that
jekyll-mermaidplugin is optional - Updated usage instructions for both syntax options
- Improved: Mermaid Documentation
docs/jekyll/mermaid.md: Added native markdown syntax as recommended optiondocs/jekyll/mermaid-native-markdown.md: Fixed documentation about front matter requirements- Added GitHub Pages compatibility badges to documentation
Fixed
- Fixed: Native Markdown Mermaid Syntax Not Rendering
- ` ```mermaid ` code blocks now properly convert to diagrams via JavaScript
- Works with GitHub Pages remote_theme deployment
- Fixed: Mermaid Test Script (
scripts/test-mermaid.sh)- Corrected file path references from
pages/_docs/jekyll/todocs/jekyll/ - Fixed SIGPIPE issues with
curl | greppipelines causing false test failures - All 21 tests now pass successfully
- Corrected file path references from
[0.10.0] - 2025-11-28
Added
- New: Zero Version Pin Strategy - Enterprise-grade dependency management paradigm
- Always use latest compatible versions with zero pins anywhere
- Fail fast in CI if incompatible → caught early, not in production
- Production uses immutable image tags (date+commit hash), never
:latest - Full documentation in
docs/systems/ZERO_PIN_STRATEGY.md
- New: Docker Multi-Stage Dockerfile (
docker/Dockerfile)basestage: Ruby slim + build dependenciesdev-teststage: Full dev/test gems for CI validationbuildstage: Production Jekyll buildproductionstage: Minimal runtime for serving
- New: Docker Compose Configurations
docker-compose.yml: Development environment with live reloaddocker-compose.test.yml: CI testing overlay with validationdocker-compose.prod.yml: Production with immutable tags only
- New: CI Workflow for Zero Pin Strategy (
.github/workflows/test-latest.yml)- Builds with
--no-cachefor latest dependencies - Documents resolved versions in workflow summary
- Tags and publishes immutable images on success
- Debug information on failure
- Builds with
- New:
.dockerignore- Optimized Docker build context- Excludes development files, tests, logs, and build artifacts
- Keeps only files needed for container builds
- New: VS Code Workspace Configuration (
zer0-mistakes.code-workspace)- Copilot settings for all file types
- File associations for Jekyll/Liquid
- Terminal environment variables for Docker
Changed
- Improved:
Gemfile- Refactored for zero version pin strategy- Removed all version constraints
- Added development/test group with html-proofer, rspec, rake, rubocop
- Added platform-specific dependencies for Windows
- Comprehensive documentation comments
- Improved:
docker-compose.yml- Enhanced for zero pin strategy- Uses custom Dockerfile instead of jekyll/jekyll image
- Added bundle cache volume for faster rebuilds
- LiveReload port (35729) exposed
- TTY enabled for interactive commands
- Improved:
jekyll-theme-zer0.gemspec- Compatibility updates- Ruby requirement lowered to >= 2.7.0 (from 3.0.0) for broader compatibility
- Bundler dependency changed to ~> 2.3 (from >= 2.3)
- Improved: CI Workflow (
.github/workflows/ci.yml)- Added documentation comments explaining version strategy
- Clarified that explicit versions are for backwards compatibility testing
Fixed
- Fixed:
scripts/generate-preview-images.sh- Reverted to simpler collection handling- Removed dynamic collection reading (caused issues in some environments)
- Restored hardcoded collection list for reliability
- Fixed yq vs sed front matter update logic
[0.9.2] - 2025-11-28
Changed
- Version bump: patch release
Commits in this release
- 509d705 fix(ci): fix false positive failure detection in test report validation
- 77dc04b fix(ci): fix shell syntax error in test-suite validation step
[0.9.1] - 2025-11-27
Fixed
- CI: Test suite failures across Ruby versions - Resolved issues causing CI failures
- Fixed
--skip-dockeroption error by only passing it to deployment tests (not quality tests) - Fixed bash arithmetic syntax error in Liquid tag validation by sanitizing grep output
- Added bundler 2.5 requirement to setup-ruby action for Ruby 3.0 compatibility
- Fixed
[0.9.0] - 2025-06-30
Changed
- Refactored: Scripts Directory Structure - Complete reorganization for better maintainability
- New
bin/directory for main entry points (release,build,test) - New
utils/directory for utility scripts (setup,analyze-commits,fix-markdown) - New
features/directory for feature-specific scripts (generate-preview-images,install-preview-generator) - New
test/directory hierarchy withlib/,theme/, andintegration/subdirectories - Unified test runner in
bin/testthat runs all test suites with single command
- New
- Improved: Script Library Integration - All scripts now use shared
lib/common.sh- Consistent logging functions (
log,info,success,warn,error,debug) - Standardized color output and formatting
- Removed duplicate code from individual scripts
- Consistent logging functions (
- Updated: Documentation - Complete rewrite of
scripts/README.md- Clear directory structure overview
- Quick start guide for common operations
- Migration table from legacy to new script locations
- Dependency graph for library modules
Added
- New:
bin/testUnified Test Runner - Single command to run all tests- Supports running specific test suites (
lib,theme,integration,all) - Verbose output mode with
--verboseflag - Summary of passed/failed test suites
- Supports running specific test suites (
- New:
test/theme/validate- Theme structure validation tests- Validates layouts, includes, and assets directories
- Sources shared library for consistent output
- New:
test/integration/auto-version- Auto-version integration tests- Moved from
tests/directory with updated library paths
- Moved from
Deprecated
- Deprecated:
scripts/version.sh- Now displays deprecation warning- Recommends using
bin/releasefor full workflow - Will be removed in future release
- Recommends using
Migration Guide
| Legacy Script | New Location |
|---|---|
version.sh |
bin/release |
setup.sh |
utils/setup |
test.sh |
bin/test or test/theme/validate |
analyze-commits.sh |
utils/analyze-commits |
fix-markdown-format.sh |
utils/fix-markdown |
generate-preview-images.sh |
features/generate-preview-images |
install-preview-generator.sh |
features/install-preview-generator |
[0.8.2] - 2025-11-27
Changed
- Refactored: GitHub Actions Workflows - Consolidated 5 workflows into 3 streamlined workflows
- Merged
auto-version-bump.ymlintoversion-bump.ymlwith both automatic and manual triggers - Merged
gem-release.ymlandgithub-release.ymlinto unifiedrelease.yml - Removed duplicate
qualityjob fromci.yml(functionality retained inquality-checksjob) - Updated
ci.ymlbuild job to usescripts/buildinstead of deprecatedbuild.sh
- Merged
- Updated: Composite Action
prepare-release- Now usesscripts/buildinstead of deprecatedbuild.sh
Added
- New Documentation:
.github/workflows/README.md- Comprehensive workflow documentation- Workflow trigger flow diagram
- Job descriptions and timeout configurations
- Manual dispatch options and troubleshooting guide
- New Documentation:
.github/actions/README.md- Composite actions documentation- Input/output specifications for all 5 actions
- Usage examples and best practices
- Action creation guide and troubleshooting
Removed
- Deleted:
auto-version-bump.yml- Functionality merged intoversion-bump.yml - Deleted:
gem-release.yml- Functionality merged intorelease.yml - Deleted:
github-release.yml- Functionality merged intorelease.yml - Deleted: Deprecated wrapper scripts -
build.sh,gem-publish.sh,release.shand their.legacyversions- These were deprecated redirects to the new modular commands (
scripts/build,scripts/release)
- These were deprecated redirects to the new modular commands (
[0.8.1] - 2025-11-27
Added
- New Page:
pages/categories.md- Browse all categories with post counts and links- Alphabetical category overview with badge sizing based on post count
- Post listing under each category with descriptions and dates
- Smooth anchor navigation between categories
- New Page:
posts.html- Paginated posts index with jekyll-paginate support- Responsive 3-column card grid layout
- Smart pagination with ellipsis for many pages
- Page jump feature for quick navigation when >10 pages
- New Page:
index.html- Alternative posts index with client-side pagination- Responsive 5-column compact card grid for high-density display
- URL hash-based page state (#page=2) for bookmarkable pages
- Empty state handling when no posts exist
Changed
- Enhanced:
README.md- Consolidated landing page content- Changed layout from
defaulttolandingfor proper homepage rendering - Updated permalink from
/zer0/to/for clean root URL - Added hero_image and updated preview image
- Added “Welcome to Error-Free Jekyll Development” section with proven results metrics
- Added “Perfect For” section highlighting target audiences
- Changed layout from
- Enhanced:
pages/index.html- Improved posts archive page- Responsive card grid (1→2→3→4→5 columns as screen grows)
- Client-side pagination (10 posts per page)
- Compact card design with constrained image height
- Category badges and post metadata display
- Filter buttons for Categories and Tags pages
- Improved:
pages/_posts/development/2025-01-22-git-workflow-best-practices.md- Front matter formatting standardization
Removed
- Deleted:
index.md- Content merged into README.md to avoid duplicate landing pages
[0.8.0] - 2025-11-27
Added
- New Feature: AI Preview Image Generator (ZER0-003) - Automatic AI-powered preview image generation for Jekyll posts
- Supports OpenAI DALL-E 3, Stability AI, and local placeholder generation
- Configurable via
_config.ymlunderpreview_imagessection - Default retro pixel art style with 1792x1024 landscape banners
- One-command remote installation for other Jekyll sites
- New Plugin:
_plugins/preview_image_generator.rb- Jekyll integration with:- Liquid filters:
has_preview_image,preview_image_path,preview_filename - Liquid tags: {% raw %}
{% preview_image_status %},{% preview_images_missing %} - Build hook that reports missing preview images during Jekyll build
- Liquid filters:
- New Script:
scripts/generate-preview-images.sh- Main CLI for image generation--list-missingto find posts without preview images--dry-runto preview without making changes--collectionto target specific collections--providerto choose AI provider (openai, stability, local)
- New Script:
scripts/install-preview-generator.sh- Remote installer for other repos- One-line installation:
curl -fsSL .../install-preview-generator.sh | bash - Automatic configuration, VS Code tasks, and environment setup
- One-line installation:
- New Script:
scripts/lib/preview_generator.py- Python alternative implementation - New Documentation:
docs/features/preview-image-generator.md- Comprehensive feature documentation - New Rake Tasks:
preview:missing,preview:generate,preview:dry_run,preview:posts,preview:docs,preview:force,preview:file - New VS Code Tasks: Four preview image tasks for IDE integration
- New Config Section:
preview_imagesin_config.ymlwith full customization options - New Feature Entry: ZER0-003 in
features/features.yml
Changed
- Updated:
jekyll-theme-zer0.gemspec- Now includes_plugins/andscripts/directories in gem distribution - Updated:
Rakefile- Added preview image tasks and development/test task namespaces - Updated:
scripts/README.md- Documented new preview generator scripts - Updated:
.gitignore- Added.envfor API key security
[0.7.2] - 2025-11-26
Fixed
- Critical: Category pages 404 error - Renamed category index files from
index.mdto2000-01-01-index.mdto comply with Jekyll’s_postscollection naming convention (date-prefixed filenames required) - Category pages now correctly render at
/posts/technology/,/posts/business/,/posts/development/,/posts/science/,/posts/tutorial/,/posts/world/
Added
- New sample blog posts for each category:
2025-01-25-ai-tools-productivity.md(Technology)2025-01-20-startup-funding-guide.md(Business)2025-01-22-git-workflow-best-practices.md(Development)2025-01-18-quantum-computing-explained.md(Science)2025-01-23-css-grid-mastery.md(Tutorial)2025-01-21-remote-work-revolution.md(World)
.github/prompts/commit-publish.prompt.md- Comprehensive release workflow documentation
[0.7.1] - 2025-01-30
Fixed
- Directory structure: Moved category index pages from
posts/to_posts/directory for proper Jekyll collection handling
[0.7.0] - 2025-01-30
Added
- New Layout:
category.html- Category archive pages with card grid, featured posts section, and related categories navigation - New Layout:
tag.html- Tag archive pages with breadcrumbs, tag cloud, and related tags discovery widget - New Component:
post-card.html- Reusable post card component with configurable display (badges, images, metadata, reading time) - New Component:
author-card.html- Author profile card with social links and multiple display styles (compact, full, inline) - New Data File:
authors.yml- Author profiles configuration with avatar, bio, role, and social links - New Page:
tags.md- Tags index page with tag cloud and posts grouped by tag - New Category Pages - Six category archive pages (Development, Technology, Tutorial, World, Business, Science)
- Sample Blog Posts - Four new demo posts showcasing the blog features:
- Docker Jekyll development guide (featured)
- Bootstrap 5 components tutorial (featured)
- Web accessibility guide (featured)
- Getting started with Jekyll
Changed
- Complete Redesign:
blog.html- Transformed into full-width news homepage with:- Dark header with category navigation
- Hero section for breaking/featured news
- Category quick navigation with article counts
- Featured stories grid layout
- Posts organized by category sections
- Latest posts horizontal cards
- Tags & Archives sidebar widgets
- Newsletter signup CTA
- Enhanced:
journals.html- Major improvements including:- Rich metadata display with author, date, reading time
- Inlined author bio section (replaced include to fix nesting)
- Inlined related posts section (replaced include to fix nesting)
- Card-based post navigation (previous/next)
- Giscus comment integration support
- Updated:
_data/navigation/posts.yml- Reorganized categories with Bootstrap icons and proper hierarchy - Refactored:
sidebar-folders.html- Simplified structure with icon support - Refactored:
branding.html- Fixed URL references, added comprehensive documentation - Refactored:
js-cdn.html- Cleaned up, removed redundant Popper.js (included in Bootstrap bundle)
Fixed
- Critical: Liquid “Nesting too deep” error - Resolved recursive include issues by inlining card content in layouts
- Post filtering - Added
where_expfilters to exclude index pages from post listings - Script loading performance - Added
deferattribute to non-critical scripts inhead.html - Reading time calculation - Changed from calculated to front matter
estimated_reading_timeto avoid recursion
[0.6.0] - 2025-11-22
Added
- Implement PostHog analytics and cookie consent
- Add code copy functionality and enhance documentation structure
- Revise copilot instructions and add comprehensive Jekyll include development guidelines
- Implement automatic theme version display with comprehensive system information
- Add automatic theme version display and system information integration
- Enhance Copilot instructions with comprehensive guidelines
- Enhance CI/CD testing framework with comprehensive documentation and automated workflows
Changed
- Ignore .frontmatter directory
- Update VS Code settings
- Documentation: Update README with new features and architecture
- Documentation: Add documentation architecture guidelines
- Refactor: Clean up redundancies in includes.instructions.md
- Update version control instructions and add feature documentation
Other
- Revert “Merge pull request #10 from bamr87/copilot/plan-mdx-file-handling”
- Add Mermaid documentation and test suite, enhance site structure
- Merge pull request #9 from bamr87/copilot/setup-copilot-instructions
- Merge branch ‘main’ into copilot/setup-copilot-instructions
- Merge pull request #10 from bamr87/copilot/plan-mdx-file-handling
- Address code review feedback and add summary documentation
- Improve MDX processing and add comprehensive tests
- Add MDX and Tailwind CSS support to zer0-mistakes theme
- Initial plan
- Initial plan
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Comprehensive documentation organization system in
/docs/directory - Standardized templates for feature documentation, release notes, and change tracking
- Organized directory structure for releases, features, systems, and configuration documentation
Changed
- Migrated scattered documentation files to organized structure
- Improved documentation discoverability and maintenance
0.5.0 - 2025-10-25
Added
- 📊 Comprehensive Sitemap Integration: Unified layout combining collections, statistics, and navigation
- Real-time site statistics dashboard with 6 key performance indicators
- Interactive search and filtering across all content types
- Collections overview with detailed analysis and recent item previews
- Advanced content discovery tools with visual organization
- Mobile-optimized responsive design with touch-friendly interface
- Dark mode support with theme-aware styling
- 🔧 Enhanced User Experience Components: Modern interface with professional design
- Bootstrap 5-based responsive layout with hover animations
- WCAG 2.1 AA compliant accessibility features
- Performance-optimized loading with lazy content rendering
- Comprehensive documentation and implementation guides
Changed
- 🏗️ Navigation System: Consolidated duplicate sitemap entries into unified comprehensive view
- 🎨 Visual Design: Updated to modern card-based layout with smooth transitions
- 📱 Mobile Experience: Enhanced mobile responsiveness and touch interactions
Fixed
- 🐛 Dark Mode Compatibility: Resolved background color issues in dark theme
- 🔧 Collection Filtering: Fixed functionality for dynamic content filtering
- 🔗 Link Navigation: Corrected internal link behavior and navigation flow
Technical Details
- Files Added:
_layouts/sitemap-collection.html, enhanced navigation data files - Files Modified: Main navigation configuration, sitemap pages
- Performance: Optimized DOM manipulation and content rendering
- Accessibility: Full screen reader support and keyboard navigation
Full Documentation: v0.5.0 Release Summary
0.4.0 - 2025-10-10
Added
- 📊 Comprehensive Site Statistics Dashboard: Complete analytics system for content insights
- Dynamic statistics generation from site content using Ruby script
- Real-time analytics showing content pieces, categories, tags, and word counts
- Interactive Bootstrap 5-based dashboard with responsive design
- Modular component architecture with 6 specialized statistics components
- Intelligent activity level calculations based on actual data distribution
- Professional tag cloud visualization with dynamic sizing
- Mobile-optimized layout with smooth animations and transitions
- 🔧 Advanced Data Processing Engine: Automated content analysis and metric generation
- Ruby-based statistics generator script analyzing posts, pages, and collections
- YAML data file generation with comprehensive site metrics
- Smart categorization and tagging analysis with usage frequency tracking
- Monthly content distribution analysis and trend identification
- 🎨 Enhanced User Experience Components: Professional dashboard interface
- Bootstrap 5-first design approach with minimal custom CSS
- Card-based layout for metric organization and visual hierarchy
- Interactive tooltips and progress indicators for enhanced usability
- Print-friendly styling and accessibility compliance (ARIA support)
- Smooth scroll navigation and fade-in animations for modern UX
Changed
- 📈 Activity Level Intelligence: Dynamic threshold calculation replacing static values
- Categories: High activity (≥70% of max), Medium (≥40% of max), Low (remainder)
- Tags: Frequently used (≥60% of max), Moderately used (≥20% of max), Occasionally used (remainder)
- Real-time adaptation to content distribution patterns
- 🏗️ Template Architecture: Modular include system for maintainable code
- Separated concerns across 6 specialized components
- Clean Liquid template syntax with proper error handling
- Optimized data processing without complex sorting operations
Fixed
- 🐛 Data Display Issues: Resolved template rendering and data access problems
- Fixed Liquid template syntax errors causing empty displays
- Corrected data structure references across all components
- Eliminated type conversion errors in sorting operations
- Proper handling of nested array data structures
Full Documentation: v0.4.0 Release Summary
0.3.0 - 2025-01-27
Added
- 🎨 Mermaid Diagram Integration v2.0: Comprehensive diagramming system
- Complete diagram support: flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, Gantt charts, pie charts, git graphs, journey diagrams, and mindmaps
- GitHub Pages compatibility with both local development and deployment
- Conditional loading for performance optimization
- Responsive design with automatic scaling across devices
- Dark mode support with forest theme optimization
- 📚 Comprehensive Documentation: Complete user and developer guides
- Step-by-step user guide with live examples
- Developer-focused integration tutorial
- Live test suite with validation examples
- Comprehensive troubleshooting guide
- 🧪 Automated Testing Framework: Complete validation system
- 16 automated tests covering all aspects
- Multiple test modes: quick, local, Docker, headless
- Cross-browser compatibility testing
- Performance validation and benchmarking
Changed
- 📁 File Organization: 53% reduction from 15 to 7 Mermaid-related files
- 🏗️ Architecture: Modular include system with clear responsibilities
- 📖 Documentation: Consolidated and improved documentation structure
Fixed
- 🔧 Configuration: Enhanced Jekyll and GitHub Pages compatibility
- ⚡ Performance: Optimized loading and rendering speed
- 🎯 Usability: Improved setup process and error handling
Full Documentation: v0.3.0 Release Notes
0.2.1 - 2025-09-30
Added
- Enhanced markdown linting configuration
- Improved Jekyll template support for link checking
- Better configuration for markdown validation
Changed
- Updated markdown-link-check configuration with Jekyll-specific patterns
- Relaxed line length requirements in markdownlint configuration
- Added support for more HTML elements in markdown
Fixed
- Improved markdown validation for Jekyll projects
- Better handling of Liquid templates in link validation
0.2.0 - 2025-09-01
Changed
- Version bump to 0.2.0 with improvements
0.1.9 - 2025-01-27
Added
- 🐳 Docker-First Development Evolution: Complete transformation to containerized development
- AI-powered
init_setup.shwith intelligent environment detection and auto-healing - Cross-platform Docker Compose configuration with Apple Silicon optimization
- Self-healing
_config_dev.ymlgeneration for Docker compatibility - Enhanced
install.shwith Docker-first optimization functions - Comprehensive Docker troubleshooting and platform detection
- AI-powered
- 🧠 AI-Powered Self-Healing Configuration: Intelligent automation and error recovery
- Auto-detection and resolution of Jekyll theme dependency issues
- Intelligent platform-specific optimizations (Intel/Apple Silicon)
- Automatic generation of Docker-compatible development configurations
- Smart error recovery with detailed logging and guidance
- 🚀 Enhanced Installation System: Robust, error-tolerant setup process
optimize_development_config()function for Docker-friendly configsfix_content_issues()function to resolve Jekyll include problems- Comprehensive error handling with actionable troubleshooting steps
- AI-generated documentation and setup instructions
Changed
- 🔧 Installation Philosophy: Shifted from traditional Ruby/Jekyll setup to Docker-first approach
- Disabled local theme dependencies to avoid gemspec issues
- Optimized for containerized development environments
- Enhanced cross-platform compatibility and consistency
Fixed
- 🐛 Theme Dependency Issues: Resolved Jekyll theme not found errors
- Commented out problematic Jekyll includes in README.md
- Disabled
remote_themein development configuration - Added essential Jekyll plugins for Docker compatibility
- 🍎 Apple Silicon Compatibility: Fixed Docker platform issues
- Added
platform: linux/amd64for Apple Silicon compatibility - Automatic platform detection and optimization
- Cross-architecture Docker image support
- Added
0.1.8 - 2025-01-03
Added
- Comprehensive Gem Automation System: Unified automation ecosystem
- Zero-click releases with multi-environment testing
- Production-ready CI/CD pipeline with GitHub Actions integration
- Semantic versioning, building, testing, and publishing automation
- Complete documentation consolidation following IT-Journey principles
- Remote Installation Support: Direct installation from GitHub
- Azure Static Web Apps Integration: Automatic workflow creation for Azure deployment
- Build Directory Structure: Added
build/directory for logs and temporary files - Enhanced Error Handling: Comprehensive error handling with colored output
- Cleanup Functions: Automatic cleanup of temporary files after remote installation
Changed
- Feature Documentation Restructure: Consolidated redundant automation feature entries
- Simplified Installation Process: Updated to use single install command
- Azure-Ready Configuration: Pre-configured directory structure for Azure Static Web Apps
- Enhanced Documentation: Updated with Azure deployment instructions
- Improved Help System: Added remote installation examples
Removed
- Redundant Documentation: Eliminated duplicate automation documentation files
Fixed
- Installation Script Compatibility: Made compatible with both local and remote execution
- Directory Structure: Optimized for Azure Static Web Apps deployment
- Markdown Lint Issues: Fixed all markdown formatting violations
0.1.7 - 2024-12-01
Added
- Bootstrap Jekyll theme for headless GitHub Pages CMS
- Basic theme structure with layouts, includes, and assets
- Jekyll compatibility with GitHub Pages
- Scripts for version management, build, and test automation
- GitHub Actions workflows for CI/CD
- Makefile for simplified command access
Changed
- Initial theme implementation and project structure
Documentation
For detailed documentation on features, systems, and configuration:
- Documentation Center - Complete documentation overview
- Release Documentation - Historical release information
- Feature Documentation - Detailed feature guides
- System Documentation - Core systems and automation
- Configuration Guides - Setup and configuration