【问题标题】:Offline HTML templating离线 HTML 模板
【发布时间】:2010-02-04 23:33:51
【问题描述】:

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

我希望能够编写一次通用元素(头部、脚部、导航)并仅在网站上编写包含内容的各个页面,然后运行这个神秘的实用程序将所有内容编译成一组准备好的 HTML 文件用于上传。一个页面可能是这样写的:

标题:我们的服务
顶部导航:是
脚本:jquery,灯箱

Example, Inc. 提供范围广泛的……

如果引擎还具有允许我在每个页面中包含或排除元素(如上面的Top Navigation)的逻辑,并自动执行诸如在导航栏中标记当前页面之类的任务,那就太好了:

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

有没有像这样的引擎?

【问题讨论】:

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

标签: html templates template-engine


【解决方案1】:

为此,我会直接前往Template-Toolkit。它带有用于构建静态站点的ttree 实用程序。

您可以通过以下方式处理问题的最后一部分:

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

【讨论】:

  • 这看起来不错,简单且灵活。谢谢。
  • 我现在实际上开始使用模板工具包构建一个站点。很棒的推荐。
【解决方案2】:

老实说,这就是 PHP 之类的东西派上用场的地方...包含常见元素

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

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

【讨论】:

    【解决方案3】:

    Webby 非常适合这一点。

    另一个不错的选择是Jekyll

    【讨论】:

    • 这两个看起来都很棒。我会在未来的项目中记住它们。
    【解决方案4】:

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

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

    模板系统还可以定义默认属性并在特定页面中更改它们。您可以使用它来标记当前页面,尽管对于这个恕我直言,几行 jquery 代码要好得多。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      • 我要求的是现有的解决方案,而不是家庭作业:P。
      猜你喜欢
      • 1970-01-01
      • 2017-03-03
      • 2018-02-26
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      相关资源
      最近更新 更多