feat: add the switch for open graph.

This commit is contained in:
Yufan Sheng 2024-11-29 13:55:36 +08:00
parent 52dd541c5b
commit f5b7a825c8
Signed by: syhily
GPG Key ID: 9D18A22A7DCD5A9B
4 changed files with 11 additions and 3 deletions

View File

@ -17,3 +17,6 @@ POSTGRES_DATABASE=
ARTALK_SCHEME=
ARTALK_HOST=
ARTALK_PORT=
# Open Graph Switch
BUILD_OPEN_GRAPH=true

View File

@ -46,6 +46,9 @@ npm update
# Start local development with a live preview. The weblog is hosted on http://localhost:4321
npm run dev
# Build the project
BUILD_OPEN_GRAPH=true npm run build
```
### Postgres Database
@ -193,7 +196,7 @@ to get it worked everywhere.
This weblog is deployed on the [zeabur](https://zeabur.com) platform.
You can check their documents and get your own weblog to be published without any budget at first.
Or you can host on your own machine. Use [Dockerfile](./Dockerfile) to build an image and run it locally.
Or you can host on your own machine. Use [Dockerfile](./docs/Dockerfile) to build an image and run it locally.
The comment system is leverage the [Artalk](https://artalk.js.org), a self-hosted comment system.
You should host it on your own machine.

View File

@ -35,6 +35,8 @@ export default defineConfig({
ARTALK_SCHEME: envField.string({ context: 'server', access: 'secret' }),
ARTALK_HOST: envField.string({ context: 'server', access: 'secret' }),
ARTALK_PORT: envField.number({ context: 'server', access: 'secret' }),
// Build the Open Graph
BUILD_OPEN_GRAPH: envField.boolean({ context: 'server', access: 'public', default: true }),
},
validateSecrets: true,
},

View File

@ -2,13 +2,13 @@ import { defaultOpenGraph, drawOpenGraph } from '@/helpers/og';
import { getPage, getPost, pages, posts } from '@/helpers/schema';
import options from '@/options';
import type { APIRoute } from 'astro';
const fallback = async () =>
new Response(await defaultOpenGraph(), {
headers: { 'Content-Type': 'image/png' },
});
export const prerender = true;
// This endpoint can be controlled by using environment variable.
export const prerender = import.meta.env.BUILD_OPEN_GRAPH;
export const GET: APIRoute = async ({ params }) => {
const slug = params.slug;