UNPKG

grunt-terrific-modules

Version:
204 lines (160 loc) 5.38 kB
# grunt-terrific-modules > A grunt module generator for terrific modules [![Build Status](https://img.shields.io/travis/smollweide/grunt-terrific-modules/master.svg)](https://travis-ci.org/smollweide/grunt-terrific-modules) [![Dependencies](https://img.shields.io/david/smollweide/grunt-terrific-modules/master.svg)](https://david-dm.org/smollweide/grunt-terrific-modules) [![npm](https://img.shields.io/npm/v/grunt-terrific-modules.svg)](https://www.npmjs.com/package/grunt-terrific-modules) [![Codestyle](https://img.shields.io/badge/codestyle-namics-green.svg)](https://github.com/namics/eslint-config-namics) ## Getting Started This plugin requires Grunt `~0.4.5` If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: ```shell npm install grunt-terrific-modules --save-dev ``` Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: ```js grunt.loadNpmTasks('grunt-terrific-modules'); ``` The Template Module folder needs to be copied from the [Github Repository](https://github.com/smollweide/grunt-terrific-modules/tree/master/resource) and placed at the folder location <pathToResourceFolder> ## The "terrific_modules" task ### Overview In your project's Gruntfile, add a section named `terrific_modules` to the data object passed into `grunt.initConfig()`. ```js grunt.initConfig({ terrific_modules: { options: { placeholder: { module: { underscore: 'T_module', camelCase: 'T_Module' }, skin: { underscore: 'T_skin', camelCase: 'T_Skin' }, template: { underscore: 'T_template', camelCase: 'T_Template' }, type: { underscore: 'T_type', camelCase: 'T_Type', customUnderscore: { atoms: 'a', molecules: 'm', organisms: 'o', helper: 'h' } }, author: 'T_author' }, files: { module: [ { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module', template: 'T_module.jsp' }, { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module', template: 'T_module.readme.md' }, { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module/js', template: 'T_module.js', enrichWith: { src: '<%=paths.es6modules%>', placeholder: '// outlet.es6modules', template: '<%=paths.resource%>/T_module.es6module.js' } }, { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module/css', template: 'T_module.less' }, { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module/i18n', template: 'T_module.properties' }, { src: '<%=paths.resource%>', dest: '<%=paths.tags%>/T_type', template: 'T_module.tag' } ], skin: [ { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module/js', template: 'T_module.skin.T_skin.js' }, { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module/css', template: 'T_module.skin.T_skin.less' } ], template: [ { src: '<%=paths.resource%>', dest: '<%=paths.modules%>/T_type/T_module', template: 'T_module-T_template.jsp', enrichWith: { src: '<%=paths.tags%>/T_type/T_module.tag', // use UTF8 code for % (U+0025) placeholder: '<U+0025-- outlet.template --U+0025>', template: '<%=paths.resource%>/T_module.template.tag' } } ] }, triggerFile: 'triggerfile' } } }); ``` ### Options #### options.placeholder Type: `object` A object with all placeholders used throughout the templates #### options.files Type: `array` This array defines all file objects which are needed for generation of a "module", "skin" or "template". All files defined in this array need to exist in the resource directory. ## Convention ### Terrific: - http://terrifically.org/ - https://github.com/brunschgi/terrificjs - https://github.com/brunschgi/terrific-composer - https://github.com/namics/terrific-micro - https://github.com/smollweide/terrific-micro-grunt ### Grunt task arguments: - help (grunt terrific_modules) - module name (grunt terrific_modules:example-module) - skin name (grunt terrific_modules:example-module:example-skin) - template name (grunt terrific_modules:example-module:%example-template) - author (grunt terrific_modules:example-module:@example-author) ### Recommended placeholder names: (can be changed but is not recommended because you have to change all resource file-names) - module lowercase: T_module - module camelcase: T_Module - skin lowercase: T_skin - skin camelcase: T_Skin - template lowercase: T_template - template camelcase: T_Template - author lowercase: T_author - author camelcase: T_Author ## License [MIT License](https://github.com/smollweide/grunt-terrific-modules/blob/master/LICENSE) ## Changelog Please see the [releases](https://github.com/smollweide/grunt-terrific-modules/releases)