> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vetox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 变量参考

> Vetox 中每个占位符变量，按功能分组——以及为什么有些使用方括号、有些使用花括号。

变量是消息发送时被真实值替换的占位符。

## 两种不同的语法

<Warning>
  **Vetox 使用两种语法，两者不可互换。**

  | 语法      | 使用者              |
  | ------- | ---------------- |
  | `[方括号]` | Welcomer、告别和问候消息 |
  | `{花括号}` | 其他一切             |

  在欢迎消息中的 `{User}` 会按字面输出。在工单消息中的 `[user]` 也会按字面输出。
</Warning>

## 通用规则

<Warning>
  **未知变量会变为空文本而非错误** —— 而且在嵌入中，**标题或值最终为空的字段会被整条消息完全丢弃。**

  这是 "我的嵌入字段一直消失" 最常见的原因。几乎总是拼写错误的变量或该功能中不存在的变量。
</Warning>

## Welcomer、告别与问候

| 变量             | 值                   |
| -------------- | ------------------- |
| `[User]`       | 该成员                 |
| `[ServerName]` | 您服务器的名字             |
| `[UsersCount]` | 新的成员数               |
| `[Inviter]`    | 谁邀请了他们 —— 仅欢迎       |
| `[Code]`       | 使用的邀请码 —— 仅欢迎       |
| `[CountUrl]`   | 一个成员计数图片 URL —— 仅欢迎 |

<Warning>
  **`[Server]` 不是变量。** 它出现在默认欢迎消息中并按字面显示。请将其替换为 `[ServerName]`。
</Warning>

<Note>
  `[Inviter]` 和 `[Code]` 需要 **管理服务器** 权限以便 Vetox 读取邀请。
</Note>

## 工单

Vetox 中最丰富的一组。可在工单嵌入、频道名格式和支持时间消息中使用。

<AccordionGroup>
  <Accordion title="成员" icon="user">
    `{user}` `{mention}` `{username}` `{userid}` `{user.mention}` `{user.name}` `{user.username}` `{user.tag}` `{user.id}`
  </Accordion>

  <Accordion title="工单" icon="ticket">
    `{ticket}` `{number}` `{num}` `{ticket.number}` `{ticket-number}` `{#number}` `{ticket.channel}` `{ticket.channelName}` `{ticket.priority}` `{ticket.closeReason}` `{ticket.openedAt}` `{ticket.createdAt}` `{ticket.closedAt}` `{ticket.users}`
  </Accordion>

  <Accordion title="频道、面板和选项" icon="hashtag">
    `{channel}` `{channel.mention}` `{channel.name}` `{channel.id}` `{panel}` `{panel.name}` `{panel-name}` `{option}` `{option.label}`
  </Accordion>

  <Accordion title="服务器" icon="server">
    `{server}` `{server.name}` `{server.id}` `{server.members}` `{server.icon}` `{server.banner}` `{guild}` `{members}`
  </Accordion>

  <Accordion title="员工与操作" icon="user-shield">
    `{staff}` `{staff.mention}` `{staff.name}` `{claim.user}` `{claim.name}` `{close.user}` `{close.name}` `{close.reason}` `{escalate.reason}` `{escalate.panel}` `{reason}`
  </Accordion>

  <Accordion title="表单回答" icon="clipboard-list">
    `{form.1}`、`{form.2}` …… —— **从 1 起计**，按您的问题出现顺序。

    `{form.Label}` 也可用，使用问题自身的标签。
  </Accordion>

  <Accordion title="时间与统计" icon="clock">
    `{date}` `{time}` `{timestamp}` `{time.created}` `{time.opened}` `{time.claimed}` `{time.closed}` —— 每个都还接受 `.age`。

    `{statistics.tickets.open}` `{statistics.tickets.created}` `{statistics.tickets.closed}` `{statistics.tickets.claimed}` `{statistics.tickets.averageRating}`
  </Accordion>

  <Accordion title="支持时间" icon="business-time">
    `{supportHours.status}` `{supportHours.nextOpen}` `{supportHours.nextOpenTime}` `{supportHours.nextOpenRelative}` `{supportHours.closesAt}` `{supportHours.closesAtTime}`
  </Accordion>
</AccordionGroup>

### 修饰符

