大家好,我是何三,独立开发者。

作为一个经常写技术文章的公众号作者,我一直有个痛点:Markdown 写得很爽,但复制到公众号编辑器就各种格式错乱。代码块没样式、表格变形、图片布局混乱……每次排版都要花费大量时间。

于是,我用 Rust 写了一个命令行工具 —— markdown-to-wechatmp,专门解决这个痛点。今天正式开源分享给大家!


为什么需要这个工具?

相信很多技术博主都有类似的经历:

  1. 习惯用 Markdown 写作 —— 简洁高效,专注内容
  2. 公众号排版费时 —— 复制粘贴后格式全乱,需要手动调整
  3. 代码展示不友好 —— 公众号编辑器对代码块支持有限
  4. 表格难以处理 —— Markdown 表格复制过去变成纯文本

市面上虽然有一些在线转换工具,但要么需要上传内容到第三方服务器,要么转换效果不理想,要么不支持自定义样式。

markdown-to-wechatmp 是一个纯本地运行的命令行工具,你的文章内容不会上传到任何服务器,完全保护隐私。同时支持自定义主题,让每篇文章都能有统一的视觉风格。


功能特性一览

核心功能特性

这个工具支持以下特性:

  • 📝 完整的 Markdown 支持:标题、段落、列表、代码块、表格、图片、链接等常见元素
  • 🎨 可自定义主题:通过 TOML 配置文件自定义 HTML 样式
  • 📋 剪贴板集成:一键复制生成的 HTML 到剪贴板,方便粘贴
  • 💾 文件输出:支持输出到指定 HTML 文件
  • 🖼️ 图片优化:自动为图片添加圆角、阴影等公众号友好样式
  • 📊 表格美化:支持表头高亮和斑马纹样式
  • 🔤 代码高亮:代码块带有优雅的背景和圆角样式

安装方法

从源码编译

git clone https://gitee.com/pojoin/markdown-to-wechatmp.git
cd markdown-to-wechatmp
cargo build --release

编译完成后,可执行文件位于: - Windows: target/release/markdown-to-wechatmp.exe - Linux/macOS: target/release/markdown-to-wechatmp


使用方法

基本用法

# 将 Markdown 文件转换为 HTML 并输出到文件
markdown-to-wechatmp -i input.md -o output.html

# 将生成的 HTML 复制到剪贴板
markdown-to-wechatmp -i input.md --clipboard

# 使用自定义主题
markdown-to-wechatmp -i input.md -o output.html -t my-theme.toml

# 输出到标准输出
markdown-to-wechatmp -i input.md

命令行参数

参数 简写 说明
--input -i 输入的 Markdown 文件路径(必填)
--output -o 输出的 HTML 文件路径(可选)
--theme -t 主题配置文件路径(可选)
--clipboard - 将 HTML 复制到剪贴板

工作流程

工具工作流程

使用这个工具非常简单,只需四步:

  1. 编写 Markdown —— 用你熟悉的 Markdown 语法写文章
  2. 运行转换命令 —— 一行命令完成转换
  3. 生成 HTML —— 自动转换为公众号兼容的格式
  4. 粘贴到公众号 —— 复制 HTML 内容到编辑器即可

整个过程不到 10 秒,排版问题全部解决!


自定义主题

工具使用 TOML 格式的主题配置文件。默认主题已经针对公众号做了优化,但你也可以创建自己的主题。

主题配置示例

# wrapper 包裹整个内容的样式
[wrapper]
style = "font-family: 'Microsoft YaHei', sans-serif; font-size: 16px; line-height: 1.8;"

# 标题样式
[heading.h1]
style = "margin: 40px 0 20px;"
content_style = "font-size: 26px; font-weight: bold; color: #333;"

[heading.h2]
style = "margin: 30px 0 15px;"
content_style = "font-size: 22px; font-weight: bold; color: #333;"

# 段落样式
[paragraph]
style = "margin: 10px 0; text-indent: 2em;"

# 粗体样式
[strong]
style = "font-weight: bold; color: #000;"

# 链接样式
[link]
style = "color: #007AFF; text-decoration: none;"

# 代码块样式
[code_block]
pre_style = "background: #f8f9fa; border-radius: 8px; padding: 16px; overflow-x: auto;"
code_style = "font-family: 'Consolas', monospace; font-size: 14px; color: #333;"

# 图片样式
[image.img]
style = "max-width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);"

# 表格样式
[table]
style = "width: 100%; border-collapse: collapse; margin: 20px 0;"

[table_cell]
head_style = "background: #f5f5f5; font-weight: bold; padding: 12px; border: 1px solid #ddd;"
data_style = "padding: 12px; border: 1px solid #ddd;"

# 引用块样式
[blockquote]
style = "border-left: 4px solid #007AFF; padding-left: 16px; margin: 20px 0; color: #666;"

你可以根据需要调整颜色、字体、间距等样式,打造属于自己的文章风格。


支持的 Markdown 语法

  • ✅ 标题(H1-H6)
  • ✅ 段落和换行
  • ✅ 粗体、斜体、删除线
  • ✅ 有序列表和无序列表
  • ✅ 链接和图片
  • ✅ 代码块和行内代码
  • ✅ 引用块
  • ✅ 分割线
  • ✅ 表格
  • ✅ 任务列表

开源地址

这个项目完全开源,欢迎大家使用、反馈和贡献代码!

git clone https://gitee.com/pojoin/markdown-to-wechatmp.git

如果你在使用过程中遇到问题,或者有新功能建议,欢迎在 Gitee 上提交 Issue。


总结

markdown-to-wechatmp 是我为了解决自己写作痛点而开发的工具,现在开源出来希望能帮助到有同样需求的开发者。

它的优势在于:

  1. 纯本地运行 —— 保护隐私,无需上传内容
  2. Rust 编写 —— 性能优秀,启动速度快
  3. 主题可定制 —— 灵活配置,统一风格
  4. 简单易用 —— 一行命令,10 秒搞定

如果你也是技术博主,经常需要在公众号发布文章,不妨试试这个工具,相信能帮你节省不少排版时间!