离线HTML模板化

11

我正在设计一个简单的网站,没有动态内容,希望它轻便易携带——不需要或不想要PHP或其他服务器端脚本。我遇到了一个以前遇到过几次的问题。

我想写一次通用元素(头部、底部、导航),然后在网站上只编写具体内容,最后运行某个神秘的实用程序将所有内容编译成一组HTML文件,准备上传。页面可能像这样编写:

Title: Our Services
Top Navigation: Yes
Scripts: jquery, lightbox
<p> Example, Inc.提供广泛的……

如果引擎还具有逻辑功能,让我可以在每个页面中包含或排除元素(如上面的Top Navigation),并自动完成任务,例如在导航栏中标记当前页面,那将非常好。

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

有没有像这样的引擎?


许多内容管理系统可以做到这一点,尽管语法可能不是那么简单。 - DA.
5个回答

4
我会直接使用Template-Toolkit来处理这个问题。它自带ttree实用工具来构建静态网站。
你可以通过以下方式处理你问题的最后一部分:
[% 
    INCLUDE 'navbar.tt' 
    page = 'services'
%]

看起来很好,简单而灵活。谢谢。 - s4y
我现在开始用Template Toolkit来建立一个网站了。太棒的推荐。 - s4y

1
说实话,这就是像 PHP 这样的东西派上用场的地方... 包含常见元素 选项 1:使用一种语言并享受它。
选项 2:使用该语言制作网站... 然后将爬虫指向您的网站以获取生成的“静态”内容。例如 WinHTTPTrack

1

Webby非常适合这个需求。

另一个很好的选择是Jekyll


这两个看起来都很棒。我会记住它们,以备将来的项目使用。 - s4y

0

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

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

模板系统还具有定义默认属性并在特定页面更改这些属性的能力。您可以使用此功能为当前页面标记标签,但对于此目的,我认为几行jquery代码更好。


-1

你可以用任何你熟悉的语言编写一个输出静态html文件的程序。你可以有一个基本的结构,然后对于定制的内容,你可以从一个单独的文件中引入它。


我要求的是现成的解决方案,而不是一份作业任务:P。 - s4y

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接