# 公告（notice.dc）

本节说明公告配置字段、用途、可填写值与渲染行为，并提供完整示例。

`dc` 格式请先阅读：
- [开始使用](../Getting_Started)

## 位置
- 目录：`DLC/info/`
- 文件：`notice.dc`

## 完整示例
```dc
isNoticeEnabled = true
neverShow = false
ShowFrequency = "perlaunchmanager"

[Title]
zh_cn = "公告"
en_us = "Notice"

[Subhead]
enabled = true
zh_cn = "请仔细阅读"
en_us = "Please read carefully"

[ContentUrl]
en_us = "https://example.com/notice-en.md"
zh_cn = "https://example.com/notice-zh.md"

[Contents]
en_us = """# Update Notes

This is fallback content when ContentUrl is unavailable."""
zh_cn = """# 更新说明

这是 ContentUrl 不可用时显示的回退内容。"""
```

---

## 字段说明

#### `isNoticeEnabled`
- **用途**：启用/禁用公告。
- **可填**：布尔。

#### `neverShow`
- **用途**：若为 `true`，公告不再显示。
- **可填**：布尔。

#### `ShowFrequency`
- **用途**：公告显示频率。
- **可填**：字符串。
  - `perlaunchgame`：每次启动游戏（主菜单）显示。
  - `pergamesession`：每个游戏会话打开 DLC 管理器时显示一次。
  - `perlaunchmanager`：每次打开 DLC 管理器都显示。
  - `once`：仅显示一次。
- **默认**：`perlaunchmanager`。

#### `[Title]`
- **用途**：公告标题（多语言）。
- **可填**：对象 `{ zh_cn: "...", en_us: "..." }`。

#### `[Subhead]`
- **用途**：副标题。
- **可填**：对象，包含：
  - `enabled`（布尔）
  - 多语言文本

#### `[Contents]`
- **用途**：公告正文。
- **可填**：多语言字符串。
- **渲染**：支持 Markdown + Minecraft 格式代码。

#### `[ContentUrl]`
- **用途**：在线公告地址（优先级高于 `Contents`）。
- **可填**：
  - 单个 URL 字符串
  - 与 `Contents` 相同结构的多语言对象
- **行为**：
  - 配置后请求成功则渲染在线内容。
  - 请求失败时回退到 `Contents`。
  - 超时：连接 `3s`，读取 `5s`。

---

## Markdown 支持
支持：
- **粗体**、*斜体*、~~删除线~~、++下划线++
- 列表（`-` / `*`）
- 链接 `[text](https://example.com)`
- 分割线 `---`（渲染为灰色横线）

Minecraft 格式代码也支持：
```dc
§a 绿色文本 §r 恢复
```

## 多行文本
建议使用三引号：
```dc
[Contents]
zh_cn = """第1行
第2行

- 项目1
- 项目2"""
```

---

## FAQ
- **为什么解析失败？**
  - 文本内存在非法引号或不完整的多行字符串。
- **为什么链接不能点？**
  - 仅标准 Markdown 链接在公告页可点击。
