0.1.7 • Published 10 years ago

grunt-mustache-site-generator v0.1.7

Weekly downloads
1
License
-
Repository
github
Last release
10 years ago

grunt-mustache-site-generator

To resolve layout and multi-language with mustache template (mustache 템플릿으로 include, 멀티랭귀지를 해결하기)

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-mustache-site-generator --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-mustache-site-generator');

The "mustache_site_generator" task

Overview

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

grunt.initConfig({
	mustache_site_generator: {
		options: {
			// Task-specific options go here.
		},
		your_target: {
			// Target-specific file lists and/or options go here.
			options : {
			
			},
			files: [
				{
					layout: 'test/layouts/basic.tmpl',
					layout_view: 'test/layouts/basic.json',
					src: 'test/fixtures/**', // contents of layout
					lang: {
						"ko":'test/lang/ko.json',
						"en":'test/lang/en.json'
					},
					dest: 'test/expected'
				}
			]
		},
	},
});

Files

files.file.layout

Type: String path of layout file

files.file.layout_view

Type: String Default value: '' path of layout view

files.file.src

Type: String Grunt src

files.file.lang

Type: Object lang key and path of lang file

files.file.dest

Type: String path of output It makes the file name of the 'src'. 'output' as a child

Example

The source directory of your templates, the directory should be structured like:

.
├── expected
├── fixtures
│   └── sample.html
└── lang
│   ├── en.json
│   └── ko.json
└── layouts
    ├── basic.json
    └── basic.tmpl
  • basic.tmpl
<html>
<head>
	<title>basic layout {{page.title}} {{some}}</title>
</head>
<body>
<!-- include body content -->
{{>contents}}
</body>
</html>
  • basic.json
{
	"page":{
		"title":"테스트입니다."
	},
	"some": "somes"
}
  • sample.html
<div>{{name}}</div>
<div>Thomas Jang</div>
<div>{{age}}</div>
<div>39</div>
<div>{{sex}}</div>
<div>남</div>
  • en.json
{
	"name": "name",
	"age": "age",
	"sex": "sex"
}

Result

<html>
<head>
	<title>basic layout 테스트입니다. somes</title>
</head>
<body>
<!-- include body content -->
<div>name</div>
<div>Thomas Jang</div>
<div>age</div>
<div>39</div>
<div>sex</div>
<div>남</div></body>
</html>

Related Projects

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago