diff --git a/site/blog/app/(web)/components/Copyright.tsx b/site/blog/app/(web)/components/Copyright.tsx new file mode 100644 index 0000000..953ee03 --- /dev/null +++ b/site/blog/app/(web)/components/Copyright.tsx @@ -0,0 +1,7 @@ +"use client"; + +export default () => ( +
+ ©2022-{new Date().getFullYear()} Qhan W. All Rights Reserved. +
+); diff --git a/site/blog/app/(web)/components/Footer.tsx b/site/blog/app/(web)/components/Footer.tsx index a8e11e8..c0ea865 100644 --- a/site/blog/app/(web)/components/Footer.tsx +++ b/site/blog/app/(web)/components/Footer.tsx @@ -2,9 +2,9 @@ import Link from "next/link"; import clsx from "clsx"; -type FooterProps = { - className?: string; -}; +import Copyright from "./Copyright"; + +type FooterProps = { className?: string }; export default ({ className }: FooterProps) => ( ); diff --git a/site/blog/app/(web)/posts/[slug]/opengraph-image.tsx b/site/blog/app/(web)/posts/[slug]/opengraph-image.tsx index c3377f2..bcac7b2 100644 --- a/site/blog/app/(web)/posts/[slug]/opengraph-image.tsx +++ b/site/blog/app/(web)/posts/[slug]/opengraph-image.tsx @@ -1,9 +1,8 @@ import { ImageResponse } from "next/og"; -import { default as ImageIcon } from "next/image"; import { getPostBySlug } from "@/app/(web)/lib/posts"; -// export const runtime = "edge"; +// export const runtime = "edge"; // default: nodejs export const alt = "Qhan W"; export const size = { width: 1200, height: 630 }; @@ -25,15 +24,25 @@ export default async function Image({ params }: { params: { slug: string } }) { padding: 120, }} > - +
+ {/* source: @/public/images/icon.svg */} + + + + + + + + + +
+
diff --git a/site/blog/public/images/icon.svg b/site/blog/public/images/icon.svg new file mode 100644 index 0000000..b215fe3 --- /dev/null +++ b/site/blog/public/images/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/site/blog/utils/seo.ts b/site/blog/utils/seo.ts index ae1eb00..b4ba223 100644 --- a/site/blog/utils/seo.ts +++ b/site/blog/utils/seo.ts @@ -29,11 +29,13 @@ export default function seo({ description, title }: SeoProps): Metadata { // siteMetadata.siteTitle // )}.png?theme=light&md=0&fontSize=75px`, // images: "/favicon.png", + // images: "https://qhan.wang/images/wedding/poster.jpg", }, twitter: { - card: "summary", + card: "summary_large_image", + // site: siteMetadata.siteTitle, creator: siteMetadata?.social?.twitter, - title: siteMetadata?.title, + title: title, description: metaDescription, }, };