1.1.1 • Published 8 years ago

grunt-terrific-modules v1.1.1

Weekly downloads
15
License
MIT
Repository
github
Last release
8 years ago

grunt-terrific-modules

A grunt module generator for terrific modules

Build Status Dependencies npm Codestyle

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

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:

grunt.loadNpmTasks('grunt-terrific-modules');

The Template Module folder needs to be copied from the Github Repository and placed at the folder location

The "terrific_modules" task

Overview

In your project's Gruntfile, add a section named terrific_modules to the data object passed into grunt.initConfig().

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:

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

Changelog

Please see the releases

1.1.1

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago