Recent Changes
2026-03-10 54a4787Fix
Fix truncated meta descriptions on 5 blog posts
All 5 posts had meta descriptions cut off mid-sentence (20–70 chars).
2026-03-10 7a778c5Feature
Add noindex, follow to all tag and category archive pages
These are thin WordPress taxonomy listing pages (58 tag pages, 31
2026-03-10 05d5213Feature
Fix www to non-www redirect — add explicit https:// prefix
The _redirects cross-domain rule was missing the protocol prefix on
2026-03-10 96daa7dFeature
Add per-article reading time; update settings
Refactor add_reading_time_indicator to iterate over all
elements and inject a per-article reading-time + word-count span into the article's .entry-meta. Skips list/archive cards without .entry-content, avoids duplicate insertion, strips non-content tags, requires a minimum content length, and computes minutes based on ~200 wpm. Also added a couple of Bash patterns (grep for entry-content in scripts and python3) to .claude/settings.local.json.
2026-03-10 bf64e75Feature
Add IndexNow key file and persist it through deploys
- Add fef9726a-c61d-45a1-a624-61e63214bc70.txt to public/ so
2026-03-09 6055a27Improvement
Improve error handling, hashing & search safety
Tighten exception handling and add safer defaults across scripts. Replaced several bare excepts with specific exception tuples to avoid silencing unexpected errors (markdown_exporter.py, wp_spell_check_and_fix.py, wp_to_static_generator.py). Added defensive JSON parsing with fallbacks/breaks for invalid responses in WP fetch logic. Switched image cache hashing from MD5 to BLAKE2b (digest_size=16) for stronger, fixed-size hashes (optimize_images.py). Hardened the search overlay by adding a CSS class selector, sanitizing item URLs (fallback to '#') and updating close/overlay selectors to target the new class (search.js). Also narrowed datetime parsing exceptions to specific types. These changes improve reliability, error visibility, and security of the tooling.
2026-03-09 a4d53b9Other
Merge branch 'main' of https://github.com/jameskilbynet/jkcoukblog
2026-03-09 755e5e8Fix
Fix Tags
2026-03-09 05bb8fcFeature
Add Credly Check
2026-03-09 dc33419Improvement
Update CSP
2026-03-03 1713988Improvement
Update _worker.template.js
2026-03-03 ac9c36aImprovement
Improve build caching and Cloudflare purge
Update workflow and scripts to make caching and cache-detection more reliable, and fix Cloudflare purge endpoint.
2026-03-03 2b24cfdImprovement
Update deploy-static-site.yml
2026-03-03 de6c8c7Improvement
Update deploy-static-site.yml
2026-03-03 079180dImprovement
Refactor worker, CI & asset scripts
Several improvements across CI, Cloudflare Worker template, and asset tooling:
2026-03-03 bd8d654Improvement
Update Incremental Builder
2026-03-02 55bd335Docs
Remove unneded docs files
2026-03-02 26ed8d7Docs
Docs Update
2026-03-02 7482d23Other
Merge branch 'main' of https://github.com/jameskilbynet/jkcoukblog
2026-03-02 8969b28Improvement
Enhance SEO checks and CSS preload logic
Add JSON-LD validation in content_validator: warn on missing structured data for article/main pages, detect empty or invalid JSON-LD blocks, ensure @context references schema.org, and require headline/datePublished/author for Article-like types. Refine CSS preload heuristic in enhance_html_performance: only preload stylesheets whose filename matches critical/main/styles (.min optional) to avoid preloading unrelated styles. Improve meta description filler in fix_seo_issues: scope first-paragraph extraction to article/main or common content containers to avoid grabbing nav/footer/sidebar text.
2026-03-02 4a8a4a0Other
Merge branch 'main' of https://github.com/jameskilbynet/jkcoukblog
2026-03-02 83e5f3aImprovement
Improve caching, compression, and builder hashing
Workflow: bump image build-cache key to v3, include .build-cache.json in cache, and add human-friendly cache status output. Add a cleanup step to remove ./static-output after failed builds to avoid stale artifacts.
2026-03-02 df8b900Other
Tweak deploy
2026-03-02 9c746ecOther
Merge branch 'main' of https://github.com/jameskilbynet/jkcoukblog
2026-03-02 9b89f1bDocs
Polish CI spellcheck, cache TTL, and image tweaks
CI: capture the spell checker exit code into SPELL_EXIT, derive a human-friendly SPELL_STATUS, and append that status to the GitHub step summary (retain non-blocking behavior). Worker: make Cache-Control dynamic by using getTTL(path) instead of a fixed max-age=300. HTML optimizer: refine optimize_images to treat the first image inside
or as the LCP candidate (fetchpriority="high"), set loading="lazy" for other images, add decoding="async" for all images, update the docstring, and remove the prior index-based heuristic.
2026-03-02 7036d6fFix
Merge origin/main: resolve public/ conflicts (accept remote generated output)
2026-03-02 1f95c82Feature
Add Gzip fallback, OG image checks, CSS parser
Add Gzip fallback to the static site compression pipeline and improve HTML/CSS validations and parsing.
2026-03-01 d9f62adOther
Make og:image, og:url, og:image:secure_url absolute URLs
All 164 existing article/page HTML files had relative paths (e.g.