0x01 Markdown编辑器
可以给大家安利一波Markdown 编辑器 storywriter 。功能如下:
0x1 语法丰富
不仅提供了常用的commanmarkdown语法,还提供了许多有用的扩展语法,比如Latex公式,表格, 目录, 脚注, 视频, 音频, 附件, checklist, 流程图等。 样图如下:
0x2 平台多样
支持多种平台绑定,缺陷是不能喝博客系统进行绑定,但是支持多种图床和自定义图床这就方便了很多下面会介绍怎么一文多发到博客上。
同时支持多种操作系统
0x3 配置灵活
支持各种配置包括主题模式、渲染模式、代码模式、编辑模式、键盘模式、预览模式、语法扩展等等
0x4 渲染好看
最最最最重点的是渲染很好看,可以导出各种格式,包括网页版,所以很方面。下面截几个图
同时还支持PPT 和 pdf预览模式
0x5 导出种类多
目前支持很多导出方式,足够满足你的需求
0x02 问题描述
多么好的玉也会有瑕疵,就像这小书匠一样,它存在一些小问题
- 支持的图床种类不多,并且与微信公众号支持的图床没有交集
- 不支持一文多发
作为一个很好的markdown编辑器,不能让这些缺点成为放弃他的理由
0x03 解决问题
0x1 一文多发
可以采用目前比较成熟的一文多发工具 https://my.openwrite.cn/ https://github.com/crawlab-team/artipub
openwrite
付费的会员模式和普通模式对比
ArtiPub
开源工具利用docker可以快速搭建,有些功能在本地运行会报错,兼容性有待加强。
0x2 图床问题
目前公众号支持的图床种类不多,经过测试可以使用百度图片搜索时的图床。代码如下,我会详细介绍怎么个分析流程。
1 百度识图
通过百度识图的上传接口将图片存在百度服务器
2 抓取上传流量包
分析获取的流量包和图片url规律
{"status":0,"msg":"Success","data":{"url":"https://graph.baidu.com/s?sign=1211bcbb3907707c50c0001588934534&f=all&tn=pc&srcp=&tn=pc&idctag=tc&sids=10006_10061_10090_10190_10291_10391_10802_10705_10301_10709_10019_10912_11006_10905_10015_10901_10907_11013_11032_11120_11160_11170_12115_12132_13007_12201_13203_12302_12402_12410_14001_14011_14021_15001_9999&logid=2534197937&entrance=general&pageFrom=graph_upload_pcshitu&extUiData%5BisLogoShow%5D=1&tpl_from=pc","sign":"1211bcbb3907707c50c0001588934534"},"cost_nirs":89,"cost_pfc":190}
利用sign参数进行url拼接,拼接处类似于 https://graph.baidu.com/resource/221c5c71270917082d20a01589109454.jpg
这样的url
3 编写图床代码
图床代码
const fd = new FormData();
fd.append('image', new File([fileData], filename));
$.ajax({
type: 'POST',
url: 'https://graph.baidu.com/upload',
data: fd,
processData: false,
contentType: false
}).done(function(data){
try{
data = JSON.parse(data);
} catch(e){}
if (data.status != 0) {//判断上传的状态
callback('上传失败' + data.msg);
} else {
callback(null, filename, "https://graph.baidu.com/resource/"+data.data.sign+".jpg", data);//利用callback函数给小书匠图片的url地址
}
}).fail(function(res, status, message){
callback('上传资源失败:' + message);//小书匠错误提示
});
0x04 效果
目前效果非常棒,可以很轻松的将文章发送到各个平台不局限于本地(可以直接把markdown格式笔记复制到一文多发平台发送到CSDN和简书、知乎之类的平台)。storywriter可以绑定私人笔记,将笔记存在服务端。比如我是将小书匠笔记和为知笔记绑定在一起,可以利用二者实现文件高效阅读。
更多分享在
本篇文章由一文多发平台ArtiPub自动发布