- journalPaginationSource answers runtimeConfig.public.seo.pagination (the
SEO module's option with its defaults), else the raw seo.pagination
- the module computes the paged routes inside its extendPages callback, so
an app with only form: 'path' gets /blog/strona/:page and
/blog/page/:page (L4 WR-03)
- post, index, category, tag and author pages render <SeoBreadcrumbs>
at the top of their content while journal.breadcrumbs is on (default);
false leaves the trail to the site's layout, the BreadcrumbList data
is unchanged
- JournalPagination renders <SeoPagination class-prefix="journal-pagination">
with the journal's labels: the same class names, plus page 1, the last
page, gap items, aria labels and head rel prev/next, with links in the
CMS's pagination form
- with vue-seo-layer's seo.pagination.form 'path' the module registers
<listing>/<segment>/:page routes (journalPagedRoutes), and the listing
pages read the page from the :page param or ?page (pageFromRoute)
- the category pillar text renders on page 1 only, the description on
every page; an h1 in it becomes h2 while the category row's
content_h1_to_h2 is on (absent counts as on)
- journal.routes.search (off by default) registers journal-search, the
results page for ?q= in the API's relevance order (no sort is sent),
server-rendered with a Polish-aware result count.
- JournalSearchBox: an icon button and a WAI-ARIA combobox with debounced
?fields=suggest suggestions, stale answers dropped, query words marked
ignoring diacritics; a plain GET form without JS.
- The module keeps the search path out of the route cache and the sitemap
and marks it noindex, follow.
- Client: suggestPosts and the fields option; useJournalLinks.searchLink.
- node --test over routes, client (fake fetcher, include_empty=1),
pagination, htmlGate (Go FormatHTML parity cases), sitemap, seo and
pl/en i18n parity
- package script test and a Testing line in the README