API
Astro Modular •
Version 1.1.0 •
本文档提供了 Astro Modular 主题 API、实用程序和配置选项的完整参考。
内容集合
文章集合
interface PostData {
title: string;
description: string;
date: Date;
tags?: string[];
draft?: boolean;
image?: string;
imageAlt?: string;
imageOG?: boolean;
hideCoverImage?: boolean;
hideTOC?: boolean;
targetKeyword?: string;
noIndex?: boolean;
}
页面集合
interface PageData {
title: string;
description: string;
draft?: boolean;
lastModified?: Date;
image?: string;
imageAlt?: string;
hideCoverImage?: boolean;
hideTOC?: boolean;
noIndex?: boolean;
}
项目集合
interface ProjectData {
title: string;
description: string;
date: Date;
categories?: string[];
repositoryUrl?: string;
demoUrl?: string;
status?: string; // 任何字符串值 - "completed", "in-progress", "On Hold" 等
image?: string;
imageAlt?: string;
hideCoverImage?: boolean;
hideTOC?: boolean;
draft?: boolean;
noIndex?: boolean;
featured?: boolean;
}
文档集合
interface DocumentationData {
title: string;
description: string;
category: string;
order: number;
lastModified?: Date;
version?: string;
image?: string;
imageAlt?: string;
hideCoverImage?: boolean;
hideTOC?: boolean;
draft?: boolean;
noIndex?: boolean;
showTOC?: boolean;
featured?: boolean;
}
特殊集合
interface SpecialData {
title: string;
description: string;
hideTOC?: boolean;
}
特殊页面:
home.md- 主页简介内容404.md- 404 错误页面内容posts.md- 文章索引页面(仅标题和描述)projects.md- 项目索引页面内容docs.md- 文档索引页面内容
配置 API
网站配置接口
interface SiteConfig {
// 网站信息
site: string;
title: string;
description: string;
author: string;
language: string;
// 全局设置
theme: "minimal" | "oxygen" | "atom" | "ayu" | "catppuccin" | "charcoal" | "dracula" | "everforest" | "flexoki" | "gruvbox" | "macos" | "nord" | "obsidian" | "rose-pine" | "sky" | "solarized" | "things" | "custom";
customThemeFile?: string;
availableThemes: "all" | Array<ThemeName>;
fonts: {
source: "local" | "cdn";
families: {
body: string;
heading: string;
mono: string;
};
display: "swap" | "fallback" | "optional";
};
layout: {
contentWidth: string;
};
tableOfContents: {
enabled: boolean;
depth: number;
};
footer: {
enabled: boolean;
content: string;
showSocialIconsInFooter: boolean;
};
hideScrollBar: boolean;
scrollToTop: boolean;
featureButton: "mode" | "graph" | "theme" | "none";
seo: {
defaultOgImageAlt: string;
};
deployment: {
platform: "netlify" | "vercel" | "github-pages";
};
// 命令面板
commandPalette: {
enabled: boolean;
shortcut: string;
placeholder: string;
search: {
posts: boolean;
pages: boolean;
projects: boolean;
docs: boolean;
};
sections: {
quickActions: boolean;
pages: boolean;
social: boolean;
};
quickActions: {
enabled: boolean;
toggleMode: boolean;
graphView: boolean;
changeTheme: boolean;
};
};
// 个人资料图片
profilePicture: {
enabled: boolean;
image: string;
alt: string;
size: "sm" | "md" | "lg";
url?: string;
placement: "footer" | "header";
style: "circle" | "square" | "none";
};
// 导航
navigation: {
showNavigation: boolean;
style: "minimal" | "traditional";
showMobileMenu: boolean;
pages: Array<{ title: string; url: string }>;
social: Array<{ title: string; url: string; icon: string }>;
};