工单变量接受形如 `{variable?modifier=value}` 的修饰符：`upper`、`lower`、`capitalize`、`truncate`、`slice`、`padleft`、`padright`、`replace`、`fallback`、`date`、`timestamp`、`math`、`ordinal`、`join`、`if`。

<Tip>
  `{user.name?upper}` 让名字全部大写。`{ticket.closeReason?fallback=No reason given}` 避免空字段被丢弃 —— 这是修复消失的嵌入字段的最佳办法。
</Tip>

## 计数

`{count}` `{user}` `{record}` —— 加上重置和保存消息中的 `{start}` 与 `{savesLeft}`。

<Warning>
  `{server}` 有提供但 **始终渲染为空**。请直接键入您服务器的名字。
</Warning>

## 精选留言板

`{author}` `{stars}` `{channel}` `{link}` `{content}` `{emoji}`

## 自助角色

`[Role]` —— 在私信通知中，为角色的名字。

## 抽奖模板

`{prize}` `{winners}` `{host}` `{endsAt}` `{id}` `{description}` `{requiredRole}` `{minAccountAge}` `{entryCount}`

## 通知

每个平台有自己的一套。在另一平台上使用某平台的变量会解析为空。

<AccordionGroup>
  <Accordion title="Twitch" icon="twitch">
    `{streamer.name}` `{streamer.url}` `{streamer.avatar}`

    仅直播中：`{stream.title}` `{stream.game}` `{stream.viewers}` `{stream.thumbnail}`
  </Accordion>

  <Accordion title="Kick" icon="tower-broadcast">
    `{streamer.name}` `{streamer.url}` `{streamer.avatar}`

    仅直播中：`{stream.title}` `{stream.category}` `{stream.viewers}` `{stream.thumbnail}`

    注意是 `{stream.category}`，不是 Twitch 的 `{stream.game}`。
  </Accordion>

  <Accordion title="YouTube" icon="youtube">
    `{channel.name}` `{channel.avatar}` `{video.title}` `{video.url}` `{video.thumbnail}` `{video.type}`
  </Accordion>

  <Accordion title="Reddit" icon="reddit">
    `{post.title}` `{post.url}` `{post.author}` `{post.content}` `{post.flair}` `{post.thumbnail}` `{subreddit.name}` `{subreddit.url}` `{subreddit.icon}`
  </Accordion>

  <Accordion title="Bluesky" icon="cloud">
    `{post.text}` `{post.url}` `{post.image}` `{post.likes}` `{author.name}` `{author.handle}` `{author.avatar}`
  </Accordion>

  <Accordion title="Steam" icon="steam">
    `{news.title}` `{news.url}` `{news.content}` `{news.category}` `{news.author}` `{game.name}` `{game.image}`
  </Accordion>

  <Accordion title="RSS" icon="rss">
    `{item.title}` `{item.url}` `{item.description}` `{item.author}` `{feed.name}` `{feed.url}`
  </Accordion>

  <Accordion title="播客" icon="podcast">
    可用：`{episode.title}` `{episode.url}` `{episode.description}` `{podcast.name}`

    <Warning>
      `{episode.duration}`、`{podcast.author}` 和 `{podcast.artwork}` 有提供但 **从不生成值**。仅由它们构建的字段会被丢弃。
    </Warning>
  </Accordion>
</AccordionGroup>

## 无效的变量

<Warning>
  已确认不生效。请避免使用：

  | 变量                                        | 位置                    | 行为                          |
  | ----------------------------------------- | --------------------- | --------------------------- |
  | `[Server]`                                | Welcomer              | 不是变量 —— 按字面输出               |
  | `{server}`                                | 计数里程碑                 | 始终为空                        |
  | `{episode.duration}`                      | 播客                    | 始终为空                        |
  | `{podcast.author}`                        | 播客                    | 始终为空                        |
  | `{podcast.artwork}`                       | 播客                    | 通常为空                        |
  | `{username}`、`{server.name}`、`{nickname}` | **申请工作流操作**           | 始终为空 —— 在私信消息中可用，但在操作模板中不可用 |
  | `{stream.*}`                              | Twitch/Kick **离线** 公告 | 为空；仅限直播中                    |
</Warning>

<Card title="疑难解答" icon="wrench" horizontal href="/zh-CN/help/troubleshooting">
  当消息完全没有到达时。
</Card>
