You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
3.6 KiB
151 lines
3.6 KiB
import type { GiscusProps, Theme as GiscusTheme } from '@giscus/react';
|
|
import type { Theme as ShikiTheme } from 'shiki';
|
|
|
|
/**
|
|
* This type represents the configuration of the blog.
|
|
* It should not be edited, unless you wish to add additional configurations.
|
|
*/
|
|
export type BlogConfig = {
|
|
/**
|
|
* The URL of the blog.
|
|
* You can use localhost while developing, but make sure to change it to the actual URL when deploying.
|
|
* Should not include a trailing slash.
|
|
* @example 'https://edu.krasnikov.pro'
|
|
* @example 'http://localhost:3000'
|
|
*/
|
|
url: string;
|
|
/**
|
|
* The title of the blog. Visible in the header and the OG image.
|
|
* Also used as the prefix for the title of each page.
|
|
*/
|
|
title: string;
|
|
/**
|
|
* If you want to keep the styling of the title (i.e ‹xxx/yyy›),
|
|
* pass the two parts separately.
|
|
* @example ['kfir', 'blog']
|
|
*/
|
|
titleParts?: [string, string];
|
|
/**
|
|
* The name of the blog's author. Visible in the footer.
|
|
*/
|
|
author: string;
|
|
/**
|
|
* The two main pages of the blog, the home page and the posts page.
|
|
* To add a markdown page (e.g. about, contact, etc.),
|
|
* simply add a new file to the `content/pages` directory.
|
|
*/
|
|
pages: {
|
|
home: {
|
|
/**
|
|
* The title of the home page (the part after the pipe).
|
|
* When omitted, only the blog's name is used (without the pipe).
|
|
* @example 'Home' --> '‹blog/name› | Home'
|
|
* @example undefined --> '‹blog/name›'
|
|
*/
|
|
title?: string;
|
|
/**
|
|
* The description of the home page.
|
|
*/
|
|
description: string;
|
|
};
|
|
posts: {
|
|
/**
|
|
* The URL of the posts page.
|
|
* If you want to use a different URL,
|
|
* make sure to rename the `app/posts` directory to match.
|
|
*/
|
|
url: `/${string}`;
|
|
/**
|
|
* The title of the posts page (the part after the pipe).
|
|
*/
|
|
title: string;
|
|
/**
|
|
* The description of the posts page.
|
|
*/
|
|
description: string;
|
|
};
|
|
informatics: {
|
|
/**
|
|
* The URL of the posts page.
|
|
* If you want to use a different URL,
|
|
* make sure to rename the `app/posts` directory to match.
|
|
*/
|
|
url: `/posts/${string}`;
|
|
/**
|
|
* The title of the posts page (the part after the pipe).
|
|
*/
|
|
title: string;
|
|
/**
|
|
* The description of the posts page.
|
|
*/
|
|
description: string;
|
|
};
|
|
};
|
|
/**
|
|
* Customize the blog's theme.
|
|
*/
|
|
theme?: {
|
|
/**
|
|
* The accent color to use.
|
|
*/
|
|
accentColor?: {
|
|
/**
|
|
* @default #be123c // rose-700
|
|
*/
|
|
light?: `#${string}`;
|
|
/**
|
|
* @default #fda4af // rose-300
|
|
*/
|
|
dark?: `#${string}`;
|
|
};
|
|
/**
|
|
* The themes to use for the code blocks.
|
|
* Must be a valid {@link ShikiTheme}.
|
|
*/
|
|
codeBlockTheme?: {
|
|
/**
|
|
* @default 'github-light'
|
|
*/
|
|
light: ShikiTheme;
|
|
/**
|
|
* @default 'github-dark'
|
|
*/
|
|
dark: ShikiTheme;
|
|
};
|
|
};
|
|
/**
|
|
* Giscus comment sections configuration.
|
|
* @see https://giscus.app
|
|
*/
|
|
giscus: Omit<GiscusProps, 'theme'> & {
|
|
/**
|
|
* The themes to use in the Giscus comment sections.
|
|
* Must be a valid {@link GiscusTheme}.
|
|
*/
|
|
theme?: {
|
|
/**
|
|
* @default 'light'
|
|
*/
|
|
light?: GiscusTheme;
|
|
/**
|
|
* @default 'dark_dimmed'
|
|
*/
|
|
dark?: GiscusTheme;
|
|
};
|
|
};
|
|
/**
|
|
* Footer links.
|
|
*/
|
|
footerLinks?: {
|
|
twitter?: string;
|
|
github?: string;
|
|
linkedin?: string;
|
|
email?: string;
|
|
storybook?: string;
|
|
buyMeAPizza?: string;
|
|
};
|
|
/**
|
|
* Topics to show in the hero section typing animation.
|
|
*/
|
|
topics: string[];
|
|
};
|
|
|