cms is now the authoring source for the bn chrome (head/toolbar/engagement); this repo carries a mechanically-synced copy solely for guest-side plugin templates (cms `make sync-templates`, drift gated by check-safety check 31). head.templ picks up everything it had drifted behind on (RFG-parity favicon head, analytics/web-vitals beacons, custom-scripts placement, bnApplyTheme) and is now SDK-clean: asset versioning goes through the new bn.VersionedAssetURL hook (identity default; the CMS host wires it to its internal assets registry). HeadData is shape-compatible with existing plugin usage; BrandingData/SiteSettingsData internals changed — plugins see that at compile time on their next core bump. Spec: cms docs/superpowers/specs/2026-07-07-bn-chrome-single-source-design.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
12 lines
532 B
Go
12 lines
532 B
Go
package bn
|
|
|
|
// VersionedAssetURL resolves an asset URL to a cache-versioned form. The
|
|
// default is the identity function; the CMS host wires it to
|
|
// internal/assets.VersionedURL at startup so plugin stylesheet links get
|
|
// content-hash ?v= params. Guest-side (wasm) renders keep the identity
|
|
// default — asset hashing is a host concern.
|
|
//
|
|
// This file is part of the cms→core template sync set (make sync-templates);
|
|
// it must stay SDK-clean (no cms imports).
|
|
var VersionedAssetURL = func(url string) string { return url }
|