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