Skip to content

Commit

Permalink
feat(docs): og image
Browse files Browse the repository at this point in the history
  • Loading branch information
kwaa committed Dec 24, 2024
1 parent 65a92a5 commit eaf480b
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 4 deletions.
1 change: 1 addition & 0 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"@moeru-ai/characters-derivative": "workspace:^",
"@moeru-ai/characters-existing": "workspace:^",
"@moeru-ai/characters-original": "workspace:^",
"astro-og-canvas": "^0.5.5",
"daisyui": "^4.12.14",
"starlight-sidebar-topics-dropdown": "^0.2.1",
"starlight-theme-catppuccin": "^1.0.3",
Expand Down
33 changes: 33 additions & 0 deletions docs/src/pages/characters-og/[...slug].ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import type { Card } from '@moeru-ai/ccc'

import * as derivative from '@moeru-ai/characters-derivative'
import * as existing from '@moeru-ai/characters-existing'
import * as original from '@moeru-ai/characters-original'
import { OGImageRoute } from 'astro-og-canvas'

const generateOGImagePages = (json: typeof derivative | typeof existing | typeof original, pkg: string) =>
Object.fromEntries(
Object.entries(json)
.flatMap(([category, characters]) => Object.entries(characters)
.map(([character, json]) => [
// characters-og/[...slug].png
`${pkg}/${category}/${character}`,
json as Card,
]),
),
)

export const { GET, getStaticPaths } = OGImageRoute({
getImageOptions: (_path, page: Card) => ({
description: page.notes,
title: page.name,
}),

pages: {
...generateOGImagePages(derivative, 'derivative'),
...generateOGImagePages(existing, 'existing'),
...generateOGImagePages(original, 'original'),
},

param: 'slug',
})
8 changes: 4 additions & 4 deletions docs/src/pages/characters/[pkg]/[category]/[character].astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ export const getStaticPaths = () => {
})))
return [
...generateStaticPaths(derivative, 'derivative'),
...generateStaticPaths(existing, 'existing'),
...generateStaticPaths(original, 'original'),
]
...generateStaticPaths(derivative, 'derivative'),
...generateStaticPaths(existing, 'existing'),
...generateStaticPaths(original, 'original'),
]
}
const { category, character, pkg } = Astro.params
Expand Down
28 changes: 28 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit eaf480b

Please sign in to comment.