diff options
| -rw-r--r-- | astro.config.mjs | 9 | ||||
| -rw-r--r-- | src/plugins/og-image.ts | 9 |
2 files changed, 15 insertions, 3 deletions
diff --git a/astro.config.mjs b/astro.config.mjs index 4d5e8e7..4c38017 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -183,7 +183,7 @@ export default defineConfig({ tag: "meta", attrs: { property: "og:image", - content: "https://yasutakeyohei.com/og/index.png", + content: "https://yasutakeyohei.com/og/index.png?v=2", }, }, { @@ -194,6 +194,13 @@ export default defineConfig({ }, }, { + tag: "meta", + attrs: { + name: "twitter:image", + content: "https://yasutakeyohei.com/og/index.png?v=2", + }, + }, + { tag: "script", attrs: { type: "application/ld+json" }, content: JSON.stringify({ diff --git a/src/plugins/og-image.ts b/src/plugins/og-image.ts index 0cfcbc2..c0e14ca 100644 --- a/src/plugins/og-image.ts +++ b/src/plugins/og-image.ts @@ -24,12 +24,17 @@ export default function ogImageIntegration(): AstroIntegration { // Derive slug from pathname: e.g., "/whisper-to-ai-moji-okoshi/" → "whisper-to-ai-moji-okoshi" let slug = page.pathname.replace(/^\/|\/$/g, "") || "index"; - const ogImageUrl = `https://yasutakeyohei.com/og/${slug}.png`; + const ogImageUrl = `https://yasutakeyohei.com/og/${slug}.png?v=2`; // Replace existing og:image with page-specific one html = html.replace( /<meta property="og:image" content="[^"]*"/g, - `<meta property="og:image" content="${ogImageUrl}"` + `<meta property="og:image" content="${ogImageUrl}"`, + ); + // Also update twitter:image + html = html.replace( + /<meta name="twitter:image" content="[^"]*"/g, + `<meta name="twitter:image" content="${ogImageUrl}"`, ); fs.writeFileSync(htmlPath, html, "utf-8"); |
