提升效率!早早下班!Sharp+Picgo实现压缩后上传并替换外链的命令行工具

   日期:2024-12-25    作者:3qrqd 移动:http://oml01z.riyuangf.com/mobile/quote/21620.html

大家好啊, 我是枣把儿

最近写作比较多,而要发平台又好几个,插入图片的时候就很不方便。一开始我是白嫖掘金的图片地址,但是每个平台都会自动打个水印上去…

于是我又把之前写的命令行工具拿出来翻新了一些,加入了Sharp图片压缩、Picgo上传图床、markdown文件内容替换这三大内容,极大的改善了我的发文体验,并且感觉在日常中也比较实用。和大家分享一下~

  1. 国际化文件翻译 - translate

    1. 目前用于公司内部批量翻译国际化文件, 所以需要遵循一定的规则
    2. 基于百度翻译, 需要自定义自己的appId和key
    3. 支持指定单个文件翻译
    4. 支持指定文件夹, 批量翻译所有文件
  2. 压缩文件 - tiny

    1. 基于sharp, sharp支持的文件都可以压缩
    2. 输出目录: 所有参数下, 压缩后文件都会输出到同级目录中
    3. 输出时显示大小及压缩比例
      如: ✔ 190.4 KB => 115.2 KB (↓39.52%)【 demo1-zz-tiny-1702631665830.gif 】
    4. 支持自定义名称输出 --name=xxx.png
    5. 支持自定义压缩质量 --quality=70 (1-100)
    6. 支持单个文件压缩 --file=xxx.png
    7. 支持批量文件压缩
      • 指定文件夹 --dir=https://blog.csdn.net/Gnak75/article/details/demo (基于当前命令运行的目录)
        • 支持相对路径
        • 支持绝对路径
      • 指定文件名 --condition=abc
        • 模糊匹配 所有包含abc且支持的文件类型都会被压缩
        • 如果没有指定–dir , 则–condition会在当前目录下查找
        • 模糊匹配到的内容, 会标红处理
      • 若批量压缩时, 指定了name(第四条), 则自定义名称后会自动拼接一个序号, 避免覆盖
    8. 支持和picgo联动, 压缩完后直接上传到图床
      1. 需要先安装picgo, 启动, 并配置好图床配置
      2. 限制文件大小, 超过 max 的文件不会被上传
  3. 通过 Picgo 上传到图床 - picgo

    1. 支持指定文件 -f 上传
    2. 支持指定文件夹 -d 批量上传全部
    3. 支持限制大小 -m 默认只上传60kb以内的图片
    4. 支持模糊匹配 -co 文件名中含有co的图片, 且满足大小限制, 都会被上传
  4. 究极联动tiny压缩 -> 自动传给picgo -> 自动把obsidian里的本地图片链接替换为上传后的url

先安装sharp的两个前置依赖包。@img/sharp-darwin-arm64@0.33.0 、 @img/sharp-win32-x64@0.33.0

我的系统是macos M2,所以需要安装@img/sharp-darwin-arm64

 

windows10/11 (win32-x64)用户请安装 @img/sharp-win32-x64@0.33.0

 

然后安装工具本体

 

运行 -h 看看是否成功

 
 

使用help命令查看所有支持的功能

 

压缩功能演示

  • 指定目录压缩,并指定名称输出

PicGo在版本开始内置了一个小型的服务器,用于接收来自其他应用的HTTP请求来上传图片。

默认监听地址,默认监听端口

以POST请求去上传

  • method:
  • url: (此处以默认配置为例
  • request body: 必须是JSON格式

返回的数据

 

所以此功能通过Http请求的方式调用Picgo Server, 所以需要本地已经安装并启动Picgo, 并已经配置好了图床

如果使用picgo-core的话,手动配置json文件我觉得更痛苦一些。所以还是基于已经有了Picgo客户端的情况下,简化一些流程

使用help命令查看所有支持的功能

 

上传文件夹内所有大小符合限制的图片文件

上传所有名称中含有指定文字且大小符合限制的图片文件。没有匹配到会有提示

在tiny命令后使用–picgo 开启压缩后调用picgo

  • 压缩单个图片文件 并 通过picgo上传 (这里也校验了max
 
 
  • 压缩文件夹内所有图片文件,并通过picgo上传所有符合大小限制的图片文件
 
 
  • 压缩文件夹内名称含有指定文字的,且符合大小限制的图片,并通过picgo上传
 
 
  • 压缩文件夹内名称含有指定文字的,且符合大小限制的图片,并指定输出的文件名,并通过picgo上传

 
 
 

压缩 => 上传 => 自动替换markdown图片链接

 
 

此命令目前支持替换Obsidian里的Wiki链接, 即
如下图所示

被压缩的图片里只要有demo2.png 就会替换成demo2.png压缩后的,上传到图床的url。
替换为

当我截图后粘贴到md中时显示如下

在粘贴图片时,文件存放路径配置

在目录中展示为

ok,以上就是我的obsidian配置,及我是如何使用zzoffduty-cli的全部内容

 

然后直接复制,粘贴到各大平台即可

提高兼容性

  • 准备把文本替换功能抽离出来,现在只是满足了自己的需求。
  • 可以再加一个掘金文章里用的图片缩放功能,或者自定义replace函数、正则表达式等。
  • 收集更多其他人日常使用方式,融合进来

这是一个我在为了简化日常工作和生活中一些复杂的、繁琐的、可联动的操作而开发的命令行工具,是一个纯粹为了效率的实用工具。

后续随着我自己的使用或其他人的反馈,我会加入更多的功能把它一步步的完善。同时一些适合可视化操作的功能,也会拆成web、客户端、小程序等形态,都是我的"预备摊位"

如果你对这个产品感兴趣或者有好的功能建议要告诉我,代码在Github,也欢迎关注公众号:早早集市


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号