# md-reader-web **Repository Path**: bzm121/md-reader-web ## Basic Information - **Project Name**: md-reader-web - **Description**: WEB 端 Markdown 阅读器:纯原生 JS+HTML+CSS,三态视图 + 代码高亮 + 文档大纲 + 五类图形离线渲染,与官网、鸿蒙、Android 共用同一份渲染内核 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-09 - **Last Updated**: 2026-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # md-reader-web > WEB 端 Markdown 阅读器 — 纯原生 JS + HTML + CSS,**零框架、零打包、零构建**,浏览器直接跑。 打开 `.md` 文件即可阅读:预览 / 源码 / 分屏三态切换、表格列宽自适应、代码高亮、文档大纲, 以及**五类图形的离线渲染**(流程图与时序图、公式、数据图表、关系图、思维导图)。 ## ✨ 功能 - **三态视图切换** — 预览(只读渲染)/ 源码(可编辑)/ 分屏(左编辑右预览,**实时同步**) - **本地文件打开** — 点工具栏文件夹图标选 `.md` / `.markdown` 文件,亦可直接拖拽到窗口 - **编码自动识别** — UTF-8 优先,出现替换字符(U+FFFD)时自动回退 GB18030 - **完整 Markdown 语法** — 标题 / 段落 / 列表 / 引用 / 代码块 / 分割线 / 图片 / 链接 / 表格 - **表格列宽自适应** — 列宽按内容计算、同行等高、超宽横向滚动 (列宽常量与鸿蒙端 `MarkdownParser.ts`、Android 端 `MarkdownParser.kt` 共享同一套) - **代码高亮** — 内置 highlight.js,按需懒加载,**不联网** - **文档大纲** — 从已渲染正文提取标题,三档响应式:宽屏右侧常驻 / 中屏折成边缘标签 / 窄屏抽屉; 标题少于 6 条不显示;点击按 `#文档&h=标题` 深链跳转 - **流程图与时序图** — ` ```mermaid ` 围栏块内置渲染引擎,**不联网**;SVG 经白名单清洗后内联 - **公式** — ` ```katex ` / ` ```latex ` / ` ```tex ` / ` ```math ` 围栏块,KaTeX 离线排版(含全套字体) - **数据图表** — ` ```echarts ` / ` ```chart ` 围栏块,ECharts 离线出图 - **关系图** — ` ```graphviz ` 围栏块,Graphviz 离线布局 - **思维导图** — ` ```markmap ` 围栏块,markmap + d3 离线渲染 - **图形放大** — 点击图形进入查看器,支持缩放 / 拖拽 / 双指缩放 - **顶栏菜单** — 低频操作收进「⋯」,含正文宽度、字号与主题设置(偏好存本地) - **键盘友好** — 编辑器支持 undo/redo、全选、复制粘贴;编辑实时同步预览(200ms 防抖) - **离线优先** — 解析、渲染、高亮、出图全部在浏览器本地完成,阅读链路不发起任何远端请求 ## 🚀 启动方式 ### 方式 A:起静态服务器(推荐) ```bash python -m http.server 8123 --bind 127.0.0.1 ``` 然后浏览器打开 。 > `index.html` 使用 ES 模块(`