Repository navigation
v4.27.0
·
15 commits
to main
since this release
Focus: opt-in sponsor logos under the Table of Contents and a page ad with your own creatives.
Changes
- 🤝 Added Sponsors (
sponsors: { enabled: true, tiers, items }): sponsor logos in the Table of Contents column, and in the mobile ToC dialog, following its visibility. Tiers are listed highest first and pick an engine-owned layout —wide(one 3:1 logo per row) orsquare(two 1:1 logos per row) — with optional dark-theme logos swapped in CSS and a light plate for single-variant logos. - 💗 Every empty tier shows a "Your sponsor here" example slot and the panel ends with a dashed "Your logo here" button, both opening
sponsors.fallbackUrl(defaults tolinks.sponsor). The panel title carries the same heart as the menu's Sponsor link. - 📣 Added Page Ad (
ads: { enabled: true, items }): one of your own creatives (image, title, short text, link) above the content of every subpage, never the home page. Each page picks its creative from its normalized path — stable across reloads and identical in the prerendered HTML and the hydrated app. With no creative, an example "Your ad here" ad opens the fallback link. - 🔗 Paid links (sponsor logos, creatives) use
rel="sponsored noopener"in a new tab; self links usenoopener, or the same tab for a path of your site. Hrefs must be absolute http(s). ⚠️ Config problems print one warning each at build and whendocsector devstarts; bad entries are skipped and the rest keeps working.- 🛠️ Shared helpers for asset URLs, locale maps and string hashing (replacing duplicated copies); an asset URL under an absolute base no longer loses its
//; the Table of Contents tree no longer leaves the flow on large mobile-platform screens. - 📚 New manual pages, Sponsors and Page Ad (en-US and pt-BR), plus README, scaffold config and language keys.
- ✅ Validated with 669 passing tests (normalizers, helpers, template and script pins), SPA and SSR builds checked in a headless browser (layout, links, hydration parity, CLS, dark theme, phone and tablet), and an adversarial review panel.