From 473012fa6f6a05ecb324d43f1e082c519572662d Mon Sep 17 00:00:00 2001 From: fujie Date: Sat, 21 Feb 2026 17:50:44 +0800 Subject: [PATCH] feat(actions): release Smart Mind Map v1.0.0 - a milestone with Native i18n & Direct Embed --- .agent/workflows/plugin-development.md | 27 +- .git-worktrees/feature-copilot-cli | 1 + .github/copilot-instructions.md | 37 +- docs/plugins/actions/index.md | 2 +- docs/plugins/actions/index.zh.md | 2 +- docs/plugins/actions/smart-mind-map.md | 6 +- docs/plugins/actions/smart-mind-map.zh.md | 6 +- plugins/actions/smart-mind-map/README.md | 18 +- plugins/actions/smart-mind-map/README_CN.md | 18 +- .../actions/smart-mind-map/smart_mind_map.py | 1446 ++++++++++++++--- .../smart-mind-map/smart_mind_map_cn.png | Bin 220698 -> 0 bytes 11 files changed, 1253 insertions(+), 310 deletions(-) create mode 160000 .git-worktrees/feature-copilot-cli delete mode 100644 plugins/actions/smart-mind-map/smart_mind_map_cn.png diff --git a/.agent/workflows/plugin-development.md b/.agent/workflows/plugin-development.md index 31d4ca5..3eee058 100644 --- a/.agent/workflows/plugin-development.md +++ b/.agent/workflows/plugin-development.md @@ -12,11 +12,11 @@ Reference: `.github/copilot-instructions.md` ### Bilingual Requirement -Every plugin **MUST** have bilingual versions for both code and documentation: +Every plugin **MUST** have a single internationalized code file and bilingual documentation: -- **Code**: - - English: `plugins/{type}/{name}/{name}.py` - - Chinese: `plugins/{type}/{name}/{name_cn}.py` (or `中文名.py`) +- **Code (i18n)**: + - `plugins/{type}/{name}/{name}.py` + - The single `.py` file must implement internal i18n (e.g., using `navigator.language` or backend headers) to support multiple languages natively, rather than splitting into separate files. - **README**: - English: `plugins/{type}/{name}/README.md` - Chinese: `plugins/{type}/{name}/README_CN.md` @@ -81,14 +81,13 @@ Reference: `.github/workflows/release.yml` - **Release Information Compliance**: When a release is requested, the agent must generate a standard release summary (English commit title + bilingual bullet points) as defined in Section 3 & 5. - **Default Action (Prepare Only)**: When performing a version bump or update, the agent should update all files locally but **STOP** before committing. Present the changes and the **proposed Release/Commit Message** to the user and wait for explicit confirmation to commit/push. - **Consistency**: When bumping, update version in **ALL** locations: - 1. English Code (`.py`) - 2. Chinese Code (`.py`) - 3. English README (`README.md`) - 4. Chinese README (`README_CN.md`) - 5. Docs Index (`docs/.../index.md`) - 6. Docs Index CN (`docs/.../index.zh.md`) - 7. Docs Detail (`docs/.../{name}.md`) - 8. Docs Detail CN (`docs/.../{name}.zh.md`) + 1. Code (`.py`) + 2. English README (`README.md`) + 3. Chinese README (`README_CN.md`) + 4. Docs Index (`docs/.../index.md`) + 5. Docs Index CN (`docs/.../index.zh.md`) + 6. Docs Detail (`docs/.../{name}.md`) + 7. Docs Detail CN (`docs/.../{name}.zh.md`) ### Automated Release Process @@ -120,7 +119,7 @@ When the user confirms a release, the agent **MUST** follow these content standa - Before committing, present a "Release Draft" containing: - **Title**: e.g., `Release v0.1.1: [Plugin Name] - [Brief Summary]` - **Changelog**: English-only list of commits since the last release, including hashes (e.g., `896de02 docs(config): reorder antigravity model alias example`). - - **Verification Status**: Confirm all 8+ files have been updated and synced. + - **Verification Status**: Confirm all 7+ files have been updated and synced. 3. **Internal Documentation**: Ensure "What's New" sections in READMEs and `docs/` match exactly the changes being released. ### Pull Request Check @@ -134,7 +133,7 @@ When the user confirms a release, the agent **MUST** follow these content standa Before committing: -- [ ] Code is bilingual and functional? +- [ ] Code is internal i18n supported (`.py`) and fully functional? - [ ] Docstrings have updated version? - [ ] READMEs are updated and bilingual? - [ ] **Key Capabilities** in READMEs still cover all legacy core features + new features? diff --git a/.git-worktrees/feature-copilot-cli b/.git-worktrees/feature-copilot-cli new file mode 160000 index 0000000..1bbddb2 --- /dev/null +++ b/.git-worktrees/feature-copilot-cli @@ -0,0 +1 @@ +Subproject commit 1bbddb2222969f3ac72a7f5e51fb55c352c5569f diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index c9d8afb..2012c4e 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -8,27 +8,26 @@ This document defines the standard conventions and best practices for OpenWebUI ## 🏗️ 项目结构与命名 (Project Structure & Naming) -### 1. 双语版本要求 (Bilingual Version Requirements) +### 1. 语言与代码规范 (Language & Code Requirements) #### 插件代码 (Plugin Code) -每个插件必须提供两个版本: +每个插件**必须**采用单文件国际化 (i18n) 设计。严禁为不同语言创建独立的源代码文件(如 `_cn.py`)。 -1. **英文版本**: `plugin_name.py` - 英文界面、提示词和注释 -2. **中文版本**: `plugin_name_cn.py` - 中文界面、提示词和注释 +1. **单代码文件**: `plugins/{type}/{name}/{name}.py` +2. **内置 i18n**: 必须在代码中根据前端传来的用户语言(如 `__user__` 中的 `language` 或通过 `get_user_language` 脚本读取)动态切换界面显示、提示词和状态日志。 -示例: +示例目录结构: ``` plugins/actions/export_to_docx/ -├── export_to_word.py # English version -├── export_to_word_cn.py # Chinese version -├── README.md # English documentation -└── README_CN.md # Chinese documentation +├── export_to_word.py # 单个代码文件,内置多语言支持 +├── README.md # 英文文档 (English documentation) +└── README_CN.md # 中文文档 ``` #### 文档 (Documentation) -每个插件目录必须包含双语 README 文件: +尽管代码是合一的,但为了市场展示和 SEO,每个插件目录仍**必须**包含双语 README 文件: - `README.md` - English documentation - `README_CN.md` - 中文文档 @@ -58,12 +57,10 @@ plugins/actions/export_to_docx/ plugins/ ├── actions/ # Action 插件 (用户触发的功能) │ ├── my_action/ -│ │ ├── my_action.py # English version -│ │ ├── 我的动作.py # Chinese version +│ │ ├── my_action.py # 单文件,内置 i18n │ │ ├── README.md # English documentation │ │ └── README_CN.md # Chinese documentation -│ ├── ACTION_PLUGIN_TEMPLATE.py # English template -│ ├── ACTION_PLUGIN_TEMPLATE_CN.py # Chinese template +│ ├── ACTION_PLUGIN_TEMPLATE.py # 通用 i18n 模板 │ └── README.md ├── filters/ # Filter 插件 (输入处理) │ └── ... @@ -474,7 +471,7 @@ async def get_user_language(self): #### 适用场景与引导 (Usage Guidelines) -- **语言适配**: 动态获取界面语言 (`ru-RU`, `zh-CN`) 自动切换输出语言。 +- **语言适配**: 动态获取界面语言 (`ru-RU`, `zh-CN`) 自动切换输出语言和 UI 翻译。这对于单文件 i18n 插件至关重要。 - **时区处理**: 获取 `Intl.DateTimeFormat().resolvedOptions().timeZone` 处理时间。 - **客户端存储**: 读取 `localStorage` 中的用户偏好设置。 - **硬件能力**: 获取 `navigator.clipboard` 或 `navigator.geolocation` (需授权)。 @@ -932,8 +929,7 @@ Filter 实例是**单例 (Singleton)**。 ### 1. ✅ 开发检查清单 (Development Checklist) -- [ ] 创建英文版插件代码 (`plugin_name.py`) -- [ ] 创建中文版插件代码 (`plugin_name_cn.py`) +- [ ] 代码实现了内置 i18n 逻辑 (`.py`) - [ ] 编写英文 README (`README.md`) - [ ] 编写中文 README (`README_CN.md`) - [ ] 包含标准化文档字符串 @@ -941,7 +937,7 @@ Filter 实例是**单例 (Singleton)**。 - [ ] 使用 Lucide 图标 - [ ] 实现 Valves 配置 - [ ] 使用 logging 而非 print -- [ ] 测试双语界面 +- [ ] 测试 i18n 界面适配 - [ ] **一致性检查**: 确保文档、代码、README 同步 - [ ] **README 结构**: - **Key Capabilities** (英文) / **核心功能** (中文): 必须包含所有核心功能 @@ -988,7 +984,7 @@ Filter 实例是**单例 (Singleton)**。 2. **变更列表 (Bilingual Changes)**: - 英文: Clear descriptions of technical/functional changes. - 中文: 清晰描述用户可见的功能改进或修复。 -3. **核查状态 (Verification)**: 确认版本号已在相关 8+ 处位置同步更新。 +3. **核查状态 (Verification)**: 确认版本号已在相关 7+ 处位置同步更新(1 个代码文件 + 2 个 README + 4 个 Docs 文件)。 ### 4. 🤖 Git 提交与推送规范 (Git Operations & Push Rules) @@ -1004,8 +1000,7 @@ Filter 实例是**单例 (Singleton)**。 ## 📚 参考资源 (Reference Resources) -- [Action 插件模板 (英文)](plugins/actions/ACTION_PLUGIN_TEMPLATE.py) -- [Action 插件模板 (中文)](plugins/actions/ACTION_PLUGIN_TEMPLATE_CN.py) +- [Action 插件模板](plugins/actions/ACTION_PLUGIN_TEMPLATE.py) - [插件开发指南](plugins/actions/PLUGIN_DEVELOPMENT_GUIDE.md) - [Lucide Icons](https://lucide.dev/icons/) - [OpenWebUI 文档](https://docs.openwebui.com/) diff --git a/docs/plugins/actions/index.md b/docs/plugins/actions/index.md index 676195c..48e5d38 100644 --- a/docs/plugins/actions/index.md +++ b/docs/plugins/actions/index.md @@ -23,7 +23,7 @@ Actions are interactive plugins that: Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations. - **Version:** 0.9.2 + **Version:** 1.0.0 [:octicons-arrow-right-24: Documentation](smart-mind-map.md) diff --git a/docs/plugins/actions/index.zh.md b/docs/plugins/actions/index.zh.md index d41ab5b..708f17b 100644 --- a/docs/plugins/actions/index.zh.md +++ b/docs/plugins/actions/index.zh.md @@ -23,7 +23,7 @@ Actions 是交互式插件,能够: 智能分析文本并生成交互式、精美的思维导图。 - **版本:** 0.8.0 + **版本:** 1.0.0 [:octicons-arrow-right-24: 查看文档](smart-mind-map.md) diff --git a/docs/plugins/actions/smart-mind-map.md b/docs/plugins/actions/smart-mind-map.md index f175ec3..7de5ed6 100644 --- a/docs/plugins/actions/smart-mind-map.md +++ b/docs/plugins/actions/smart-mind-map.md @@ -1,7 +1,7 @@ # Smart Mind Map Action -v0.9.2 +v1.0.0 Intelligently analyzes text content and generates interactive mind maps for better visualization and understanding. @@ -17,7 +17,8 @@ The Smart Mind Map plugin transforms text content into beautiful, interactive mi - :material-gesture-swipe: **Rich Controls**: Zoom, reset view, expand level selector (All/2/3) and fullscreen - :material-palette: **Theme Aware**: Auto-detects OpenWebUI light/dark theme with manual toggle - :material-download: **One-Click Export**: Download high-res PNG, copy SVG, or copy Markdown source -- :material-translate: **Multi-language**: Matches output language to the input text +- :material-translate: **i18n Embedded**: One code file smartly detects frontend languages and translates the output. +- :material-arrow-all: **Auto-Sizing & Direct Embed**: Seamlessly scales to display massive canvas inline (requires setting toggle). --- @@ -50,6 +51,7 @@ The Smart Mind Map plugin transforms text content into beautiful, interactive mi | `MIN_TEXT_LENGTH` | integer | `100` | Minimum characters required before analysis runs | | `CLEAR_PREVIOUS_HTML` | boolean | `false` | Clear previous plugin HTML instead of merging | | `MESSAGE_COUNT` | integer | `1` | Number of recent messages to include (1–5) | +| `ENABLE_DIRECT_EMBED_MODE` | boolean | `false` | Enable inline full-width UI for OpenWebUI 0.8.0+ | --- diff --git a/docs/plugins/actions/smart-mind-map.zh.md b/docs/plugins/actions/smart-mind-map.zh.md index eaf2498..48d4824 100644 --- a/docs/plugins/actions/smart-mind-map.zh.md +++ b/docs/plugins/actions/smart-mind-map.zh.md @@ -1,7 +1,7 @@ # Smart Mind Map(智能思维导图) Action -v0.9.2 +v1.0.0 智能分析文本内容,生成交互式思维导图,帮助你更直观地理解信息结构。 @@ -17,7 +17,8 @@ Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会 - :material-gesture-swipe: **丰富控制**:缩放/重置、展开层级(全部/2/3 级)与全屏 - :material-palette: **主题感知**:自动检测 OpenWebUI 亮/暗色主题并支持手动切换 - :material-download: **一键导出**:下载高分辨率 PNG、复制 SVG 或 Markdown -- :material-translate: **多语言**:输出语言与输入文本一致 +- :material-translate: **内置 i18n 语言识别**:单个文件自动检测控制台前端语言,无需繁杂的各种语言包版本。 +- :material-arrow-all: **直出全屏版体验 (需配置开启)**:新版直出渲染抛开沙盒限制,纵情铺满屏幕,享受原生的图表体验。 --- @@ -50,6 +51,7 @@ Smart Mind Map 会将文本转换成漂亮的交互式思维导图。插件会 | `MIN_TEXT_LENGTH` | integer | `100` | 开始分析所需的最少字符数 | | `CLEAR_PREVIOUS_HTML` | boolean | `false` | 生成新导图时是否清除之前的插件 HTML | | `MESSAGE_COUNT` | integer | `1` | 用于生成的最近消息数量(1–5) | +| `ENABLE_DIRECT_EMBED_MODE` | boolean | `false` | 是否开启沉浸式直出模式 (需要 Open WebUI 0.8.0+ ) | --- diff --git a/plugins/actions/smart-mind-map/README.md b/plugins/actions/smart-mind-map/README.md index 7c08a3b..2b18b03 100644 --- a/plugins/actions/smart-mind-map/README.md +++ b/plugins/actions/smart-mind-map/README.md @@ -2,21 +2,26 @@ Smart Mind Map is a powerful OpenWebUI action plugin that intelligently analyzes long-form text content and automatically generates interactive mind maps, helping users structure and visualize knowledge. -**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.9.2 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT +**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT -## What's New in v0.9.2 +## What's New in v1.0.0 -**Language Rule Alignment** +### Direct Embed & UI Refinements -- **Input Language First**: Mind map output now strictly matches the input text language. -- **Consistent Behavior**: Matches the infographic language rule for predictable multilingual output. +- **Native Multi-language UI (i18n)**: The plugin interface (buttons, settings, status) now automatically adapts to your browser's language setting for a seamless global experience. +- **Direct Embed Mode**: Introduced a native-like inline display mode for Open WebUI 0.8.0+, enabling a seamless full-width canvas. +- **Adaptive Auto-Sizing**: Mind map now dynamically scales its height and perfectly refits to the window to eliminate scrollbar artifacts. +- **Subdued & Compact UI**: Completely redesigned the header tooling bar to a slender, single-line configuration to maximize visual rendering space. +- **Configurable Experience**: Added `ENABLE_DIRECT_EMBED_MODE` valve to explicitly toggle the new inline rendering behavior. ## Key Features 🔑 - ✅ **Intelligent Text Analysis**: Automatically identifies core themes, key concepts, and hierarchical structures. +- ✅ **Native Multi-language UI**: Automatic interface translation (i18n) based on system language for a native feel. - ✅ **Interactive Visualization**: Generates beautiful interactive mind maps based on Markmap.js. +- ✅ **Direct Embed Mode**: (Optional) For Open WebUI 0.8.0+, render natively inline to fill entire UI width. - ✅ **High-Resolution PNG Export**: Export mind maps as high-quality PNG images (9x scale). -- ✅ **Complete Control Panel**: Zoom controls, expand level selection, and fullscreen mode. +- ✅ **Complete Control Panel**: Zoom controls, expand level selection, and fullscreen mode within a compact toolbar. - ✅ **Theme Switching**: Manual theme toggle button with automatic theme detection. - ✅ **Image Output Mode**: Generate static SVG images embedded directly in Markdown for cleaner history. @@ -37,6 +42,7 @@ Smart Mind Map is a powerful OpenWebUI action plugin that intelligently analyzes | `CLEAR_PREVIOUS_HTML` | `false` | Whether to clear previous plugin-generated HTML content. | | `MESSAGE_COUNT` | `1` | Number of recent messages to use for generation (1-5). | | `OUTPUT_MODE` | `html` | Output mode: `html` (interactive) or `image` (static). | +| `ENABLE_DIRECT_EMBED_MODE` | `false` | Enable Direct Embed Mode (Open WebUI 0.8.0+ native layout) instead of Legacy Mode. | ## ⭐ Support diff --git a/plugins/actions/smart-mind-map/README_CN.md b/plugins/actions/smart-mind-map/README_CN.md index b1374c1..c74ca49 100644 --- a/plugins/actions/smart-mind-map/README_CN.md +++ b/plugins/actions/smart-mind-map/README_CN.md @@ -2,21 +2,26 @@ 思维导图是一个强大的 OpenWebUI 动作插件,能够智能分析长篇文本内容,自动生成交互式思维导图,帮助用户结构化和可视化知识。 -**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 0.9.2 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT +**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.0.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可证:** MIT -## v0.9.2 更新亮点 +## v1.0.0 最新更新 -**语言规则对齐** +### 嵌入式直出与 UI 细节全线重构 -- **输入语言优先**:导图输出严格与输入文本语言一致。 -- **一致性提升**:与信息图语言规则保持一致,多语言输出更可预期。 +- **原生多语言界面 (Native i18n)**:插件界面(按钮、设置说明、状态提示)现在会根据您浏览器的语言设置自动适配系统语言。 +- **原生态嵌入模式 (Direct Embed)**:针对 Open WebUI 0.8.0+ 的前端架构支持了纯正的内容内联(Inline)直出模式,不再受气泡和 Markdown 隔离,真正撑满屏幕宽度。 +- **自动响应边界 (Auto-Sizing)**:突破以前高度僵死的问题。思维导图现在可以根据您的当前屏幕大小弹性伸缩(动态 `clamp()` 高度),彻底消灭丑陋的局部滚动条与白边。 +- **极简专业 UI (Compact UI)**:推倒重做了头部的菜单栏,统一使用了一套干净、单行的极简全透明微拟物 Toolbar 设计,为导图画布省下极大的垂直空间。 +- **模式配置自由**:为了照顾阅读流连贯的习惯,新增了 `ENABLE_DIRECT_EMBED_MODE` 配置开关。您必须在设置中显式开启才能体验宽广内联全屏模式。 ## 核心特性 🔑 - ✅ **智能文本分析**:自动识别文本的核心主题、关键概念和层次结构。 +- ✅ **原生多语言界面**:根据系统语言自动切换界面语言 (i18n),提供原生交互体验。 - ✅ **交互式可视化**:基于 Markmap.js 生成美观的交互式思维导图。 +- ✅ **直出全景内嵌 (Direct Embed)**:(可选开关) 对于 Open WebUI 0.8.0+,直接填补整个前端宽度,去除气泡剥离感。 - ✅ **高分辨率 PNG 导出**:导出高质量的 PNG 图片(9 倍分辨率)。 -- ✅ **完整控制面板**:缩放控制、展开层级选择、全屏模式。 +- ✅ **完整控制面板**:极简清爽的单行大屏缩放控制、展开层级选择、全局全屏等核心操作。 - ✅ **主题切换**:手动主题切换按钮与自动主题检测。 - ✅ **图片输出模式**:生成静态 SVG 图片直接嵌入 Markdown,聊天记录更简洁。 @@ -37,6 +42,7 @@ | `CLEAR_PREVIOUS_HTML` | `false` | 在生成新的思维导图时,是否清除之前的 HTML 内容。 | | `MESSAGE_COUNT` | `1` | 用于生成思维导图的最近消息数量(1-5)。 | | `OUTPUT_MODE` | `html` | 输出模式:`html`(交互式)或 `image`(静态图片)。 | +| `ENABLE_DIRECT_EMBED_MODE` | `false` | 是否开启沉浸式直出嵌入模式(需要 Open WebUI v0.8.0+ 环境)。如果保持 `false` 将会维持旧版的对话流 Markdown 渲染模式。 | ## ⭐ 支持 diff --git a/plugins/actions/smart-mind-map/smart_mind_map.py b/plugins/actions/smart-mind-map/smart_mind_map.py index 4ff0d7e..7a559a4 100644 --- a/plugins/actions/smart-mind-map/smart_mind_map.py +++ b/plugins/actions/smart-mind-map/smart_mind_map.py @@ -3,7 +3,7 @@ title: Smart Mind Map author: Fu-Jie author_url: https://github.com/Fu-Jie/openwebui-extensions funding_url: https://github.com/open-webui -version: 0.9.4 +version: 1.0.0 openwebui_id: 3094c59a-b4dd-4e0c-9449-15e2dd547dc4 icon_url: data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjE2IiB5PSIxNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiLz48cmVjdCB4PSIyIiB5PSIxNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiLz48cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIvPjxwYXRoIGQ9Ik01IDE2di0zYTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzIi8+PHBhdGggZD0iTTEyIDEyVjgiLz48L3N2Zz4= description: Intelligently analyzes text content and generates interactive mind maps to help users structure and visualize knowledge. @@ -24,6 +24,12 @@ from pydantic import BaseModel, Field from open_webui.utils.chat import generate_chat_completion from open_webui.models.users import Users +try: + from open_webui.env import VERSION as open_webui_version +except ImportError: + open_webui_version = "0.0.0" + + logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) @@ -59,7 +65,7 @@ TRANSLATIONS = { "ui_depth_3": "Level 3", "ui_fullscreen": "Fullscreen", "ui_theme": "Theme", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Unable to load mind map: Missing valid content.", "html_error_load_failed": "⚠️ Resource loading failed, please try again later.", "js_done": "Done", @@ -67,7 +73,7 @@ TRANSLATIONS = { "js_generating": "Generating...", "js_filename": "mindmap.png", "js_upload_failed": "Upload failed: ", - "md_image_alt": "🧠 Mind Map" + "md_image_alt": "🧠 Mind Map", }, "zh-CN": { "status_starting": "思维导图已启动,正在为您生成思维导图...", @@ -98,7 +104,7 @@ TRANSLATIONS = { "ui_depth_3": "展开 3 级", "ui_fullscreen": "全屏", "ui_theme": "主题", - "ui_footer": "© {year} 智能思维导图 • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ 无法加载思维导图:缺少有效内容。", "html_error_load_failed": "⚠️ 资源加载失败,请稍后重试。", "js_done": "完成", @@ -106,7 +112,7 @@ TRANSLATIONS = { "js_generating": "生成中...", "js_filename": "思维导图.png", "js_upload_failed": "上传失败:", - "md_image_alt": "🧠 思维导图" + "md_image_alt": "🧠 思维导图", }, "zh-HK": { "status_starting": "思維導圖已啟動,正在為您生成思維導圖...", @@ -137,7 +143,7 @@ TRANSLATIONS = { "ui_depth_3": "展開 3 級", "ui_fullscreen": "全屏", "ui_theme": "主題", - "ui_footer": "© {year} 智能思維導圖 • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ 無法加載思維導圖:缺少有效內容。", "html_error_load_failed": "⚠️ 資源加載失敗,請稍後重試。", "js_done": "完成", @@ -145,7 +151,7 @@ TRANSLATIONS = { "js_generating": "生成中...", "js_filename": "思維導圖.png", "js_upload_failed": "上傳失敗:", - "md_image_alt": "🧠 思維導圖" + "md_image_alt": "🧠 思維導圖", }, "zh-TW": { "status_starting": "思維導圖已啟動,正在為您生成思維導圖...", @@ -176,7 +182,7 @@ TRANSLATIONS = { "ui_depth_3": "展開 3 級", "ui_fullscreen": "全屏", "ui_theme": "主題", - "ui_footer": "© {year} 智能思維導圖 • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ 無法加載思維導圖:缺少有效內容。", "html_error_load_failed": "⚠️ 資源加載失敗,請稍後重試。", "js_done": "完成", @@ -184,7 +190,7 @@ TRANSLATIONS = { "js_generating": "生成中...", "js_filename": "思維導圖.png", "js_upload_failed": "上傳失敗:", - "md_image_alt": "🧠 思維導圖" + "md_image_alt": "🧠 思維導圖", }, "ko-KR": { "status_starting": "스마트 마인드맵이 시작되었습니다, 마인드맵을 생성 중입니다...", @@ -215,7 +221,7 @@ TRANSLATIONS = { "ui_depth_3": "레벨 3", "ui_fullscreen": "전체 화면", "ui_theme": "테마", - "ui_footer": "© {year} 스마트 마인드맵 • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ 마인드맵을 로드할 수 없습니다: 유효한 내용이 없습니다.", "html_error_load_failed": "⚠️ 리소스 로드 실패, 나중에 다시 시도해 주세요.", "js_done": "완료", @@ -223,7 +229,7 @@ TRANSLATIONS = { "js_generating": "생성 중...", "js_filename": "mindmap.png", "js_upload_failed": "업로드 실패: ", - "md_image_alt": "🧠 마인드맵" + "md_image_alt": "🧠 마인드맵", }, "ja-JP": { "status_starting": "スマートマインドマップが起動しました。マインドマップを生成しています...", @@ -254,7 +260,7 @@ TRANSLATIONS = { "ui_depth_3": "レベル3", "ui_fullscreen": "全画面", "ui_theme": "テーマ", - "ui_footer": "© {year} スマートマインドマップ • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ マインドマップを読み込めません:有効なコンテンツがありません。", "html_error_load_failed": "⚠️ リソースの読み込みに失敗しました。後でもう一度お試しください。", "js_done": "完了", @@ -262,7 +268,7 @@ TRANSLATIONS = { "js_generating": "生成中...", "js_filename": "mindmap.png", "js_upload_failed": "アップロード失敗:", - "md_image_alt": "🧠 マインドマップ" + "md_image_alt": "🧠 マインドマップ", }, "fr-FR": { "status_starting": "Smart Mind Map démarre, génération de la carte heuristique en cours...", @@ -293,7 +299,7 @@ TRANSLATIONS = { "ui_depth_3": "Niveau 3", "ui_fullscreen": "Plein écran", "ui_theme": "Thème", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Impossible de charger la carte heuristique : contenu valide manquant.", "html_error_load_failed": "⚠️ Échec du chargement des ressources, veuillez réessayer plus tard.", "js_done": "Terminé", @@ -301,7 +307,7 @@ TRANSLATIONS = { "js_generating": "Génération...", "js_filename": "carte_heuristique.png", "js_upload_failed": "Échec du téléchargement : ", - "md_image_alt": "🧠 Carte Heuristique" + "md_image_alt": "🧠 Carte Heuristique", }, "de-DE": { "status_starting": "Smart Mind Map startet, Mindmap wird für Sie erstellt...", @@ -332,7 +338,7 @@ TRANSLATIONS = { "ui_depth_3": "Ebene 3", "ui_fullscreen": "Vollbild", "ui_theme": "Thema", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Mindmap kann nicht geladen werden: Gültiger Inhalt fehlt.", "html_error_load_failed": "⚠️ Ressourcenladen fehlgeschlagen, bitte versuchen Sie es später erneut.", "js_done": "Fertig", @@ -340,7 +346,7 @@ TRANSLATIONS = { "js_generating": "Generiere...", "js_filename": "mindmap.png", "js_upload_failed": "Upload fehlgeschlagen: ", - "md_image_alt": "🧠 Mindmap" + "md_image_alt": "🧠 Mindmap", }, "es-ES": { "status_starting": "Smart Mind Map se está iniciando, generando mapa mental para usted...", @@ -371,7 +377,7 @@ TRANSLATIONS = { "ui_depth_3": "Nivel 3", "ui_fullscreen": "Pantalla completa", "ui_theme": "Tema", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ No se puede cargar el mapa mental: Falta contenido válido.", "html_error_load_failed": "⚠️ Falló la carga de recursos, inténtelo de nuevo más tarde.", "js_done": "Hecho", @@ -379,7 +385,7 @@ TRANSLATIONS = { "js_generating": "Generando...", "js_filename": "mapa_mental.png", "js_upload_failed": "Carga fallida: ", - "md_image_alt": "🧠 Mapa Mental" + "md_image_alt": "🧠 Mapa Mental", }, "it-IT": { "status_starting": "Smart Mind Map si sta avviando, generazione mappa mentale in corso...", @@ -410,7 +416,7 @@ TRANSLATIONS = { "ui_depth_3": "Livello 3", "ui_fullscreen": "Schermo intero", "ui_theme": "Tema", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Impossibile caricare la mappa mentale: Contenuto valido mancante.", "html_error_load_failed": "⚠️ Caricamento risorse fallito, riprovare più tardi.", "js_done": "Fatto", @@ -418,7 +424,7 @@ TRANSLATIONS = { "js_generating": "Generazione...", "js_filename": "mappa_mentale.png", "js_upload_failed": "Caricamento fallito: ", - "md_image_alt": "🧠 Mappa Mentale" + "md_image_alt": "🧠 Mappa Mentale", }, "vi-VN": { "status_starting": "Smart Mind Map đang khởi động, đang tạo sơ đồ tư duy cho bạn...", @@ -449,7 +455,7 @@ TRANSLATIONS = { "ui_depth_3": "Cấp độ 3", "ui_fullscreen": "Toàn màn hình", "ui_theme": "Chủ đề", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Không thể tải sơ đồ tư duy: Thiếu nội dung hợp lệ.", "html_error_load_failed": "⚠️ Tải tài nguyên thất bại, vui lòng thử lại sau.", "js_done": "Xong", @@ -457,7 +463,7 @@ TRANSLATIONS = { "js_generating": "Đang tạo...", "js_filename": "sodo_tuduy.png", "js_upload_failed": "Tải lên thất bại: ", - "md_image_alt": "🧠 Sơ đồ Tư duy" + "md_image_alt": "🧠 Sơ đồ Tư duy", }, "id-ID": { "status_starting": "Smart Mind Map sedang dimulai, membuat peta pikiran untuk Anda...", @@ -488,7 +494,7 @@ TRANSLATIONS = { "ui_depth_3": "Level 3", "ui_fullscreen": "Layar Penuh", "ui_theme": "Tema", - "ui_footer": "© {year} Smart Mind Map • Markmap", + "ui_footer": "Powered by Markmap", "html_error_missing_content": "⚠️ Tidak dapat memuat peta pikiran: Konten valid hilang.", "html_error_load_failed": "⚠️ Gagal memuat sumber daya, silakan coba lagi nanti.", "js_done": "Selesai", @@ -496,8 +502,8 @@ TRANSLATIONS = { "js_generating": "Membuat...", "js_filename": "peta_pikiran.png", "js_upload_failed": "Unggah gagal: ", - "md_image_alt": "🧠 Peta Pikiran" - } + "md_image_alt": "🧠 Peta Pikiran", + }, } SYSTEM_PROMPT_MINDMAP_ASSISTANT = """ @@ -509,8 +515,15 @@ Please strictly follow these guidelines: - **Format**: Your output must strictly be in Markdown list format, wrapped with ```markdown and ```. - Use `#` to define the central theme (root node). - Use `-` with two-space indentation to represent branches and sub-branches. -- **Content**: - - Identify the central theme of the text as the `#` heading. +- **Root Node (Central Theme) — Strict Length Limits**: + - The `#` root node must be an ultra-compact title, like a newspaper headline. It should be a keyword or short phrase, NEVER a full sentence. + - **CJK scripts (Chinese, Japanese, Korean)**: Maximum **10 characters** (e.g., `# 老人缓解呼吸困难方法` ✓ / `# 老人在家时感到呼吸困难的缓解方法` ✗) + - **Latin-script languages (English, Spanish, French, Italian, Portuguese)**: Maximum **5 words or 35 characters** (e.g., `# Methods to Relieve Dyspnea` ✓ / `# How Elderly People Can Relieve Breathing Difficulty at Home` ✗) + - **German, Dutch or languages with long compound words**: Maximum **4 words or 30 characters** + - **Arabic, Hebrew and other RTL scripts**: Maximum **5 words or 25 characters** + - **All other languages**: Maximum **5 words or 30 characters** + - If the identified theme would exceed the limit, distill it further into the single most essential keyword or 2-3 word phrase. +- **Branch Node Content**: - Identify main concepts as first-level list items. - Identify supporting details or sub-concepts as nested list items. - Node content should be concise and clear, avoiding verbosity. @@ -520,6 +533,9 @@ Please strictly follow these guidelines: # Unable to Generate Mind Map - Reason: Insufficient or unclear text content ``` +- **Awareness of Target Audience Layout**: You will be provided `Target Rendering Mode`. + - If `Target Rendering Mode` is `direct`: The client has massive horizontal space but limited scrolling vertically. Extract more first-level concepts to make the mind map spread wide like a sprawling fan, rather than deep single columns. + - If `Target Rendering Mode` is `legacy`: The client uses a narrow, portrait sidebar. Extract fewer top-level nodes, and break points into deeper, tighter sub-branches so the map grows vertically downwards. """ USER_PROMPT_GENERATE_MINDMAP = """ @@ -532,6 +548,7 @@ Current Date & Time: {current_date_time_str} Current Weekday: {current_weekday} Current Timezone: {current_timezone_str} User Language: {user_language} +Target Rendering Mode: Auto-adapting (Dynamic width based on viewport) --- **Long-form Text Content:** @@ -549,7 +566,7 @@ HTML_WRAPPER_TEMPLATE = """ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin: 0; - padding: 10px; + padding: 2px; background-color: transparent; } #main-container { @@ -609,6 +626,14 @@ CSS_TEMPLATE_MINDMAP = """ --header-gradient: linear-gradient(135deg, #0ea5e9, #22c55e); --shadow: 0 10px 20px rgba(0, 0, 0, 0.3); } + html, body { + margin: 0; + padding: 0; + width: 100vw; + height: 100vh; + background: var(--card-bg-color); + overflow: hidden; + } .mindmap-container-wrapper { font-family: var(--font-family); line-height: 1.6; @@ -617,64 +642,76 @@ CSS_TEMPLATE_MINDMAP = """ padding: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - height: 100%; display: flex; flex-direction: column; - background: var(--background-color); - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - box-shadow: var(--shadow); + background: var(--card-bg-color); + width: 100vw; + height: 100vh; + box-sizing: border-box; + overflow: hidden; + border: none; + border-radius: 0; + box-shadow: none; } .header { - background: var(--header-gradient); - color: white; - padding: 18px 20px; - text-align: center; - border-top-left-radius: var(--border-radius); - border-top-right-radius: var(--border-radius); + background: var(--card-bg-color); + color: var(--text-color); + padding: 12px 16px; + display: flex; + flex-direction: column; + gap: 12px; + flex-shrink: 0; + border-bottom: 1px solid var(--border-color); + z-index: 10; + } + .header-top { + display: flex; + align-items: center; + gap: 12px; } .header h1 { margin: 0; - font-size: 1.4em; + font-size: 1.2em; font-weight: 600; - letter-spacing: 0.3px; - } - .user-context { - font-size: 0.85em; - color: var(--muted-text-color); - background-color: rgba(255, 255, 255, 0.6); - padding: 8px 14px; + letter-spacing: 0.5px; display: flex; - justify-content: space-between; - flex-wrap: wrap; - border-bottom: 1px solid var(--border-color); - gap: 6px; + align-items: center; + gap: 8px; } - .theme-dark .user-context { - background-color: rgba(31, 41, 55, 0.7); + .header-credits { + font-size: 0.8em; + color: var(--muted-text-color); + opacity: 0.8; + white-space: nowrap; } - .user-context span { margin: 2px 6px; } + .header-credits a { + color: var(--primary-color); + text-decoration: none; + border-bottom: 1px dotted var(--link-color); + } + .content-area { - padding: 16px; - flex-grow: 1; - background: var(--card-bg-color); + padding: 0; + flex: 1 1 0; + background: transparent; + position: relative; + overflow: hidden; + width: 100%; + min-height: 0; + /* Height will be computed dynamically by JS below */ } .markmap-container { - position: relative; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; background-color: var(--card-bg-color); - border-radius: 10px; - padding: 12px; - display: flex; - justify-content: center; - align-items: center; - border: 1px solid var(--border-color); - width: 100%; - min-height: 60vh; - overflow: visible; } .markmap-container svg { width: 100%; height: 100%; + display: block; } .markmap-container svg text { fill: var(--text-color) !important; @@ -688,6 +725,10 @@ CSS_TEMPLATE_MINDMAP = """ } .markmap-container svg .markmap-link { stroke: var(--link-color) !important; + stroke-opacity: 0.6; + } + .theme-dark .markmap-node circle { + fill: var(--card-bg-color) !important; } .markmap-container svg .markmap-node circle, .markmap-container svg .markmap-node rect { @@ -695,32 +736,54 @@ CSS_TEMPLATE_MINDMAP = """ } .control-rows { display: flex; + align-items: center; flex-wrap: wrap; - gap: 10px; - justify-content: center; - margin-top: 12px; + gap: 12px; + margin-left: auto; /* Push controls to the right */ } .btn-group { display: inline-flex; - gap: 6px; + gap: 4px; align-items: center; + border: 1px solid var(--border-color); + border-radius: 6px; + padding: 2px; + background: var(--background-color); } .control-btn { - background-color: var(--primary-color); - color: white; + background-color: transparent; + color: var(--text-color); border: none; - padding: 8px 12px; - border-radius: 8px; - font-size: 0.9em; + padding: 4px 10px; + border-radius: 4px; + font-size: 0.85em; font-weight: 500; cursor: pointer; - transition: background-color 0.15s ease, transform 0.15s ease; + transition: all 0.2s ease; display: inline-flex; align-items: center; - gap: 6px; - height: 36px; + justify-content: center; + height: 28px; box-sizing: border-box; + opacity: 0.8; } + .control-btn:hover { + background-color: var(--card-bg-color); + opacity: 1; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + } + .control-btn:active { + transform: translateY(1px); + } + .control-btn.primary { + background-color: var(--primary-color); + color: white; + opacity: 1; + } + .control-btn.primary:hover { + box-shadow: 0 2px 5px rgba(30,136,229,0.3); + } + select.control-btn { appearance: none; padding-right: 28px; @@ -729,28 +792,10 @@ CSS_TEMPLATE_MINDMAP = """ background-position: right 8px center; background-size: 10px; } - .control-btn.secondary { background-color: var(--secondary-color); } - .control-btn.neutral { background-color: #64748b; } - .control-btn:hover { transform: translateY(-1px); } - .control-btn.copied { background-color: #2e7d32; } - .control-btn:disabled { opacity: 0.6; cursor: not-allowed; } - .footer { - text-align: center; - padding: 12px; - font-size: 0.85em; - color: var(--muted-text-color); + .control-btn option { background-color: var(--card-bg-color); - border-top: 1px solid var(--border-color); - border-bottom-left-radius: var(--border-radius); - border-bottom-right-radius: var(--border-radius); + color: var(--text-color); } - - .footer a { - color: var(--primary-color); - text-decoration: none; - font-weight: 500; - } - .footer a:hover { text-decoration: underline; } .error-message { color: #c62828; background-color: #ffcdd2; @@ -759,50 +804,67 @@ CSS_TEMPLATE_MINDMAP = """ border-radius: 8px; font-weight: 500; font-size: 1em; + margin: 10px; + } + + /* Mobile Responsive Adjustments */ + @media screen and (max-width: 768px) { + .mindmap-container-wrapper { + min-height: 400px; + height: 80vh; + } + .header { + flex-direction: column; + gap: 10px; + } + .btn-group { + padding: 2px; + } + .control-btn { + padding: 4px 6px; + font-size: 0.75em; + height: 28px; + } + select.control-btn { + padding-right: 20px; + background-position: right 4px center; + } } """ CONTENT_TEMPLATE_MINDMAP = """
-

