本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和大佬监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
直接先看一下工作页面吧:
为什么要写这个工具?
老弟没有任何排版天赋,却又运营着班级的公众号,每次要发一篇文章都让我痛不欲生。
我先后尝试过135编辑器、秀米、壹伴、mdnice等排版工具,但是都没有让我很满意。
135编辑器广告超多,像进了pdd一样窝点一样。除此外我自己排版(不使用模板)都没有几个可用的样式组件,绝大多数付费。既然我都没能好好体验服务,看是否值得我付费,那我只好跑路了。
秀米模板超级多,但是绝大多数付费,少部分免费,风格有限且花里胡哨,需要有耐心去填文字字贴图片显然我不属于这一行列。秀米的良心地方在你自己用它的文字、图片组件去混排是免费的。我挺喜欢的,但是手动排版要类死我了,且对于没有审美的我,排个版能弄一天(bushi)
壹伴将产品做成了浏览器扩展,是我认为最成功的公众排版产品。架不住它跟135一样小气,都没给我扩展体验的机会,遂跑路。
mdnice是我用的最多的,毕竟我大部分文章还是技术类的没有那么多复杂的排版需求。该产品整体我已经很满意了,让我抛弃她有三个原因:①用第三方图床,我感受到文章图片失效的危机;②导入markdown不能连带图片一起导入,即图片不会自动上传图床。③排版预览只能被动选择手机宽度,我看得很难受在编辑的时候。
基于以上理由,我开发了让我自己满意的产品。先说说功能:
- Markdown 编辑与实时预览:左侧使用 CodeMirror 6 编辑,右侧支持实时渲染移动端、web端公众号文章样式。预览是可以切换web(也就是我们平时在浏览器打开公众号文章)端视图和移动端视图(与手机上看公众号文章效果一致)的
- 微信官方图床:前面讲了,我忍受不了使用第三方图床,所以我干脆通过 Tauri Rust 命令代理调用微信公众号永久素材接口,上传成功后获得
mmbiz.qpic.cn链接。这样做规避了mdnice等工具使用第三方图床,带来图床跑路,文章作废的风险。不过呢,微信有规避机制,会验证图片是不是在微信域名打开的,如果不是,你的请求(在我的工具里表现为预览的时候要请求图片)会被返回一张提示你并非微信内请求url的缩略图。所以这个软甲使用 Tauri 自定义wximg协议带微信 Referer 拉图,实现了曲线救国。 - Markdown 文章导入:我们导入
.md/.markdown文件,除了正常导入文本外,还会自动扫描文章中远程图片链接(比如链接的其他图床的图片),下载并上传到微信素材库并替换链接;对于本地图片链接,可以自动扫描附件目录,并上传到微信素材库并替换链接。
对于有时候如果你使用的编辑器用一些奇葩的图片嵌入语法,我的扫描规则无法寻址到图片的时候就需要你自己指定一下资源根目录了。 - 发布到公众号草稿箱:上传封面图,校验正文图片均已进入微信素材域,再调用
draft/add写入公众号草稿箱。这里的话借鉴了微信自己的功能,即从文中选择图片作为封面。点发布后,会把文中的图片一并列出来让你选,如果没有想要作为封面的,也可以自己上传。 - 主题选择与收藏:内置 41 款排版主题和 250+ Highlight.js/Base16 代码主题,支持搜索、分页、收藏和置顶。这里面主题来自于mdnice的主题复刻和typora开源社区的主题复刻,不一定能100%还原,但大差不差。至于代码主题,完全是直接应用hljs的代码配色方案集。其中文章主题是高度结构化的json文件,用户(当然只能是程序员)可以去开发一些新主题,直接导入。
其他的好像没什么特色了,一些什么同步滚动啦,多文档管理啦,都是其他编辑器也有的。
讲到这里,为什么我别人不用微信官方图床?因为要配置AppID和AppSecret,并且微信使用API强制要求验证IP 白名单。对于我们这些没有公网IP的小卡拉米来说,可能得2-3天就得重新去设置一次白名单,因为本地出口公网IP会变。这也就是我这里的缺点,但是相对于图床稳定性来说,我觉得不值一提。
希望能对大家有帮助吧。现诚邀大家测试和共同开发

GitHub - CaipingPeng/VellumStyle
通过在 GitHub 上创建帐户来为 CaipingPeng/VellumStyle 开发做出贡献。