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;