integration: add route metadata, JSON-LD and harden the public shell
Ship prerendered SEO, crawl files and palette/map a11y so every locale route is indexable, honest and keyboard-usable without inventing claims. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -23,11 +23,15 @@ export interface SystemsMapNodeView {
|
||||
readonly x: number;
|
||||
readonly y: number;
|
||||
readonly label: string;
|
||||
readonly labelLines: readonly string[];
|
||||
readonly summary: string;
|
||||
readonly href: string;
|
||||
readonly link: unknown[];
|
||||
readonly relationship: string;
|
||||
readonly accessibleName: string;
|
||||
readonly shapeWidth: number;
|
||||
readonly shapeHeight: number;
|
||||
readonly textStartDy: number;
|
||||
}
|
||||
|
||||
export interface SystemsMapEdgeView {
|
||||
@@ -191,7 +195,10 @@ export class SystemsMap {
|
||||
);
|
||||
const relationship = relationshipLabel.replace('{targets}', connectedLabels.join(', '));
|
||||
const label = node.label[locale];
|
||||
const labelLines = node.labelLines[locale];
|
||||
const summary = node.summary[locale];
|
||||
const multiline = labelLines.length > 1;
|
||||
const longest = labelLines.reduce((max, line) => Math.max(max, line.length), 0);
|
||||
|
||||
return {
|
||||
id: node.id,
|
||||
@@ -200,7 +207,11 @@ export class SystemsMap {
|
||||
x: node.x,
|
||||
y: node.y,
|
||||
label,
|
||||
labelLines,
|
||||
summary,
|
||||
shapeWidth: Math.max(140, longest * 8 + 24),
|
||||
shapeHeight: multiline ? 52 : 40,
|
||||
textStartDy: multiline ? -6 : 4,
|
||||
href: routePath(node.routeId, locale),
|
||||
link: this.navigation.link(node.routeId),
|
||||
relationship,
|
||||
|
||||
Reference in New Issue
Block a user