/** * Represents the frontmatter for a project */ export type ProjectFrontmatter = { /** * The title of the project */ title: string; /** * The description of the project */ description: string; /** * The tags of the project * (eg. ["JavaScript", "React", "Node.js"]) */ tags?: string[]; /** * The GitHub URL of the project */ githubUrl?: string; /** * The live URL of the project */ liveUrl?: string; /** * Whether the project should be featured on the homepage */ featured?: boolean; /** * The date the project was created or started in W3C format * (this will determine the sort order of the projects) */ timestamp: string; /** * The URL of the project on the website * (eg. https://justin.deal/projects/my-project) */ filename: string; }; /** * Represents the frontmatter for an article */ export type ArticleFrontmatter = { /** * The title of the article */ title: string; /** * The summary description of the article */ description: string; /** * The tags of the article * (eg. ["JavaScript", "React", "Node.js"]) */ tags?: string[]; /** * The estimated time to read the article in minutes */ time: number; /** * Whether the article should be featured on the homepage */ featured: boolean; /** * The timestamp the article was published in W3C format */ timestamp: string; /** * The URL of the article on the website * (eg. https://justin.deal/blog/my-article) */ filename: string; }; /** * Represents a service in the homelab */ export type Service = { /** * The name of the service */ name: string; /** * The URL to the service */ link: string; /** * The URL to the service icon */ icon: string; /** * Alternative text for the service icon */ alt: string; /** * Tags associated with the service for filtering and categorization */ tags?: string[]; }; /** * Represents a category of services in the homelab */ export type ServiceCategory = { [category: string]: Service[]; };