Create your Link in Bio for Bluesky

AT URI形式のalternate link追加 (#25)

authored by mkizka.dev and committed by

GitHub 9d52bcf5 ff1abd6b

+14 -9
+5 -7
app/routes/$handle.tsx
··· 38 38 isMine: user.did === (await getSessionUserDid(request)), 39 39 title: `${title} | Linkat`, 40 40 url: `${env.PUBLIC_URL}/${user.handle}`, 41 + ogImageUrl: `${env.PUBLIC_URL}/${user.handle}/og`, 42 + atUri: `at://${user.did}/blue.linkat.board/self`, 41 43 }; 42 44 } 43 45 44 - export const meta = ({ data }: Route.MetaArgs) => { 45 - const { title, url } = data; 46 - return createMeta({ 47 - title, 48 - url, 49 - ogImageUrl: `${url}/og`, 50 - }); 46 + export const meta: Route.MetaFunction = ({ data }) => { 47 + const { title, url, ogImageUrl, atUri } = data; 48 + return createMeta({ title, url, ogImageUrl, atUri }); 51 49 }; 52 50 53 51 export default function Index({ loaderData }: Route.ComponentProps) {
+9 -2
app/utils/meta.ts
··· 1 - import type { MetaFunction } from "react-router"; 1 + import type { MetaDescriptor } from "react-router"; 2 2 3 3 export const createMeta = ({ 4 4 title, 5 5 url, 6 6 description, 7 7 ogImageUrl, 8 + atUri, 8 9 }: { 9 10 title: string; 10 11 url: string; 11 12 description?: string; 12 13 ogImageUrl?: string; 14 + atUri?: string; 13 15 }) => { 14 16 const meta = [ 15 17 { ··· 63 65 }, 64 66 { 65 67 tagName: "link", 68 + rel: "alternate", 69 + href: atUri, 70 + }, 71 + { 72 + tagName: "link", 66 73 rel: "canonical", 67 74 href: url, 68 75 }, 69 - ] satisfies ReturnType<MetaFunction>; 76 + ] satisfies MetaDescriptor[]; 70 77 // undefinedな値がある要素を除外 71 78 return meta.filter((item) => Object.values(item).every(Boolean)); 72 79 };