I. PopClip工具
PopClip是mac上的一个工具集,最大的特点就是扩展,复制一段文本,然后根据你的需求写插件,把赋值的文本作为输出,做一些你想干的事
基于PopClip,也写了一些小工具,主要是php写的,写插件的教程还是比较简单的,一个配置文件Config.plist
和一个脚本文件xxx.php
即可
1. 实现一个插件流程
以JSON格式序列化为demo进行演示,如何从0到1创建一个popclip插件,先看一下最终的成品
一个插件的文件比较简单,主要有两个
Config.plist
- 具体的脚本文件
a. 配置文件
下面是一个实际的配置,里面指定了两个脚本:
- 第一个是 json2str.php,这个脚本实现将json转换为单行字符串,在插件上显示的名字就是 JsonStr, 采用的php编写实现
- 第二个是 str2json.php
需要注意的是里面正则规则,这个主要是用来表示当你划中一段文本之后,是否会出现这个插件的规则(比如时间戳和日期的相互转换,只有选中纯数字时,才支持时间戳转日期)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Actions</key> <array> <dict> <key>After</key> <string>paste-result</string> <key>Regular Expression</key> <!-- 正则匹配规则,*号表示任意选中的内容都会激活这个插件 --> <string>*</string> <key>Script Interpreter</key> <string>/usr/bin/php</string> <key>Shell Script File</key> <!-- 执行具体逻辑的脚本名 --> <string>json2str.php</string> <key>Title</key> <!-- 插件的name --> <string>JsonStr</string> </dict> <dict> <key>After</key> <string>paste-result</string> <key>Regular Expression</key> <string>*</string> <key>Script Interpreter</key> <string>/usr/bin/php</string> <key>Shell Script File</key> <string>str2json.php</string> <key>Title</key> <string>StrJson</string> </dict> </array> <key>Extension Description</key> <!-- 描述 --> <string>remove json space or stringfy json str</string> <key>Extension Name</key> <string>JSON</string> <key>Credits</key> <array> <dict> <key>Link</key> <string>mailto:bangzewu@126.com</string> <key>Name</key> <string>Json序列化</string> </dict> </array> <key>Extension Identifier</key> <string>popclip.extension.json-covert</string> <key>Required Software Version</key> <integer>695</integer> </dict> </plist> 复制代码
b. 脚本文件
这个里面就是写具体的业务逻辑,一般是将粘贴板中的内容作为输入,然后进行一段业务逻辑,然后输出到粘贴板内
如str2json.php
<?php $input=getenv("POPCLIP_TEXT"); if(empty($input)) { echo ''; } else { $param = json_decode($input); echo json_encode($param, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); } 复制代码
注意第一行,获取输入 $input=getenv("POPCLIP_TEXT");
, 不同的脚本有不同的获取方式
输出就比较简单了,传统的输出方法,会重写到粘贴板内 echo 'xxx';
c. 打包
上面完成之后,就是打包安装了,流程如下:
- 新建一个文件夹,后缀为.popclipext,将.plist和脚本文件拷贝到新的文件夹下
- 压缩:
zip -r xxx.popclipextz xxx.popclipext/
- 双击上面生成的文件,确认安装即可
说明: 上面新建的文件夹,一定要以.popclipext结尾
2. 我的插件
a. base64编码
作用:实现base64编码解码
源码地址: base64
demo:
b. 日期&时间戳
作用:实现日期和时间戳的相互转换
源码地址: date
demo:
c. unicode字符转中文
源码 : unicode
d. json格式化
源码: json
e. url编码解码
源码: url