From d1a5fa6acd3fe765e7c3bedfaf814694b1d8c99b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=20Mun=CC=83oz?= Date: Wed, 14 May 2014 17:28:32 +0200 Subject: [PATCH] Added: Replace Font --- Replace Font.sketchplugin | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Replace Font.sketchplugin diff --git a/Replace Font.sketchplugin b/Replace Font.sketchplugin new file mode 100644 index 0000000..be3826b --- /dev/null +++ b/Replace Font.sketchplugin @@ -0,0 +1,45 @@ +// Change font +var font_name = [doc askForUserInput:"Font name:" initialValue:"Arial"] + +function check_layer(layer){ + var klass = [layer className] + log("Checking layer " + layer + " of klass: " + klass) + if (klass == "MSTextLayer") { + log("Found text layer!") + layer.setFontPostscriptName(font_name); + } + if ( klass == "MSPage" || klass == "MSLayerGroup" || klass == "MSArtboardGroup" ){ + var sublayers = [layer layers] + log("This is a group/artboard/page with " + [sublayers count] + " sublayers") + for(var i=0; i < [sublayers count]; i++) { + var sublayer = [sublayers objectAtIndex:i] + check_layer(sublayer); + } + } +} + +log("################################################################") + +// Use selection, if any +if(selection && [selection count]){ + for (var i = 0; i < [selection count]; i++) { + check_layer([selection objectAtIndex:i]) + } +} else { + // Otherwise, loop trough pages, artboards & layers + var pages = [doc pages] + for (var i = 0; i < [pages count]; i++) { + var current_page = [pages objectAtIndex:i], + artboards = [current_page artboards] + if ([artboards count]) { + log("Traversing artboards") + for (var i = 0; i < [artboards count]; i++) { + var artboard = [artboards objectAtIndex:i] + check_layer(artboard) + } + } else { + log("Page has no artboards") + check_layer(current_page) + } + } +} \ No newline at end of file