feat(theme): add support frontmatter excerpt for blog post, close #218 (#224)

This commit is contained in:
pengzhanbo 2024-09-27 08:41:27 +08:00 committed by GitHub
parent a63ac17513
commit da64267432
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 8 deletions

View File

@ -80,14 +80,19 @@ export async function preparedBlogData(
data.encrypt = true
}
if (page.contentRendered.includes(EXCERPT_SPLIT)) {
const contents = page.contentRendered.split(EXCERPT_SPLIT)
let excerpt = contents[0]
// 删除摘要中的标题
excerpt = excerpt.replace(HEADING_RE, '')
data.excerpt = excerpt
const fmExcerpt = page.frontmatter.excerpt
if (fmExcerpt !== false) {
if (typeof fmExcerpt === 'string') {
data.excerpt = fmExcerpt
}
else if (page.contentRendered.includes(EXCERPT_SPLIT)) {
const contents = page.contentRendered.split(EXCERPT_SPLIT)
let excerpt = contents[0]
// 删除摘要中的标题
excerpt = excerpt.replace(HEADING_RE, '')
data.excerpt = excerpt
}
}
return data
})

View File

@ -2,9 +2,19 @@ import type { BlogPostCover } from 'vuepress-theme-plume'
import type { PlumeThemePageFrontmatter } from './page.js'
export interface PlumeThemePostFrontmatter extends PlumeThemePageFrontmatter {
/**
*
*/
createTime?: string
author?: string
/**
*
*/
tags?: string[]
/**
*
*/
sticky?: boolean | number
/**
* @deprecated 使 `draft`
@ -23,4 +33,9 @@ export interface PlumeThemePostFrontmatter extends PlumeThemePageFrontmatter {
*
*/
cover?: string | BlogPostCover
/**
* string `<!-- more -->`
*/
excerpt?: boolean | string
}