bloodbath/src/types.ts

87 lines
1.6 KiB
TypeScript

export interface SiteConfig {
author: string;
date: {
locale: string | string[] | undefined;
options: Intl.DateTimeFormatOptions;
};
description: string;
lang: string;
ogLocale: string;
sortPostsByUpdatedDate: boolean;
title: string;
webmentions?: {
link: string;
pingback?: string;
};
}
export interface PaginationLink {
srLabel?: string;
text?: string;
url: string;
}
export interface SiteMeta {
articleDate?: string | undefined;
description?: string;
ogImage?: string | undefined;
title: string;
}
/** Webmentions */
export interface WebmentionsFeed {
children: WebmentionsChildren[];
name: string;
type: string;
}
export interface WebmentionsCache {
children: WebmentionsChildren[];
lastFetched: null | string;
}
export interface WebmentionsChildren {
author: Author | null;
content?: Content | null;
"mention-of": string;
name?: null | string;
photo?: null | string[];
published?: null | string;
rels?: Rels | null;
summary?: Summary | null;
syndication?: null | string[];
type: string;
url: string;
"wm-id": number;
"wm-private": boolean;
"wm-property": string;
"wm-protocol": string;
"wm-received": string;
"wm-source": string;
"wm-target": string;
}
export interface Author {
name: string;
photo: string;
type: string;
url: string;
}
export interface Content {
"content-type": string;
html: string;
text: string;
value: string;
}
export interface Rels {
canonical: string;
}
export interface Summary {
"content-type": string;
value: string;
}
export type AdmonitionType = "tip" | "note" | "important" | "caution" | "warning";