mirror of https://github.com/vuejs/vitepress
parent
fdc7a50c5e
commit
40d204b2f6
@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<p v-if="hasLastUpdated" class="last-updated">
|
||||
<span class="prefix">{{ prefix }}:</span>
|
||||
<span class="datetime">{{ datetime }}</span>
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, computed } from 'vue'
|
||||
import { useSiteDataByRoute, usePageData } from 'vitepress'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const site = useSiteDataByRoute()
|
||||
const page = usePageData()
|
||||
|
||||
const hasLastUpdated = computed(() => {
|
||||
const lu = site.value.themeConfig.lastUpdated
|
||||
|
||||
return lu !== undefined && lu !== false
|
||||
})
|
||||
|
||||
const prefix = computed(() => {
|
||||
const p = site.value.themeConfig.lastUpdated
|
||||
|
||||
return p === true ? 'Last Updated' : p
|
||||
})
|
||||
|
||||
const datetime = computed(() => {
|
||||
return new Date(page.value.lastUpdated).toLocaleString('en-US')
|
||||
})
|
||||
|
||||
return {
|
||||
hasLastUpdated,
|
||||
prefix,
|
||||
datetime
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.last-updated {
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
line-height: 1.4;
|
||||
font-size: .9rem;
|
||||
color: var(--c-text-light);
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.last-updated {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.prefix {
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.datetime {
|
||||
display: inline-block;
|
||||
margin-left: 6px;
|
||||
font-weight: 400;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<footer class="page-footer">
|
||||
<div class="edit">
|
||||
<EditLink />
|
||||
</div>
|
||||
<div class="updated">
|
||||
<LastUpdated />
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import EditLink from './EditLink.vue'
|
||||
import LastUpdated from './LastUpdated.vue'
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
EditLink,
|
||||
LastUpdated
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.page-footer {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.page-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.updated {
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.updated {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in new issue