站点配置
从一个配置入口管理身份、导航、语言、时区与插件。
唯一配置入口
仓库根目录的 inkstack.config.ts 使用 defineSiteConfig() 校验配置。身份、默认语言、导航、时区和默认 origin 由此派生,不要分别在每个页面修改。
import { defineSiteConfig } from '@inkstack/content'
export default defineSiteConfig({
name: 'InkStack · Eric Yuan',
description: '以 Typst、Markdown 与 MDX 书写的纸白技术博客。',
author: 'Eric Yuan',
language: 'zh-CN',
timeZone: 'Asia/Shanghai',
origin: 'https://blog.example.com',
navigation: [
{ href: '/archive', label: '归档' },
{ href: '/docs', label: '文档' },
{ href: '/search', label: '搜索', action: 'search' },
],
plugins: [{ id: 'subscription' }],
})配置对象拒绝未知字段。语言必须是有效 locale,时区必须可被 Intl 接受。导航内部路径以单斜杠开头;页面路径统一由 sitePath() 处理部署 base 与尾斜杠。
页面内容在哪里
| 修改内容 | 位置 |
|---|---|
| 作者身份、导航、默认语言 | inkstack.config.ts |
| 个人介绍与关注方向 | apps/blog/src/data/profile.ts |
| Markdown / MDX 文章 | content/markdown-posts/ |
| Typst 文章 | content/typst-posts/ |
| 产品手册 | content/docs/ |
| 主题 token 与通用组件 | packages/inkstack-theme/src/ |
| 插件注册 | apps/blog/src/plugins/registry.ts |
创作热力图从文章元数据自动生成,不需要填写周活动数组。文章可通过自己的 language 覆盖站点默认语言。
部署地址覆盖
PUBLIC_SITE_URL 覆盖 canonical origin,PUBLIC_BASE_PATH 覆盖部署路径。构建时使用,不是运行时动态设置。
PUBLIC_SITE_URL=https://blog.example.com PUBLIC_BASE_PATH=/ inkstack build
# 项目子路径站点
PUBLIC_SITE_URL=https://example.github.io PUBLIC_BASE_PATH=/InkStack inkstack build环境变量改变后需要重新构建整份产物,不要只修改 HTML 中的链接。部署指南说明两种平台入口,手册、文章、资源与搜索均遵守同一个 base。