2015年5月

PopClip插件开发

配置文件

Actions 里面一个 dict 是一个图标,由于 PopClip 不支持直接执行可执行文件,所以要使用 shell 来执行一下。

自己给定的两个图标的颜色是没有关系的,PopClip 会自动修改图标的颜色。

<?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>copy-result</string>
      <key>Image File</key>
      <string>id.png</string>
      <key>Regular Expression</key>
      <string>(?s)1\w+$</string>
      <key>Title</key>
      <string>Url2Id</string>
      <key>Shell Script File</key>
      <string>url2id.sh</string>
    </dict>
    <dict>
      <key>After</key>
      <string>copy-result</string>
      <key>Image File</key>
      <string>url.png</string>
      <key>Regular Expression</key>
      <string>(?s)\d+$</string>
      <key>Title</key>
      <string>Id2Url</string>
      <key>Shell Script File</key>
      <string>id2url.sh</string>
    </dict>
  </array>
  <key>Apps</key>
  <array>
    <dict>
      <key>Link</key>
      <string>http://tool.lu/</string>
      <key>Name</key>
      <string>在线工具</string>
    </dict>
  </array>
  <key>Credits</key>
  <array>
    <dict>
      <key>Link</key>
      <string>mailto:245565986@qq.com</string>
      <key>Name</key>
      <string>xiaozi</string>
    </dict>
  </array>
  <key>Extension Description</key>
  <string>Convert ids for mogujie.</string>
  <key>Extension Identifier</key>
  <string>lu.tool.popclip.extension.id-converter</string>
  <key>Extension Image File</key>
  <string>id.png</string>
  <key>Extension Name</key>
  <string>Id Converter</string>
  <key>Version</key>
  <integer>1</integer>
</dict>
</plist>

代码

PopClip 操作的文本是直接放在环境变量 POPCLIP_TEXT 里面的,所以下面的代码可以当做是 go 的一个插件模板

package main

import (
    "fmt"
    "os"
)

func main() {
    text := os.Getenv("POPCLIP_TEXT")
    fmt.Print(text)
}
go build -o IdConverter .

发布

mv IdConverter/ IdConverter.popclipext
zip -r IdConverter.popclipext.zip IdConverter.popclipext
mv IdConverter.popclipext.zip IdConverter.popclipextz