- FaqBlock prop schema (default true) adds a FAQPage node (@id
<page URL>#faq, one Question with its acceptedAnswer as plain text per
item) to the page's one JSON-LD graph through vue-seo-layer's
useSchemaNode (faqSchema, faqAnswerText)
- headingLevel 0 renders the title as <p class="faq-block__title"> with
the same id, still labelling the section, for sidebar and footer
widgets
- smoke: count= and repeatable options; expectations for the widget
title, one FAQPage node and the answers in the HTML inside details
- extend vue-seo-layer (link dependency during development); every page
takes its head from the SEO plugin through it
- remove the copied shared purge route, library, plugin and their test:
POST /api/__site__/cache/purge comes from vue-seo-layer with the same
contract and environment variables
- the page-less playground sets seo.htmlSitemap false; the smoke points
NUXT_SEO_API_BASE at the fixture API (fails open)
BREAKING CHANGE: server/api/__site__/cache/purge.post.ts,
server/lib/siteCachePurge.ts and server/plugins/site-cache-purge.ts are
no longer in this layer, and the runtime keys cachePurge and siteCache
are declared by vue-seo-layer. An app without pages sets
seo.htmlSitemap false.
nuxt-site-config copies every NUXT_SITE_* variable into the public site
config, so NUXT_SITE_CACHE_PURGE_TOKEN reached every page's payload as
cachePurgeToken (and NUXT_SITE_CACHE_ALLOW_PROXIED as cacheAllowProxied).
- The purge settings move to runtimeConfig cachePurge.token
(NUXT_CACHE_PURGE_TOKEN) and cachePurge.allowProxied
(NUXT_CACHE_PURGE_ALLOW_PROXIED), outside that prefix.
- The old siteCache.* names keep working for one release: a non-empty
new token wins, either allowProxied flag turns it on, and one
deprecation warning per process names the variables (never a value).
- The shared Nitro plugin server/plugins/site-cache-purge.ts strips
cachePurgeToken and cacheAllowProxied from nuxt-site-config's stack on
site-config:init, so a site on the old names leaks nothing either; it
does nothing without nuxt-site-config.
- The shared lib, route and plugin and tests/sitePurge.test.ts are
byte-identical in vue-journal-layer, vue-menu-layer and vue-faq-layer,
with three sha256 pins.
- README: new names, the deprecation, the stripping and the advice to
rotate a token ever set under the old name.
- runtimeConfig.siteCache.allowProxied (NUXT_SITE_CACHE_ALLOW_PROXIED, default
false) lets the shared purge route accept a request that came through a
TLS-terminating proxy; the bearer token is then the only gate
- shared lib, route and spec stay byte-identical across the three layers,
with updated sha256 pins and two new sitePurge specs
- version 0.3.0
- server/lib/siteCachePurge.ts: authorizeSitePurge, purgeSiteRouteCache,
parseSitePurgeEvent (kinds: lower-case letters and underscores)
- the route reads runtimeConfig.siteCache.purgeToken
(NUXT_SITE_CACHE_PURGE_TOKEN), 404 when off or proxied, 401 unauthorized
- route rule '/api/__site__/**': { cache: false }
- sitePurge specs with sha256 pins of the two shared files
- version 0.2.0
- the encoded slug and locale, non-string descriptions and content
- useFaqApi uses the server base with the forwarded visitor on the
server and the public base in the browser
- typed client and useFaq/useFaqApi (SSR, faq:<slug>:<locale> key,
server and public bases, x-forwarded-for forwarded also on cached renders)
- FaqBlock, FaqList and FaqItem: native details, exclusive and openFirst,
server-sanitized description and answers, nothing or #fallback on 404,
error or no items
- FAQ tokens and base CSS with the .faq-html rules, README
- node client tests and a playground SSR smoke against a fixture API