├── 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 | [](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 |
--------------------------------------------------------------------------------