iPic 的开发者完美的解决了我在用 Markdown 码字儿时,插入图片的需求,每年 ¥25 的定价也算合适,但对于我这种不折腾会死的人来说,还是有些不够。

折腾的动力
我在工作中对图片的操作需求有 3 个场景会极度依赖外部工具:
- 码字儿时,用 iPic 插入图片
- 给工程师导出图片后,用 Tinypng 的 Web 版压缩图片
- 用 SketchMeasure 生成的标注图片用 Transmit 上传到服务器中方便工程师查看
如果有一个工具能解决这些需求岂不完美,直到我尝试使用了 Dropzone 。
完美实现 iPic 的插图功能
Dropzone 厉害的一点是:它支持用户自行编写 Action 。恰巧国内有位开发者编写了一个拖拽图片后上传到七牛云图床的插件: 使用Dropzone和七牛优化博客图床 - 闫肃的博客 ,但这个插件将图片上传至图床后,粘贴下来的只有图片的链接,并未带上 Markdown 的插图语法,还是没有 iPic 来的方便,没办法只好自己来,起初只是做了简单的改动:
base_url = '' % (bucket_domain, file_name)
但发现粘贴出来的是类似!%5B%5D(http://img.jinzhuo.me/xxx)这样的内容,[]这两个符号被转码了… … Debug 后看到发现生成的内容没有问题:

问题应该是将数据传到剪贴板时发生的。阅读 Dropzone Action 的文档时发现了这么一段:
$dz.text(text)
You can use this in place of $dz.url. It behaves exactly the same except that it does not attempt to encode the argument as a URL so you can place raw strings of text on the pasteboard.
Example
The following would result in the raw string ‘This is a test string that will not be URL encoded’ being placed on the pasteboard:
$dz.text("This is a test string that will not be URL encoded")
将原代码中的 dz.url 改为 dz.text 完美解决。
用 Tinypng 压缩图片
国内也有开发者写好了插件: 一个压缩图片的DropZone插件——Tinify | CoderGhui但安装插件后,使用过程中遇到了问题,brew install python3 安装 python3 后运行插件报错的,手动下载安装 requests 模块后问题解决。
用自带的 FTP_Upload 上传文件
Dropbox 自带了 FTP_Upload 的插件,配置好服务器信息后齐活,后续准备改动下代码实现上传成功后把链接地址数据传至剪贴板的功能。
折腾完毕,心满意足的收工 😄。