6.1 KiB
6.1 KiB
TSL 函数文档标准
本文件是 TSL codegen 函数文档的唯一标准,包含 Markdown 存储格式和 YAML/JSON 录入格式
适用范围:references/codegen/**/*.md 中的函数条目
基本原则
- Markdown 是唯一存储源
- YAML/JSON 用于生成 Markdown
- 函数签名由维护者提供;工具原样输出,不校正签名内容
- 示例输出必须全部写成
//注释,不得把裸结果写成 TSL 语句 - 一个
tsl代码块只放一个独立示例
Markdown 存储格式
每个函数条目按以下顺序书写:
## \函数签名``<!-- tags: 关键词1 关键词2 -->,可选- 函数描述,必填;首个非空内容必须是描述
- 参数表,有参数时必填
- 参数取值说明,可选
返回:类型### 示例和tsl代码块,可选
标签
标签紧跟函数签名,用空格分隔检索关键词:
<!-- tags: 数组 排序 去重 -->
没有关键词时删除整行,不保留空标签
参数表
参数表固定为三列:
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `src` | array | 待处理数组 |
规则:
- 参数名必须与函数签名一致
- 必填参数说明直接写用途
- 可选参数说明以
可选。开头,并说明默认值 - 多类型使用
\|,例如nil\|array - 变参使用
...作为参数名
参数取值
枚举参数在参数表之后、返回类型之前列出:
**mode 取值**
- `0` — 原样返回
- `1` — 去重
返回类型
每个函数必须包含非空返回类型:
返回:array
示例代码
- 代码围栏使用
tsl - 字符串使用直引号
'或" - 注释使用
//,不使用(* *) - 每条语句保留分号
- 单行输出写成
// 输出:<值> - 多行输出第一行写
// 输出:,后续每一行输出都以//开头
多行输出示例:
return demoLines();
// 输出:
// 第一行
// 第二行
完整条目示例
以下函数仅用于说明文档格式,不代表真实 TSL API
## `demoFn(src, mode, factor, ...)`
<!-- tags: 示例 数组 -->
按指定模式处理数组并返回结果
| 参数 | 类型 | 说明 |
| -------- | ---------- | --------------------------------- |
| `src` | array | 待处理数组 |
| `mode` | integer | 处理模式,取值见下。 |
| `factor` | float | 可选。默认 1.0,结果乘以该系数。 |
| `...` | nil\|array | 可选。需要追加处理的其他数组。 |
**mode 取值**
- `0` — 原样返回
- `1` — 去重
返回:array
### 示例
```tsl
src := array(1, 1, 2);
return demoFn(src, 1, 2.0);
// 输出:array(2,4)
```
无参函数省略参数表:
## `demoNow()`
返回示例值
返回:integer
### 示例
```tsl
return demoNow();
// 输出:1
```
录入数据结构
一个录入文件对应一个 Markdown 叶子页
顶层字段:
| 字段 | 必填 | 说明 |
|---|---|---|
module |
是 | Markdown 一级标题内容;不是目录名或文件名。例如 module: 示例 / 数组 生成 # 示例 / 数组 |
path |
是 | 目标 Markdown 在 scope 目录下的相对路径,包含子目录和文件名,使用 / 分隔且不含 .md 后缀。例如 path: base/example 在默认 project scope 下生成 references/codegen/project/base/example.md |
functions |
是 | 非空函数列表 |
函数字段:
| 字段 | 必填 | 说明 |
|---|---|---|
signature |
是 | 维护者提供的完整函数签名 |
desc |
是 | 函数描述,可包含多行 |
tags |
否 | 检索关键词列表;推荐填写,有助于更准确地识别和检索函数 |
params |
有参时 | 参数列表;无参函数省略 |
returns |
是 | 返回类型 |
example |
否 | 不含代码围栏的 TSL 示例 |
参数字段:
| 字段 | 必填 | 说明 |
|---|---|---|
name |
是 | 参数名,与签名一致 |
type |
是 | 参数类型 |
desc |
是 | 参数说明 |
optional |
否 | true 时自动添加 可选。 前缀 |
values |
否 | 枚举值列表,生成参数取值说明 |
values 每项包含:
| 字段 | 必填 | 说明 |
|---|---|---|
value |
是 | 枚举值 |
desc |
是 | 枚举含义 |
YAML 录入格式
YAML 适合包含多行示例的页面。解析 YAML 需要安装 pyyaml
注意:
example使用|块标量- 参数名
...必须加引号 nil|array可直接作为普通字符串值
JSON 录入格式
JSON 使用 Python 标准库解析,无额外依赖
注意:
- JSON 不支持注释
- 多行示例使用
\n - 字符串内部的双引号使用
\" - 结构标点必须使用半角字符