我正在根据我的需求评估早午餐构建系统。我需要进行简单的HTML预处理。所以基本上我需要生成几个带有公共页眉和页脚的文件:
的file1.html:
<html>
<head>
<title>Title1</title>
</head>
<body>
<div id="content">
<div id="header">...</div>
Page1
<div id="footer">...</div>
</div>
</body>
</html>
file2.html:
<html>
<head>
<title>Title2</title>
</head>
<body>
<div id="content">
<div id="header">...</div>
Page2
<div id="footer">...</div>
</div>
</body>
</html>
所以要么是简单的包含功能,要么是(优先的)某种扩展功能。理想情况下,语法应隐藏在注释中,以便我的IDE不会抱怨非HTML字符。我喜欢preprocess javascript库,但当然没有必要。
不幸的是,我没有找到适合早午餐的任务。它支持许多HTML模板引擎,但它们似乎生成了JS函数。我需要简单的静态HTML,而不是JavaScript SPA。
答案 0 :(得分:0)
我不确定是否有任何内置解决方案,但如果我要朝着HTML模板/局部方向发展,我会调查“after-brunch”和“{{ 3}}“NPM上的插件。
我不知道FileSystem操作(读取,合并,写入等)的程序语言是什么,但理论上你可以使用类似“before-brunch”之类的东西来执行batch / shellscript /或命令somekind将你的HTML部分收集到 file1.html , file2.html ,...之前Brunch编译并将其复制到 public / < / strong>文件夹。
如果你熟悉Haxe,这是我刚才分享的一个要点。这是一个后处理脚本,用于合并特定文档行上的其他文件。
以下是HTML文档的外观:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DEMO</title>
<link rel="icon" href="data:;base64,=">
<style id="css" type="text/css" rel="stylesheet">
/* @MacroMerge: public/app.css */ //<--- Merges All CSS here..
</style>
</head>
<body>
<script type="text/javascript">
/* @MacroMerge: public/vendor.js, public/app.js */ //<--- And all JS here..
</script>
</body>
</html>
几乎忘了,这里是brunch-config.coffee
脚本如何将Haxe脚本与后早午餐插件一起使用:
plugins:
afterBrunch: [
"haxe -cp . --macro MacroMerge.html('app/index.template.html','public/index.html')"
]
来想一想......没有什么可以阻止你采用这个例子并在任何需要的地方指定HTML部分(或任何文件扩展名,例如:* .txt,* .xml)。如果您熟悉Haxe,可能只对您有用。如果没有,它是开源的&amp;免费下载(https://gist.github.com/bigp/90e38deeccc94145b033)。