本项目是 Doocs/md 的 fork。Doocs/md 解决了快速编辑公众号文章的问题,并提供了优雅的默认样式。
但是,如何安全地把文章发到任意平台,而不丢失这些优雅的样式呢?编辑一次,发遍宇宙,这就是 MarkTwain 要做的事。
我们的做法很简单,把平台可能不支持的特殊语法,比如代码高亮显示, Mermaid 图表(暂未实现),数学公式,警示语块事先转换成图片并上传到图床,并替换相应内容为图片链接。这样再复制粘贴到其它平台上,就能得到一致的视觉效果。实际上,这也是早期在编辑公众号标题、头条标题大家常做的事。
MarkTwain永久免费,并且一直可通过 MarkTwain 在线使用!
注:推荐使用 Chrome 浏览器,效果最佳。
作为一个 Markdown 编辑器(即将 Markdown 转换为 Html),Marktwain 支持以下独特功能:
- 支持 common mark 的 Admonition (类似 GFM Alerts)
- 分页功能,可以用来发小红书、公众号、知乎想法等需要多图平台。
- 模板功能。可以把一些可复用的内容和较为复杂的设计指定为模板,即可以此后的文章中插入使用。
- 支持将 admonition, fenced block, math block, mermaid, plantULM和标题 转换成图片,上传图床
- 将转图后的 markdown 替换为图片链接
- 将转图后的博文复制粘贴后,即可发表到多数网站,保持视觉效果基本不变。
以下常用编辑功能,由 doocs/md 支持。我们将保持同步更新。
- 支持 Markdown 所有基础语法、数学公式
- 提供对 Mermaid 图表的渲染和 GFM 警告块的支持
- 提供 PlantUML 渲染支持
- 提供 ruby 注音扩展支持,支持两种格式:[文字]{注音}、[文字]^(注音),支持
・
、.
、。
、-
分隔符 - 丰富的代码块高亮主题,提升代码可读性
- 允许自定义主题色和 CSS 样式,灵活定制展示效果
- 提供多图上传功能,并可自定义配置图床
- 便捷的文件导入、导出功能,提升工作效率
- 内置本地内容管理功能,支持草稿自动保存
- 集成主流 AI 模型(如 DeepSeek、OpenAI、通义千问、腾讯混元、火山方舟 等等),辅助内容创作
转图功能是指将 Markdown 中的特殊块,比如 Admonition, code block, plantUML, mermaid 图,数学公式等转换成为图片,保持文字内容不变,只把上述内容转换成图片并替换成为图片链接。
转图功能需要图床支持。
转图生,可以通过 复制 > 转图后富文本 设置复制的格式,再点击复制,此时图片和文字就被完全拷贝,可以几乎原样粘贴到知乎、知识星球上。
在转图时,可以通过转图宽度来调整生成的图片最终显示的大小。如果图片只会发布在移动端,推荐宽度500px;如果要兼顾电脑和移动端,则可以使用650px的宽度。
这些设置在 设置 > 转图设置中。
分页功能可以将长文章分页,每个分页可以单独保存为图片,特别适合发小红书、公众号图文、知乎想法等等平台。
使用时,通过"---"来手动分页(尽管我们提供了自动分页,但是自动分页能力较弱)。然后就可以在右侧的分页预览中,检查分页效果。
可以在设置 > 分页预览 中,指定分页的宽高比和像素密度。
注意,MarkTwain 目前使用绝对像素来作为字体大小的单位。一般情况下,在移动端显示时,每一行显示20个字符左右最佳。因此,我们推荐的宽度是480px。
为保证截图效果,建议像素密度设置为2。这样一张3:4的图截图后,图片像素将会是 960px × 1280px。
在分页模式下,我们给第一页加上了 page-cover (css)类,最后一页加上了 page-end (css)类。中间各页则对应的 page-2, page-3, ... page-n 等类。
你可以通过 样式 > 自定义 css 来修改这些类的样式,从而设计出封面效果。
在分页模式下,通过 文件 > 导出为 png 功能,即可导出多图。在普通模式下,该功能将导出长图。
你很可能希望在 Markdown 中,添加 logo 等略为复杂的设计。你可以把它们转换成图片插入,也可以直接使用 html + css 来实现。
但我们提供了更方便的模板功能。你可以一次设计好 logo 并保存,此后就可以在后续文章中直接插入使用。
# | 图床 | 使用时是否需要配置 | 备注 |
---|---|---|---|
1 | gitee | 否,但Gitee 图床图片,一般很难在其它网站上使用。 | - |
2 | GitHub | 配置 Repo 、Token 、仓库内路径 、域名前缀 参数 |
如何获取 GitHub token? |
3 | 阿里云 | 配置 AccessKey ID 、AccessKey Secret 、Bucket 、Region 参数 |
如何使用阿里云 OSS? |
4 | 腾讯云 | 配置 SecretId 、SecretKey 、Bucket 、Region 参数 |
如何使用腾讯云 COS? |
5 | 七牛云 | 配置 AccessKey 、SecretKey 、Bucket 、Domain 、Region 参数 |
如何使用七牛云 Kodo? |
6 | MinIO | 配置 Endpoint 、Port 、UseSSL 、Bucket 、AccessKey 、SecretKey 参数 |
如何使用 MinIO? |
7 | 公众号 | 配置 appID 、appsecret 、代理域名 参数 |
如何使用公众号图床? |
8 | Cloudflare R2 | 配置 AccountId 、AccessKey 、SecretKey 、Bucket 、Domain 参数 |
如何使用 S3 API 操作 R2? |
9 | 又拍云 | 配置 Bucket 、Operator 、Password 、Domain 参数 |
如何使用 又拍云? |
10 | Telegram | 配置 Bot Token 、Chat ID 参数 |
如何使用 Telegram 图床? |
11 | Cloudinary | 配置 Cloud Name 、API Key 、API Secret 参数 |
如何使用 Cloudinary? |
12 | 自定义上传 | 是 | 如何自定义上传? |
GitHub 图床支持以下配置选项:
- 仓库 (owner/repo): GitHub 仓库,格式为
用户名/仓库名
- 分支: 上传到的分支,默认为
main
- Token: GitHub Personal Access Token,需要有仓库写入权限
-
仓库内路径: 图片在仓库中的存储路径,支持变量替换
{year}
: 当前年份(4位){month}
: 当前月份(2位)- 示例:
images/{year}/{month}
会被替换为images/2025/09
- 默认:自动生成
YYYY/MM/DD
格式
-
域名前缀: 自定义图片访问域名
- CDN 加速示例:
https://fastly.jsdelivr.net/gh/owner/repo@main/
- 自定义域名示例:
https://img.example.com/
- 不填写时使用原始 GitHub 链接,但可能访问速度变慢。
- CDN 加速示例:
配置示例:
- 仓库:
githubuser/repo
- 分支:
main
- 仓库内路径:
images/{year}/{month}
- 域名前缀:
https://fastly.jsdelivr.net/gh/githubuser/repo@main/
本项目永久免费,并可通过Marktwain免费在线使用。
如果你在使用过程中遇到问题,或者有好的建议,欢迎在 Issues 中反馈。你也可以加入我们的交流群,和我们一起讨论,若群二维码失效,请添加好友,备注 marktwain
,我们会拉你进群。