Pulled live from the source repository · Site JSON-LD on codebit.nl
Metadata normalization — no functional change.
author is now Codebit (was "Ivo Teel"), matching the other first-party add-ons. author_url unchanged (https://codebit.nl/site-jsonld).Install: extract site_jsonld/ into system/user/addons/, then Developer → Add-Ons → Site JSON-LD → Update.
Distribution release — Site JSON-LD can now self-update through Addon Expert's license-gated registry.
addon.setup.php declares a registry source (updates.nivoli.com, product site_jsonld). With a license key entered under Addon Expert → Settings → Registry license keys, the Releases screen tracks Site JSON-LD and installs updates in one click — the download is signed and its sha256 verified before the swap.Also rolls up the 1.9.3 housekeeping (LICENSE → LICENSE.md, minor Layout tweak).
Install: extract site_jsonld/ into system/user/addons/, then Developer → Add-Ons → Site JSON-LD → Update.
Public-facing links (CP footer, author_url, docs_url) now point to codebit.nl; source repo stays private. Installable zip attached.
Release-ready for ExpressionEngine.com: adds the add-on icon (icon.svg) and a docs_url. Attached site_jsonld-1.9.1.zip is the installable package (unzip into system/user/addons/). No behaviour change.
Two usability improvements based on real feedback:
Adds type="Review" to {exp:site_jsonld:render} for review articles (a current Google rich result — star ratings).
rating_value (+ optional rating_best, default 5, and rating_worst) → reviewRatingabout_name / about_url → itemReviewed (a VideoGame by default; set reviewed_type for something else)author → the reviewerThe Validate/Site-audit tools know the required Review properties (itemReviewed, reviewRating, author), so an incomplete review is flagged. Additive — nothing changes for existing types.
Set crumbs="auto" on {exp:site_jsonld:render} and the breadcrumb trail is derived from the current URL segments — no more hand-writing the Name::url||… string (and no way to leave a stray empty crumb). Intermediate segments are humanised; the final crumb uses the name parameter; pagination segments are skipped. Explicit crumbs="…" still works exactly as before, so nothing changes unless you opt in.
New Site audit page (under Audit in the side rail). One click validates a representative sample of public pages — the homepage plus a few entry detail pages per entity template — and reports:
Scales the one-URL Validate tool into a site-wide check and makes the Dashboard coverage estimate concrete. Listing/archive pages are intentionally skipped (they often legitimately carry no structured data). No front-end changes.
Internal namespace changed from SiteJsonld to Nivoli\SiteJsonld, unifying the first-party add-ons under the Nivoli vendor namespace (alongside cf_image, game_import, content_toc). The legacy module/extension class names are unchanged, so the install, settings table and front-end output are unaffected — only the PSR-4 Control Panel classes moved.
Documentation page polish: code examples now wrap instead of sitting in a horizontal scroll box, each topic is on its own white card for a clearer visual split, and the section headings/copy are tightened. No functional changes.