- 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)
20 lines
811 B
Vue
20 lines
811 B
Vue
<script setup lang="ts">
|
|
// Previous/next, page 1, the last page and a window of page links for the
|
|
// current listing: vue-seo-layer's <SeoPagination> (UI-SPEC L2) with the
|
|
// journal's labels and class names (journal-pagination, __prev, __pages,
|
|
// __current, __gap, __next), so app CSS keeps applying. Links follow the
|
|
// CMS's pagination form (?page=N or the path form) and page 1 is the
|
|
// unnumbered URL; the head gets rel prev/next.
|
|
defineProps<{ current: number; last: number }>()
|
|
const { t } = useI18n()
|
|
const labels = computed(() => ({
|
|
label: t('journal.pagination.label'),
|
|
previous: t('journal.pagination.previous'),
|
|
next: t('journal.pagination.next'),
|
|
}))
|
|
</script>
|
|
|
|
<template>
|
|
<SeoPagination class-prefix="journal-pagination" :current="current" :last="last" :labels="labels" />
|
|
</template>
|