perf(theme): improve types (#244)
This commit is contained in:
parent
5d112d0e37
commit
341267b37e
@ -34,7 +34,7 @@ type Frontmatter<T extends FrontmatterType = 'page'> = T extends 'home'
|
||||
export interface Data<T extends FrontmatterType = 'page'> {
|
||||
theme: ThemeLocaleDataRef<PlumeThemeLocaleData>
|
||||
page: PageDataRef<PlumeThemePageData>
|
||||
frontmatter: PageFrontmatterRef<Frontmatter<T>>
|
||||
frontmatter: PageFrontmatterRef<Frontmatter<T> & Record<string, unknown>>
|
||||
lang: Ref<string>
|
||||
site: SiteLocaleDataRef
|
||||
isDark: Ref<boolean>
|
||||
@ -43,7 +43,7 @@ export interface Data<T extends FrontmatterType = 'page'> {
|
||||
export function useData<T extends FrontmatterType = 'page'>(): Data<T> {
|
||||
const theme = useThemeLocaleData()
|
||||
const page = usePageData<PlumeThemePageData>()
|
||||
const frontmatter = usePageFrontmatter<Frontmatter<T>>()
|
||||
const frontmatter = usePageFrontmatter<Frontmatter<T> & Record<string, unknown>>()
|
||||
const site = useSiteLocaleData()
|
||||
const isDark = useDarkMode()
|
||||
const lang = usePageLang()
|
||||
|
||||
@ -60,7 +60,7 @@ export async function preparedBlogData(
|
||||
< getTimestamp(next.frontmatter.createTime as Date || next.date)
|
||||
? 1
|
||||
: -1,
|
||||
) as Page<PlumeThemePageData, PlumeThemePostFrontmatter>[]
|
||||
) as Page<PlumeThemePageData, PlumeThemePostFrontmatter & Record<string, unknown>>[]
|
||||
|
||||
const blogData: PlumeThemeBlogPostData = pages.map((page) => {
|
||||
const tags = page.frontmatter.tags
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import type { SocialLink } from '../base.js'
|
||||
import type { PlumeNormalFrontmatter } from './normal.js'
|
||||
|
||||
export interface FriendsItem {
|
||||
name: string
|
||||
@ -17,7 +18,7 @@ export interface FriendGroup {
|
||||
list?: FriendsItem[]
|
||||
}
|
||||
|
||||
export interface PlumeThemeFriendsFrontmatter {
|
||||
export interface PlumeThemeFriendsFrontmatter extends PlumeNormalFrontmatter {
|
||||
friends: boolean
|
||||
title?: string
|
||||
description?: string
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import type { PageFrontmatter } from 'vuepress'
|
||||
|
||||
export interface PlumeNormalFrontmatter extends PageFrontmatter {
|
||||
export type PlumeNormalFrontmatter = PageFrontmatter<{
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
@ -51,4 +51,4 @@ export interface PlumeNormalFrontmatter extends PageFrontmatter {
|
||||
* @deprecated 使用 `externalLinkIcon` 代替
|
||||
*/
|
||||
externalLink?: boolean
|
||||
}
|
||||
}>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import type { BlogPostCover } from 'vuepress-theme-plume'
|
||||
import type { BlogPostCover } from '../blog.js'
|
||||
import type { PlumeThemePageFrontmatter } from './page.js'
|
||||
|
||||
export interface PlumeThemePostFrontmatter extends PlumeThemePageFrontmatter {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user