├── Predefined-Pages.sketchplugin └── Contents │ ├── Sketch │ ├── manifest.json │ └── predefined_pages.cocoascript │ └── lib │ └── utils.js └── README.md /Predefined-Pages.sketchplugin/Contents/Sketch/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "author" : "Ryan Johnson", 3 | "commands" : [ 4 | { 5 | "script" : "predefined_pages.cocoascript", 6 | "handler": "predefined_pages", 7 | "shortcut" : "cmd option p", 8 | "name" : "Run", 9 | "identifier" : "predefined_pages" 10 | }, 11 | { 12 | "script" : "predefined_pages.cocoascript", 13 | "handler": "define_predefined_pages", 14 | "shortcut" : "cmd option d", 15 | "name" : "Edit Pages", 16 | "identifier" : "define_predefined_pages" 17 | }, 18 | { 19 | "script" : "predefined_pages.cocoascript", 20 | "handler": "reset", 21 | "name" : "Revert to Default Pages", 22 | "identifier" : "reset" 23 | } 24 | ], 25 | "menu" : { 26 | "items" : [ 27 | "predefined_pages", 28 | "define_predefined_pages", 29 | "reset" 30 | ], 31 | "title" : "Predefined Pages" 32 | }, 33 | "identifier": "com.example.sketch.predefined-pages", 34 | "compatibleVersion": "42", 35 | "version" : "0.1", 36 | "description" : "predefined pages", 37 | "authorEmail" : "contact@ryanjohnson.me", 38 | "name" : "Predefined Pages" 39 | } 40 | -------------------------------------------------------------------------------- /Predefined-Pages.sketchplugin/Contents/Sketch/predefined_pages.cocoascript: -------------------------------------------------------------------------------- 1 | @import '../lib/utils.js'; 2 | 3 | var presets = { 4 | savedPages: "💀 RIP, 🚧 Wireframes, ✏️️ v1, ✂️️ Exports, Symbols, 🌈 Principle Export" 5 | } 6 | 7 | var pluginDomain = "com.ryanjohnson.predefinedpages"; 8 | var userDefaults = initDefaults(pluginDomain, presets); 9 | 10 | var define_predefined_pages = function (context) { 11 | var doc = context.document 12 | var pages = userDefaults.savedPages; 13 | var setPages = doc.askForUserInput_initialValue("Enter your pages (Separated by comma)", pages); 14 | 15 | if (setPages) { 16 | userDefaults.savedPages = setPages; 17 | saveDefaults(userDefaults); //Save users pages 18 | } 19 | } 20 | 21 | var predefined_pages = function (context) { 22 | var doc = context.document; 23 | var pages = userDefaults.savedPages; 24 | var pagesArray = pages.split(','); 25 | 26 | for(var i = 0; i < pagesArray.length; i++){ 27 | var newPage = doc.addBlankPage(); 28 | newPage.setName(pagesArray[i]); 29 | } 30 | } 31 | 32 | var reset = function (context) { 33 | saveDefaults(presets); 34 | } -------------------------------------------------------------------------------- /Predefined-Pages.sketchplugin/Contents/lib/utils.js: -------------------------------------------------------------------------------- 1 | // https://github.com/abynim/SketchPlugin-Remember 2 | 3 | var kPluginDomain; 4 | 5 | var initDefaults = function(pluginDomain, initialValues) { 6 | kPluginDomain = pluginDomain 7 | 8 | var defaults = [[NSUserDefaults standardUserDefaults] objectForKey:kPluginDomain] 9 | var defaultValues = {} 10 | var dVal; 11 | 12 | for (var key in defaults) { 13 | defaultValues[key] = defaults[key] 14 | } 15 | 16 | for (var key in initialValues) { 17 | dVal = defaultValues[key] 18 | if (dVal == nil) defaultValues[key] = initialValues[key] 19 | } 20 | 21 | return defaultValues 22 | } 23 | 24 | var saveDefaults = function(newValues) { 25 | if (kPluginDomain) { 26 | var defaults = [NSUserDefaults standardUserDefaults] 27 | [defaults setObject: newValues forKey: kPluginDomain]; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sketch Plugin: Predefined Pages 2 | 3 | Quickly adds a set number of pre/user defined pages to your Sketch document. 4 | 5 | #### Default Pages (Can be changed) 6 | ``` 7 | 💀 RIP 8 | 9 | 🚧 Wireframes 10 | 11 | ✏️️ v1 12 | 13 | ✂️️ Exports 14 | 15 | Symbols 16 | 17 | 🌈 Principle Export 18 | ``` 19 | 20 | #### Tested on Sketch 42 21 | 22 | 23 | ## Shortcuts 24 | * Run: `CMD OPTION P` 25 | * Edit Pages: `CMD OPTION D` 26 | 27 | ## Installation 28 | #### Easy Way 29 | [![Install Predefined Pages with Sketchpacks](http://sketchpacks-com.s3.amazonaws.com/assets/badges/sketchpacks-badge-install.png "Install Predefined Pages with Sketchpacks")](https://sketchpacks.com/ryanjohnson-me/Sketch-Predefined-Pages/install) 30 | 31 | #### Annoying Way 32 | 1. Download Pugin (.zip) and unzip 33 | 2. Double click `Predefined-Pages.sketchplugin` to install 34 | 35 | --- 36 | 37 | ###### Thanks to Mr Kyle Mac on DesignerNews for this suggestion/idea. 38 | --------------------------------------------------------------------------------