更新导出为 Word 功能,增加代码语法高亮和引用块支持,优化文档说明和依赖项

This commit is contained in:
Jeff fu
2025-12-30 14:56:57 +08:00
parent 1bf1d7ac23
commit 7f43e45049
4 changed files with 328 additions and 53 deletions

View File

@@ -1,30 +1,33 @@
# 导出为 Word
将当前对话内容从 Markdown 转换并导出为 Word (.docx) 文件,支持中英文无乱码,且具备更智能的文件命名。
将当前对话内容从 Markdown 转换并导出为 Word (.docx) 文件,支持**代码语法高亮**、**引用块样式**和更智能的文件命名。
## 功能特点
- **一键导出**:在聊天界面添加"导出为 Word"动作按钮。
- **一键导出**:在聊天界面添加导出为 Word动作按钮。
- **Markdown 转换**:将 Markdown 语法转换为 Word 格式(标题、粗体、斜体、代码、表格、列表)。
- **代码语法高亮**:使用 Pygments 库为代码块添加语法高亮(支持 500+ 种语言)。
- **引用块支持**Markdown 引用块会渲染为带左侧边框的灰色斜体样式。
- **多语言支持**:正确处理中文和英文文本,无乱码问题。
- **更智能的文件名**:优先使用对话标题(来自请求体或基于 chat_id 查询),其次 Markdown 一级/二级标题,最后用户+日期。
## 支持的 Markdown 语法
| 语法 | Word 效果 |
| :-------------------------- | :------------------ |
| `# 标题1``###### 标题6` | 标题级别 1-6 |
| `**粗体**``__粗体__` | 粗体文本 |
| `*斜体*``_斜体_` | 斜体文本 |
| `***粗斜体***` | 粗体 + 斜体 |
| `` `行内代码` `` | 等宽字体 + 灰色背景 |
| ` ``` 代码块 ``` ` | 带缩进的代码块 |
| `[链接](url)` | 蓝色下划线链接文本 |
| `~~删除线~~` | 删除线文本 |
| `- 项目``* 项目` | 无序列表 |
| `1. 项目` | 有序列表 |
| Markdown 表格 | 带边框表格 |
| `---``***` | 水平分割线 |
| 语法 | Word 效果 |
| :-------------------------- | :----------------------- |
| `# 标题1``###### 标题6` | 标题级别 1-6 |
| `**粗体**``__粗体__` | 粗体文本 |
| `*斜体*``_斜体_` | 斜体文本 |
| `***粗斜体***` | 粗体 + 斜体 |
| `` `行内代码` `` | 等宽字体 + 灰色背景 |
| ` ``` 代码块 ``` ` | **语法高亮**的代码块 |
| `> 引用文本` | 带左侧边框的灰色斜体文本 |
| `[链接](url)` | 蓝色下划线链接文本 |
| `~~删除线~~` | 删除线文本 |
| `- 项目` `* 项目` | 无序列表 |
| `1. 项目` | 有序列表 |
| Markdown 表格 | 带边框表格 |
| `---``***` | 水平分割线 |
## 使用方法
@@ -40,7 +43,10 @@
### 依赖
- python-docx==1.1.2(已在插件文档字符串中声明,请确保环境已安装)。
- `python-docx==1.1.2` - Word 文档生成
- `Pygments>=2.15.0` - 语法高亮(可选但建议安装)
两者已在插件文档字符串中声明,请确保环境已安装。
## 字体配置