g1t on X: @g1t_sh in the site footer, the docs header and the structured data
4 files+11−40/4 viewed
| 1 | 1 | --- | |
| 2 | − | // The header's right side: where people go from the docs, then the source. | |
| 2 | + | // The header's right side: where people go from the docs, then g1t on X and the source. | |
| 3 | 3 | import { GitBranch } from '@lucide/astro'; | |
| 4 | 4 | --- | |
| 5 | 5 | ||
| 6 | 6 | <nav class="g1t-nav" aria-label="g1t"> | |
| 7 | 7 | <a href="https://g1t.sh/">g1t.sh</a> | |
| 8 | 8 | <a href="https://g1t.sh/register" class="g1t-nav-cta">Sign up</a> | |
| 9 | + | <a href="https://x.com/g1t_sh" aria-label="g1t on X" title="g1t on X" class="g1t-nav-icon"> | |
| 10 | + | <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z" /></svg> | |
| 11 | + | </a> | |
| 9 | 12 | <a href="https://g1t.sh/flagon-io/g1t" aria-label="Source on g1t" title="Source on g1t" class="g1t-nav-icon"> | |
| 10 | 13 | <GitBranch /> | |
| 11 | 14 | </a> |
| 10 | 10 | import type { User } from "@g1t/contracts"; | |
| 11 | 11 | ||
| 12 | 12 | import { Mark } from "./logo"; | |
| 13 | − | import { COMPANY, MAKER_PRODUCTS, copyright, listed } from "../lib/legal"; | |
| 13 | + | import { COMPANY, MAKER_PRODUCTS, SOCIAL, copyright, listed } from "../lib/legal"; | |
| 14 | 14 | import { type OverallState, STATUS_JSON_URL, STATUS_URL, STATUS_WORDS, type StatusReport, dotClass } from "../lib/status"; | |
| 15 | 15 | ||
| 16 | 16 | /** How long one fetched report is reused across the pages of one visit. */ | |
| ⋯ | |||
| 94 | 94 | title: "Company", | |
| 95 | 95 | links: [ | |
| 96 | 96 | ["Flagon, Inc.", COMPANY.url], | |
| 97 | + | ...SOCIAL.map((account): [string, string] => [account.label, account.url]), | |
| 97 | 98 | ["Support", "/support"], | |
| 98 | 99 | ["Security", "/security"], | |
| 99 | 100 | ["Status", STATUS_URL], | |
| 14 | 14 | founder: "Chase Pierce", | |
| 15 | 15 | }; | |
| 16 | 16 | ||
| 17 | + | /** g1t's own accounts elsewhere. */ | |
| 18 | + | export const SOCIAL: { label: string; url: string }[] = [{ label: "X", url: "https://x.com/g1t_sh" }]; | |
| 19 | + | ||
| 17 | 20 | /** | |
| 18 | 21 | * Flagon's other launched products, which the footer's maker line names | |
| 19 | 22 | * ("…, the people behind X and Y"). None yet: add each here when it ships. |
| 5 | 5 | */ | |
| 6 | 6 | import type { MetaDescriptor } from "react-router"; | |
| 7 | 7 | ||
| 8 | − | import { COMPANY } from "./legal"; | |
| 8 | + | import { COMPANY, SOCIAL } from "./legal"; | |
| 9 | 9 | import { DESCRIPTION, SITE } from "./meta"; | |
| 10 | 10 | ||
| 11 | 11 | export function organization(): MetaDescriptor { | |
| ⋯ | |||
| 16 | 16 | name: COMPANY.name, | |
| 17 | 17 | url: COMPANY.url, | |
| 18 | 18 | founder: { "@type": "Person", name: COMPANY.founder }, | |
| 19 | − | brand: { "@type": "Brand", name: "g1t", url: SITE }, | |
| 19 | + | brand: { "@type": "Brand", name: "g1t", url: SITE, sameAs: SOCIAL.map((account) => account.url) }, | |
| 20 | 20 | }, | |
| 21 | 21 | }; | |
| 22 | 22 | } | |