一个更智能、更强大的AstrBot插件,能够自动检测复杂的Markdown格式并转换为高清图片,让您在QQ等平台的消息显示效果更加惊艳!🎉
插件现在拥有超强的大脑,能够自动识别以下复杂格式并智能转换为图片:
- 💻 代码块 (
python) - 带语法高亮和行号,智能缩进处理 🔧 - 🧮 数学公式 (行内
$E=mc^2$和块级$$\int_a^b f(x)dx$$) - 完美渲染LaTeX,支持KaTeX引擎 ⚡ - 📊 表格 - 清晰的Markdown表格展示
- 📝 复杂嵌套列表 - 多层结构清晰呈现
- 🎯 多个标题组合 - 层次分明的文档结构
- 📜 长文本内容 - 超过15行或包含多行长行的内容
以下简单格式会保持文本直接发送,确保最佳用户体验:
- ✨ 粗体、斜体等简单样式
- 📋 简单列表项
- 🏷️ 单个标题
- 🔗 链接内容(智能识别,保持可点击性)
- 💬 短文本消息
- 🔧 智能缩进规范化: 自动将制表符转换为4个空格,确保代码显示一致
- 📁 长代码文件发送: 超过阈值行数的代码可自动发送为文件 📄
- 🎨 可配置字体大小: 自定义代码显示效果
- 📏 行号显示: 清晰的代码行号,方便讨论和定位
- 🎛️ 自动检测开关: 可关闭自动检测,仅使用
<md>标签 - 📊 复杂度阈值: 精细调整触发转换的敏感度
- 🏷️ 显式标签尊重: 可选择是否处理显式的
<md>标签 - 🎨 字体大小调整: 自定义代码和数学公式的显示大小
- 📏 行高设置: 调整代码行高,优化显示效果
- ✅ 🤖 智能Markdown转图片: 自动检测复杂格式并转换为清晰图片
- ✅ 🧮 LaTeX 数学公式支持: 通过 KaTeX 完美渲染数学公式,速度更快更稳定
- ✅ 🚀 自动浏览器安装: 插件自动安装和配置 Playwright Chromium 浏览器
- ✅ 🎯 智能识别: 自动判断何时使用图片渲染功能
- ✅ 🖼️ 高清渲染: 支持 2 倍缩放,生成超高质量图片
- ✅ 📏 自适应宽度: 支持固定宽度或自适应宽度渲染
- ✅ 🔄 向后兼容: 仍然支持原有的
<md>标签方式 - ✅ 🔧 代码缩进智能处理: 自动规范化代码缩进,解决格式混乱问题
- ✅ 📁 智能文件发送: 长代码自动转为文件发送,提升用户体验
- 🐍 Python 3.8+
- 🤖 AstrBot 框架
- 📁 将插件文件夹放置到 AstrBot 的
plugins目录下 - 🔄 重启 AstrBot 服务
- ⚡ 插件会自动安装所需依赖(
mistune、playwright、beautifulsoup4)
只需正常使用Markdown编写消息,插件会自动判断何时需要转换为图片:
这是一个简单的消息,粗体和斜体会直接显示。✨
但当包含复杂代码时:
def complex_function():
# 这段代码会自动转换为高清图片 🖼️
for i in range(10):
if i % 2 == 0:
print(f"偶数: {i}")
else:
print(f"奇数: {i}")
return "处理完成! 🎉"数学公式也会自动转换:
行内公式:$E = mc^2$ 📐
独立公式: $$ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} $$
长代码会自动发送为文件:📁
# 这是一个超过10(默认)行的代码示例,会自动转为文件发送
class DataProcessor:
def __init__(self, data):
self.data = data
self.results = []
def process_data(self):
for item in self.data:
processed = self._transform_item(item)
validated = self._validate_item(processed)
if validated:
self.results.append(validated)
return self.results
def _transform_item(self, item):
# 复杂的数据转换逻辑
transformed = {
'id': item.get('id'),
'name': item.get('name').upper(),
'value': item.get('value', 0) * 1.1
}
return transformed
def _validate_item(self, item):
if item['value'] > 100:
return None
return item如需强制转换,仍可使用<md>标签:
<md>
# 强制转换为图片 🖼️
即使这是简单内容,也会被转换为高清图片。
表格示例:
| 姓名 | 年龄 | 城市 |
|------|------|------|
| 张三 | 25 | 北京 |
| 李四 | 30 | 上海 |
</md>
/mdconfig
查看当前插件的所有配置信息,包括智能检测设置、代码处理选项等 📋
/test_code
测试代码块的渲染效果,验证语法高亮和行号显示是否正常 ✅
- ✅ 🎯 标题(#、##、###)
- ✅ 📋 列表(有序、无序)
- ✅ 💻 代码块(语法高亮 + 行号 + 智能缩进)
- ✅ 📊 表格
- ✅ 🧮 数学公式(LaTeX + KaTeX引擎)
- ✅ ✨ 粗体、斜体、删除线
- ✅ 💬 引用块
- ✅ ➖ 水平分割线
- ✅ 📁 代码文件发送(自动处理长代码)
行内公式:$\mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^n a_i b_i$ 📐
矩阵运算:
$$
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\begin{bmatrix}
x \\
y
\end{bmatrix}
=
\begin{bmatrix}
ax + by \\
cx + dy
\end{bmatrix}
$$
积分公式:
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
柯西-施瓦茨不等式:
$$
\left( \sum_{i=1}^n a_i b_i \right)^2 \leq \left( \sum_{i=1}^n a_i^2 \right) \left( \sum_{i=1}^n b_i^2 \right)
$$
{
"auto_detect": True, # 🎛️ 开启智能自动检测
"min_complexity_score": 2, # 📊 复杂度阈值(1-5)
"respect_md_tags": True, # 🏷️ 尊重显式<md>标签
"separate_code_blocks": True, # 💻 分离处理代码块
"separate_math_blocks": False, # 🧮 分离处理数学公式
"render_code_as_image": True, # 🖼️ 代码渲染为图片
"send_code_as_file": False, # 📁 长代码发送为文件
"code_file_threshold": 10, # 📏 文件转换阈值(行数)
"render_math_as_image": True, # 🧮 数学公式渲染为图片
"code_font_size": 13, # 🔤 代码字体大小
"line_height": 1.5, # 📏 代码行高
"is_debug_mode": False # 🐛 调试模式
}- 🐍 Python、JavaScript、Java
- 🔷 C++、C、HTML、CSS
- 🗃️ SQL、JSON、XML、YAML
- 🐚 Bash、Shell、Markdown
- 🔶 PHP、Ruby、Go、Rust、TypeScript
- 等等...(共19种语言)🎯
- 💻 包含代码块 (```)
- 🧮 包含数学公式 (
$...$ 或$$...$$ ) - 📊 包含Markdown表格
- 🏷️ 显式使用
<md>标签
- 🎭 多个复杂元素组合
- 📜 超过15行的长文本
- 📏 包含多行超过80字符的文本
- 🏗️ 复杂嵌套结构
- 📏 代码行数超过配置阈值(默认10行)
- 🔤 语言在支持列表中
- ⚙️ 文件发送功能已开启
- 🔍 复杂度检测: 使用智能检测器分析Markdown内容复杂度
- 📝 解析 Markdown: 使用
mistune将 Markdown 转换为 HTML - 🔧 代码预处理: 规范化代码缩进,添加行号显示
- 🧮 数学公式处理: 通过 KaTeX 渲染 LaTeX 公式
- 🌐 浏览器渲染: 使用 Playwright Chromium 浏览器截图
- 🖼️ 图片生成: 生成 PNG 格式的高清图片
- 📁 文件处理: 长代码自动转为文件发送
- 🖼️ 图片缓存: 存储在
data/md2img_cache/目录,UUID文件名确保唯一性 - 📁 文件缓存: 存储在
data/file_cache/目录,支持多种代码格式 - 🧹 自动清理: 防止存储空间占用过多
- 🤖 更智能: 无需手动标记,自动识别复杂格式
- ⚡ 更高效: 简单消息直接发送,减少不必要的图片生成
- 😊 更友好: 用户在QQ中既能复制简单文本,又能看到复杂格式的完美渲染
- 🎛️ 更灵活: 提供多种配置选项适应不同使用场景
- 🖼️ 更美观: 高清渲染,专业级的代码和数学公式展示
- 🔧 更稳定: 智能缩进处理,解决代码格式混乱问题
- 📁 更贴心: 长代码自动转为文件,提升阅读体验
首次运行时会自动安装依赖,请耐心等待并在控制台中跟踪进度。⏳
- 🔧 关闭自动检测,仅使用
<md>标签 - 📊 调整复杂度阈值参数
- 🌐 检查Playwright浏览器是否正确安装
- 🐛 开启调试模式查看详细日志
- 🔄 使用
/test_code命令测试渲染功能 - 💡 考虑在提示词中明确要求使用
<md>标签包裹需要渲染成图片的内容
- 💡 对于超长代码,启用"发送为文件"功能可显著提升体验
- 🎨 根据显示设备调整字体大小(移动端建议12-14px)
- ⚡ 数学公式推荐使用KaTeX引擎,速度更快更稳定
- 📏 合理设置代码文件阈值,平衡图片和文件的使用
如果遇到代码缩进显示异常:
- ✅ 插件会自动将制表符转换为4个空格
- ✅ 统一缩进为4的倍数,确保对齐
- ✅ 支持复杂嵌套结构的缩进处理
欢迎在GitHub上提交Issue或Pull Request,分享您的使用体验和改进建议!🌟
🎉 让您的Markdown消息在任何平台都能完美展示!
🚀 立即体验智能Markdown转换,享受更流畅、更美观的沟通体验!
✨ 智能检测 + 高清渲染 + 贴心功能 = 最佳Markdown消息体验!