基础配置

base

  • Type: string
  • Default: /

站点将被部署到的基础 URL。如果您计划将站点部署到域的子目录中,您可以将其设置为子目录。

例如,如果您计划将站点部署到 https://foo.github.io/bar/,那么您应该将 base 设置为 "/bar/"

js
import { defineConfig } from 'athen';

export default defineConfig({
  base: '/bar/'
});

title

  • Type: string
  • Default: "athen"

站点的标题。这将用作主页的标题和 HTML 文档的标题。

description

  • Type: string
  • Default: ""

站点的描述。这将用作主页的描述和 HTML 文档的描述。

icon

  • Type: string
  • Default: ""

站点的图标。这将用作主页的图标和 HTML 文档的图标。Athen 将在 public 目录中找到您的图标。

srcDir

  • Type: string
  • Default: undefined

您的 markdown 页面所在的目录。如果未定义,它将使用项目根目录或您传递给 CLI 的目录。

outDir

  • Type: string
  • Default: .athen/dist

构建站点的输出目录。

tempDir

  • Type: string
  • Default: undefined

中间构建文件的临时目录。

lang

  • Type: string
  • Default: "en-US"

站点的默认语言。

langs

  • Type: string[]
  • Default: undefined

站点支持的语言数组。

  • Type: HeadConfig[]
  • Default: []

要注入到 HTML <head> 中的自定义标签。

js
import { defineConfig } from 'athen';

export default defineConfig({
  head: [
    ['meta', { name: 'theme-color', content: '#3eaf7c' }]
  ]
});

colorScheme

  • Type: boolean
  • Default: true

是否显示暗黑模式/浅色模式切换按钮。

enableSpa

  • Type: boolean
  • Default: undefined

在生产模式下启用单页应用路由。

  • Type: boolean
  • Default: false

存在死链时是否使构建失败。如果设置为 true,则构建不会失败。

themeConfig

  • Type: ThemeConfig
  • Default: {}

主题配置。有关默认主题配置,请参见 Theme Config

vite

  • Type: ViteConfiguration
  • Default: {}

传递给 Vite 的自定义配置。此配置将与内部 Vite 配置合并。

route

  • Type: RouteOptions
  • Default: {}

自定义路由扫描的配置。你可以使用 includeexclude 来控制哪些 Markdown 文件生成页面路由。

ts
import { defineConfig } from 'athen';

export default defineConfig({
  route: {
    // 忽略 secret 目录下的所有文件以及特定文件
    exclude: ['**/secret/**', 'drafts.md'],
    // 仅包含指定文件类型(可选)
    include: ['**/*.{md,mdx}']
  }
});

plugins

  • Type: PluginOption[]
  • Default: []

自定义 Vite 或 Athen 插件。如果插件与内置插件共享相同的 name,它将覆盖内置插件。

theme

  • Type: string
  • Default: undefined

自定义主题包名称或相对/绝对路径。如果未提供,将使用内置默认主题。

instances

  • Type: Array<{ root: string; base?: string; outDir?: string; }>
  • Default: []

在单个存储库中的多个站点实例。

  • Type: SearchConfig | boolean
  • Default: true

是否启用搜索。您可以配置搜索提供程序或完全禁用它:

js
import { defineConfig } from 'athen';

export default defineConfig({
  search: {
    provider: 'flex',
    searchOptions: { limit: 10, suggest: true }
  }
});

analytics

  • Type: Record<string, any> | false
  • Default: false

配置分析集成。传递 false 会禁用内置分析。

ts
import { defineConfig } from 'athen';

export default defineConfig({
  analytics: {
    google: { id: 'G-XXXX' },
    baidu: { id: 'xxxx' },
    umami: { id: 'uuid', src: 'https://umami.example.com/script.js' }
  }
});