# 提示框

提示框用来突出正文里的注意事项。在 Markdown 里直接写，不需要引入任何组件。

## 指令语法

```md
:::tip[先在本地预览]
发布之前，先运行 `pnpm dev` 看一看。
:::
```

> [!TIP]
> **先在本地预览**
>
> 发布之前，先运行 `pnpm dev` 看一看。

方括号里是标题，可以省略。块里面是普通的 Markdown，列表、代码块都可以直接写，不需要每行加前缀。

一共有 5 种类型，默认样式里各有一种颜色：

> [!NOTE]
> `note`：补充说明。

> [!TIP]
> `tip`：建议和技巧。

> [!IMPORTANT]
> `important`：读者必须知道的信息。

> [!WARNING]
> `warning`：可能出问题的地方。

> [!CAUTION]
> `caution`：可能造成损失的操作。

写错类型名，比如 `:::tips`，构建时会报错，避免它悄悄变成一段原样显示的文字。

## GitHub 语法

GitHub 的提示块语法也可以用，适合从 README 搬过来的内容：

```md
> [!WARNING]
> 删除之后无法恢复。
```

> [!WARNING]
> 删除之后无法恢复。

这种写法在 GitHub 和编辑器的预览里也能正常显示，但不支持标题。需要标题时用指令语法。

## 在组件和布局里

在 `.astro` 文件里用 `Callout` 组件，渲染结果和 Markdown 语法完全相同：

```astro
---
import { Callout } from '@minidocs/astro/components';
---

<Callout.Root type="tip">
  <Callout.Title>先在本地预览</Callout.Title>
  <p>发布之前，先运行 <code>pnpm dev</code> 看一看。</p>
</Callout.Root>
```

`type` 是五种类型之一，默认是 `note`。

## 关闭语法

两种语法默认都是打开的，可以分别关闭：

```js
minidocs({
  markdown: {
    directives: false, // :::tip
    alerts: false, // > [!TIP]
  },
});
```

打开指令语法后，正文里像 `10:30`、`a:hover` 这样带冒号的文字仍然会原样显示。
