Willmove364 downloads将 Markdown 笔记一键转换为微信公众号排版:多主题、一键复制不乱版、直接发送到公众号草稿箱。Convert notes into WeChat Official Account layouts with themes, one-click copy, and direct draft publishing.
MarkNice WeChat 是一个 Obsidian 微信公众号排版插件。它可以把当前 Markdown 笔记转换为适合微信公众号编辑器的内联样式 HTML,并提供实时预览、一键复制、Markdown 复制、PDF OCR 导入、HTML/Word/PDF 导出、直接发送到公众号草稿箱等能力。
0.6.61.5.0text/html 和 text/plain,样式全部内联到 style 属性,粘贴到公众号编辑器后尽量保持排版不变。.docx 导入为 Markdown,也可以调用 PaddleOCR 服务把 PDF 识别为 Markdown 草稿。.html 文件,也可导出为 .docx 或 .pdf。$E=mc^2$ 与块级公式 $$...$$。在 Obsidian 社区插件市场搜索 MarkNice WeChat,安装并启用插件。
在目标库中创建插件目录:
<vault>/.obsidian/plugins/marknice-wechat/
将以下文件复制到该目录:
main.js
manifest.json
styles.css
在 Obsidian 中进入「设置 -> 第三方插件」,启用 MarkNice WeChat。
可以通过以下任一方式打开预览:
预览面板会跟随当前打开的 Markdown 文件。顶部工具栏保留 复制到公众号、发公众号草稿、导出 和 更多 四个操作入口;另存 HTML、导出 Word、导出 PDF 收纳在 导出 菜单中,导入 Word、导入 PDF OCR 和复制 Markdown 收纳在 更多 菜单中。第二行工具栏支持调整字号、段距和预览模式。
打开 Markdown 笔记后,可以:
然后到微信公众号后台编辑器中直接粘贴。桌面端会优先复制富文本 HTML;如果当前环境不支持富文本剪贴板,会退回复制纯文本。
打开 Markdown 笔记后,可以:
插件会优先复制当前编辑器中的内容,便于在保存前也拿到最新 Markdown。
发送草稿前,需要先在「设置 -> MarkNice WeChat」中填写:
配置完成后,可以在预览面板点击 发公众号草稿,或在命令面板执行 发公众号草稿。弹窗中可确认标题、作者、摘要和封面图,随后插件会执行以下流程:
注意事项:
40164。AppSecret 仅保存到当前 Obsidian 库的插件数据中,不会由插件主动上传到第三方服务。https 图片链接。.docx 文件,插件会在当前目录或活动文件所在目录创建对应 Markdown 文件,并自动打开预览。.pdf 文件,插件会把 PDF 上传到设置中配置的 PaddleOCR jobs 接口,轮询识别结果,把返回的 Markdown 和图片保存到当前目录,并自动打开预览。.html 文件,文件会保存到当前笔记所在目录,若重名会自动追加序号。.docx,文件会保存到当前笔记所在目录,若重名会自动追加序号。.pdf 并保存到当前笔记所在目录,若重名会自动追加序号,无需打开系统打印对话框。PDF OCR 使用前需要在「设置 -> MarkNice WeChat -> PDF OCR」中填写 PaddleOCR Token。默认任务接口为 https://paddleocr.aistudio-app.com/api/v2/ocr/jobs,默认模型为 PaddleOCR-VL-1.6。导入时插件会再次确认上传操作;请只对允许发送到外部 OCR 服务的 PDF 使用该功能。
关于公式导出:Word 的 HTML 导入链路无法稳定还原 KaTeX 的排版结构,因此导出 Word 时公式会转换为线性可读文本,例如 \frac{a+b}{c+d} 会转换为 (a+b)/(c+d)。公众号预览与复制仍使用 KaTeX 渲染后的公式。
插件会读取笔记 frontmatter,用于预填发布弹窗:
---
title: 文章标题 # 缺省使用文件名
author: 作者名 # 缺省使用插件设置中的默认作者
digest: 分享摘要 # 也支持 description;缺省截取正文开头
cover: assets/cover.png # 库内图片路径或 https 图片链接
---
字段说明:
| 字段 | 用途 | 备注 |
|---|---|---|
title |
公众号草稿标题 | 最多 64 个字符 |
author |
作者 | frontmatter 优先于插件默认作者 |
digest |
分享摘要 | 最多 120 字 |
description |
分享摘要 | 当 digest 不存在时作为备选 |
cover |
封面图 | 支持库内路径或远程图片 URL |
| 类型 | 支持情况 |
|---|---|
| 标题、段落、列表、引用、分隔线 | 支持并转换为内联样式 |
| 表格 | 支持基础表格样式 |
| 代码块、行内代码 | 支持,代码块会保留换行和空格 |
| 加粗、斜体、删除线 | 支持 |
==高亮== |
转换为 <mark> |
![[图片.png]] |
解析为库内图片并转换为 data URL |
[[双链]] |
降级为纯文本 |
| Callout | 按引用块样式处理,并强化标题行 |
| 任务列表 | 复选框会转换为文本符号 |
行内公式 $...$ |
使用 KaTeX 渲染 |
块级公式 $$...$$ |
使用 KaTeX 渲染 |
png、jpg、jpeg、gif、webp、bmp、svg。svg,以避免微信封面接口兼容性问题。安装依赖:
npm install
开发构建:
npm run dev
生产构建:
npm run build
构建脚本会先执行 TypeScript 类型检查,再通过 esbuild 输出 main.js。
obsidian-marknice/
├── manifest.json # Obsidian 插件清单
├── main.js # 构建产物
├── styles.css # 插件界面样式
├── package.json # 依赖与脚本
├── versions.json # Obsidian 插件版本映射
├── docs/ # 发布说明与社区插件提交材料
└── src/
├── main.ts # 插件入口、命令注册、视图注册
├── preview-view.ts # 公众号排版预览面板
├── settings.ts # 插件设置页
├── converter.ts # Markdown 到公众号 HTML 的转换逻辑
├── themes.ts # 内置排版主题
├── math.ts # 公式解析、渲染与 Word 导出降级
├── publish-modal.ts # 发送草稿弹窗
├── wechat-api.ts # 微信公众号接口客户端
├── word.ts # Word 导入 / 导出
├── pdf.ts # PDF 生成
├── paddle-ocr.ts # PaddleOCR PDF 识别客户端
├── docx-parser.ts # .docx 解析
├── html-to-markdown.ts # HTML 到 Markdown 转换
└── vendor.d.ts # 第三方库类型声明
MarkNice WeChat is an Obsidian plugin for converting Markdown notes into WeChat Official Account articles. It provides themed formatting, live preview, rich-text copy, PDF OCR import through PaddleOCR, direct draft publishing through the WeChat API, Word import/export, KaTeX math rendering, and compatibility handling for common Obsidian syntax.
Manual install: copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/marknice-wechat/, then enable the plugin in Obsidian.
MarkNice WeChat is an Obsidian plugin that converts Markdown notes into WeChat Official Account-ready HTML. It provides live preview, themed formatting, one-click rich-text copy, PDF OCR import through PaddleOCR, Word import/export, math rendering, and direct publishing through the WeChat Official Account API.
.docx import and exportIf the plugin is available in the Obsidian community plugin marketplace, install MarkNice WeChat from there.
For manual installation, copy main.js, manifest.json, and styles.css into:
<vault>/.obsidian/plugins/marknice-wechat/
Then enable MarkNice WeChat in Obsidian Settings -> Community plugins.
npm install
npm run build
Enter your WeChat App ID and WeChat App Secret in the plugin settings. The WeChat API requires your outbound IP to be whitelisted, and draft/material APIs generally require a verified WeChat Official Account.
Frontmatter keys title, author, digest, description, and cover can prefill the publish dialog.