> For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt.

# 支持矩阵

本页按“默认管线会怎么处理”列出常见构造。**渲染**表示输出结构化 DOM；**占位**表示保留位置但不求值；**降级**表示输出源码卡片并记录诊断；**拦截**表示丢弃危险内容并给出提示；**忽略**表示不进入正文。

启用了 `/expand`、解析函数、`handlers` 或组件覆盖后，具体输出会变化；细节以对应页面为准。

## 综合示例

下面的源码没有配置解析函数，覆盖文本、列表、表格、引用与默认占位：

```tsx preview
import { Wikitext } from "react-wikitext";
import "react-wikitext/styles.css";

const source = `== 文本与列表 ==
'''粗体'''、''斜体'' 与 [[未配置路由的链接]] 都会保留结构。

* 第一项
* 第二项

== 表格与引用 ==
{| class="wikitable"
|-
! 列 A !! 列 B
|-
| 单元格 || 内容<ref>示例引用</ref>
|}

{{Infobox|title=模板占位}}
[[File:Example.png|thumb|图片占位]]`;

export default function Demo() {
  return <Wikitext source={source} lang="zh-CN" />;
}
```

表格用于逐项查状态，示例用于确认整体输出。

## 文本与块

| 构造                      | 默认输出                              | 状态 | 说明                        |
| ----------------------- | --------------------------------- | -- | ------------------------- |
| 段落                      | `<p class="wtr-paragraph">`       | 渲染 | 两个及以上空行分段，单个换行折叠为空格       |
| `'''粗体'''`、`''斜体''`     | `<b>`、`<i>`                       | 渲染 | 同时开启时输出 `<i><b>…</b></i>` |
| `== 标题 ==`、源码 `h1`–`h6` | `<h1>`–`<h6 class="wtr-heading">` | 渲染 | 参与锚点与目录                   |
| `----`                  | `<hr class="wtr-hr">`             | 渲染 |                           |
| 行首空格                    | 普通文本                              | 渲染 | 不提供预格式化语义                 |
| `<!-- 注释 -->`           | 无输出                               | 忽略 |                           |
| `[[Category:…]]`        | 文末分类底栏                            | 渲染 | 不进入正文；排序键不显示              |
| `__TOC__`、`__NOTOC__`   | 目录控制                              | 渲染 | 只影响目录，不产生正文               |
| 首行 `#REDIRECT`          | 重定向横幅                             | 渲染 | 跳过后续正文，不自动加载目标页           |

## 列表与表格

| 构造                  | 默认输出                                  | 状态 | 说明                             |
| ------------------- | ------------------------------------- | -- | ------------------------------ |
| `*`、`#`             | 嵌套 `<ul>` / `<ol>`                    | 渲染 | 续行并入当前列表项                      |
| `;`、`:`             | `<dl>` / `<dt>` / `<dd>`              | 渲染 | 支持 `; term : definition` 与紧凑写法 |
| `{\| … \|}`         | `<table><caption>…</caption><tbody>…` | 渲染 | 单元格使用 `<th>` / `<td>`          |
| 表格、行、单元格属性          | 白名单属性                                 | 渲染 | `style` 仅保留安全子集；事件属性、`id` 丢弃   |
| `colspan`、`rowspan` | 逻辑网格 + 填充单元格                          | 渲染 | 范围限制在表格内；填充单元格带兼容类名            |
| wikitext 嵌套表格       | 源码卡片                                  | 降级 | 整表降级；HTML `<table>` 嵌套可以渲染     |
| 表格内 `data-*`        | 保留安全值                                 | 渲染 | 拒绝库保留的 `data-node-id` 等名称      |

## 链接与媒体

| 构造                            | 默认输出                            | 状态 | 说明                                |
| ----------------------------- | ------------------------------- | -- | --------------------------------- |
| `[[Page]]`                    | 不可导航的 `<span class="wtr-link">` | 渲染 | `resolveLink` 返回 `href` 时变为 `<a>` |
| `[[Page\|label]]`             | 同上，标签为 `label`                  | 渲染 | 命名空间前缀按解析结果展示                     |
| `[https://example.com label]` | `<a>`，带 `rel` 与 `target`        | 渲染 | 只允许 `http:`、`https:`、`mailto:`    |
| 裸外链 `https://…`               | `<a>`，标签为 URL                   | 渲染 |                                   |
| `[https://example.com]`       | `<a>`，标签为 `[N]`                 | 渲染 | 编号独立于引用                           |
| `[[File:…]]`                  | `<span>` 或 `<figure>` 占位        | 占位 | `resolveImage` 授权后才生成 `<img>`     |
| `<gallery>`                   | 图片标签占位集合                        | 占位 | 不加载图片                             |
| `<math>`                      | `<code>` 公式源码占位                 | 占位 | 不引入 KaTeX                         |
| `<imagemap>`                  | 块级源码卡片                          | 降级 | 不生成可点击热区                          |

