合并HTML文件

时间:2010-03-02 12:49:54

标签: html ruby parsing nokogiri

我想将一个HTML文件合并到另一个。不只是包含它,而是合并

实施例

master.html:

<!DOCTYPE html>
<html>
  <head>
    <title>My cat</title>
  </head>
  <body>
    <h1>My cat is awesome!</h1>
  </body>
</html>

_index.html:

<!DOCTYPE html>
<html>
  <body>
    <p><img src="cat.jpg"/></p>
  </body>
</html>

现在我将_index.html合并到master.html。

$ html_merge master.html _index.html > result.html

result.html

<!DOCTYPE html>
<html>
  <head>
    <title>My cat</title>
  </head>
  <body>
    <h1>My cat is awesome!</h1>
    <p><img src="cat.jpg"/></p>
  </body>
</html>

html_merge是我正在寻找的脚本。我将用它来构建静态网站。

我想使用Ruby,但这不是必需的。

更新

我不想重新发明另一种模板语言。有许多模板语言具有include / yield语句和部分支持。 Liquidmustache等等。我将它们用于不同的任务。现在我需要合并HTML文件,仅此而已。

4 个答案:

答案 0 :(得分:1)

这有用吗? (它在Java中,但是......)

http://www.javaworld.com/javaworld/jw-07-2007/jw-07-xmlmerge.html

答案 1 :(得分:0)

仔细考虑这样的脚本会是什么样子,特别是如何编写单独的html文件以使它们可以合并。你会如何关联节点?通过命名divs?通过确保每个都有平行的结构?

答案 2 :(得分:0)

进行这样的合并需要了解内容,这对我来说听起来像是需要使用能够创建静态页面的模板系统。

我在某些项目中使用了http://www.cheetahtemplate.org/,但对您的需求可能有点过分。

答案 3 :(得分:0)

这看起来非常像Rails中的布局/模板关系。虽然这看起来有点沉重,但它会让你有一个你希望内容合并到的布局:

<强> application.html.erb

<html>
  <head></head>
  <body>
    Some content before hand.
    <%= yield %>
    Some content "after hand"
  </body>
</html>

<强> index.html.erb

<strong>This is my cat: <%= image_tag "cat.jpg" %></strong>.

如果您希望从中提供静态页面,则可以生成页面的缓存版本。