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: {
},
your_target: {
options : {
},
files: [
{
layout: 'test/layouts/basic.tmpl',
layout_view: 'test/layouts/basic.json',
src: 'test/fixtures/**',
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
<html>
<head>
<title>basic layout {{page.title}} {{some}}</title>
</head>
<body>
{{>contents}}
</body>
</html>
{
"page":{
"title":"테스트입니다."
},
"some": "somes"
}
<div>{{name}}</div>
<div>Thomas Jang</div>
<div>{{age}}</div>
<div>39</div>
<div>{{sex}}</div>
<div>남</div>
{
"name": "name",
"age": "age",
"sex": "sex"
}
Result
<html>
<head>
<title>basic layout 테스트입니다. somes</title>
</head>
<body>
<div>name</div>
<div>Thomas Jang</div>
<div>age</div>
<div>39</div>
<div>sex</div>
<div>남</div></body>
</html>
Related Projects