This commit is contained in:
2025-06-04 10:20:01 +08:00
parent 7994ecc100
commit ad1144ad69
42 changed files with 5536 additions and 3740 deletions

View File

@@ -1,38 +1,55 @@
import Markdown from "react-markdown";
import {app} from "../app.ts";
import {ReactElement, ReactNode} from "react";
import { app } from "../app.ts";
import { ReactElement, ReactNode } from "react";
export default function AboutPage() {
return <article className={"p-4"}>
<Markdown components={{
"a": ({node, ...props}) => {
const href = props.href as string
// @ts-ignore
if (props.children?.length === 2) {
// @ts-ignore
const first = props.children[0] as ReactNode
// @ts-ignore
const second = props.children[1] as ReactNode
if (typeof first === "object" && (typeof second === "string" || typeof second === "object")) {
const img = first as ReactElement
return (
<article className={"p-4"}>
<Markdown
components={{
a: ({ node, ...props }) => {
const href = props.href as string;
// @ts-ignore
if (img.type === "img") {
return <a className={"inline-block card card-border border-base-300 no-underline bg-base-200 hover:shadow transition-shadow"} target={"_blank"} href={href}>
<figure className={"max-h-72 max-w-96"}>
{img}
</figure>
<div className={"card-body text-base-content text-lg"}>
{second}
</div>
</a>
if (props.children?.length === 2) {
// @ts-ignore
const first = props.children[0] as ReactNode;
// @ts-ignore
const second = props.children[1] as ReactNode;
if (
typeof first === "object" &&
(typeof second === "string" || typeof second === "object")
) {
const img = first as ReactElement;
// @ts-ignore
if (img.type === "img") {
return (
<a
className={
"inline-block card card-border border-base-300 no-underline bg-base-200 hover:shadow transition-shadow"
}
target={"_blank"}
href={href}
>
<figure className={"max-h-72 max-w-96"}>{img}</figure>
<div className={"card-body text-base-content text-lg"}>
{second}
</div>
</a>
);
}
}
}
}
}
return <a href={href} target={"_blank"}>{props.children}</a>
}
}}>
{app.siteInfo}
</Markdown>
</article>
}
return (
<a href={href} target={"_blank"}>
{props.children}
</a>
);
},
}}
>
{app.siteInfo}
</Markdown>
</article>
);
}