Posted at

Sketchプラグインにするまでもないけど、たまによく使うスクリプトをRun Scriptから呼び出す

More than 1 year has passed since last update.

タイトルの通りですが、プラグインにするまでもないけど、たまによく使うスクリプトってないでしょうか?

よく使うならプラグインにすればいいじゃない? という話もあるのですが、牧歌的なプラグイン形式の時代から随分と様相が変わり、フォルダ構成だったりmanifest.jsonを準備したりと、ちょっとしたプラグインを作るのも結構面倒だったりします。

そこで、Run Scriptから特定のスクリプトをいつでも実行できるように準備してやりましょう。

まずは、たまによく使うスクリプトをファイルに保存します。拡張子は.jsでも.sketchscriptでも大丈夫です。

SketchのPlugins -> Run Script(ショートカット:Ctrl + Shift + K)でスクリプトウィンドウを開き、1行目で先ほど保存したスクリプトを読み込むようにしてやれば準備完了です。

@import '/path/to/script-file.js';


利用例


いつもよく使う変数

var doc = context.document;

var sel = context.selection;
var pg = doc.pages();
var cp = doc.currentPage();


入力すると長いやつ

function showClassMethods(object) {

log(object.class().mocha().classMethods());
}
function showInstMethods(object) {
log(object.class().mocha().instanceMethods());
}
function showMethods(object) {
log('Class Methods:');
log(showClassMethods(object));
log('Instance Methods:');
log(showInstMethods(object));
}
function showProp(object) {
log(object.class().mocha().properties());
}
function showDict(object) {
log(object.treeAsDictionary());
}


とりあえずヘルプ的なやつ

定義したメソッドを忘れるので、とりあえず実行さえすれば、「utHelp()でヘルプ的なものが表示されますよ」と自分に教えてあげます。

log('Show Help: utHelp()');

function utHelp() {
var output = "doc\nsel\npg\ncp\n" +
"showClassMethods(object)\n" +
"showInstMethods(object)\n" +
"showMethods(object)\n" +
"showProp(object)\n" +
"showDict(object)\n" +
"getMdImagePath()\n";
log(output);
}


Markdown形式で画像の読み込み

function getMdImagePath() {

var imagesPath = '';
if (0 < sel.count()) {
for (var i = sel.count() - 1; i >= 0; i--) {
imagesPath += '![](images/' + sel[i].name() + '.png)' + "\n";
}
}
log(imagesPath);
}

いろいろと配慮できてませんが、個人的に使うやつなので、入力チェックとか無視無視。