zer*_*per 9 gruntjs assemble grunt-assemble
我正在努力处理grunt-assemble grunt任务配置,如下所示:
assemble: {
options: {
flatten: false,
expand: true,
assets: '',
layout: 'default.hbs',
layoutdir: 'templates/layouts',
partials: ['templates/includes/*.hbs'],
helpers: ['templates/helpers/*.js'],
data: ['templates/data/*.{json,yml}']
},
dev: {
src: 'templates/pages/**/*.hbs',
dest: 'build/'
}
Run Code Online (Sandbox Code Playgroud)
assemble.io项目模板的脚手架如下所示:
templates
??? helpers
??? includes
? ??? page-footer.hbs
? ??? page-header.hbs
? ??? scripts.hbs
??? layouts
? ??? default.hbs
??? pages
??? en
? ??? index.hbs
??? fr
? ??? index.hbs
??? index.hbs
Run Code Online (Sandbox Code Playgroud)
我希望得到类似的东西:
build
??? en
? ??? index.html
??? fr
? ??? index.html
??? index.html
Run Code Online (Sandbox Code Playgroud)
但相反,我得到类似的东西:
build
??? templates
??? pages
??? en
? ??? index.html
??? fr
? ??? index.html
??? index.html
Run Code Online (Sandbox Code Playgroud)
我确实尝试了一些(实际上很多)组合(使用flatten和expand以及cwd选项)但我被卡住了.
使用flattenhas会导致index.html文件相互覆盖.
所以我实际上将渲染转换为.tmp目录,然后将文件移动到构建目录.我不喜欢那个解决方案,因为那时,page.assets它仍然被打破(它的值将是../../..,对于根index.html).
咕噜组装
(请注意,此信息特指grunt-assemble 0.4.x,这是用于汇编的grunt插件,但具有完全不同的API)
@doowb几乎是正确的,尝试添加expand: true和ext: '.html'文件配置:
assemble: {
options: {
flatten: false,
expand: true,
assets: '',
layout: 'default.hbs',
layoutdir: 'templates/layouts',
partials: ['templates/includes/*.hbs'],
helpers: ['templates/helpers/*.js'],
data: ['templates/data/*.{json,yml}']
},
dev: {
files: [
{expand: true, cwd: 'templates/pages/', src: '**/*.hbs', dest: 'build/', ext: '.html'}
]
}
}
Run Code Online (Sandbox Code Playgroud)
另请参阅https://github.com/assemble/assemble-contrib-permalinks
装配0.7.x.
集合是0.7.0中的第一类集合,插件也是如此,因此生成相对链接,构建分页和创建自定义永久链接等操作要容易得多.
如果你正在使用assembly 0.7.x及更高版本,那么assembly -permalinks就是你想要使用的插件.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |