UNPKG

@nolebase/vitepress-plugin-page-properties

Version:

A VitePress plugin that renders frontmatter as page properties, and makes them editable.

76 lines (64 loc) 1.52 kB
interface TagsProperty<K extends PropertyKey> { type: 'tags' key: K title: string omitEmpty?: boolean } interface PlainProperty<K extends PropertyKey> { type: 'plain' key: K title: string omitEmpty?: boolean } interface DatetimeProperty<K extends PropertyKey> { type: 'datetime' key: K title: string formatAsFrom?: boolean dateFnsLocaleName?: import('./types').LocaleName format?: string omitEmpty?: boolean } interface ProgressProperty<K extends PropertyKey> { type: 'progress' key: K title: string omitEmpty?: boolean } interface LinkProperty<K extends PropertyKey> { type: 'link' key: K title: string omitEmpty?: boolean } interface DynamicProperty<K extends PropertyKey> { type: 'dynamic' key: K | string title: string options: DynamicWordsCountProperty | DynamicReadingTimeProperty } interface DynamicWordsCountProperty { type: 'wordsCount' } interface DynamicReadingTimeProperty { type: 'readingTime' dateFnsLocaleName?: import('./types').LocaleName } type Property<K extends PropertyKey> = TagsProperty<K> | PlainProperty<K> | DatetimeProperty<K> | ProgressProperty<K> | LinkProperty<K> | DynamicProperty<K> type PropertyType = Property<PropertyKey>['type'] type DynamicPropertyType = DynamicProperty<PropertyKey>['options']['type'] declare module 'virtual:nolebase-page-properties' { const pagePropertiesData: Record<string, { wordsCount: number readingTime: number }> export default pagePropertiesData }