## 模板与函数

| 构造                       | 默认输出                                   | 状态 | 说明                                     |
| ------------------------ | -------------------------------------- | -- | -------------------------------------- |
| `{{Template\|…}}`        | `<details class="wtr-template">` 或行内徽标 | 占位 | 列出参数；文案来自 `labels.templateNotExpanded` |
| 解析器函数 `{{#if:…}}`        | 占位结构                                   | 占位 | 明确标记为未求值                               |
| 参数 `{{{name\|default}}}` | 参数名与默认值                                | 占位 |                                        |
| `/expand` 支持的模板与函数       | 展开后的源码重新解析                             | 渲染 | 展开失败保留的调用仍按占位渲染                        |
| `#invoke`、Lua、`subst`    | 保留原文                                   | 占位 | 不执行，并产生诊断                              |

模板、函数与参数中的魔术字不参与目录与分类判断。

## HTML 与扩展标签

| 构造                                   | 默认输出                                      | 状态 | 说明                                      |
| ------------------------------------ | ----------------------------------------- | -- | --------------------------------------- |
| 行内 HTML（`b`、`i`、`u`、`span`、`code` 等） | 对应元素                                      | 渲染 | 属性只保留白名单                                |
| 块级 HTML（`div`、`p`、`blockquote` 等）    | 对应元素                                      | 渲染 | 可以包裹标题，目录位置按其所在块计算                      |
| 空元素（`br`、`wbr`、`hr`）                 | 对应元素                                      | 渲染 |                                         |
| `meta`、`link`                        | 无输出                                       | 忽略 |                                         |
| `script`、`style`、`iframe`、表单控件、`svg` | 文本转义，或被拦截时的可读提示                           | 拦截 | 默认配置不解析这些标签，源码按纯文本转义；被配置纳入 HTML 解析时整对丢弃 |
| 未知但非危险标签                             | 源码卡片                                      | 降级 | 不渲染为真实元素                                |
| `<nowiki>`                           | 纯文本                                       | 渲染 | 不解析链接或模板                                |
| `<pre>`                              | 保留空白                                      | 渲染 |                                         |
| `<ref>`                              | `<sup class="reference wtr-ref">` + 分组引用区 | 渲染 | 命名引用复用，`group` 分组；重复定义产生诊断              |
| `<references>`                       | 占位                                        | 渲染 | 对应分组引用区放到占位处；无占位时仍追加文末                  |
| `<syntaxhighlight>`                  | `<pre><code class="language-*">` 原文       | 渲染 | 输出语言 class，不接语法高亮                       |
| 其他受支持的扩展                             | 按标签处理                                     | 渲染 | `semanticComponents.extension` 可覆盖      |

## 页面级结构

| 结构        | 行为                                                               |
| --------- | ---------------------------------------------------------------- |
| 目录        | 阈值可通过 `toc` 调整；`__TOC__` 指定位置，`__FORCETOC__` 强制生成，`__NOTOC__` 优先 |
| 引用区       | 默认位于正文之后、分类底栏之前；`<references/>` 可指定分组位置                          |
| 分类        | 汇总到文末 `div.catlinks.wtr-categories`                              |
| 重定向       | 首行 `#REDIRECT` 渲染横幅并跳过正文                                         |
| 无法识别的语义节点 | 源码卡片 + 诊断，不中断整页                                                  |

## 如何确认实际行为

1. 检查 `document.diagnostics` 的 `stage` 与 `code`。
2. 用 `/ast` 的 `flattenNodes` 查看语义树，并与准备结果中的 HAST 对照。
3. 用 `labels` 区分“未求值”“已拦截”“未知结构”等占位文案。
4. 以 `src/` 与 `tests/` 为准；本页随默认行为更新。

行为细节与原因见[渲染行为](/zh/guide/rendering.md)；安全相关的拦截规则见[安全模型](/zh/guide/security.md)。
