2010-02-04 58 views
11

我正在设计一个没有动态内容的简单网站,我想要轻便便携 - 不需要PHP或其他服务器端脚本,也不需要。我遇到了一个我以前有过几次的问题。离线HTML模板

我希望能够编写一次共同的元素(头部,脚部,导航),并在网站上仅写入内容,然后运行这个神秘的实用程序将它编译成一组HTML文件准备上传。一个页面可以这样写:

Title: Our Services 
Top Navigation: Yes 
Scripts: jquery, lightbox 

<p> 
    Example, Inc. offers a wide range of…

这将会是巨大的,如果发动机也有逻辑,让我中包含或排除每个页面元素(如上面Top Navigation),像标注当前页面自动执行任务在导航栏中:

<a href="/services"{page == 'services' ? ' class="current"' : ""}>Services</a> 

是否有像这样的引擎?

+1

+1很好的问题。 –

+0

许多内容管理系统都会这样做,尽管可能没有那么简单的语法。 –

回答

4

我会直接朝Template-Toolkit转。它带有用于构建静态网站的ttree实用程序。

你可以像处理你的问题的最后一部分:

[% 
    INCLUDE 'navbar.tt' 
    page = 'services' 
%] 
+0

这看起来不错,简单而灵活。谢谢。 – s4y

+0

我实际上现在开始用Template Toolkit构建一个站点。真棒推荐。 – s4y

1

说实话,这是哪里的东西像PHP派上用场...... 包括共同的要素

选项1:使用一种语言并享受它。

选项2:使用该语言制作网站......但随后指向您网站的抓取工具以抓取生成的“静态”内容。例如WinHTTPTrack

0

如果非免费工具适合您,Adobe Dreamweaver的模板可以满足您的需求。

基本上,您创建了一个模板页面,您可以在其中定义哪些部分可以编辑,然后根据模板创建所有页面。如果更改模板并保存,则所有关联的页面都是更新。

模板系统还具有定义默认属性并在特定页面中更改它们的功能。你可以使用它来标记当前页面,但对于这个恕我直言,几行jQuery代码更好。

1

Webby对于这一点来说太棒了。

另一个不错的选择是Jekyll

+0

这两个看起来很棒。我会记住他们为未来的项目。 – s4y

-1

你可以使用你熟悉的任何语言编写程序来输出静态html文件。你可以有一个基本的结构,然后为自定义的东西,你从一个单独的文件中包含它。

+0

我问了一个现有的解决方案,而不是一项家庭作业:P。 – s4y