{t_ui_title}

-
-
- {t_ui_user} {user_name} - {t_ui_time} {current_date_time_str} -
-
-
-
-
- - - +
+

{t_ui_title}

+
+ {t_ui_footer}
-
- - - -
-
- - - +
+
+ + + +
+
+ + + +
+
+ + + +
- @@ -926,7 +988,6 @@ SCRIPT_TEMPLATE_MINDMAP = """ const svgEl = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svgEl.style.width = '100%'; svgEl.style.height = '100%'; - svgEl.style.minHeight = '60vh'; containerEl.innerHTML = ''; containerEl.appendChild(svgEl); @@ -934,21 +995,67 @@ SCRIPT_TEMPLATE_MINDMAP = """ const transformer = new Transformer(); const { root } = transformer.transform(markdownContent); + const containerWidth = containerEl.clientWidth || window.innerWidth; + const containerHeight = containerEl.clientHeight || window.innerHeight; + const isPortrait = containerHeight >= containerWidth * 0.8; + const style = (id) => ` - ${id} text, ${id} foreignObject { font-size: 14px; } - ${id} foreignObject h1 { font-size: 22px; font-weight: 700; margin: 0; } - ${id} foreignObject h2 { font-size: 18px; font-weight: 600; margin: 0; } + ${id} text, ${id} foreignObject { font-size: 16px; } + ${id} foreignObject { line-height: 1.6; } + ${id} foreignObject div { padding: 2px 0; } + ${id} foreignObject h1 { font-size: 24px; font-weight: 700; margin: 0 0 6px 0; border-bottom: 2px solid currentColor; padding-bottom: 4px; display: inline-block; } + ${id} foreignObject h2 { font-size: 18px; font-weight: 600; margin: 0 0 4px 0; } ${id} foreignObject strong { font-weight: 700; } + ${id} foreignObject p { margin: 2px 0; } `; + + let responsiveMaxWidth; + let dynamicSpacingVertical = 5; + let dynamicSpacingHorizontal = 80; + + if (isPortrait) { + // Old Version / Mobile: Force early text wrap to explode height and tighten width + responsiveMaxWidth = Math.max(140, Math.floor(containerWidth * 0.35)); + dynamicSpacingVertical = 20; // Explicitly spread out branches vertically + dynamicSpacingHorizontal = 60; + } else { + // New Version (Direct Chat): Generous width to utilize massive horizontal space + responsiveMaxWidth = Math.max(220, Math.floor(containerWidth * 0.35)); + dynamicSpacingVertical = 12; + dynamicSpacingHorizontal = 60; // Tighter horizontal gaps so the chart doesn't get too wide to scale up + } + const options = { autoFit: true, style: style, - initialExpandLevel: Infinity, + initialExpandLevel: 3, zoom: true, - pan: true + pan: true, + fitRatio: 0.95, // Maximize scale to make text bigger + maxWidth: responsiveMaxWidth, + spacingVertical: dynamicSpacingVertical, + spacingHorizontal: dynamicSpacingHorizontal, + colorFreezeLevel: 2 }; const markmapInstance = Markmap.create(svgEl, options, root); + + // Extra tick: force fit to make sure bounding box centers + setTimeout(() => { + markmapInstance.fit(); + }, 100); + + // Dynamically refit if the user drags to resize the sidebar/iframe + const resizeObserver = new ResizeObserver(entries => { + for (let entry of entries) { + if (entry.contentRect.width > 0 && entry.contentRect.height > 0) { + requestAnimationFrame(() => markmapInstance.fit()); + } + } + }); + resizeObserver.observe(containerEl); + + window.markmapInstance = markmapInstance; // Expose for external triggers containerEl.dataset.markmapRendered = 'true'; setupControls({ @@ -956,6 +1063,7 @@ SCRIPT_TEMPLATE_MINDMAP = """ svgEl, markmapInstance, root, + isPortrait }); }).catch((error) => { @@ -964,7 +1072,28 @@ SCRIPT_TEMPLATE_MINDMAP = """ }); }; - const setupControls = ({ containerEl, svgEl, markmapInstance, root }) => { + // Dynamically fix layout: measure header height and set content-area height precisely + const adjustLayout = () => { + const wrapper = document.querySelector('.mindmap-container-wrapper'); + const header = document.querySelector('.header'); + const contentArea = document.querySelector('.content-area'); + if (!wrapper || !header || !contentArea) return; + const headerH = header.getBoundingClientRect().height; + const totalH = wrapper.getBoundingClientRect().height; + const contentH = Math.max(totalH - headerH, 200); + contentArea.style.height = contentH + 'px'; + }; + + // Run once after DOM is ready, then on any resize + adjustLayout(); + window.addEventListener('resize', () => { + adjustLayout(); + if (window.markmapInstance) { + requestAnimationFrame(() => window.markmapInstance.fit()); + } + }); + + const setupControls = ({ containerEl, svgEl, markmapInstance, root, isPortrait }) => { const downloadSvgBtn = document.getElementById('download-svg-btn-' + uniqueId); const downloadPngBtn = document.getElementById('download-png-btn-' + uniqueId); const downloadMdBtn = document.getElementById('download-md-btn-' + uniqueId); @@ -975,6 +1104,10 @@ SCRIPT_TEMPLATE_MINDMAP = """ const fullscreenBtn = document.getElementById('fullscreen-btn-' + uniqueId); const themeToggleBtn = document.getElementById('theme-toggle-btn-' + uniqueId); + if (depthSelect) { + depthSelect.value = "3"; + } + const wrapper = containerEl.closest('.mindmap-container-wrapper'); let currentTheme = setTheme(wrapper); @@ -1041,13 +1174,14 @@ SCRIPT_TEMPLATE_MINDMAP = """ const handleDownloadPNG = () => { const btn = downloadPngBtn; - const originalText = btn.querySelector('.btn-text').textContent; - btn.querySelector('.btn-text').textContent = i18n.js_generating; + const btnTextEl = btn.querySelector('.btn-text') || btn; + const originalText = btnTextEl.textContent; + btnTextEl.textContent = i18n.js_generating; btn.disabled = true; const svg = containerEl.querySelector('svg'); if (!svg) { - btn.querySelector('.btn-text').textContent = originalText; + btnTextEl.textContent = originalText; btn.disabled = false; showFeedback(btn, i18n.js_failed, i18n.js_failed); return; @@ -1115,7 +1249,7 @@ SCRIPT_TEMPLATE_MINDMAP = """ canvas.toBlob((blob) => { if (!blob) { - btn.querySelector('.btn-text').textContent = originalText; + btnTextEl.textContent = originalText; btn.disabled = false; showFeedback(btn, i18n.js_failed, i18n.js_failed); return; @@ -1140,7 +1274,7 @@ SCRIPT_TEMPLATE_MINDMAP = """ URL.revokeObjectURL(a.href); }, 100); - btn.querySelector('.btn-text').textContent = originalText; + btnTextEl.textContent = originalText; btn.disabled = false; showFeedback(btn); }, 'image/png'); @@ -1148,7 +1282,7 @@ SCRIPT_TEMPLATE_MINDMAP = """ img.onerror = (e) => { console.error('PNG image load error:', e); - btn.querySelector('.btn-text').textContent = originalText; + btnTextEl.textContent = originalText; btn.disabled = false; showFeedback(btn, i18n.js_failed, i18n.js_failed); }; @@ -1156,7 +1290,7 @@ SCRIPT_TEMPLATE_MINDMAP = """ img.src = dataUrl; } catch (err) { console.error('PNG export error:', err); - btn.querySelector('.btn-text').textContent = originalText; + btnTextEl.textContent = originalText; btn.disabled = false; showFeedback(btn, i18n.js_failed, i18n.js_failed); } @@ -1184,23 +1318,51 @@ SCRIPT_TEMPLATE_MINDMAP = """ } }; - const handleDepthChange = (e) => { - const level = parseInt(e.target.value, 10); + const setExpandLevel = (levelStr) => { + const level = parseInt(levelStr, 10); const expandLevel = level === 0 ? Infinity : level; - - // Deep clone root to reset internal state (payload.fold) added by markmap + + // Recursively set fold state on cloned tree nodes + const applyFold = (node, currentDepth) => { + if (!node) return; + if (!node.payload) node.payload = {}; + if (expandLevel === Infinity) { + // Expand ALL: clear all fold flags + node.payload.fold = 0; + } else { + // Fold any node deeper than the target level + node.payload.fold = currentDepth >= expandLevel ? 1 : 0; + } + if (node.children) { + node.children.forEach(child => applyFold(child, currentDepth + 1)); + } + }; + const cleanRoot = JSON.parse(JSON.stringify(root)); - + applyFold(cleanRoot, 0); + markmapInstance.setOptions({ initialExpandLevel: expandLevel }); markmapInstance.setData(cleanRoot); - markmapInstance.fit(); + setTimeout(() => markmapInstance.fit(), 50); + }; + + const handleDepthChange = (e) => { + setExpandLevel(e.target.value); }; const handleFullscreen = () => { - const el = containerEl; + const el = wrapper || containerEl; if (!document.fullscreenElement) { el.requestFullscreen().then(() => { - setTimeout(() => markmapInstance.fit(), 200); + if (depthSelect) depthSelect.value = "0"; + setExpandLevel("0"); + }).catch(err => { + console.error('Fullscreen failed:', err); + // Fallback to container if wrapper fails + containerEl.requestFullscreen().then(() => { + if (depthSelect) depthSelect.value = "0"; + setExpandLevel("0"); + }); }); } else { document.exitFullscreen(); @@ -1208,8 +1370,14 @@ SCRIPT_TEMPLATE_MINDMAP = """ }; document.addEventListener('fullscreenchange', () => { - if (document.fullscreenElement === containerEl) { - setTimeout(() => markmapInstance.fit(), 200); + const isFs = !!document.fullscreenElement; + if (isFs && (document.fullscreenElement === containerEl || document.fullscreenElement === wrapper)) { + setTimeout(() => markmapInstance.fit(), 300); + } else if (!isFs) { + // Revert to default depth when exiting fullscreen + const defaultLevel = "3"; + if (depthSelect) depthSelect.value = defaultLevel; + setExpandLevel(defaultLevel); } }); @@ -1269,6 +1437,10 @@ class Action: default=False, description="Whether to print debug logs in the browser console.", ) + ENABLE_DIRECT_EMBED_MODE: bool = Field( + default=False, + description="Enable Direct Embed Mode (v0.8.0+ layout) instead of Legacy Mode. Defaults to False (Legacy Mode).", + ) def __init__(self): self.valves = self.Valves() @@ -1291,27 +1463,6 @@ class Action: "en-AU": "en-US", "de-AT": "de-DE", } - # Date formats by locale - self.date_formats = { - "zh-CN": "%Y年%m月%d日 %H:%M:%S", - "zh-HK": "%Y年%m月%d日 %H:%M:%S", - "zh-TW": "%Y年%m月%d日 %H:%M:%S", - "ja-JP": "%Y年%m月%d日 %H:%M:%S", - "ko-KR": "%Y년 %m월 %d일 %H:%M:%S", - "de-DE": "%d.%m.%Y %H:%M:%S", - "de-AT": "%d.%m.%Y %H:%M:%S", - "en-GB": "%d/%m/%Y %H:%M:%S", - "en-AU": "%d/%m/%Y %H:%M:%S", - "en-NZ": "%d/%m/%Y %H:%M:%S", - "fr-FR": "%d/%m/%Y %H:%M:%S", - "fr-CA": "%d/%m/%Y %H:%M:%S", - "es-ES": "%d/%m/%Y %H:%M:%S", - "es-AR": "%d/%m/%Y %H:%M:%S", - "es-MX": "%d/%m/%Y %H:%M:%S", - "it-IT": "%d/%m/%Y %H:%M:%S", - "vi-VN": "%d/%m/%Y %H:%M:%S", - "id-ID": "%d/%m/%Y %H:%M:%S", - } def _resolve_language(self, lang: str) -> str: """Resolve the best matching language code from the TRANSLATIONS dict.""" @@ -1329,8 +1480,8 @@ class Action: # 3. Base language fallback (e.g. fr-BE -> fr-FR) # Check if the base language (part before -) exists in translations - if '-' in lang: - base_lang = lang.split('-')[0] + if "-" in lang: + base_lang = lang.split("-")[0] # Try to find a supported language starting with base_lang # Prioritize standard variants (e.g., fr -> fr-FR) for supported_lang in TRANSLATIONS: @@ -1359,12 +1510,6 @@ class Action: return text - def _format_date(self, lang: str, dt: datetime) -> str: - """Format date based on language locale requirements.""" - # Default format for US and others - date_format = self.date_formats.get(lang, "%m/%d/%Y %I:%M:%S %p") - return dt.strftime(date_format) - async def _get_user_context( self, __user__: Optional[Dict[str, Any]], @@ -1383,11 +1528,12 @@ class Action: # Default from profile user_language = user_data.get("language", "en-US") - # Priority: LocalStorage (Frontend) > Browser > Profile (Default) + # Priority: Document Lang > LocalStorage (Frontend) > Browser > Profile (Default) if __event_call__: try: js_code = """ return ( + document.documentElement.lang || localStorage.getItem('locale') || localStorage.getItem('language') || navigator.language || @@ -1519,7 +1665,7 @@ class Action: Merges new content into an existing HTML container, or creates a new one. """ # Security: Escape user_language to prevent XSS - safe_language = user_language.replace('"', '"') + safe_language = user_language.replace('"', """) if ( "" in existing_html_code @@ -1571,34 +1717,665 @@ class Action: ) # Prepare i18n for this specific context - target_lang = self._resolve_language(lang) - full_trans = TRANSLATIONS.get(target_lang, TRANSLATIONS["en-US"]) - i18n_data = {} + target_lang = lang + if target_lang not in TRANSLATIONS and target_lang in self.fallback_map: + target_lang = self.fallback_map[target_lang] + if target_lang not in TRANSLATIONS: + target_lang = "en-US" + + full_trans = TRANSLATIONS.get(target_lang, TRANSLATIONS["en-US"]) + # We only need specific keys for the JS image generation part keys = ["js_upload_failed", "md_image_alt"] for k in keys: i18n_data[k] = full_trans.get(k, TRANSLATIONS["en-US"].get(k, k)) - - i18n_json = json.dumps(i18n_data, ensure_ascii=False) - - # Security: Use json.dumps to safely embed IDs - unique_id_json = json.dumps(unique_id) - chat_id_json = json.dumps(chat_id) - message_id_json = json.dumps(message_id) - return SCRIPT_TEMPLATE_MINDMAP.replace( - "{unique_id}", unique_id - ).replace( - "{unique_id_json}", unique_id_json - ).replace( - "{chat_id_json}", chat_id_json - ).replace( - "{message_id_json}", message_id_json - ).replace( - "{i18n_json}", i18n_json - ).replace( - "{syntax_escaped}", syntax_escaped - ) + i18n_json = json.dumps(i18n_data, ensure_ascii=False) + + return f""" +(async function() {{ + const uniqueId = "{unique_id}"; + const chatId = "{chat_id}"; + const messageId = "{message_id}"; + const i18n = {i18n_json}; + const defaultWidth = 1200; + + // Theme detection - check parent document for OpenWebUI theme + const detectTheme = () => {{ + try {{ + // 1. Check parent document's html/body class or data-theme + const html = document.documentElement; + const body = document.body; + const htmlClass = html ? html.className : ''; + const bodyClass = body ? body.className : ''; + const htmlDataTheme = html ? html.getAttribute('data-theme') : ''; + + if (htmlDataTheme === 'dark' || bodyClass.includes('dark') || htmlClass.includes('dark')) {{ + return 'dark'; + }} + if (htmlDataTheme === 'light' || bodyClass.includes('light') || htmlClass.includes('light')) {{ + return 'light'; + }} + + // 2. Check meta theme-color + const metas = document.querySelectorAll('meta[name="theme-color"]'); + if (metas.length > 0) {{ + const color = metas[metas.length - 1].content.trim(); + const m = color.match(/^#?([0-9a-f]{{6}})$/i); + if (m) {{ + const hex = m[1]; + const r = parseInt(hex.slice(0, 2), 16); + const g = parseInt(hex.slice(2, 4), 16); + const b = parseInt(hex.slice(4, 6), 16); + const luma = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255; + return luma < 0.5 ? 'dark' : 'light'; + }} + }} + + // 3. Check system preference + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {{ + return 'dark'; + }} + + return 'light'; + }} catch (e) {{ + return 'light'; + }} + }}; + + const currentTheme = detectTheme(); + console.log("[MindMap Image] Detected theme:", currentTheme); + + // Theme-based colors + const colors = currentTheme === 'dark' ? {{ + background: '#1f2937', + text: '#e5e7eb', + link: '#94a3b8', + nodeStroke: '#94a3b8' + }} : {{ + background: '#ffffff', + text: '#1f2937', + link: '#546e7a', + nodeStroke: '#94a3b8' + }}; + + // Auto-detect chat container width for responsive sizing + let svgWidth = defaultWidth; + // Initial height placeholder, will be adjusted by fit() + let svgHeight = 600; + + const chatContainer = document.getElementById('chat-container'); + if (chatContainer) {{ + const containerWidth = chatContainer.clientWidth; + if (containerWidth > 100) {{ + // Use container width with some padding (90% of container) + svgWidth = Math.floor(containerWidth * 0.9); + }} + }} + + try {{ + // Load D3 if not loaded + if (typeof d3 === 'undefined') {{ + await new Promise((resolve, reject) => {{ + const script = document.createElement('script'); + script.src = 'https://cdn.jsdelivr.net/npm/d3@7'; + script.onload = resolve; + script.onerror = reject; + document.head.appendChild(script); + }}); + }} + + // Load markmap-lib if not loaded + if (!window.markmap || !window.markmap.Transformer) {{ + await new Promise((resolve, reject) => {{ + const script = document.createElement('script'); + script.src = 'https://cdn.jsdelivr.net/npm/markmap-lib@0.17'; + script.onload = resolve; + script.onerror = reject; + document.head.appendChild(script); + }}); + }} + + // Load markmap-view if not loaded + if (!window.markmap || !window.markmap.Markmap) {{ + await new Promise((resolve, reject) => {{ + const script = document.createElement('script'); + script.src = 'https://cdn.jsdelivr.net/npm/markmap-view@0.17'; + script.onload = resolve; + script.onerror = reject; + document.head.appendChild(script); + }}); + }} + + const {{ Transformer, Markmap }} = window.markmap; + + // Get markdown syntax + let syntaxContent = `{syntax_escaped}`; + + // Create offscreen container + const container = document.createElement('div'); + container.id = 'mindmap-offscreen-' + uniqueId; + // Start with a reasonably large height to allow layout, but we'll crop it later + container.style.cssText = 'position:absolute;left:-9999px;top:-9999px;width:' + svgWidth + 'px;height:2000px;overflow:hidden;'; + document.body.appendChild(container); + + // Create SVG element + const svgEl = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svgEl.setAttribute('width', svgWidth); + svgEl.setAttribute('height', '2000'); // Initial large height + svgEl.style.width = svgWidth + 'px'; + svgEl.style.height = '2000px'; + svgEl.style.backgroundColor = colors.background; + container.appendChild(svgEl); + + // Transform markdown to tree + const transformer = new Transformer(); + const {{ root }} = transformer.transform(syntaxContent); + + // Create markmap instance + const options = {{ + autoFit: false, // We will manually fit and measure + initialExpandLevel: Infinity, + zoom: false, + pan: false, + maxWidth: 280 + }}; + + const markmapInstance = Markmap.create(svgEl, options, root); + + // Wait for render to complete + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Fit to content to get bounds + markmapInstance.fit(); + + // Calculate actual content height based on the graph state + // Markmap D3 logic: minY, maxY are stored in state or we can measure the group + let minY = Infinity; + let maxY = -Infinity; + + // Inspect D3 nodes to find bounding box + const nodes = svgEl.querySelectorAll('g.markmap-node'); + if (nodes.length > 0) {{ + // This is a rough estimation. Better to use D3's getBBox if possible + // But we are in an isolated context. + // Let's try to get the main group transform which markmap sets for zoom/pan + const g = svgEl.querySelector('g'); + if (g) {{ + const bbox = g.getBBox(); + // Markmap applies a transform to 'g' to center it. + // We want to adjust the SVG height to match this bbox height + padding + // And re-center. + + // Add some padding + const padding = 20; + const contentHeight = bbox.height + (padding * 2); + const contentWidth = bbox.width + (padding * 2); + + // Update SVG height to fit content exactly + svgHeight = Math.ceil(contentHeight); + + // Ensure minimum height + if (svgHeight < 300) svgHeight = 300; + + svgEl.setAttribute('height', svgHeight); + svgEl.style.height = svgHeight + 'px'; + + // Re-fit with new dimensions + markmapInstance.fit(); + await new Promise(resolve => setTimeout(resolve, 500)); + }} + }} + + // Clone and prepare SVG for export + const clonedSvg = svgEl.cloneNode(true); + clonedSvg.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); + clonedSvg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); + + // Explicitly set the final width/height on the cloned SVG + clonedSvg.setAttribute('width', svgWidth); + clonedSvg.setAttribute('height', svgHeight); + + // Add background rect with theme color + const bgRect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + bgRect.setAttribute('width', '100%'); + bgRect.setAttribute('height', '100%'); + bgRect.setAttribute('fill', colors.background); + clonedSvg.insertBefore(bgRect, clonedSvg.firstChild); + + // Add inline styles with theme colors + const style = document.createElementNS('http://www.w3.org/2000/svg', 'style'); + style.textContent = ` + text {{ font-family: sans-serif; font-size: 14px; fill: ${{colors.text}}; }} + foreignObject, .markmap-foreign, .markmap-foreign div {{ color: ${{colors.text}}; font-family: sans-serif; font-size: 14px; }} + h1 {{ font-size: 22px; font-weight: 700; margin: 0; }} + h2 {{ font-size: 18px; font-weight: 600; margin: 0; }} + strong {{ font-weight: 700; }} + .markmap-link {{ stroke: ${{colors.link}}; fill: none; }} + .markmap-node circle, .markmap-node rect {{ stroke: ${{colors.nodeStroke}}; }} + `; + clonedSvg.insertBefore(style, bgRect.nextSibling); + + // Convert foreignObject to text for better compatibility + const foreignObjects = clonedSvg.querySelectorAll('foreignObject'); + foreignObjects.forEach(fo => {{ + const text = fo.textContent || ''; + const g = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + const textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + textEl.setAttribute('x', fo.getAttribute('x') || '0'); + textEl.setAttribute('y', (parseFloat(fo.getAttribute('y') || '0') + 14).toString()); + textEl.setAttribute('fill', colors.text); + textEl.setAttribute('font-family', 'sans-serif'); + textEl.setAttribute('font-size', '14'); + textEl.textContent = text.trim(); + g.appendChild(textEl); + fo.parentNode.replaceChild(g, fo); + }}); + + // Serialize SVG to string + const svgData = new XMLSerializer().serializeToString(clonedSvg); + + // Cleanup container + document.body.removeChild(container); + + // Convert SVG string to Blob + const blob = new Blob([svgData], {{ type: 'image/svg+xml' }}); + const file = new File([blob], `mindmap-${{uniqueId}}.svg`, {{ type: 'image/svg+xml' }}); + + // Upload file to OpenWebUI API + const token = localStorage.getItem("token"); + const formData = new FormData(); + formData.append('file', file); + + const uploadResponse = await fetch('/api/v1/files/', {{ + method: 'POST', + headers: {{ + 'Authorization': `Bearer ${{token}}` + }}, + body: formData + }}); + + if (!uploadResponse.ok) {{ + throw new Error(i18n.js_upload_failed + uploadResponse.statusText); + }} + + const fileData = await uploadResponse.json(); + const fileId = fileData.id; + const imageUrl = `/api/v1/files/${{fileId}}/content`; + + const markdownImage = `![${{i18n.md_image_alt}}](${{imageUrl}})`; + + // Update message via API + if (chatId && messageId) {{ + + // Helper function with retry logic + const fetchWithRetry = async (url, options, retries = 3) => {{ + for (let i = 0; i < retries; i++) {{ + try {{ + const response = await fetch(url, options); + if (response.ok) return response; + if (i < retries - 1) {{ + await new Promise(r => setTimeout(r, 1000 * (i + 1))); + }} + }} catch (e) {{ + if (i === retries - 1) throw e; + await new Promise(r => setTimeout(r, 1000 * (i + 1))); + }} + }} + return null; + }}; + + // Get current chat data + const getResponse = await fetch(`/api/v1/chats/${{chatId}}`, {{ + method: "GET", + headers: {{ "Authorization": `Bearer ${{token}}` }} + }}); + + if (!getResponse.ok) {{ + throw new Error("Failed to get chat data: " + getResponse.status); + }} + + const chatData = await getResponse.json(); + let updatedMessages = []; + let newContent = ""; + + if (chatData.chat && chatData.chat.messages) {{ + updatedMessages = chatData.chat.messages.map(m => {{ + if (m.id === messageId) {{ + const originalContent = m.content || ""; + const mindmapPattern = /\\n*!\\[[^[\\]]*\\]\\((?:data:image\\/[^)]+|(?:\\/api\\/v1\\/files\\/[^)]+))\\)/g; + let cleanedContent = originalContent.replace(mindmapPattern, ""); + cleanedContent = cleanedContent.replace(/\\n{{3,}}/g, "\\n\\n").trim(); + newContent = cleanedContent + "\\n\\n" + markdownImage; + + // Critical: Update content in both messages array AND history object + // The history object is the source of truth for the database + if (chatData.chat.history && chatData.chat.history.messages) {{ + if (chatData.chat.history.messages[messageId]) {{ + chatData.chat.history.messages[messageId].content = newContent; + }} + }} + + return {{ ...m, content: newContent }}; + }} + return m; + }}); + }} + + if (!newContent) {{ + return; + }} + + // Try to update frontend display via event API (optional) + try {{ + await fetch(`/api/v1/chats/${{chatId}}/messages/${{messageId}}/event`, {{ + method: "POST", + headers: {{ + "Content-Type": "application/json", + "Authorization": `Bearer ${{token}}` + }}, + body: JSON.stringify({{ + type: "chat:message", + data: {{ content: newContent }} + }}) + }}); + }} catch (eventErr) {{ + }} + + // Persist to database + const updatePayload = {{ + chat: {{ + ...chatData.chat, + messages: updatedMessages + }} + }}; + + await fetchWithRetry(`/api/v1/chats/${{chatId}}`, {{ + method: "POST", + headers: {{ + "Content-Type": "application/json", + "Authorization": `Bearer ${{token}}` + }}, + body: JSON.stringify(updatePayload) + }}); + }} + + }} catch (error) {{ + console.error("[MindMap Image] Error:", error); + }} +}})(); +""" + + CSS_TEMPLATE_MINDMAP_DIRECT = """ + :root { + --primary-color: #1e88e5; + --secondary-color: #43a047; + --background-color: #f4f6f8; + --card-bg-color: #ffffff; + --text-color: #000000; + --link-color: #546e7a; + --node-stroke-color: #90a4ae; + --muted-text-color: #546e7a; + --border-color: #e0e0e0; + --header-gradient: linear-gradient(135deg, var(--secondary-color), var(--primary-color)); + --shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + --border-radius: 0; + --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + } + .theme-dark { + --primary-color: #3b82f6; /* High contrast blue */ + --secondary-color: #22c55e; /* High contrast green */ + --background-color: #0d1117; /* Deep background */ + --card-bg-color: #161b22; /* Header background */ + --text-color: #ffffff; /* Pure white text for max contrast */ + --link-color: #58a6ff; + --node-stroke-color: #8b949e; /* Brighter node lines */ + --muted-text-color: #7d8590; + --border-color: #30363d; + --header-gradient: linear-gradient(135deg, #1e88e5, #43a047); + --shadow: 0 4px 12px rgba(0, 0, 0, 0.5); + /* Legacy Control Styles */ + --legacy-header-gradient: linear-gradient(135deg, var(--secondary-color), var(--primary-color)); + } + html, body { + margin: 0; + padding: 0; + } + body { + font-family: var(--font-family); + background-color: transparent; + display: flex; + flex-direction: column; + } + .mindmap-container-wrapper { + font-family: var(--font-family); + line-height: 1.5; + color: var(--text-color); + margin: 0; + padding: 0; + width: 100%; + height: clamp(600px, 85vh, 1400px); /* Canvas area even larger */ + display: flex; + flex-direction: column; + background: var(--background-color); + position: relative; + overflow: hidden; + box-sizing: border-box; + border-radius: 8px; + border: 1px solid var(--border-color); + } + .header { + background: var(--card-bg-color); + color: var(--text-color); + padding: 12px 16px; + display: flex; + flex-direction: column; + gap: 12px; + flex-shrink: 0; + border-bottom: 1px solid var(--border-color); + z-index: 10; + } + .header-top { + display: flex; + align-items: center; + gap: 12px; + } + .header h1 { + margin: 0; + font-size: 1.2em; + font-weight: 600; + letter-spacing: 0.5px; + display: flex; + align-items: center; + gap: 8px; + } + .header-credits { + font-size: 0.8em; + color: var(--muted-text-color); + opacity: 0.8; + white-space: nowrap; + } + .header-credits a { + color: var(--primary-color); + text-decoration: none; + border-bottom: 1px dotted var(--link-color); + } + .content-area { + flex-grow: 1; + position: relative; + overflow: hidden; + background: transparent; + min-height: 0; + width: 100%; + height: 100%; + } + .markmap-container { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + } + .markmap-container svg { + width: 100%; + height: 100%; + display: block; + } + .markmap-container svg text { + fill: var(--text-color) !important; + font-family: var(--font-family); + } + /* Force override all text containers within markmap */ + .markmap-container foreignObject, + .markmap-container .markmap-foreign_object, + .markmap-container .markmap-node-label, + .markmap-container div { + color: var(--text-color) !important; + fill: var(--text-color) !important; + } + /* Optimize branch line colors for dark mode */ + .theme-dark .markmap-link { + stroke-opacity: 0.6; + } + .theme-dark .markmap-node circle { + fill: var(--card-bg-color) !important; + } + /* Controls */ + .control-rows { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 12px; + margin-left: auto; /* Push controls to the right */ + } + .btn-group { + display: inline-flex; + gap: 4px; + align-items: center; + border: 1px solid var(--border-color); + border-radius: 6px; + padding: 2px; + background: var(--background-color); + } + .control-btn { + background-color: transparent; + color: var(--text-color); + border: none; + padding: 4px 10px; + border-radius: 4px; + font-size: 0.85em; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + display: inline-flex; + align-items: center; + justify-content: center; + height: 28px; + box-sizing: border-box; + opacity: 0.8; + } + .control-btn:hover { + background-color: var(--card-bg-color); + opacity: 1; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + } + .control-btn:active { + transform: translateY(1px); + } + .control-btn.primary { + background-color: var(--primary-color); + color: white; + opacity: 1; + } + .control-btn.primary:hover { + box-shadow: 0 2px 5px rgba(30,136,229,0.3); + } + + select.control-btn { + appearance: none; + padding-right: 28px; + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"); + background-repeat: no-repeat; + background-position: right 8px center; + background-size: 10px; + } + .control-btn option { + background-color: var(--card-bg-color); + color: var(--text-color); + } + .error-message { + color: #d32f2f; + background-color: #ffebee; + padding: 20px; + text-align: center; + border-bottom: 1px solid #ffcdd2; + } + + /* Mobile Responsive Adjustments */ + @media screen and (max-width: 768px) { + .mindmap-container-wrapper { + min-height: 480px; + height: 75vh; + } + .header { + flex-direction: column; + gap: 10px; + } + .btn-group { + padding: 2px; + } + .control-btn { + padding: 4px 6px; + font-size: 0.75em; + height: 28px; + } + select.control-btn { + padding-right: 20px; + background-position: right 4px center; + } + } +""" + + CONTENT_TEMPLATE_MINDMAP_DIRECT = """ +
+
+
+

{t_ui_title}

+
+ {t_ui_footer} +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
+
+
+
+ + +""" async def action( self, @@ -1609,20 +2386,20 @@ class Action: __metadata__: Optional[dict] = None, __request__: Optional[Request] = None, ) -> Optional[dict]: - logger.info("Action: Smart Mind Map (v0.9.4) started") + logger.info("Action: Smart Mind Map (v1.0.0) started") user_ctx = await self._get_user_context(__user__, __event_call__) user_language = user_ctx["user_language"] user_name = user_ctx["user_name"] user_id = user_ctx["user_id"] + long_text_content = "" # Initialize for exception handler safety try: tz_env = os.environ.get("TZ") tzinfo = ZoneInfo(tz_env) if tz_env else None now_dt = datetime.now(tzinfo or timezone.utc) - # Localize date time - resolved_lang = self._resolve_language(user_language) - current_date_time_str = self._format_date(resolved_lang, now_dt) + # Format current date time string for LLM parsing + current_date_time_str = now_dt.strftime("%Y-%m-%d %H:%M:%S") current_weekday_en = now_dt.strftime("%A") current_weekday_zh = self.weekday_map.get(current_weekday_en, "Unknown") @@ -1647,9 +2424,10 @@ class Action: if not messages or not isinstance(messages, list): error_message = self._get_translation(user_language, "error_no_content") await self._emit_notification(__event_emitter__, error_message, "error") - return { - "messages": [{"role": "assistant", "content": f"❌ {error_message}"}] - } + body["messages"].append( + {"role": "assistant", "content": f"❌ {error_message}"} + ) + return body # Get last N messages based on MESSAGE_COUNT message_count = min(self.valves.MESSAGE_COUNT, len(messages)) @@ -1665,9 +2443,10 @@ class Action: if not aggregated_parts: error_message = self._get_translation(user_language, "error_no_content") await self._emit_notification(__event_emitter__, error_message, "error") - return { - "messages": [{"role": "assistant", "content": f"❌ {error_message}"}] - } + body["messages"].append( + {"role": "assistant", "content": f"❌ {error_message}"} + ) + return body original_content = "\n\n---\n\n".join(aggregated_parts) @@ -1687,16 +2466,21 @@ class Action: user_language, "error_text_too_short", len=len(long_text_content), - min_len=self.valves.MIN_TEXT_LENGTH + min_len=self.valves.MIN_TEXT_LENGTH, ) await self._emit_notification( __event_emitter__, short_text_message, "warning" ) - return { - "messages": [ - {"role": "assistant", "content": f"⚠️ {short_text_message}"} - ] - } + body["messages"].append( + {"role": "assistant", "content": f"⚠️ {short_text_message}"} + ) + return body + + await self._emit_notification( + __event_emitter__, + self._get_translation(user_language, "status_analyzing"), + "info", + ) await self._emit_status( __event_emitter__, @@ -1707,6 +2491,7 @@ class Action: try: unique_id = f"id_{int(time.time() * 1000)}" + # Prepare LLM request formatted_user_prompt = USER_PROMPT_GENERATE_MINDMAP.format( user_name=user_name, current_date_time_str=current_date_time_str, @@ -1748,6 +2533,11 @@ class Action: assistant_response_content = llm_response["choices"][0]["message"][ "content" ] + logger.info(f"LLM Response length: {len(assistant_response_content)}") + if self.valves.SHOW_DEBUG_LOG: + logger.info( + f"LLM Response content: {assistant_response_content[:500]}..." + ) markdown_syntax = self._extract_markdown_syntax(assistant_response_content) # Prepare content components @@ -1769,10 +2559,9 @@ class Action: for k, v in ui_trans.items(): content_html = content_html.replace(f"{{{k}}}", v) - content_html = content_html.replace("{unique_id}", unique_id) \ - .replace("{user_name}", user_name.replace('<', '<').replace('>', '>')) \ - .replace("{current_date_time_str}", current_date_time_str) \ - .replace("{markdown_syntax}", markdown_syntax) + content_html = content_html.replace("{unique_id}", unique_id).replace( + "{markdown_syntax}", markdown_syntax + ) # Prepare JS i18n target_lang = self._resolve_language(user_language) @@ -1787,12 +2576,13 @@ class Action: # Note: We don't need chat/message ID in HTML mode JS, but we do need uniqueId and i18n # The SCRIPT_TEMPLATE_MINDMAP now uses {unique_id_json} for the ID - script_html = SCRIPT_TEMPLATE_MINDMAP.replace( - "{unique_id}", unique_id # Fallback for other non-JSON placeholders if any - ).replace( - "{unique_id_json}", unique_id_json - ).replace( - "{i18n_json}", i18n_json + script_html = ( + SCRIPT_TEMPLATE_MINDMAP.replace( + "{unique_id}", + unique_id, # Fallback for other non-JSON placeholders if any + ) + .replace("{unique_id_json}", unique_id_json) + .replace("{i18n_json}", i18n_json) ) # Extract existing HTML if any @@ -1859,46 +2649,188 @@ class Action: ) await self._emit_status( - __event_emitter__, self._get_translation(user_language, "status_image_generated"), True + __event_emitter__, + self._get_translation(user_language, "status_image_generated"), + True, ) await self._emit_notification( __event_emitter__, - self._get_translation(user_language, "notification_image_success", user_name=user_name), + self._get_translation( + user_language, "notification_image_success", user_name=user_name + ), "success", ) - logger.info("Action: Smart Mind Map (v0.9.4) completed in image mode") + logger.info("Action: Smart Mind Map (v1.0.0) completed in image mode") return body - # HTML mode (default): embed as HTML block - html_embed_tag = f"```html\n{final_html}\n```" - body["messages"][-1]["content"] = f"{long_text_content}\n\n{html_embed_tag}" + # HTML mode + is_direct_mode = self._is_direct_html_supported(body) - await self._emit_status( - __event_emitter__, self._get_translation(user_language, "status_drawing"), True - ) - await self._emit_notification( - __event_emitter__, - self._get_translation(user_language, "notification_success", user_name=user_name), - "success", - ) - logger.info("Action: Smart Mind Map (v0.9.4) completed in HTML mode") + if is_direct_mode: + # DIRECT EMBED MODE + # Use new templates + content_html_direct = self.CONTENT_TEMPLATE_MINDMAP_DIRECT + for k, v in ui_trans.items(): + content_html_direct = content_html_direct.replace(f"{{{k}}}", v) + + content_html_direct = ( + content_html_direct.replace("{unique_id}", unique_id) + .replace( + "{user_name}", + user_name.replace("<", "<").replace(">", ">"), + ) + .replace("{current_date_time_str}", current_date_time_str) + .replace("{markdown_syntax}", markdown_syntax) + ) + + # Script injection remains similar but tailored if needed + script_html_direct = ( + SCRIPT_TEMPLATE_MINDMAP.replace("{unique_id}", unique_id) + .replace("{unique_id_json}", unique_id_json) + .replace("{i18n_json}", i18n_json) + ) + + # We do NOT wrap in body for Direct Mode if using standard return + # But we still need styles. + # We can prepend styles to the div or return a full html doc? + # The requirements say: `return (html_content, ...)` + # Usually standard Action returns full HTML or fragments. + # If "inline", fragments are better, but styles need to be scoped or global. + # Our CSS templates use specific classes, should be safe. + # But to ensure it renders correctly, we usually wrap in a div. + + final_html_direct = f""" + + + + + + + + {content_html_direct} + {script_html_direct} + + + + """ + + await self._emit_status( + __event_emitter__, + self._get_translation(user_language, "status_drawing"), + True, + ) + await self._emit_notification( + __event_emitter__, + self._get_translation( + user_language, "notification_success", user_name=user_name + ), + "success", + ) + logger.info("Action: Smart Mind Map (v1.0.0) completed in Direct Mode") + + return ( + final_html_direct, + {"Content-Disposition": "inline", "Content-Type": "text/html"}, + ) + + else: + # LEGACY MODE + # embed as HTML block into the message content + html_embed_tag = f"```html\n{final_html}\n```" + body["messages"][-1][ + "content" + ] = f"{long_text_content}\n\n{html_embed_tag}" + + await self._emit_status( + __event_emitter__, + self._get_translation(user_language, "status_drawing"), + True, + ) + await self._emit_notification( + __event_emitter__, + self._get_translation( + user_language, "notification_success", user_name=user_name + ), + "success", + ) + logger.info( + "Action: Smart Mind Map (v1.0.0) completed in Legacy HTML mode" + ) except Exception as e: error_message = f"Smart Mind Map processing failed: {str(e)}" logger.error(f"Smart Mind Map error: {error_message}", exc_info=True) - user_facing_error = self._get_translation(user_language, "error_user_facing", error=str(e)) + user_facing_error = self._get_translation( + user_language, "error_user_facing", error=str(e) + ) body["messages"][-1][ "content" ] = f"{long_text_content}\n\n❌ **Error:** {user_facing_error}" await self._emit_status( - __event_emitter__, self._get_translation(user_language, "status_failed"), True + __event_emitter__, + self._get_translation(user_language, "status_failed"), + True, ) await self._emit_notification( __event_emitter__, - self._get_translation(user_language, "notification_failed", user_name=user_name), + self._get_translation( + user_language, "notification_failed", user_name=user_name + ), "error", ) - return body + + def _is_direct_html_supported(self, body: dict) -> bool: + """ + Check if the current Open WebUI version supports direct HTML return + inline display. + Target version >= 0.8.0. + """ + if not self.valves.ENABLE_DIRECT_EMBED_MODE: + return False + + try: + # First check server-side version + version = open_webui_version + if not version or version == "0.0.0": + # If server version unknown, fallback to body version + version = body.get("version") + + if not version: + # If still no version, default to True (assume modern) + return True + + # If version is present, check 0.8.0+ + # Simple lexicographical check usually works for semver if format is consistent x.y.z + # But "0.9.0" > "0.8.0" is true. "0.10.0" > "0.8.0" (lexicographically "0.1" < "0.8") fails. + # So we need safer parsing. + parts = version.split(".") + if len(parts) >= 2: + major = int(parts[0]) + minor = int(parts[1]) + if major > 0 or (major == 0 and minor >= 8): + return True + return False + except Exception: + # On error, default to True to assume modern features + return True + + # ... (Rest of Action class methods) ... diff --git a/plugins/actions/smart-mind-map/smart_mind_map_cn.png b/plugins/actions/smart-mind-map/smart_mind_map_cn.png deleted file mode 100644 index 5d7fb2dcc9e018e7050d9752e8cf63dd32675473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220698 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 uVu;9H-bdE>ELt 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

+11V%d@#2SdD~9!7KBUMB>~ty^vYIL? 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�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 X#C)rEbz9mc;GdkdvQ*(S!w>%t=W?=7