【sketch plugin開發(fā)教程1】插件的結構分析

前言

sketch是一款輕量抗碰、易用的矢量設計工具,很多UI設計師已經在使用這款工具來進行設計饱溢。同時sketch也開放了API供開發(fā)者們進行插件開發(fā)。我們這個課程就是來學習如何開發(fā)sketch 插件窟她。

插件的結構

插件是一個或多個腳本的集合。每個腳本都定義了一個或多個方法來擴展Sketch的命令蔼水。我們可以看到它是一個以.sketchplugin為擴展名的文件夾震糖,包含文件和子文件夾,右鍵--選擇查看包內容趴腋,可以看到以下結構:

mrwalker.sketchplugin
  Contents/
    Sketch/
      manifest.json
      shared.js
      Select Circles.cocoascript
      Select Rectangles.cocoascript
    Resources/
      Screenshot.png
      Icon.png

(一)Resources

用來放icon圖片等資源吊说。

(二)manifest.json

這是一個json文件,它包含了名稱优炬,描述和作者姓名等信息颁井。定義了插件的命令名稱、在sketch顯示的菜單選項等穿剖。
比如:

{
  "name": "Select Shapes",
  "description": "Plugins to select and deselect shapes",
  "author": "Joe Bloggs",
  "homepage": "https://github.com/example/sketchplugins",
  "version": "1.0",
  "identifier": "com.example.sketch.shape-plugins",
  "appcast": "https://excellent.sketchplugin.com/excellent-plugin-appcast.xml",
  "compatibleVersion": "3",
  "bundleVersion": 1,
  "commands": [
    {
      "name": "All",
      "identifier": "all",
      "shortcut": "ctrl shift a",
      "script": "shared.js",
      "handler": "selectAll"
    },
    {
      "name": "Circles",
      "identifier": "circles",
      "script": "Select Circles.cocoascript"
    },
    {
      "name": "Rectangles",
      "identifier": "rectangles",
      "script": "Select Rectangles.cocoascript"
    }
  ],
  "menu": {
    "items": ["all", "circles", "rectangles"]
  }
}

有關插件的信息

1.name
插件的名稱
2.description
插件的描述
3.author
插件的作者
4.version
插件版本號
5.identifier
指定插件的唯一標識符蚤蔓。Sketch在內部使用此字符串來跟蹤插件卦溢,為其存儲設置等糊余。官方鼓勵使用反向域語法,如com.example.sketch.shape-plugins单寂。

commands

是一個數(shù)組贬芥,定義用戶執(zhí)行的一個或多個命令。定義的每項命令具有以下屬性:
1.name
命令的顯示名稱宣决。此值在插件菜單中使用蘸劈。
2.identifier
一個字符串,指定命令的唯一標識符尊沸。這用于將命令映射到操作威沫,而不論命令名稱如何更改。
3.shortcut
一個可選的字符串洼专,用于指定該命令的快捷鍵棒掠,例如:ctrl t,cmd t屁商,ctrl shift t烟很。
4.script
插件包的Sketch文件夾中用于實現(xiàn)此命令的腳本的相對路徑。
5.handler
此命令調用的函數(shù)蜡镶。如果未指定雾袱,則一般直接運行export的函數(shù)

menu

用來設置sketch的菜單列表。

1.title
一個字符串官还,為子菜單的標題芹橡。

2.items
包含次級子菜單項目的數(shù)組,它可以包含兩種類型:
(1)命令標識符的字符串望伦;
(2)數(shù)組(相當于次次級子菜單)僻族。
3.isRoot
默認情況下粘驰,此詞典中列出的菜單項將顯示在菜單中,其名稱由標題鍵指定述么。

如果指定了isRoot鍵蝌数,值為true,則項目將插入插件菜單的根目錄度秘,而不是插入子菜單中顶伞。在這種情況下,title將被忽略剑梳。

在子菜單中忽略這個key唆貌。

例如:
在名稱為“my-plugin”的菜單中定義了三個命令。菜單的前兩項對應于Plugin的兩個命令垢乙,但第三項是一個名為“My Plugin Submenu”的子菜單锨咙。這個子菜單里面有一個項目(插件命令的第三個):

{
  "menu": {
    "title": "My Plugin Menu",
    "items": [
      "command1-identifier",
      "command2-identifier",
      {
        "title": "My Plugin Submenu",
        "items": ["command3-identifier"]
      }
    ]
  }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市追逮,隨后出現(xiàn)的幾起案子酪刀,更是在濱河造成了極大的恐慌,老刑警劉巖钮孵,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骂倘,死亡現(xiàn)場離奇詭異,居然都是意外死亡巴席,警方通過查閱死者的電腦和手機历涝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漾唉,“玉大人荧库,你說我怎么就攤上這事≌孕蹋” “怎么了分衫?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長料睛。 經常有香客問我丐箩,道長,這世上最難降的妖魔是什么恤煞? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任屎勘,我火速辦了婚禮,結果婚禮上居扒,老公的妹妹穿的比我還像新娘概漱。我一直安慰自己,他們只是感情好喜喂,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布瓤摧。 她就那樣靜靜地躺著竿裂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪照弥。 梳的紋絲不亂的頭發(fā)上腻异,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音这揣,去河邊找鬼悔常。 笑死,一個胖子當著我的面吹牛给赞,可吹牛的內容都是我干的机打。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼片迅,長吁一口氣:“原來是場噩夢啊……” “哼残邀!你這毒婦竟也來了?” 一聲冷哼從身側響起柑蛇,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤芥挣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唯蝶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體九秀,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡遗嗽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年粘我,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痹换。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡征字,死狀恐怖,靈堂內的尸體忽然破棺而出娇豫,到底是詐尸還是另有隱情匙姜,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布冯痢,位于F島的核電站氮昧,受9級特大地震影響,放射性物質發(fā)生泄漏浦楣。R本人自食惡果不足惜袖肥,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望振劳。 院中可真熱鬧椎组,春花似錦、人聲如沸历恐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒸苇,卻和暖如春磷蛹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溪烤。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工弦聂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氛什。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓莺葫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親枪眉。 傳聞我的和親對象是個殘疾皇子捺檬,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • 目錄 入門插件基礎您的第一個插件開發(fā)環(huán)境調試Action API發(fā)布插件 高級插件捆綁插件,腳本和命令插件位置更多...
    iOSDevLog閱讀 881評論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,367評論 0 5
  • 這篇文章是手冊的中文譯版整理而來(英文看著太慢了贸铜,感謝前人鋪路Orz...)堡纬,vim的markdown插件和實時預...
    Himryang閱讀 6,925評論 0 20
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常蒿秦。 O...
    我想起個好名字閱讀 5,176評論 0 9
  • 一烤镐、扎實的計算機基礎知識 數(shù)據(jù)結構和算法程序都是由數(shù)據(jù)和算法組成的,因此這兩部分是計算機軟件的基礎棍鳖,諸如B數(shù)炮叶,哈希...
    MeteorCat閱讀 2,434評論 0 1