引言
大众好啊, 我是枣把儿!
近期写作比较多,而要发平台又好几个,插进照片的时候就很不方便。一起始我是白嫖掘金的照片位置,然则每一个平台都会自动打个水印上去...
于是我又把之前写的命令行工具拿出来翻新了有些,加入了Sharp照片压缩、Picgo上传图床、markdown文件内容替换这三大内容,极重的改善了我的发帖体验,并且感觉在平常中亦比较实用。和大众分享一下~
功能一览
1. 国际化文件翻译 - translate
1. 日前用于机构内部批量翻译国际化文件, 因此需要遵循必定的规则
2. 基于百度翻译, 需要自定义自己的appId和key
3. 支持指定单个文件翻译
4. 支持指定文件夹, 批量翻译所有文件
2.压缩文件 - tiny
1. 基于sharp, sharp支持的文件(png/jpeg/jpg/gif等等)都能够压缩
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. 支持批量文件压缩
• 模糊匹配 所有包括abc且支持的文件类型都会被压缩
• 倘若无指定--dir , 则--condition会在当前目录下查询
• 模糊匹配到的内容, 会标红处理
• 支持相对路径
• 支持绝对路径
• 指定文件夹 --dir=./demo (基于当前命令运行的目录)
• 指定文件名 --condition=abc
• 若批量压缩时, 指定了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 npm i -g @img/sharp-darwin-arm64@0.33.0windows10/11 (win32-x64)用户请安装 @img/sharp-win32-x64@0.33.0 npm i -g @img/sharp-win32-x64@0.33.0而后安装工具本体 npm i -g zzoffduty-cli@latest运行 -h 瞧瞧是不是成功 zz -htiny命令 实现压缩
运用help命令查看所有支持的功能
zz tiny --help
-f, --file 要压缩的照片文件 (default: null)
-d, --dir
压缩文件夹内所有文件 (default: null)
-co, --condition 压缩文件夹内所有名叫作包括[--condition]的照片文件 (default: null)
-q, --quality 压缩质量(1-100) (default: 75)
-c, --colours GIF色彩保存(2-256) (default: 128)
-n, --name 指定文件名输出 (default: "")
-m, --max 限制要上传的文件体积(kb)(仅当开启 --picgo 时会用到) (default: 50)
--picgo [type] 调用picgo (无参数) (default: null)
--no-picgo [type] 不调用picgo (无参数) (default: null) -h, --help display help for command压缩功能演示:
• 指定目录压缩,并指定名叫作输出
picgo命令 实现上传图床
PicGo在2.2.0版本起始内置了一个小型的服务器,用于接收来自其他应用的HTTP请求来上传照片。
默认监听位置: 127.0.0.1,默认监听端口:36677
以POST请求去上传
• method: OST
• url: http://127.0.0.1:36677/upload (此处以默认配置为例)
• request body: {list: [xxx.jpg]} 必须是JSON格式
返回的数据:
{ "success": true, // or false "result": ["url"
] }因此此功能经过Http请求的方式调用Picgo Server, 因此需要本地已然安装并起步Picgo, 并已然配置好了图床
倘若运用picgo-core的话,手动配置json文件我觉得更痛苦有些。因此还是基于已然有了Picgo客户端的状况下,简化有些流程
运用help命令查看所有支持的功能
Options:
-f, --file 要上传的照片文件 (default: null)
-d, --dir
上传文件夹内所有照片文件 (default: null)
-co, --condition 上传文件夹内所有名叫作包括[--condition]的照片文件 (default: null)
-m, --max 大于指定体积(kb)的照片不会被上传 (default: 50)
-h, --help display help for command上传文件夹内所有体积符合限制的照片文件
上传所有名叫作中含有指定文字且体积符合限制的照片文件。无匹配到会有提示
tiny 联动 picgo
在tiny命令后运用--picgo 开启压缩后调用picgo
• 压缩单个照片文件 并 经过picgo上传 (这儿亦校验了max) zz tiny -f ./demo/demo2.png --picgo
• 压缩文件夹内所有照片文件,并经过picgo上传所有符合体积限制的照片文件 zz tiny -d ./demo --picgo
• 压缩文件夹内名叫作含有指定文字的,且符合体积限制的照片,并经过picgo上传 zz tiny -d ./demo -co mo2 --picgo
• 压缩文件夹内名叫作含有指定文字的,且符合体积限制的照片,并指定输出的文件名,并经过picgo上传
ps: 由于名叫作含有指定文字这个指令是个批量操作,因此输出文件名必定会带一个后缀防止重复 zz tiny -d ./demo -co mo2 -n 自定义 --picgo
究极联动,一条龙服务
压缩 => 上传 => 自动替换markdown照片链接 ./src/index.js tiny -d ./demo/md/配图 --picgo --replace -ref ./demo/md/demo4.md
此命令日前支持替换Obsidian里的Wiki链接, 即 ![[demo2.png]] 如下图所示:
被压缩的照片里只要有demo2.png 就会替换成demo2.png压缩后的,上传到图床的url。 ![[demo2.png]] 替换为 ![](http://www.baidu.com/demo2.png)
尤其重视,有有些Obsidian配置的前置要求:
1. 需要开启Wiki链接。由于日前版本我只实现了替换wiki链接对应的文本
2. Obsidian默认状况下,粘贴来的照片会表示成 paste img 2023123123.png 这种格式。因此意见安装 paste image rename 这个插件。原由是:
• 由于它名叫作自带空格,和命令行工具没法兼容!倘若你批量上传过程中,有一个文件不符合体积限制,无被上传,亦没被替换。此时你想运用zz tiny -f ./paste img 2023123123.png -m 100 --picgo --repalce -ref ../xxx.md 继续放大限制,上传+替换时,文件就没法被解析了!
• 况且本身的名字比较长,欠好找
以下是我的插件配置
当我截图后粘贴到md中时表示如下:
在粘贴照片时,文件存放路径配置:
在目录中展示为:
ok,以上便是我的obsidian配置,及我是怎样运用zzoffduty-cli的所有内容!
zz tiny -d ./ -q 60 -m 100 --picgo --replace -ref ../ |