界面由三部分组成:
- 左侧为文件和目录树,可打开单个文件或整个项目目录。
- 中间为 Markdown 编辑器,支持语法高亮、自动换行和长文编辑。
- 右侧为微信公众号文章实时预览,预览宽度按照公众号常用正文宽度展示。
侧边栏可以通过顶部按钮或快捷键收起与展开。
- 打开一个或多个 Markdown 文件。
- 安装后可在 Windows、macOS 和 Linux 中关联
.md、.markdown、.mdown、.mkd文件,双击或通过“打开方式”直接交给文染。 - 打开完整目录并浏览多级目录树。
- 默认仅显示 Markdown 文件,也可以切换为显示全部文件。
- 使用 CodeMirror 6 提供 Markdown 编辑体验。
- 编辑内容时实时更新公众号文章预览。
- 支持网页预览和带 iPhone 17 外壳的手机预览。
- 编辑器与预览区域默认同步滚动。
- 支持单独显示编辑器、分栏显示和单独显示预览。
- 支持从 Markdown 标题自动生成文章大纲,跟随光标标记当前章节,并可点击标题快速跳转。
- 支持当前文章查找与替换,以及已打开文章和目录的工作区全文搜索。
- 实时显示字词数、字符数、段落数、标题数、图片数和预计阅读时间。
- 支持专注模式,临时隐藏侧栏和预览以获得完整的长文编辑空间。
- 自动恢复每篇文章上次编辑的光标位置。
- 支持本地可复用内容块:可从选区保存常用 Markdown 片段,为每个内容块设置自定义
/命令,并通过侧栏或斜杠菜单一键插入。 - 支持微信公众号兼容的静态代码高亮。
- 支持独立选择 Highlight.js 官方代码主题。
- 支持表格、引用、列表、图片、链接、行内代码和代码块。
- 支持将剪贴板图片直接粘贴到文章,默认保存到文章同级的
assets目录,也可设置自定义存放目录。 - 支持将一张或多张本地图片拖入编辑器,自动处理重名文件且不会覆盖已有图片。
- 图片导入默认保留原始文件,可在设置中开启尺寸限制以及 PNG、JPEG、WebP 压缩。
- 支持 Amazon S3、阿里云 OSS、腾讯云 COS、Cloudflare R2、GitHub 和自定义上传接口作为图床。
- 图床采用本地优先工作流,可选择手动上传、插入后上传或复制到公众号前上传;成功后自动替换 Markdown 图片地址。
- 图床 Access Key、Secret、GitHub Token 和自定义鉴权请求头保存在操作系统密钥库,不写入普通设置文件。
- 支持绑定多个公众号,将正文图片与封面上传到微信,并创建或更新公众号草稿箱文章。
- 公众号 AppSecret 保存在操作系统密钥库;文章会记住各公众号对应的草稿 ID,更新前仍可选择创建新草稿。
- 支持调整正文与标题字体、字号、行高、段落间距和 H1~H6 标题层级。
- 排版设置按文章主题独立保存,并可随时恢复主题默认值。
- 支持可视化编辑主题色、标题装饰、引用、表格、链接、代码块、图片圆角、阴影与图注。
- 支持复制内置或自定义主题,并通过 JSON 文件导入、导出和分享主题。
- 支持高级自定义 CSS;文章主题、代码主题与排版覆盖参数会按文章分别保存。
- 支持亮色、暗色和跟随系统三种软件界面主题,默认跟随系统。
- 一键复制带内联样式的内容,可直接粘贴到公众号编辑器。
- 支持将完整文章导出为 HTML 文件。
- 自动恢复上次打开的文件、目录和最后编辑的文章。
- 自动保留未命名文章与尚未保存的编辑草稿。
- 保存时保留原文件的
LF/CRLF换行符和 UTF-8 BOM。 - 定期检测磁盘文件的外部修改、删除和只读状态。
- 外部编辑冲突时提供版本比较、覆盖、重新加载与另存为。
- 通过临时文件和备份替换进行安全写入,保存失败时保留原文件。
- 关闭未保存的文档、目录或应用前进行保存确认。
- 自动记住主题、侧边栏和目录展开状态。
- 自动记住软件界面主题,并在“跟随系统”模式下实时响应系统主题变化。
- 复制到公众号时自动嵌入文章中的本地图片,粘贴后图片可随正文一并带入。
正式安装包会将文染注册为 Markdown 编辑器。首次双击文件可以在系统的“打开方式”中选择文染;当文染已经运行时,再打开 Markdown 文件会复用当前窗口并切换到对应文章。Windows 安装包、macOS 应用包以及 Linux DEB/RPM 包都会写入各自平台的文件类型元数据;便携版或未安装的 AppImage 是否自动出现在“打开方式”中,取决于桌面环境的应用集成设置。
文染目前提供十款内置主题:
| 主题 | 适用场景 |
|---|---|
| 经典绿 | 技术教程与通用文章 |
| 极简黑白 | 长文阅读与简洁排版 |
| 深海科技 | 工程、编程与人工智能文章 |
| 暖杏手记 | 生活记录与个人随笔 |
| 胭脂人文 | 文化、历史与评论文章 |
| 紫雾灵感 | 产品、设计与创意内容 |
| 青瓷雅集 | 东方审美与人文内容 |
| 报刊铅字 | 深度报道与专栏文章 |
| 夜航代码 | 代码较多的技术文章 |
| 柠檬清单 | 清单、教程与科普内容 |
每款主题都拥有独立的字体、颜色、标题、引用、表格、代码块和图片样式。切换主题后,实时预览、公众号复制内容和导出的 HTML 会同时更新。
在主题菜单中选择“编辑当前”即可打开主题编辑器。内置主题会先自动生成副本,确保预设不被覆盖;自定义主题可直接修改。结构化选项适合日常调整,高级区域提供自定义 CSS。主题可导出为 .wenrender-theme.json 文件,用于备份或分享给其他用户。
文章主题和代码主题可以分别选择。文染目前内置八款 Highlight.js 官方代码主题:
- Atom 暗色
- GitHub 亮色
- GitHub 暗色
- Monokai
- 微软开发工具
- Nord 极夜
- 夜猫子
- 问答社区亮色
代码主题会实时应用到预览中的代码背景、关键字、类型、函数、字符串、数字和注释。所有颜色都会在生成文章时转换为内联样式,复制到微信公众号后不需要加载 Highlight.js 或外部样式表。
点击左侧的“打开文件”,可以一次选择一个或多个 Markdown 文件。打开的文件会显示在左侧“文件”区域。
点击左侧的“打开目录”,选择一个项目目录。目录会以树形结构显示,子目录可以单独展开或收起。
目录视图默认仅显示 Markdown 文件以及包含 Markdown 文件的目录。点击“全部”后可以查看其他文件,但非 Markdown 文件不能在编辑器中打开。
在中间编辑器中修改 Markdown 内容,右侧预览会实时刷新。同步滚动默认开启,可以通过顶部的链接按钮关闭。
顶部的视图按钮可以在以下模式之间切换:
- 仅显示编辑器。
- 编辑器和预览分栏显示。
- 仅显示预览。
点击顶部的设置按钮,右侧主区域会切换到独立设置页面。设置页拥有单独的分类导航,后续可以继续增加编辑器、导出等设置。
软件主题提供“跟随系统”“亮色”和“暗色”三种模式,默认跟随系统。主题会应用于侧边栏、工具栏、菜单、设置页、Markdown 编辑器和软件弹窗;微信公众号文章预览使用所选文章主题,不随软件主题变化。
完成排版后,点击右上角的“复制到公众号”,然后在微信公众号编辑器中粘贴。文染会复制已经转换为内联样式的 HTML,不需要公众号页面加载外部样式或脚本。
文章中引用的本地图片会在复制时自动嵌入剪贴板内容,粘贴到公众号编辑器后可随正文一并带入,无需先上传图片或手动替换链接。
点击“复制到公众号”右侧的下拉按钮,选择“导出 HTML”,可以保存一份完整的 HTML 文件。
黄色圆点表示当前文档存在尚未写入磁盘的修改。文染会自动备份编辑草稿,但默认不会自动覆盖原文件,需要使用顶部保存按钮或 Ctrl/Cmd + S 写入磁盘。
当文件被其它编辑器修改时:
- 当前文档没有本地修改:自动加载最新磁盘版本。
- 当前文档也有本地修改:暂停保存并显示两个版本,用户可以选择使用磁盘版本、覆盖磁盘、另存为或取消。
- 文件被删除:保留编辑器中的内容,可以重新创建原文件或另存为。
关闭包含未保存内容的文档、目录或整个应用时,会显示保存确认。保存采用临时文件与备份替换机制,写入成功后才会清除黄色圆点。
| 快捷键 | 功能 |
|---|---|
Ctrl/Cmd + S |
保存当前文章 |
Ctrl/Cmd + O |
打开 Markdown 文件 |
Ctrl/Cmd + B |
收起或展开侧边栏 |
Ctrl/Cmd + F |
在当前文章中查找与替换 |
Ctrl/Cmd + Shift + F |
打开工作区全文搜索 |
Ctrl/Cmd + Shift + M |
进入或退出专注模式 |
Ctrl/Cmd + Shift + K |
打开可复用内容块 |
开始前需要安装以下环境:
- Node.js 和 pnpm。
- Rust 稳定版工具链。
- Tauri 2 对应操作系统所需的系统依赖。
不同操作系统的依赖安装方式,请参考 Tauri 2 环境准备说明。
pnpm installpnpm tauri devpnpm dev仅启动前端页面时,文件选择、目录扫描和本地文件读取等 Tauri 功能不可用。
pnpm buildcargo test --manifest-path src-tauri/Cargo.tomlpnpm tauri build构建产物会生成在 src-tauri/target/release/bundle 目录中。
WenRender
├─ demo 演示图片
├─ src
│ ├─ components 编辑器、预览、侧边栏和排版面板组件
│ ├─ lib
│ │ ├─ document.ts 文档修改状态与换行符比较
│ │ ├─ markdown.ts Markdown 与微信公众号 HTML 渲染
│ │ ├─ themes.ts 内置文章主题
│ │ ├─ customThemes.ts 自定义主题与主题文件导入导出
│ │ ├─ typography.ts 文章排版覆盖参数与字体方案
│ │ └─ workspace.ts 工作区和草稿恢复
│ ├─ App.tsx 应用状态与主要交互
│ └─ styles.css 应用界面公共样式
├─ src-tauri
│ ├─ capabilities Tauri 权限配置
│ ├─ src Rust 目录扫描和文件读取逻辑
│ └─ tauri.conf.json 桌面应用配置
└─ README.md 项目说明
文染在本地读取和保存用户选择的文件,不会主动上传文章内容。
为了在软件重启后恢复工作区,应用会在本地 WebView 存储中保存以下信息:
- 用户打开过的文件和目录路径。
- 当前正在编辑的文件。
- 未命名文章和未保存的草稿。
- 主题、排版设置、侧边栏与目录展开状态。
如果原文件或目录已经移动、删除或无法读取,启动时会自动跳过对应路径,不影响其他工作区内容恢复。
本项目按照 GNU Affero 通用公共许可证第 3 版发布,完整条款请查看 LICENSE。

