# 项目

配置站点身份、logo assets 和 favicon links。

`Project` 设置描述文档站点本身。这里主要放影响 metadata、品牌展示和浏览器 chrome
的身份字段。

```json title="theme.config.json"
{
  "name": "Astro Theme Dahlia",
  "description": "A documentation theme for Astro.",
  "logo": {
    "light": "/images/logo-light.svg",
    "dark": "/images/logo-dark.svg",
    "href": "/"
  },
  "favicon": "/favicon.svg"
}
```

Routing、i18n、source links 和 contributors 是独立配置主题。见
[内容路由](/docs/zh-cn/configuration/content-routing/)、[国际化](/docs/zh-cn/configuration/i18n/)
和 [Source](/docs/zh-cn/configuration/source/)。

## Name

`name` 是公开的产品名或项目名。Dahlia 会将它用于站点标题、header brand text、
footer brand text 和 schema.org metadata。

```json
"name": "Astro Theme Dahlia"
```

页面标题由页面 frontmatter title 和这个 `name` 组合而成。

## Description

`description` 是默认站点描述。页面仍然可以通过 frontmatter 覆盖它。

```json
"description": "A documentation theme for Astro."
```

Dahlia 会将这个值用于默认 `<meta name="description">` 和 structured data。

## Logo

`logo` 是可选的。省略时，Dahlia 会渲染内置 Dahlia mark。

默认情况下，Dahlia 会把 logo 当作 mark，并把它和 `name` 一起渲染。当同一个 mark
asset 可以用于所有 theme mode 时，可以使用字符串。

```json
"logo": "/images/logo.svg"
```

light 和 dark mode 需要不同 mark assets 时，使用对象。

```json
"logo": {
  "light": "/images/logo-light.svg",
  "dark": "/images/logo-dark.svg",
  "href": "/"
}
```

如果 logo asset 已经包含项目名，设置 `variant: 'lockup'`。Dahlia 会只渲染图片，
不再额外显示 `name` 文本。默认 `variant` 是 `mark`。

```json
"logo": {
  "light": "/images/logo-lockup-light.svg",
  "dark": "/images/logo-lockup-dark.svg",
  "variant": "lockup"
}
```

`href` 控制 brand link 的目标。省略时，brand 会链接到 `/`。对于 `public/` 中的
本地 assets，Dahlia 会在 Astro config setup 阶段读取图片尺寸，并自动渲染 `width`
和 `height` attributes。只有远程 logo URL 或 Dahlia 无法从 `public/` 读取的路径，
才需要手动添加 `width` 和 `height`。

## Favicon

常见的单 favicon 场景使用字符串即可。

```json
"favicon": "/favicon.svg"
```

项目需要多个 favicon links 时，使用对象或数组。

```json
"favicon": [
  { "href": "/favicon.svg", "type": "image/svg+xml" },
  { "href": "/favicon.ico", "sizes": "32x32" },
  { "href": "/apple-touch-icon.png", "rel": "apple-touch-icon", "sizes": "180x180" }
]
```

每个对象都会渲染为 document head 中的 `<link>`。支持字段包括 `href`、`rel`、
`type`、`sizes`、`media` 和 `color`。
