左边写 Markdown、右边实时看渲染结果,工具栏与快捷键齐全,草稿存在本机,可导出 .md、净化后的 .html 或打印成 PDF。
内容只在你浏览器里处理:草稿写入本机 localStorage(无痕模式可能不允许,会明确提示),不发任何请求。预览走强制净化,Markdown 里内嵌的 script、iframe、on* 属性都不会执行。
正在载入工具…
工具栏与快捷键改的是同一套语法。按钮包括 H1–H3、引用、粗体、斜体、删除线、行内代码、链接、图片、代码块、无序/有序/任务列表、表格骨架与分隔线;键盘有 16 个按钮 + 6 组快捷键 组快捷键(Ctrl/Cmd+B 粗体、I 斜体、E 行内代码、K 链接、1–3 标题、Shift+Ctrl/Cmd+C 代码块)。
选中已有内容再点粗体/斜体这类按钮是可反撤销的:已经包裹住的会解包,不会出现 ****字****。标题、引用、列表这类行级操作也一样,再点一次去掉前缀。
撤销栈是这页最容易做错的地方。程序写入 textarea 时优先用 execCommand('insertText'),它保留浏览器的原生撤销;实测本机 execCommand("insertText") 可用,写入走原生编辑命令 ⇒ 浏览器 Ctrl/Cmd+Z 仍能撤销。只有浏览器不支持时才退回 setRangeText 并自建快照栈(最多 60 步),此时按 Ctrl/Cmd+Z 走的是这页的快照。
回车会自动续写列表与引用:- 项 后回车得到下一个 - ,有序列表自动 +1,任务列表重置成 [ ];空条目上再回车则退出列表。Tab / Shift+Tab 在选区跨行时整块缩进或反缩进,单行时插入两个空格。
把图片拖进编辑器会自动转成 Base64 内嵌(原图上限 512 KB),适合只有一两张小图的说明文档;实测一张 78 B 的 4×4 PNG 的图内嵌后代码长 4×4 PNG(78 B)内嵌成 126 B 的 Data URI,比原文件大约 1.6 倍,所以大图请改用 /tupian/base64.html 或直接放站点路径。
导出的 .html 与打印结果都吃净化后的渲染输出(和预览一致),内嵌一小段排版 CSS,不引本站样式,双击打开或换设备看都不掉格式。打印走系统打印面板,选「另存为 PDF」即导出:实测本机 走隐藏 iframe + contentWindow.print(),导出样式内嵌不依赖本站 CSS;本机 iframe/print 可用。
| 操作 | 实测结果 |
|---|---|
| 内置示例文档的渲染 | 内置示例正常渲染(h1/h2/表格/任务列表/删除线全出) |
| 拖入 .md 文件 | 点选文件 ✓、拖放 .md ✓(drop 走 dataTransfer.files,与 input 走同一处理分支) |
| 草稿保存与恢复 | 输入后自动保存(约 0.6s 内落 localStorage),刷新页面自动恢复 |
| 复制 Markdown / 复制 HTML | 复制走异步剪贴板 API;无用户手势被拒时自动降级为「全选 + 提示手动 Ctrl/Cmd+C」 |
| 下载 .md / 下载 .html | 下载按钮触发 Blob + a[download] 不报错;文件名经 safeName:「我的 笔记 v2.md」→「我的_笔记_v2.md」(保留中文、空格转下划线) |
| 200KB 文档的实时预览延迟 | 200014 字符 → 610 KB HTML,渲染 461 ms(本机浏览器,含净化) |
窄屏(<980px)双栏会改成上下堆叠,并出现「只看编辑 / 只看预览」切换;输入框字号在窄屏抬到 16px,避免 iOS Safari 聚焦时自动放大整页。
这页不是所见即所得编辑器:写的是 Markdown 源码,右边只是预览。要「像 Word 那样点按钮出格式」请用 /wenben/zaixian_bianji.html 的富文本编辑器,两者产出不同(那边出 HTML,这边出 .md 源码)。