home | news | documentation | downloads | discussion | projects | license  

 
What is ClearSilver?
 
ClearSilver is a fast and powerful HTML templating system.

ClearSilver is language neutral, allowing you to seamlessly mix C, C++, Python, Perl, Java, PHP, and any other programming language you use, all in the same site, or even the same page.

ClearSilver is fast, avoiding the problems created by language-specific template systems written in slow script languages such as Python or Perl.

ClearSilver is easy to use. Unlike XML/XSLT, which are complicated to setup and understand. You'll quickly find that ClearSilver is the easiest way to develop dynamic webpages.
 

    
"... what the world needs now is another templating system ..." -- Cracker

News:

Release ClearSilver 0.11.0 [2017-Jul-14]
This release captures nearly 8 years of bugfixes (not as many as you might think), and it's been way too long since we had a release, so here it is. This release was done directly from github, go to here.
Github Repository Available [2016-Aug-15]
As you may have noticed, Google Code's SVN depot shutdown. I migrated the clearsilver depot to GitHub.
SVN Repository Available [2009-Nov-05]
After much work, I've been able to migrate the full history of Clearsilver into an SVN repository at Google Code. A new release should come soon.
Release ClearSilver 0.10.5 [2007-Jul-12]
Mostly a bugfix release, see Release Notes
Release ClearSilver 0.10.4 [2006-Nov-14]
Bugfixes, python 2.5 support and Automatic escape mode, see Release Notes
Article about using ClearSilver in embedded systems [2006-Jul-31]
Cliff Brake has an article about choosing ClearSilver for use in embedded systems where memory and processor space is at a premium. Thanks for the recommendation!
Release ClearSilver 0.10.3 [2006-Mar-12]
Another release, fixes the main configure bug in the last release, and a bunch of things you probably won't notice. Release Notes
Release ClearSilver 0.10.2 [2005-Dec-14]
Another release, mostly fixes for portability. If you've had problems compiling clearsilver in the past, this release is for you. One pervasive C API change for gcc4 where most functions take a 'char *' instead of an 'unsigned char *' now.
Release ClearSilver 0.10.1 [2005-July-28]
Another release, lots of changes to the Java JNI wrapper, plus big changes to the const-ness of arguments in the C library.
Release ClearSilver 0.9.14 [2005-Mar-08]
Another point release, mostly bugfixes for last release, but better handling with gd2 for imd photo server. See the Notes and the ChangeLog for more details.
Release ClearSilver 0.9.7 [2003-Nov-18]
Another point release, no big deals in here, couple bugfixes. See the Notes and the ChangeLog for more details.
Release ClearSilver 0.9.6 [2003-Oct-20]
A couple internal versions have gone by, so I should really get the new version out there so people can see it. Biggest change is the addition of a callback mechanism for handling client data, so you should be able to implement XML-RPC using the ClearSilver CGI Kit. See the Notes and the ChangeLog for more details.
Release ClearSilver 0.9.3 [2003-Aug-31]
New version of ClearSilver is now available, check out the Notes and the ChangeLog for more details. This is a bugfix release, and I got the rpm spec file to work (mostly).
Release ClearSilver 0.9.2 [2003-Aug-18]
New version of ClearSilver is now available, check out the Notes and the ChangeLog for more details. Biggest addition is the C# module from Jeske, improvements to the Ruby module by Dan, and distutils/setup.py support for the Python module by Brandon.
Release ClearSilver 0.9.1 [2003-Jul-07]
D'oh. Missed ClearSilver.h. This release is just a fix of the last release, really. Oh, and the ruby module should now compile on ruby 1.4.5, maybe earlier.
Release ClearSilver 0.9.0 [2003-Jul-07]
Continuing our tradition or releasing software when month == day, we bring you version 0.9.0. This version has a couple possibly incompatible changes as we clean up the syntax a bit, so check out the release notes and let us now if you have any problems.
Release ClearSilver 0.8.1 [2003-Apr-04]
The main purpose of this release is moving to an autoconf/configure build system, though a couple other things snuck in there. Check out the release notes for more information.
Release ClearSilver 0.8.0 [2003-Feb-21]
This is mostly a bugfix release, but we do now support the foo["bar"].baz, on top of the old foo["bar"]["baz"].
ClearSilver mentioned in Yahoo/PHP Talk! [2002-Oct-29]
In slides from a PHP Con 2002 presentation, Michael Radwin mentions ClearSilver. (page 25) It doesn't say much and the grouping of ClearSilver with XSLT as a "non-procedural" language is not exactly accurate. However, we're happy for the mention!
Release ClearSilver 0.7.2 [2002-Oct-17]
No new changes to the CS template syntax, but we have completed the preliminary port to Windows based on MinGW, including the Python module. We've also made a preliminary JAVA JNI connector, with a simple Servlet example, and included version 0.2 of Gaku's Perl module. See the included python/README.txt for information on compiling on Windows.
Release ClearSilver 0.7.1 [2002-Sep-10]
This is mostly a bugfix release, though we also have preliminary support for a Windows port based on MinGW. David's HZ game engine has an exe install for Windows that includes mingw. We also have some preliminary networking code, also designed after the code we used for internal servers at eGroups. This code makes it fairly easy to implement simple rpc style servers in C, useful when you need to write a bunch of simple servers for your highly scalable application.
Perl ClearSilver interface [2002-Aug-20]
Gaku has a preliminary Perl interface to ClearSilver that he is building as part of a Wiki he's writing.
Release ClearSilver 0.7 [2002-Jul-16]
This release adds a couple new features to CS, including the question mark exists operator, fixes to make the not operator a true unary operator, and support for registering string manipulation functions. Currently, the CGI kit uses the CS registered functions to provide functions for html escaping, url escaping, javascript escaping, text to html conversion, and html tag stripping to the CGI templating environment. The addition of the existence operator should help in that it allows for and/or expressions involving existence testing, and makes existence testing explicit. For example:
  <?cs if:!(?CGI.foo || ?CGI.bar) ?>
     <a href="/search?query=<?cs var:html_escape(Query.query) ?>">Search Again</a>
  <?cs /if ?>

