Skip to content

Commit 7fcf462

Browse files
committed
fix(build): respect frontmatter.lastUpdated for pageData.lastUpdated and sitemap generation
closes #3931
1 parent 99053ba commit 7fcf462

File tree

4 files changed

+44
-17
lines changed

4 files changed

+44
-17
lines changed

Diff for: src/client/theme-default/components/VPDocFooter.vue

+29-13
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@ const { theme, page, frontmatter } = useData()
1111
const editLink = useEditLink()
1212
const control = usePrevNext()
1313
14-
const hasEditLink = computed(() => {
15-
return theme.value.editLink && frontmatter.value.editLink !== false
16-
})
17-
const hasLastUpdated = computed(() => {
18-
return page.value.lastUpdated && frontmatter.value.lastUpdated !== false
19-
})
20-
const showFooter = computed(() => {
21-
return hasEditLink.value || hasLastUpdated.value || control.value.prev || control.value.next
22-
})
14+
const hasEditLink = computed(
15+
() => theme.value.editLink && frontmatter.value.editLink !== false
16+
)
17+
const hasLastUpdated = computed(() => page.value.lastUpdated)
18+
const showFooter = computed(
19+
() =>
20+
hasEditLink.value ||
21+
hasLastUpdated.value ||
22+
control.value.prev ||
23+
control.value.next
24+
)
2325
</script>
2426

2527
<template>
@@ -47,14 +49,28 @@ const showFooter = computed(() => {
4749
<span class="visually-hidden" id="doc-footer-aria-label">Pager</span>
4850

4951
<div class="pager">
50-
<VPLink v-if="control.prev?.link" class="pager-link prev" :href="control.prev.link">
51-
<span class="desc" v-html="theme.docFooter?.prev || 'Previous page'"></span>
52+
<VPLink
53+
v-if="control.prev?.link"
54+
class="pager-link prev"
55+
:href="control.prev.link"
56+
>
57+
<span
58+
class="desc"
59+
v-html="theme.docFooter?.prev || 'Previous page'"
60+
></span>
5261
<span class="title" v-html="control.prev.text"></span>
5362
</VPLink>
5463
</div>
5564
<div class="pager">
56-
<VPLink v-if="control.next?.link" class="pager-link next" :href="control.next.link">
57-
<span class="desc" v-html="theme.docFooter?.next || 'Next page'"></span>
65+
<VPLink
66+
v-if="control.next?.link"
67+
class="pager-link next"
68+
:href="control.next.link"
69+
>
70+
<span
71+
class="desc"
72+
v-html="theme.docFooter?.next || 'Next page'"
73+
></span>
5874
<span class="title" v-html="control.next.text"></span>
5975
</VPLink>
6076
</div>

Diff for: src/client/theme-default/components/VPDocFooterLastUpdated.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
import { ref, computed, watchEffect, onMounted } from 'vue'
33
import { useData } from '../composables/data'
44
5-
const { theme, page, frontmatter, lang } = useData()
5+
const { theme, page, lang } = useData()
66
77
const date = computed(
8-
() => new Date(frontmatter.value.lastUpdated ?? page.value.lastUpdated)
8+
() => new Date(page.value.lastUpdated!)
99
)
1010
const isoDatetime = computed(() => date.value.toISOString())
1111
const datetime = ref('')

Diff for: src/node/build/generateSitemap.ts

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import fs from 'fs-extra'
2+
import matter from 'gray-matter'
23
import path from 'path'
34
import {
45
SitemapStream,
@@ -22,6 +23,12 @@ export async function generateSitemap(siteConfig: SiteConfig) {
2223
file = siteConfig.rewrites.inv[file] || file
2324
file = path.join(siteConfig.srcDir, file)
2425

26+
if (!fs.existsSync(file)) return undefined
27+
28+
const { data } = matter.read(file)
29+
if (data.lastUpdated === false) return undefined
30+
if (data.lastUpdated instanceof Date) return +data.lastUpdated
31+
2532
return (await getGitTimestamp(file)) || undefined
2633
}
2734

Diff for: src/node/markdownToVue.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,12 @@ export async function createMarkdownToVueRenderFn(
185185
filePath: slash(path.relative(srcDir, fileOrig))
186186
}
187187

188-
if (includeLastUpdatedData) {
189-
pageData.lastUpdated = await getGitTimestamp(fileOrig)
188+
if (includeLastUpdatedData && frontmatter.lastUpdated !== false) {
189+
if (frontmatter.lastUpdated instanceof Date) {
190+
pageData.lastUpdated = +frontmatter.lastUpdated
191+
} else {
192+
pageData.lastUpdated = await getGitTimestamp(fileOrig)
193+
}
190194
}
191195

192196
if (siteConfig?.transformPageData) {

0 commit comments

Comments
 (0)