feat: add externalLink frontmatter

This commit is contained in:
pengzhanbo 2024-01-31 09:14:59 +08:00
parent 28cfb04490
commit eb30e03116
2 changed files with 14 additions and 1 deletions

View File

@ -1,9 +1,15 @@
<script lang="ts" setup>
import { usePageFrontmatter } from 'vuepress/client'
import { computed } from 'vue'
import IconExternalLink from '../icons/IconExternalLink.vue'
import type { PlumeThemePageFrontmatter } from '../../../shared/index.js'
const matter = usePageFrontmatter<PlumeThemePageFrontmatter>()
const show = computed(() => matter.value.externalLink !== false)
</script>
<template>
<IconExternalLink class="external-icon" />
<IconExternalLink v-if="show" class="external-icon" />
</template>
<style scoped>
@ -16,4 +22,10 @@ import IconExternalLink from '../icons/IconExternalLink.vue'
color: var(--vp-c-text-3);
vertical-align: middle;
}
@media print {
.external-icon {
display: none;
}
}
</style>

View File

@ -27,6 +27,7 @@ export interface PlumeThemePageFrontmatter {
prev?: string | NavItemWithLink
next?: string | NavItemWithLink
backToTop?: boolean
externalLink?: boolean
}
export interface PlumeThemePostFrontmatter extends PlumeThemePageFrontmatter {