redirecter for ao3 that adds opengraph metadata
1import { raw } from "hono/html";
2
3const PageSkeleton = ({ title, description, addr }) => {
4 return (
5 <html lang="en">
6 <head>
7 <title>{title}</title>
8 <link
9 rel="favicon"
10 href="https://imagedelivery.net/iHX6Ovru0O7AjmyT5yZRoA/e1bf3632-3127-4828-0e01-47af78b4c200/public"
11 />
12 <meta
13 name="description"
14 content={raw(description.replace(/(<([^>]+)>)/ig, ""))}
15 />
16
17 <meta
18 property="og:url"
19 content={`https://archiveofourown.org/${addr}`}
20 />
21 <meta property="og:type" content="website" />
22 <meta property="og:title" content={title} />
23 <meta
24 property="og:description"
25 content={raw(description.replace(/(<([^>]+)>)/ig, ""))}
26 />
27 <meta
28 property="og:image"
29 content={`https://fixao3.gay/preview/${addr}`}
30 />
31
32 <meta name="twitter:card" content="summary_large_image" />
33 <meta
34 property="twitter:domain"
35 content="https://archiveofourown.org/"
36 />
37 <meta
38 property="twitter:url"
39 content={`https://archiveofourown.org/${addr}`}
40 />
41 <meta name="twitter:title" content={title} />
42 <meta
43 name="twitter:description"
44 content={raw(description.replace(/(<([^>]+)>)/ig, ""))}
45 />
46 <meta
47 name="twitter:image"
48 content={encodeURI(
49 `https://fixao3.gay/preview?title=${title}&description=${
50 description.replace(/(<([^>]+)>)/ig, "")
51 }&addr=${addr}`,
52 )}
53 />
54 </head>
55 <body
56 dangerouslySetInnerHTML={{
57 __html: `<script type="text/javascript">
58 window.location.replace("https://archiveofourown.org/${addr}");
59 </script>`,
60 }}
61 >
62 </body>
63 </html>
64 );
65};
66
67export default PageSkeleton;