Files
RedHotRoast-ios/Assets/SGModule/MarkdownKit/README.md
T

154 lines
3.6 KiB
Markdown
Raw Normal View History

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