

Tempo: a tiny JSON rendering engine - rafaelc
http://twigkit.github.com/tempo/

======
y0ghur7_xxx
Here[1] is a list of other JS templating engines. The page compares them for
speed.

You could add yours.

[1]<http://jsperf.com/dom-vs-innerhtml-based-templating/112>

------
franze
is the unobtrusive javascript paradigm dying or already dead?

~~~
ehsanul
From the link: _Degrades gracefully if JavaScript is not enabled_

Graceful degradation is less common for JavaScript now than it used to be
though. So if you want a smooth web experience, these days you just can't go
without JavaScript. I personally don't think that's a horrible thing, but I
guess most people who've disabled JavaScript (or use Lynx or something) would
disagree.

~~~
franze
i.e.: <http://twigkit.github.com/tempo/examples/twitter> with no-script turned
on <http://yfrog.com/h2g6vcqj> well, i'm not quite sure how "Degrades
gracefully" is defined, but i would not call the no js-version "gracefully"

------
thefreshteapot
As a user of the "prototype.js" library this is a little similar to the
default template syntax, yet with one extra character.

Thomas Fuchs has a very similar version:
[http://mir.aculo.us/2011/03/09/little-helpers-a-tweet-
sized-...](http://mir.aculo.us/2011/03/09/little-helpers-a-tweet-sized-
javascript-templating-engine)

And finally, I ported the template functionality from the "prototype.js" to
php. <https://github.com/freshteapot/php-template>

Prototypejs - api of "Template"
<http://api.prototypejs.org/language/Template/>

------
robryan
I generally pass the templates needed for a page into a Javascript variable
from the back end. Looks nice for template nesting though, as opposed to
storing a nested template in a separate Javascript variable.

------
Ataraxy
As someone that isn't really a developer but understands enough to break
things or cobble them together, this seems quite accessible to me.

For example, I could conceivably see taking an existing web services API and
spitting JSON results into a themeforest template.

I'm sure there's a million ways of doing it, but this at a glance seems like a
quick way of making that happen.

------
etherealG
sorry to be a hater, but while I find the idea of mixing js and html not
great, the alternative being offered up here is to introduce a new language
and mix that in with html instead of js. isn't that counterintuitive? wouldn't
it be better to just use actual js in your templates instead of this arbitrary
{{}}-based stuff?

~~~
biot
It's a very familiar style of markup that I find immediately intuitive. The
benefit being that it separates the markup from the code populating it.

~~~
weego
{{tag}} is not "valid" markup (it will pass a validator but has negative
semantic value), which is even worse than mixing a little well crafted logic
into your display code.

~~~
biot
Using {{tag}} notation seems to work well enough on Wikipedia -- could you
elaborate on the difference between Tempo's use and Wikipedia's?

~~~
etherealG
I don't seem much difference, but I also prefer when making websites to keep
down the number of languages I have to know. Already html + css + js + a
server side language is enough, introducing another seems excessive when your
templating language could just be js or perhaps the same server side language
you already use.

we do the same for our server side templating when making sites, using php for
controller & model code, but also arbitrary php as the template language in
the view too. it seems to work well, and avoids the need to learn something
new.

------
zdw
Looks interesting, especially to those coming from Smarty as it appears quite
similar in terms of templating.

To compare the two, the upside is you get to feed the site JSON, which is
easier to generate. The downside is the extra content load time of the script
vs doing the template integration server side and caching the result.

------
d0m
Interesting. At first sight, I couldn't really understand the difference with
the existing icanhazjs(.com) library? Can you elaborate on this?

------
aitorciki
How well does the {{}} syntax coexist with server-side template languages like
Django's one which uses the exact same marker for placeholders?

~~~
d0m
You can use tags in your django templates do avoid that issue. For instance, I
am using icanhaz which use mustache's templates ({{}}) and I inspired myself
of a snippet called Verbatim. So, basically, in your template you do:

    
    
      <body>
      {% js_template test %}
      Here you can freely use {{}} because the surrounding tags make django ignore them.
      {% endjs_template %}

------
keytoll
<http://www.youtube.com/watch?v=D-BetceTGiA>

