mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-05-01 12:38:12 +08:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import {
|
|
blogPostData as blogPostDataRaw,
|
|
extraBlogData as extraBlogDataRaw,
|
|
} from '@internal/blogData'
|
|
import { ref } from 'vue'
|
|
import type { Ref } from 'vue'
|
|
import type { BlogPostData } from '../../shared/index.js'
|
|
|
|
declare const __VUE_HMR_RUNTIME__: Record<string, any>
|
|
|
|
export type BlogDataRef<T extends BlogPostData = BlogPostData> = Ref<T>
|
|
|
|
export const blogPostData: BlogDataRef = ref(blogPostDataRaw)
|
|
|
|
export function useBlogPostData<
|
|
T extends BlogPostData = BlogPostData,
|
|
>(): BlogDataRef<T> {
|
|
return blogPostData as BlogDataRef<T>
|
|
}
|
|
|
|
export type ExtraBlogDataRef = Ref<Record<string, any>>
|
|
|
|
export const extraBlogData: ExtraBlogDataRef = ref(extraBlogDataRaw)
|
|
|
|
export function useExtraBlogData(): ExtraBlogDataRef {
|
|
return extraBlogData as ExtraBlogDataRef
|
|
}
|
|
|
|
if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) {
|
|
__VUE_HMR_RUNTIME__.updateBlogData = (data: BlogPostData) => {
|
|
blogPostData.value = data
|
|
}
|
|
__VUE_HMR_RUNTIME__.updateExtraBlogData = (data: Record<string, any>) => {
|
|
extraBlogData.value = data
|
|
}
|
|
}
|