预处理HTML文件

时间:2015-07-16 12:59:26

标签: template-engine brunch

我正在根据我的需求评估早午餐构建系统。我需要进行简单的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。

1 个答案:

答案 0 :(得分:0)

我不确定是否有任何内置解决方案,但如果我要朝着HTML模板/局部方向发展,我会调查“after-brunch”和“{{ 3}}“NPM上的插件。

我不知道FileSystem操作(读取,合并,写入等)的程序语言是什么,但理论上你可以使用类似“before-brunch”之类的东西来执行batch / shellscript /或命令somekind将你的HTML部分收集到 file1.html file2.html ,...之前Brunch编译并将其复制到 public / < / strong>文件夹。

before-brunch

如果你熟悉Haxe,这是我刚才分享的一个要点。这是一个后处理脚本,用于合并特定文档行上的其他文件。

enter image description here

以下是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)。