Release ClearSilver 0.6 [2002-Apr-25]
Another quick release to fix some core dump bugs in 0.5 with respect to some of the new expression and local variable ability. This version also adds attributes to HDF, which allows you to set out of band data in the form of key/value pairs on particular HDF elements. This allows you to specify in an HDF file something like:
Images {
  top {
    height [type=num] = 512
    width [type=num] = 512
    url = /img/loc/top.gif
    alt [type=string, lang=en] = ClearSilver Rocks!
  }
}
Currently, attributes are only accessible from code, I'm still thinking about what the syntax should be for CS access.

Release ClearSilver 0.5 [2002-Apr-19]
This release contains a bunch of bugfixes, a method for sorting HDF, support for HTTP PUT, better expression support including parenthesis and array access. Array access allows you to programmatically build variable references in CS, ie: foo["bar"] is equivalent to foo.bar. Added alt CS command:
<?cs alt:MyVar ?>Other Things<?cs /alt ?> If MyVar doesn't exist, then print Other Things, else print MyVar. This release also includes imd, an "image server" written in ClearSilver, which should help as an example.

Release ClearSilver 0.4 [2002-Jan-12]
This release contains a bunch of bugfixes, and uses the new expression parser in a couple more places, most notably in VAR, allowing for: <?cs var:CGI.PathInfo + "/" + CGI.MyPath ?>. This version also adds an Apache module for creating ClearSilver CGI's which are loaded into Apache at run-time. The Apache module is based on mod_ecgi.
Release ClearSilver 0.3 [2001-Sep-16]
This release contains a new expression parser. This expression parser is now used in most places which only expected an HDF variable before, and provides most of the syntax that was only allowed for SET before. This also implies less duplication of parsing code. With this code, you can now do: <?cs call:myfunc(#5 + #5) ?>. Note that with the new parser, expressions are calculated in the same order of operations as C, which is different from the previous left to right order of operations that the previous version had.
Release ClearSilver 0.2.1 [2001-Sep-15]
This is a quick bug fix release. A new version is coming soon with some fairly major changes, and I wanted to get this out there for people who didn't want the more dangerous changes in 0.3. Includes fix for the python wrapper to work with PyApache in non-SingleInterpreter mode.
Release ClearSilver 0.2 [2001-Aug-21]
This release fixes a couple bugs, and adds the ability to have a callback during form data upload. This can be used to either cut off a large upload early (ie, don't let a user upload a 20MB file if there is a 5MB limit, but you want to stop them before they actually waste all that time uploading the file) or, if you are really fancy, you can do a fancy upload progress bar in HTML.
Release ClearSilver 0.1 [2001-Aug-06]
This is the initial release of ClearSilver, a fast and powerful templating system based on concepts learned while working for some of the highest traffic sites on the web. This release is fairly stable, but is considered alpha because the API is likely to continue to change. ClearSilver is currently in use at Techdirt Corporate Intelligence, and here at Neotonic with our Trakken product.

 
Copyright © 2017 Brandon Long, All rights reserved.