154 lines
3.7 KiB
Markdown
154 lines
3.7 KiB
Markdown
# 📘 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 元素会正确释放
|
||
- 🧠 内部管理已加载内容的内存占用
|
||
|