Closure Templates

一个客户端和服务器端的模板系统,帮助你动态地构建可重用的 HTML 和 UI 元素。「A client- and server-side templating system that helps you dynamically build reusable HTML and UI elements」

Github stars Tracking Chart

Closure Templates

Closure Templates are a client- and server-side templating system that helps you
dynamically build reusable HTML and UI elements. They have a simple syntax
that is natural for programmers, and you can customize them to fit your
application's needs. In contrast to traditional templating systems,in which
you must create one monolithic template per page, you can think of
Closure Templates as small components that you compose to form your user
interface. You can also use the built-in message support to easily localize
your applications.

Closure Templates are implemented for both JavaScript and Java, so that you can
use the same templates on both the server and client side. They use a data model
and expression syntax that work for either language. For the client side,
Closure Templates are precompiled into efficient JavaScript.

What are the benefits of using Closure Templates?

  • Convenience. Closure Templates provide an easy way to build pieces of HTML
    for your application's UI and help you separate application logic from
    display.
  • Language-neutral. Closure Templates work with JavaScript or Java. You can
    write one template and share it between your client- and server-side code.
  • Client-side speed. Closure Templates are compiled to efficient JavaScript
    functions for maximum client-side performance.
  • Easy to read. You can clearly see the structure of the output HTML from
    the structure of the template code. Messages for translation are inline for
    extra readability.
  • Designed for programmers. Templates are simply functions that can call
    each other. The syntax includes constructs familiar to programmers.
    You can put multiple templates in one source file.
  • A tool, not a framework. Works well in any web application environment
    in conjunction with any libraries, frameworks, or other tools.
  • Battle-tested. Closure Templates are used extensively in some of the
    largest web applications in the world, including Gmail and Google Docs.
  • Secure. Closure Templates are contextually autoescaped to reduce the risk
    of XSS.

Getting Started

Support and Project status

Closure Templates is widely used and well maintained internally at Google but
does not currently have staffing to support the open source release. As such
this project is mostly a 'code dump' and support is minimal. For certain
issues, like build integration we are in an especially bad position to offer
support.

To get assistance you can use any of the following forums

  1. Look through the documentation.
  2. Post a question to the closure-templates-discuss
    mailing list.
  3. File a bug on github

Though, given our support staffing, we may not be able to help.

Using Closure Templates with other open source frameworks

There are many Closure Template integrations with other popular open source
frameworks. Here are a few options for getting started:

Main metrics

Overview
Name With Ownergoogle/closure-templates
Primary LanguageJava
Program languageJava (Language Count: 7)
Platform
License:Apache License 2.0
所有者活动
Created At2014-04-16 15:31:58
Pushed At2025-04-18 23:04:10
Last Commit At2025-04-18 16:03:00
Release Count31
Last Release Namerelease-2024-02-26 (Posted on 2024-02-26 16:00:09)
First Release Namerelease-20160721 (Posted on 2016-07-21 14:45:43)
用户参与
Stargazers Count655
Watchers Count34
Fork Count193
Commits Count6.2k
Has Issues Enabled
Issues Count186
Issue Open Count65
Pull Requests Count1013
Pull Requests Open Count155
Pull Requests Close Count1059
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private