无代码加密 无额外授权 版本号:1.0.0 适配PHP:7.4+
最近更新:1.0.0 1个月前

v1.0.0

Mermaid 图表可视化(em_mermaid)

Emlog 插件,把文章正文里的 mermaid 代码块渲染为流程图、时序图、类图、状态图、饼图、甘特图等。

写作方式

正文中任选一种写法,均会被渲染;在 Emlog 后台写文章时点击 Editor.md 工具栏的预览按钮,也会直接显示图形化结果:

  • 短代码:[mermaid] ... [/mermaid]
  • Markdown 围栏:三个反引号加 mermaid
  • HTML 代码块:<pre> ... </pre>
  • 高亮代码块:<pre><code> ... </code></pre>

示例:

[mermaid]
graph TD
 A[用户提交] --> B{校验通过}
 B --> C[写入数据库]
 B --> D[返回错误]
[/mermaid]

配置项

配置 说明
图表主题 default / neutral / forest / dark / base
脚本来源 本地内置 mermaid 10.9.1,或自定义 CDN 地址
图表最大宽度 40% - 100%,相对正文宽度
图表字体 留空跟随主题
图表工具栏 放大查看、查看源码、下载 SVG
全站加载脚本 主题异步加载正文时开启

实现要点

  • 内容替换走官方轮流接管挂载点 article_content_echo,不改动核心表与核心文件
  • 后台预览走官方 adm_writelog_head 挂载点,绑定 Editor.md 的 loadedonpreviewing 事件
  • 资源加载走 index_headindex_footer;默认只在检测到图表的页面输出 mermaid 脚本
  • 配置通过 Storage 存于 storage 表,删除插件时由 callback_rmdeleteAllName('YES') 清空,属绿色插件
  • mermaid 初始化使用 securityLevel: strict,图表源码在服务端经 htmlspecialchars 转义后输出
  • 渲染兼容 mermaid 10 的 Promise 形式与旧版回调形式;语法出错时保留源码并在图表框内提示

许可证

本插件以 GNU General Public License v3.0 或更高版本发布,全文见根目录 LICENSE

内置的 assets/mermaid.min.js 属第三方组件(mermaid 10.9.1),由其自身的 MIT 许可证约束,版权归 mermaid 项目作者所有。