我在使用grunt构建一个使用我的文件夹结构来构建数据的任务时,是否可能。
我想从文件夹结构中构建一个网站。
例如我有:
- data
-- folder_n
--- options.json
--- webpagetext.txt
--- additional.html
等
然后在文件夹结构(folder_n/{variable_as_friendly_url}.html
)
是否可以使用咕噜声?我阅读了大部分文档,但没有发现是否可能。
编辑:我如何在PHP中看到它
<?php
/*
Basic project structure
templates/
- template_1.php
- template_2.php
- template_3.php
datafeed/
- subpage_1/
-- header_image.png
-- webpagetext.txt
-- options.json
- subpage_2/
-- header_image.png
-- webpagetext.txt
-- options.json
- subpage_3/
-- header_image.png
-- webpagetext.txt
-- options.json
- subpage_n/
-- header_image.png
-- webpagetext.txt
-- options.json
*/
// IN PHP it would look like.
foreach (glob('datafeed/*') as $dir){
foreach(glob('templates/*') as $tpl){
constructpage($dir, $tpl);
}
}
function constructpage($dir, $tpl) {
$options = json_decode($dir.'options.json');
$output_html_file_name = 'output/'.basename($dir) . '/' . basename($dir) . '.html';
/*
Logic that would copy, assign vars etc for template in $tpl.
*/
}
但是grunt是我的选择,因为:我想学习它,它有一些非常酷的工具。
答案 0 :(得分:0)
您需要的是 Yeoman生成器/子生成器
它是什么:
根据Yeoman website,生成器基本上是一个插件,可以使用
yo
命令运行以构建完整的项目或有用的部分
可以做什么
您可以从命令行运行Yeoman命令; Yeoman能够对其创建的代码进行修改,并使其适应您提供的参数或文件中存在的参数。
文档
有关Yeoman脚手架的更多信息:
Call sub-generators with user-supplied arguments
FOR(STILL)MORE AUTOMATION
此外,虽然我仍然只是部分理解你真正想要达到的目的,但是你可能希望通过使用像这样的Grunt手表来触发Yeoman创建文件,当存在某个文件目录时:
watch: {
scripts: {
files: ['**/*.file-directory-to-detect'],
tasks: ['myCustomYeomanScript'],
},
}
和grunt-shell是这样的:
grunt.initConfig({
shell: {
myCustomYeomanScript: {
command: 'yo createMyFiles'
}
}
});