SiteConfig.presentationis a new optional versioned section; version 1 accepts only the ads provideradsensewithpublisherIdand three named slot placements (homeAfterFeed,archiveInline,articleEnd), or the equivalent providernone.- When AdSense is disabled, rendered pages contain no advertising DOM or scripts; when enabled, each page with a configured slot emits the fixed Google provider script once, and
/ads.txtis generated from the validated publisher record. - Every composed site now provides a language-scoped source directory route in addition to the existing reader-facing routes.
- The shared document layout now emits schema.org types, canonical and language-alternate links, and Open Graph/Twitter image metadata with Publume logo fallback; search pages are
noindex,followand excluded from sitemaps. - Typography tokens are now language-aware: interface text is 14/22px, reading text is 17/28px for Latin and 17/30px for CJK, and Editorial display uses separate fluid ranges for Latin and CJK; a declared content language is required.
- Core now verifies that the presentation config passes through to the generated site config and that advertising placements (
homeAfterFeed,archiveInline,articleEnd) and the/ads.txtpublisher record appear in built output.
Publishers who do not configure AdSense get no advertising DOM or scripts in rendered pages. With AdSense enabled, pages that define a slot load the Google provider script once and the site gets /ads.txt from the validated publisher record. Search pages now carry noindex,follow and are excluded from sitemaps. Because typography tokens depend on language, sites must declare a content language.