jekyll-theme-zer0 1.11.2 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +4 -4
- data/_plugins/search_and_sitemap_generator.rb +100 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad67d8675eed54308dc843c4f5025aaa20f7fe2b627d517dfaada7522cb68151
|
|
4
|
+
data.tar.gz: b1156a1f8b0f70bfbc1ca0299be338c78c989740b8c40c7f249dfee73d161dd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58ec18a1c0e3f222340325fd44677c64798c4bb1e33f4e69f0247fa73f547a4aeabc6dfd81735f98096f01303405f25178a7fbff3e29000e2d31f85720fec4b6
|
|
7
|
+
data.tar.gz: 00d341d37e50337fc262ce6055cebfcfe040713bf768c673c7a653045649299c06e95c94e46225c7bfab5b3190817196642f950a956573dae3a8c5056f96b8ed
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.12.0] - 2026-06-03
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Version bump: minor release
|
|
7
|
+
|
|
8
|
+
### Commits in this release
|
|
9
|
+
- 7e227c59 feat: auto-generate /search.json and /sitemap/ endpoints for downstream sites (#104)
|
|
10
|
+
- 300dabaf chore(deps): update Ruby gem dependencies (#120)
|
|
11
|
+
- 3a1a810c chore(deps-dev): bump mermaid from 10.9.5 to 10.9.6 (#105)
|
|
12
|
+
|
|
13
|
+
|
|
3
14
|
## [1.11.2] - 2026-06-03
|
|
4
15
|
|
|
5
16
|
### Changed
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: zer0-mistakes
|
|
3
3
|
sub-title: AI-Native Jekyll Theme
|
|
4
4
|
description: AI-native Jekyll theme for GitHub Pages — Docker-first development, AI-powered installation, multi-agent integration (Copilot, Codex, Cursor, Claude), AI preview-image generation, and AIEO content optimization with Bootstrap 5.3.
|
|
5
|
-
version: 1.
|
|
5
|
+
version: 1.12.0
|
|
6
6
|
layout: landing
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -20,7 +20,7 @@ categories:
|
|
|
20
20
|
- bootstrap
|
|
21
21
|
- ai-tooling
|
|
22
22
|
created: 2024-02-10T23:51:11.480Z
|
|
23
|
-
lastmod: 2026-06-03T01:
|
|
23
|
+
lastmod: 2026-06-03T01:23:07.000Z
|
|
24
24
|
draft: false
|
|
25
25
|
permalink: /
|
|
26
26
|
slug: zer0
|
|
@@ -901,7 +901,7 @@ git push origin feature/awesome-feature
|
|
|
901
901
|
|
|
902
902
|
| Metric | Value |
|
|
903
903
|
|--------|-------|
|
|
904
|
-
| **Current Version** | 1.
|
|
904
|
+
| **Current Version** | 1.12.0 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
|
|
905
905
|
| **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
|
|
906
906
|
| **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
|
|
907
907
|
| **Documentation Pages** | 70+ ([browse docs](https://zer0-mistakes.com/pages/)) |
|
|
@@ -956,6 +956,6 @@ And these AI partners that make zer0-mistakes truly AI-native:
|
|
|
956
956
|
|
|
957
957
|
**Built with ❤️ — and a little help from our AI partners — for the Jekyll community**
|
|
958
958
|
|
|
959
|
-
**v1.
|
|
959
|
+
**v1.12.0** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
|
|
960
960
|
|
|
961
961
|
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# File: search_and_sitemap_generator.rb
|
|
5
|
+
# Path: _plugins/search_and_sitemap_generator.rb
|
|
6
|
+
# Purpose: Auto-generate /search.json and /sitemap/ endpoints for downstream
|
|
7
|
+
# sites consuming this theme, so they work out of the box without
|
|
8
|
+
# requiring users to manually create these files.
|
|
9
|
+
#
|
|
10
|
+
# The search modal (search-modal.js) fetches /search.json and the modal form
|
|
11
|
+
# action targets /sitemap/. This generator ensures both endpoints exist even
|
|
12
|
+
# when the consuming site hasn't created them.
|
|
13
|
+
#
|
|
14
|
+
# Behaviour:
|
|
15
|
+
# - If the site already has a page at /search.json, no page is generated.
|
|
16
|
+
# - If the site already has a page at /sitemap/, no page is generated.
|
|
17
|
+
# - Generation can be disabled via _config.yml:
|
|
18
|
+
# search:
|
|
19
|
+
# generate_index: false
|
|
20
|
+
# sitemap_page:
|
|
21
|
+
# generate: false
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
module Jekyll
|
|
25
|
+
class SearchAndSitemapGenerator < Generator
|
|
26
|
+
safe true
|
|
27
|
+
priority :low
|
|
28
|
+
|
|
29
|
+
def generate(site)
|
|
30
|
+
generate_search_json(site)
|
|
31
|
+
generate_sitemap_page(site)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
# ------------------------------------------------------------------
|
|
37
|
+
# /search.json — uses _layouts/search.html which includes search-data.json
|
|
38
|
+
# ------------------------------------------------------------------
|
|
39
|
+
def generate_search_json(site)
|
|
40
|
+
return if search_index_disabled?(site)
|
|
41
|
+
return if page_exists?(site, "/search.json")
|
|
42
|
+
|
|
43
|
+
Jekyll.logger.info "SearchAndSitemapGenerator:", "Auto-generating /search.json endpoint"
|
|
44
|
+
|
|
45
|
+
page = PageWithoutFile.new(site, site.source, "", "search.json")
|
|
46
|
+
page.data.merge!(
|
|
47
|
+
"layout" => "search",
|
|
48
|
+
"permalink" => "/search.json",
|
|
49
|
+
"sitemap" => false
|
|
50
|
+
)
|
|
51
|
+
page.content = ""
|
|
52
|
+
|
|
53
|
+
site.pages << page
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# ------------------------------------------------------------------
|
|
57
|
+
# /sitemap/ — uses _layouts/sitemap-collection.html
|
|
58
|
+
# ------------------------------------------------------------------
|
|
59
|
+
def generate_sitemap_page(site)
|
|
60
|
+
return if sitemap_page_disabled?(site)
|
|
61
|
+
return if page_exists?(site, "/sitemap/")
|
|
62
|
+
|
|
63
|
+
Jekyll.logger.info "SearchAndSitemapGenerator:", "Auto-generating /sitemap/ endpoint"
|
|
64
|
+
|
|
65
|
+
page = PageWithoutFile.new(site, site.source, "", "sitemap.html")
|
|
66
|
+
page.data.merge!(
|
|
67
|
+
"layout" => "sitemap-collection",
|
|
68
|
+
"title" => "Site Map",
|
|
69
|
+
"description" => "Complete site overview with navigation and content discovery tools",
|
|
70
|
+
"permalink" => "/sitemap/",
|
|
71
|
+
"sidebar" => false,
|
|
72
|
+
"collection" => "all"
|
|
73
|
+
)
|
|
74
|
+
page.content = ""
|
|
75
|
+
|
|
76
|
+
site.pages << page
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# ------------------------------------------------------------------
|
|
80
|
+
# Helpers
|
|
81
|
+
# ------------------------------------------------------------------
|
|
82
|
+
|
|
83
|
+
def page_exists?(site, permalink)
|
|
84
|
+
normalized = permalink.chomp("/")
|
|
85
|
+
site.pages.any? do |p|
|
|
86
|
+
url = (p.url || "").chomp("/")
|
|
87
|
+
perm = (p.permalink || "").chomp("/")
|
|
88
|
+
url == normalized || url == permalink || perm == normalized || perm == permalink
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def search_index_disabled?(site)
|
|
93
|
+
site.config.dig("search", "generate_index") == false
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def sitemap_page_disabled?(site)
|
|
97
|
+
site.config.dig("sitemap_page", "generate") == false
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-theme-zer0
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Amr Abdel
|
|
@@ -220,6 +220,7 @@ files:
|
|
|
220
220
|
- _plugins/content_statistics_generator.rb
|
|
221
221
|
- _plugins/obsidian_links.rb
|
|
222
222
|
- _plugins/preview_image_generator.rb
|
|
223
|
+
- _plugins/search_and_sitemap_generator.rb
|
|
223
224
|
- _plugins/theme_version.rb
|
|
224
225
|
- _sass/components/_back-to-top.scss
|
|
225
226
|
- _sass/components/_callout.scss
|