feat: add semantic CSS stylesheets (#3274)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
This commit is contained in:
Amruth Pillai
2026-07-30 12:39:15 +02:00
committed by GitHub
co-authored by Cursor Agent
parent 4ac19f81b3
commit d2ffbf9618
320 changed files with 78393 additions and 2915 deletions
+56
View File
@@ -0,0 +1,56 @@
export type CombinedTextName =
| "experience-position-location"
| "experience-location"
| "experience-period"
| "education-area-degree"
| "education-degree-grade"
| "education-location-period"
| "education-grade-location";
export type SemanticNodeKeyFactory = {
resume: () => string;
page: (pageNumber: number) => string;
region: (pageKey: string, region: string) => string;
header: (regionKey: string) => string;
headerPart: (headerKey: string, kind: "picture" | "name" | "headline") => string;
contactList: (headerKey: string) => string;
contactItem: (contactListKey: string, name: string, id?: string) => string;
section: (regionKey: string, id: string) => string;
sectionHeading: (sectionKey: string) => string;
sectionItems: (sectionKey: string) => string;
item: (parentKey: string, id: string) => string;
itemHeader: (itemKey: string) => string;
combinedText: (parentKey: string, name: CombinedTextName) => string;
field: (parentKey: string, name: string) => string;
link: (parentKey: string, role: string) => string;
icon: (parentKey: string, role: string) => string;
level: (parentKey: string) => string;
richText: (parentKey: string, name: string) => string;
richTextNode: (parentKey: string, kind: string, index: number) => string;
};
const encodeKeyPart = (value: string | number): string => encodeURIComponent(String(value)).replaceAll("~", "%7E");
const childKey = (parentKey: string, segment: string): string => `${parentKey}/${segment}`;
export const semanticNodeKeys: SemanticNodeKeyFactory = {
resume: () => "resume",
page: (pageNumber) => `page-${encodeKeyPart(pageNumber)}`,
region: (pageKey, region) => childKey(pageKey, `region-${encodeKeyPart(region)}`),
header: (regionKey) => childKey(regionKey, "header"),
headerPart: (headerKey, kind) => childKey(headerKey, kind),
contactList: (headerKey) => childKey(headerKey, "contact-list"),
contactItem: (contactListKey, name, id) =>
childKey(contactListKey, `contact-${encodeKeyPart(name)}${id === undefined ? "" : `~${encodeKeyPart(id)}`}`),
section: (regionKey, id) => childKey(regionKey, `section-${encodeKeyPart(id)}`),
sectionHeading: (sectionKey) => childKey(sectionKey, "section-heading"),
sectionItems: (sectionKey) => childKey(sectionKey, "section-items"),
item: (parentKey, id) => childKey(parentKey, `item-${encodeKeyPart(id)}`),
itemHeader: (itemKey) => childKey(itemKey, "item-header"),
combinedText: (parentKey, name) => childKey(parentKey, `combined-text-${encodeKeyPart(name)}`),
field: (parentKey, name) => childKey(parentKey, `field-${encodeKeyPart(name)}`),
link: (parentKey, role) => childKey(parentKey, `link-${encodeKeyPart(role)}`),
icon: (parentKey, role) => childKey(parentKey, `icon-${encodeKeyPart(role)}`),
level: (parentKey) => childKey(parentKey, "level"),
richText: (parentKey, name) => childKey(parentKey, `rich-text-${encodeKeyPart(name)}`),
richTextNode: (parentKey, kind, index) => childKey(parentKey, `${encodeKeyPart(kind)}-${encodeKeyPart(index)}`),
};