Files
zhaoguiyang.site/src/types/data.ts

100 lines
1.6 KiB
TypeScript

import type { Lang } from './i18n.ts';
export type LocalizedText = {
[K in Lang]: string;
};
export interface PersonalInfo {
name: string;
location: string;
avatar: string;
email: string;
github: string;
linkedin: string;
website: string;
twitter: string;
position: LocalizedText;
description: LocalizedText;
about: {
[K in Lang]: string[];
};
stats: {
repositories: number;
commits: string;
contributions: number;
};
skills: {
frontend: string[];
backend: string[];
database: string[];
devops: string[];
mobile: string[];
};
terminal: {
username: string;
};
}
export interface ProjectImage {
bg: string;
hover: string;
text: string;
}
export interface Project {
id: string;
tag?: string;
title: string;
icon: string;
type?: string;
status?: string;
role?: string;
impact?: string;
systemType?: string;
context?: string;
challenges?: string[];
responsibilities?: string[];
outcomes?: string[];
color: string;
image: ProjectImage;
description: string[];
tech: string[];
link: string;
featured?: boolean;
coverImage?: string;
coverImageAlt?: string;
links?: {
github?: string;
demo?: string;
};
}
export interface ServiceIcon {
svg: string;
gradient: string;
}
export interface Service {
title: string;
icon: ServiceIcon;
items: string[];
color: string;
}
export interface UsesGroup {
title: LocalizedText;
items: string[];
}
export interface ContactIntent {
id: string;
title: LocalizedText;
description: LocalizedText;
}
export interface ContactMethod {
label: LocalizedText;
value: string;
href?: string;
}