Skip to content
This repository was archived by the owner on Apr 8, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 15 additions & 12 deletions marketch.sketchplugin/Contents/Sketch/export.cocoascript
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ var Marketch = function(){

Marketch.prototype = {
/**
* @param expConfig.symbols {boolean} 是否导出所有的 Symbol
* @param expConfig.layer {boolean} 是否导出图层为图片
* @param expConfig.artboard {string} 导出画板选项: selected|page|all
* @param expConfig.saveSource {boolean} 是否保存sketch源文件
Expand All @@ -90,18 +91,6 @@ Marketch.prototype = {
//预览需要根据是否导出图层为图片选项决定是否显示导出按钮
this.sketchData.exportEveryLayer = expConfig.layer;

//从所有画板中过滤出symbol
loopObj = doc.pages().objectEnumerator();
while(loopVar = loopObj.nextObject()){
var artloops = loopVar.artboards().objectEnumerator();
while(artboard = artloops.nextObject()){
// 不导出前缀为 - 且不为 symbol 的图层
if(artboard.className() == 'MSSymbolMaster'){
this.allArtboards.addObject(artboard);
}
}
}

//导出选中画板
if(expConfig.artboard == 'selected'){
loopObj = ctx.selection.objectEnumerator();
Expand Down Expand Up @@ -139,6 +128,20 @@ Marketch.prototype = {
}
}

// 导出所有的 Symbol
if (expConfig.symbols) {
loopObj = doc.pages().objectEnumerator();
while (loopVar = loopObj.nextObject()) {
var artloops = loopVar.artboards().objectEnumerator();
while (artboard = artloops.nextObject()) {
// 不导出前缀为 '-' 且不为 Symbol 的图层
if (artboard.className() == 'MSSymbolMaster') {
this.allArtboards.addObject(artboard);
}
}
}
}

//画板不存在
if(this.allArtboards.count() == 0){
util.showTips({content:I18N.NOARTBOARD});
Expand Down
2 changes: 2 additions & 0 deletions marketch.sketchplugin/Contents/Sketch/util.cocoascript
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ var util = {
'SELECTEDARTBOARD': '当前选中的画板',
'ARTBOARDONPAGE': '当前页面上的全部画板',
'ALLARTBOARD': '所有画板(会比较慢)',
'EXPORTSYMBOLS': '导出所有的 Symbol',
'SCALEARTBOARD': '画板导出2倍大小',
'EXPORTEVERYLAYER': '把每个图层作为图片导出',
'SAVESKETCHSOURCE': '保存sketch源文件',
Expand Down Expand Up @@ -202,6 +203,7 @@ var util = {
'SELECTEDARTBOARD': 'Selected Artboard(s)',
'ARTBOARDONPAGE': 'Artboards on Current Page',
'ALLARTBOARD': 'All Artboards',
'EXPORTSYMBOLS': 'Export all Symbol',
'SCALEARTBOARD': 'Scale all Artboards as 2x',
'EXPORTEVERYLAYER': 'Export all layers as image',
'SAVESKETCHSOURCE': 'Save Sketch file',
Expand Down
11 changes: 10 additions & 1 deletion marketch.sketchplugin/Contents/Sketch/zip.cocoascript
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ ExportAsZip.prototype = {
layer: expConfig.layer,
artboard: artboardType,
saveSource: expConfig.saveSource,
scale2x: expConfig.scale2x
scale2x: expConfig.scale2x,
symbols: expConfig.symbols
});

zipResult = util.zipFile(marketch.tmpPath.basePath, exportPath);
Expand All @@ -69,6 +70,7 @@ ExportAsZip.prototype = {
var altWin = COSAlertWindow.new();
var items = [I18N.SELECTEDARTBOARD, I18N.ARTBOARDONPAGE, I18N.ALLARTBOARD];
var comboBox = NSComboBox.alloc().initWithFrame(NSMakeRect(0,0,200,25));
var symbolsBox = NSButton.alloc().initWithFrame(NSMakeRect(0,0,250,14));
var scaleBox = NSButton.alloc().initWithFrame(NSMakeRect(0,0,250,14));
var exportBox = NSButton.alloc().initWithFrame(NSMakeRect(0,0,250,14));
var sourceBox = NSButton.alloc().initWithFrame(NSMakeRect(0,0,250,14));
Expand All @@ -81,6 +83,10 @@ ExportAsZip.prototype = {
comboBox.addItemsWithObjectValues(items);
comboBox.selectItemAtIndex(2);

symbolsBox.setTitle(I18N.EXPORTSYMBOLS);
symbolsBox.setButtonType(NSSwitchButton);
symbolsBox.setState(false);

scaleBox.setTitle(I18N.SCALEARTBOARD);
scaleBox.setButtonType(NSSwitchButton);
scaleBox.setState(true);
Expand All @@ -94,6 +100,7 @@ ExportAsZip.prototype = {
sourceBox.setState(false);

altWin.addAccessoryView(comboBox);
altWin.addAccessoryView(symbolsBox);
altWin.addAccessoryView(scaleBox);
altWin.addAccessoryView(exportBox);
altWin.addAccessoryView(sourceBox);
Expand All @@ -103,6 +110,8 @@ ExportAsZip.prototype = {
button: altWin.runModal(),
//需要导出的画板返回值为索引
artboard: comboBox.indexOfSelectedItem(),
//是否导出所有的 Symbol
symbols: symbolsBox.state(),
//画板导出2x图
scale2x: scaleBox.state(),
//是否导出每个图层的图片
Expand Down