mirror of
https://github.com/ChenQihan666/MyBlog-Next.git
synced 2026-08-14 11:29:33 +08:00
feat: generate dynamic og image for blog posts (#15)
* feat: add dynamic og image using satori * feat: add og card styling * feat: add dynamic paths for ogTitle * feat: add default og url * ci: change config site url for testing purpose * fix: update original auto-generate og image style * refactor: move ogImage jsx inside generateOgImage * fix: add conditions for filtering draft posts & ogImages * build: update minor and major dependency updates * build: update site option in config file
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import type { APIRoute, MarkdownInstance } from "astro";
|
||||
import generateOgImage from "@utils/generateOgImage";
|
||||
import type { Frontmatter } from "@types";
|
||||
|
||||
export const get: APIRoute = async ({ params }) => ({
|
||||
body: await generateOgImage(params.ogTitle),
|
||||
});
|
||||
|
||||
const postImportResult = import.meta.glob<MarkdownInstance<Frontmatter>>(
|
||||
"../contents/**/**/*.md",
|
||||
{
|
||||
eager: true,
|
||||
}
|
||||
);
|
||||
const posts = Object.values(postImportResult);
|
||||
|
||||
export function getStaticPaths() {
|
||||
return posts
|
||||
.filter(({ frontmatter }) => !frontmatter.draft)
|
||||
.filter(({ frontmatter }) => !frontmatter.ogImage)
|
||||
.map(({ frontmatter }) => ({
|
||||
params: { ogTitle: frontmatter.title },
|
||||
}));
|
||||
}
|
||||
Reference in New Issue
Block a user