├── docs ├── concepts.md ├── rendering.md ├── overview.md └── templating.md ├── .gitattributes ├── .editorconfig ├── .gitignore ├── LICENSE ├── package.json ├── .verb.md └── README.md /docs/concepts.md: -------------------------------------------------------------------------------- 1 | # Concepts 2 | 3 | - generating 4 | - templating 5 | - documenting 6 | - updating -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Enforce Unix newlines 2 | * text eol=lf 3 | 4 | # binaries 5 | *.ai binary 6 | *.psd binary 7 | *.jpg binary 8 | *.gif binary 9 | *.png binary 10 | *.jpeg binary 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | end_of_line = lf 6 | charset = utf-8 7 | indent_size = 2 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [{**/{actual,fixtures,expected,templates}/**,*.md}] 12 | trim_trailing_whitespace = false 13 | insert_final_newline = false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # always ignore files 2 | *.DS_Store 3 | *.sublime-* 4 | 5 | # test related, or directories generated by tests 6 | test/actual 7 | actual 8 | coverage 9 | .nyc* 10 | 11 | # npm 12 | node_modules 13 | npm-debug.log 14 | 15 | # yarn 16 | yarn.lock 17 | yarn-error.log 18 | 19 | # misc 20 | _gh_pages 21 | _draft 22 | _drafts 23 | bower_components 24 | vendor 25 | temp 26 | tmp 27 | TODO.md 28 | -------------------------------------------------------------------------------- /docs/rendering.md: -------------------------------------------------------------------------------- 1 | # Rendering 2 | 3 | - compiling 4 | - rendering 5 | 6 | ## Render cycle 7 | 8 | The "render cycle" describes the complete lifecycle of a view (or template), from the time it's created, to the time it's rendered, and all of the stages in between. 9 | 10 | * [templates][]: The first and only node.js application to provide complete control over the entire "render cycle". System for creating and managing template collections and rendering templates with any node.js template engine. Can be used as the basis for creating a static site generator, blog framework, documentaton system, and more. 11 | 12 | -------------------------------------------------------------------------------- /docs/overview.md: -------------------------------------------------------------------------------- 1 | # Toolkit suite 2 | 3 | **Applications** 4 | 5 | 6 | 7 | ## Generate 8 | 9 | CLI and API for scaffolding out new code projects. A more powerful, composable, functional alternative to Google's Yeoman. 10 | 11 | **Under the hood** 12 | 13 | At its core, generate is a system for registering, resolving and running generators. Generators themselves are an instance of `Generate`, so every generator can register, resolve or run other generators; and every generator can be registered on, resolved by, or run by other generators. 14 | 15 | ## Update 16 | 17 | Update gives you a way to automate the maintenance of files that are typically excluded from the automated parts of the software lifecycle, and thus are mostly forgotten about after they're created. 18 | 19 | ## Assemble 20 | 21 | TODO 22 | 23 | ## Verb 24 | 25 | TODO -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2017, Jon Schlinkert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/templating.md: -------------------------------------------------------------------------------- 1 | # Templating 2 | 3 | 4 | **Terminology** 5 | 6 | - boilerplate 7 | - scaffold 8 | - template 9 | 10 | ## Template types 11 | 12 | - layout 13 | - page 14 | - partial 15 | 16 | **Organizational concepts** 17 | 18 | - snippet 19 | - section 20 | - block 21 | 22 | 23 | ## Comparison table 24 | 25 | Many definitions exist for the terms "boilerplate", "scaffold" and "template". The following definitions attempt to establish a common ground on these terms, or at very least describe these concepts as they relates to this project. 26 | 27 | | **type** | **description** | 28 | | --- | --- | 29 | | [template](https://github.com/jonschlinkert/templates) | Resuable file, code or content which contains "placeholder" values that will eventually be replaced with real values by a rendering (template) engine | 30 | | [scaffold][] | Consists of one or more templates or source files and serves as a "temporary support structure" that may be used to initialize a new project, or to provide ad-hoc "components" throughout the duration of a project. | 31 | | [boilerplate][] | Boilerplates consist of all of the necessary files required to initialize a complete project. | 32 | 33 | 34 | ## Related concepts 35 | 36 | - [rendering](rendering.md) 37 | - context 38 | - data 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "getting-started", 3 | "private": true, 4 | "description": "Getting started with toolkit.", 5 | "version": "0.0.0", 6 | "homepage": "https://github.com/jonschlinkert/getting-started", 7 | "author": "Jon Schlinkert (https://github.com/jonschlinkert)", 8 | "repository": "jonschlinkert/getting-started", 9 | "bugs": { 10 | "url": "https://github.com/jonschlinkert/getting-started/issues" 11 | }, 12 | "license": "MIT", 13 | "files": [], 14 | "engines": { 15 | "node": ">=0.10.0" 16 | }, 17 | "scripts": { 18 | "test": "mocha" 19 | }, 20 | "devDependencies": { 21 | "gulp-format-md": "^0.1.12" 22 | }, 23 | "keywords": [ 24 | "getting", 25 | "started" 26 | ], 27 | "verb": { 28 | "toc": false, 29 | "layout": "minimal", 30 | "tasks": [ 31 | "readme" 32 | ], 33 | "plugins": [ 34 | "gulp-format-md" 35 | ], 36 | "lint": { 37 | "reflinks": true 38 | }, 39 | "reflinks": [ 40 | "angular", 41 | "assemble", 42 | "base", 43 | "boilerplate", 44 | "ember", 45 | "express", 46 | "generate", 47 | "koa", 48 | "react", 49 | "scaffold", 50 | "snippet", 51 | "templates", 52 | "update", 53 | "verb", 54 | "verb-readme-generator", 55 | "enquirer", 56 | "microbot" 57 | ], 58 | "related": { 59 | "list": [] 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /.verb.md: -------------------------------------------------------------------------------- 1 | # Getting started with toolkit 2 | 3 | > Toolkit makes humans scalable 4 | 5 | ## What is toolkit? 6 | 7 | Toolkit is a suite of open-source developer tools for initializing, configuring, building, documenting and maintaining code projects. 8 | 9 | ## Why should I use toolkit? 10 | 11 | **Highly decoupled, consistent API** 12 | 13 | All of the applications in the toolkit suite are completely standalone and can be used without knowledge of the other applications. This means you can pick and choose which applications, tools or frameworks you want to use. 14 | 15 | **Learn one, learn them all** 16 | 17 | Moreover, all of the applications share the same core API, so by learning any one of the applications, you will know how to begin using all of them. 18 | 19 | **Create applications** 20 | 21 | Whether you're creating a web server with [express][] or [koa][], a web application using [react][], [ember][] or [angular][], or your own build system, `toolkit` has tools that can be used to expedite the process. 22 | 23 | ~~(coming soon) Visit toolkit.io for more information.~~ 24 | 25 | ## What does toolkit do? 26 | 27 | Tookit applications are organized into the following categories: 28 | 29 | 1. [building blocks](#building-blocks) 30 | 1. [configuration](#configuration) 31 | 1. [lifecycle](#lifecycle) 32 | 1. [automation](#automation) 33 | 34 | _(Any of the tools in the `toolkit` suite may be used standalone, but they work even better together.)_ 35 | 36 | 37 | ### Building blocks 38 | 39 | These "building blocks" are used as as starting point, providing an "instant API" for your node.js application: 40 | 41 | - [base][]: Bare-bones starting point for creating a high quality node.js application. Build out your API by using plugins like building blocks. All of other the applications in the toolkit suite were created using Base. 42 | - [templates][]: System for creating and managing template collections, and rendering templates with any node.js template engine. Can be used as the basis for creating a static site generator, blog framework, documentaton system, and so on. 43 | 44 | 45 | ### Configuration 46 | 47 | Tools and conventions for defining, using and publishing declarative configurations for projects, components and templates. 48 | 49 | - [boilerplate][]: Describes all of the necessary files, templates and settings required to initialize a complete, new project. 50 | - [scaffold][]: Describes all of the necessary files, templates and settings required to initialize a complete, new project. 51 | - [snippet][]: Tools and conventions for creating, using and publishing invidual snippets of code or text. 52 | 53 | **Why is this useful?** 54 | 55 | By keeping a separation of concerns between configuration and everything else (application logic, flow control, etc), we can use _plain, generic javascript, with prescriptive conventions to describe commonly needed objects, files, templates, and assets_. 56 | 57 | As a result, projects are lower complexity, easier to maintain, and the objects can be passed around to any rendering engine, build system, scaffolding tool or project generator when its time to create or build something. 58 | 59 | 60 | ### Lifecycle 61 | 62 | Developer frameworks and command line tools for common phases of the software development lifecycle. 63 | 64 | - [generate][]: scaffold out new projects 65 | - [assemble][]: build projects 66 | - [verb][]: document projects 67 | 68 | 69 | ### Automation 70 | 71 | These tools can be used during and throughout any point of the software development lifecycle to automate notifications, updates, and statuses, as well as conversions and interactions with users. 72 | 73 | - [enquirer][]: Plugin-based prompt system, to automate interactions and conversations with users. 74 | - [microbot][]: Empower your applications and users with automated responses, actions and notifications. 75 | - [update][]: Automate boring and time consuming chores that are typically done manually, for virtually any aspect of a project. 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Getting started with toolkit 2 | 3 | > Toolkit makes humans scalable 4 | 5 | ## What is toolkit? 6 | 7 | Toolkit is a suite of open-source developer tools for initializing, configuring, building, documenting and maintaining code projects. 8 | 9 | ## Why should I use toolkit? 10 | 11 | **Highly decoupled, consistent API** 12 | 13 | All of the applications in the toolkit suite are completely standalone and can be used without knowledge of the other applications. This means you can pick and choose which applications, tools or frameworks you want to use. 14 | 15 | **Learn one, learn them all** 16 | 17 | Moreover, all of the applications share the same core API, so by learning any one of the applications, you will know how to begin using all of them. 18 | 19 | **Create applications** 20 | 21 | Whether you're creating a web server with [express](http://expressjs.com/) or [koa](https://github.com/koajs/koa), a web application using [react](https://facebook.github.io/react/), [ember](https://github.com/emberjs/ember) or [angular](http://angularjs.org), or your own build system, `toolkit` has tools that can be used to expedite the process. 22 | 23 | ~~(coming soon) Visit toolkit.io for more information.~~ 24 | 25 | ## What does toolkit do? 26 | 27 | Tookit applications are organized into the following categories: 28 | 29 | 1. [building blocks](#building-blocks) 30 | 2. [configuration](#configuration) 31 | 3. [lifecycle](#lifecycle) 32 | 4. [automation](#automation) 33 | 34 | _(Any of the tools in the `toolkit` suite may be used standalone, but they work even better together.)_ 35 | 36 | ### Building blocks 37 | 38 | These "building blocks" are used as as starting point, providing an "instant API" for your node.js application: 39 | 40 | * [base](https://github.com/node-base/base): Bare-bones starting point for creating a high quality node.js application. Build out your API by using plugins like building blocks. All of other the applications in the toolkit suite were created using Base. 41 | * [templates](https://github.com/jonschlinkert/templates): System for creating and managing template collections, and rendering templates with any node.js template engine. Can be used as the basis for creating a static site generator, blog framework, documentaton system, and so on. 42 | 43 | ### Configuration 44 | 45 | Tools and conventions for defining, using and publishing declarative configurations for projects, components and templates. 46 | 47 | * [boilerplate](https://github.com/jonschlinkert/boilerplate): Describes all of the necessary files, templates and settings required to initialize a complete, new project. 48 | * [scaffold](https://github.com/jonschlinkert/scaffold): Describes all of the necessary files, templates and settings required to initialize a complete, new project. 49 | * [snippet](https://github.com/jonschlinkert/snippet): Tools and conventions for creating, using and publishing invidual snippets of code or text. 50 | 51 | **Why is this useful?** 52 | 53 | By keeping a separation of concerns between configuration and everything else (application logic, flow control, etc), we can use _plain, generic javascript, with prescriptive conventions to describe commonly needed objects, files, templates, and assets_. 54 | 55 | As a result, projects are lower complexity, easier to maintain, and the objects can be passed around to any rendering engine, build system, scaffolding tool or project generator when its time to create or build something. 56 | 57 | ### Lifecycle 58 | 59 | Developer frameworks and command line tools for common phases of the software development lifecycle. 60 | 61 | * [generate](https://github.com/generate/generate): scaffold out new projects 62 | * [assemble](https://github.com/assemble/assemble): build projects 63 | * [verb](https://github.com/verbose/verb): document projects 64 | 65 | ### Automation 66 | 67 | These tools can be used during and throughout any point of the software development lifecycle to automate notifications, updates, and statuses, as well as conversions and interactions with users. 68 | 69 | * [enquirer](http://enquirer.io): Plugin-based prompt system, to automate interactions and conversations with users. 70 | * [microbot](https://github.com/microbot/microbot): Empower your applications and users with automated responses, actions and notifications. 71 | * [update](https://github.com/update/update): Automate boring and time consuming chores that are typically done manually, for virtually any aspect of a project. 72 | 73 | ## Author 74 | 75 | **Jon Schlinkert** 76 | 77 | * [github/jonschlinkert](https://github.com/jonschlinkert) 78 | * [twitter/jonschlinkert](https://twitter.com/jonschlinkert) 79 | 80 | ## License 81 | 82 | Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). 83 | Released under the [MIT License](LICENSE). 84 | 85 | *** 86 | 87 | _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 20, 2017._ --------------------------------------------------------------------------------