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
II. 其他
工程地址
所有的插件都可以访问: PopClip
个人博客: Z+|blog
基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
声明
尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840