feat: 支持文章系列功能 (series_slug)

This commit is contained in:
seahi committed 2026-09-27 20:24:49 +08:00
1 parent 2fb2524639
commit 376f67dc9a
2 files changed
+14

No files matched your search

+3
View File
@@ -12,6 +12,7 @@ export interface PostPayload {
slug: string;
content: string;
category_slug?: string;
series_slug?: string;
tags?: string[];
}
@@ -22,6 +23,8 @@ export interface PostMeta {
published_at: string;
category_slug?: string;
category_name?: string;
series_slug?: string;
series_name?: string;
tags?: string[];
}
+11
View File
@@ -180,6 +180,9 @@ export default class BlogFlarePlugin extends Plugin {
if (detail.category_slug) {
frontmatterLines.push(`category_slug: ${detail.category_slug}`);
}
if (detail.series_slug) {
frontmatterLines.push(`series_slug: ${detail.series_slug}`);
}
frontmatterLines.push('---');
const fileContent = frontmatterLines.join('\n') + '\n\n' + (detail.content || '');
@@ -337,6 +340,9 @@ export default class BlogFlarePlugin extends Plugin {
if (detail.category_slug) {
frontmatterLines.push(`category_slug: ${detail.category_slug}`);
}
if (detail.series_slug) {
frontmatterLines.push(`series_slug: ${detail.series_slug}`);
}
if (detail.tags && detail.tags.length > 0) {
frontmatterLines.push(`tags:`);
for (const t of detail.tags) {
@@ -409,6 +415,7 @@ export default class BlogFlarePlugin extends Plugin {
const title = frontmatter?.title as string || file.basename;
const slug = frontmatter?.slug as string || file.basename.toLowerCase().replace(/\s+/g, '-');
const category_slug = frontmatter?.category_slug as string | undefined;
const series_slug = frontmatter?.series_slug as string | undefined;
const publishedSlug = frontmatter?.blogflare_published_slug as string | undefined;
let tags: string[] | undefined = undefined;
@@ -421,6 +428,7 @@ export default class BlogFlarePlugin extends Plugin {
slug,
content,
category_slug,
series_slug,
tags
};
@@ -481,6 +489,9 @@ export default class BlogFlarePlugin extends Plugin {
if (detail.category_slug) {
frontmatterLines.push(`category_slug: ${detail.category_slug}`);
}
if (detail.series_slug) {
frontmatterLines.push(`series_slug: ${detail.series_slug}`);
}
if (detail.tags && detail.tags.length > 0) {
frontmatterLines.push(`tags:`);
for (const t of detail.tags) {