Files
2026-06-02 10:26:44 +08:00

154 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📘 MarkdownDisplayToolkit Md转换模块
**核心功能**
- 🌐 支持从网络下载 Markdown 文本数据
- 🧱 自动按标题分割 Markdown 文本
- 🔄 将 Markdown 转换为 FairyGUI 支持的 UBB 富文本格式
- 🎨 支持标准富文本格式转换
- 🪄 直接在指定 FairyGUI 节点下创建并展示富文本内容
------
## 🚀 快速开始
### 1️⃣ 引用说明
本模块依赖通用模块中的单例基类,使用前需引入通用模块。
### 2️⃣ 基础使用流程
```c#
// 1. 加载 Markdown 内容(尽可能早的拉取)
MarkdownKit.Instance.LoadText("privacy", "https://www.moggyfuzz.com/privacy.md");
MarkdownKit.Instance.LoadText("user", "https://www.moggyfuzz.com/user.md");
// 2. 在 FairyGUI 上展示内容
var color = new Color(159 / 255f, 120 / 255f, 102 / 255f, 1f);
MarkdownKit.Instance.ShowAsRichText(oneFGUIComponent, BisTerm ? "user" : "privacy", color, (success, state) => {
if (success) {
Debug.Log("✅ 内容加载成功!当前状态:" + state);
}
else {
Debug.LogError("❌ 内容加载失败!当前状态:" + state);
}
}, 44);
```
------
## 🛠️ 详细功能说明
### 📥 加载功能
- 使用 `LoadText(string key, string url, int textSize = 40)` 进行加载
- 自动下载,状态可查询(见下方 API)
------
### 📤 内容展示
**参数说明**
| 参数名 | 说明 |
| ---------- | -------------------------------------------------- |
| `parent` | 父节点容器(FairyGUI |
| `key` | 唯一键名,与 `LoadText` 保持一致 |
| `color` | 文本颜色 |
| `callback` | 状态回调 `(bool success, MarkdownTextState state)` |
| `textSize` | (可选)自定义字体大小(默认 40) |
**回调状态说明**
| 状态 | 说明 |
| ------------- | -------------------------- |
| `Complete` | ✅ 内容已加载并展示完成 |
| `Downloading` | 🔄 正在下载中 |
| `Exception` | ⚠️ 下载失败,将自动重试一次 |
------
## 📚 API 参考
### 📑 获取富文本内容
```csharp
List<string> GetText(string key, Action<bool, List<string>> onComplete, int textSize = 40)
```
------
### 🧐 查询当前状态
```csharp
MarkdownTextState GetState(string key)
```
------
### 📦 获取完整数据
```csharp
MarkdownData GetData(string key)
```
**返回字段说明**
- 📎 URL 地址
- 🔁 当前状态
- 📄 原始 Markdown 文本
- ✂️ 分割后的段落列表
- 🎨 转换后的富文本列表
- 🖋️ 文字大小等配置信息
------
## 💡 最佳实践
### ✅ 1. 容器选择
- 推荐使用可滚动的 FairyGUI 容器
- 确保容器有足够的展示空间
------
### ⚠️ 2. 错误处理建议
```csharp
MarkdownKit.Instance.ShowAsRichText(
parent,
"tutorial",
Color.black,
(success, state) => {
if (!success && state == MarkdownTextState.Exception) {
// 显示重试按钮或错误提示
}
}
);
```
------
### 🧑‍🎨 3. 样式定制
```csharp
MarkdownKit.Instance.ShowAsRichText(
scrollPane,
"tutorial",
new Color(0.1f, 0.1f, 0.1f), // 深灰色文字
null,
36 // 更小的文字
);
```
------
## 📌 注意事项
- ⏱ 网络错误会自动重试一次
- 🧹 所有 FairyGUI 元素会正确释放
- 🧠 内部管理已加载内容的内存占用