客户端(JavaScript)Django / Jinja样模板继承

时间:2011-08-10 17:12:34

标签: javascript django templates django-templates

我正在寻找一种方法来对我拥有的一组.html文件进行模板继承。

假设我有一个base.html文件,其中包含我网站所有页面的常用HTML,即页眉,页脚等。每个页面(包括主(索引)页面)都需要从此模板HTML文件继承。

现在,使用Django's Jinja template langauge在服务器端可行。但这对我来说不是一个好的解决方案。我的HTML页面是远程存储的,我无法控制存储它们的服务器。这必须在客户端完成,无论是否有JavaScript。

Somebody asked about this before,我发现的唯一半成品解决方案是使用Mustache's partials,但这并不能真正完成这项任务。

有没有人知道在客户端这样做的方法?

3 个答案:

答案 0 :(得分:9)

我刚刚出于同样的目的发布了这个:https://github.com/ericclemmons/jinja.js

答案 1 :(得分:1)

Jade提供完整的模板继承:https://github.com/visionmedia/jade#a11

除了完全覆盖块之外,您还可以将内容附加或添加到块中。以下是从文档中劫持的示例:

在layout.html中定义基本模板:

html
  head
    h1 My Site - #{title}
    block scripts
      script(src='/jquery.js')
  body
    block content
    block foot
      #footer
        p some footer content

附加一些脚本标记并替换content.html中的内容部分:

extends layout

block append head
  script(src='/vendor/three.js')
  script(src='/game.js')

block content
  .sidebar
    block sidebar
      p nothing
  .primary
    block primary
      p nothing

答案 2 :(得分:0)

jQuery模板有{{wrap}}模板标记  这可以用于此。