基本
ClipMenuでは、ユーザーの作成したアクションを使って、テキスト形式のクリップボード履歴に対する文字列処理を行うことができます。ユーザーアクションの実行には、スクリプト言語のJavaScriptを使用します。
ClipMenuのJavaScript実行エンジンには、WebKitに含まれるJavaScriptCoreを利用しています。JavaScriptの動作仕様は、Safariを参考にしてください。なお、ClipMenuでは基本的に、コアJavaScript部分のみを使用します。
設置
ユーザー作成のJavaScriptファイルは、以下のフォルダに設置します。このフォルダが存在しない場合は、Finderから新規に作成してください。
/Users/<ユーザ名>/ライブラリ/Application Support/ClipMenu/script/action
スクリプトファイルの拡張子は、”.js” になります。これ以外の拡張子を持ったファイルは、無視されます。
actionフォルダ以下に存在するフォルダは、アクションメニューのサブメニューとして機能します。同じ種類のスクリプトファイルは、フォルダにまとめておくと便利です。
スクリプトの書き方
[クリップボード文字列]
ClipMenuアプリケーションから渡されたクリップボード履歴の文字列は、clipText 変数に代入されています。この変数に対して関数を適用したり、メソッドを実行して文字列処理を行ってください。
例)アルファベットをすべて大文字に変える
clipText.toUpperCase();
[処理の終了]
必要な処理が済んだら、return 文で値を戻します。return 文に渡す式の戻り値は、文字列か数値になるようにしてください。
例)アルファベットをすべて大文字に変えて、クリップボードに送る
return clipText.toUpperCase();
この時、return 文に式を指定しないと、クリップボード履歴に対する処理は何も行われません。
例)何も返さず、終了
return;
[ライブラリの読み込み]
複数のファイルで共通して使用する関数などは、ライブラリとして別ファイルに保存しておくと便利です。ClipMenuでは、指定したフォルダに置かれたスクリプトを、ライブラリとして読み込むことができます。読み込みには、ClipMenuオブジェクトの、require() メソッドを使用します。
例)inflection-jsを読み込む
ClipMenu.require('inflection');
require() メソッドの引数には、ライブラリスクリプトのファイル名を渡します。拡張子の”.js”は、有っても無くても構いません。読み込みが成功したかどうかは、require() メソッドの戻り値を使ってチェックできます。ライブラリが見つかれば 1 を、見つからなければ 0 を返します。
例)require() メソッドの戻り値をチェック
var isExist = ClipMenu.require('inflection');
if (!isExist) {
throw new Error('Cound not find the file');
}
ライブラリの読み込みが成功すると、ライブラリ内で定義された関数が利用可能になります。
例)inflection-jsで定義された、capitalize() メソッドを使用する
clipText.capitalize();
ライブラリフォルダには、アプリケーションバンドル内にある標準ライブラリフォルダと、ユーザーが設置するユーザーライブラリフォルダの二種類があります。ユーザーライブラリフォルダは、以下のパスに作成してください。
/Users/<ユーザ名>/ライブラリ/Application Support/ClipMenu/script/lib
ライブラリの読み込みは、ユーザーライブラリフォルダが優先されます。こちらから検索した後、標準ライブラリフォルダの検索を行います。
[ユーザー入力]
prompt() メソッドを使用すれば、ユーザー入力を組み合わせた処理ができます。
例)クリップボードにコピーしたURLと、入力したタイトルを組み合わせて、HTMLコードを作成
var input = prompt('タイトルを入力:');
return '<a href="' + clipText + '" title="' + input + '">' + input + '</a>';
その他
- alert() 、 confirm() メソッドは動作しません。


Recent Comments