<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
  <title>ist.js</title>
  <link href="http://istjs.njoyard.fr"/>
  <link type="application/atom+xml" rel="self" href="http://istjs.njoyard.fr/atom.xml"/>
  <updated>2014-03-13T02:38:50-07:00</updated>
  <id>http://istjs.njoyard.fr/</id>
  <author>
    <name>Nicolas Joyard</name>
    <email>joyard.nicolas@gmail.com</email>
  </author>

  
  <entry>
    <id>http://njoyard.github.io/ist/2014/03/09/ist-0.6.6-small-features</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2014/03/09/ist-0.6.6-small-features.html"/>
    <title>ist.js v0.6.6 - Small new features</title>
    <published>2014-03-09T00:00:00-08:00</published>
    <updated>2014-03-09T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I just released ist.js version 0.6.6, which adds two new features (one of which was actually added in 0.6.5 but I didn&#39;t write a post about it).&lt;/p&gt;

&lt;p&gt;The first one enables defining global variables or helpers that will be available anywhere in templates:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;nx&quot;&gt;ist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;myHelper&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;helped value: &amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;ist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;myValue&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;




&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nt&quot;&gt;div&lt;/span&gt;
    &lt;span class=&quot;c&quot;&gt;/* Renders to &amp;quot;helped value: hi!&amp;quot; */&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ myHelper(&amp;#39;hi!&amp;#39;) }}&amp;quot;&lt;/span&gt;

    &lt;span class=&quot;c&quot;&gt;/* Renders to &amp;quot;42&amp;quot; */&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ myValue }}&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Note that context variables with the same name as global variables will take precedence, as you&#39;re used to in Javascript.&lt;/p&gt;

&lt;p&gt;The second features enable escaping newlines with a backslash to make long selectors more readable.  All spaces/tabs before the backslash and on the beginning of the following line will be ignored.  Take care not to leave spaces &lt;em&gt;after&lt;/em&gt; the escaping backslash.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nt&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;.class&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;#id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-one&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;one&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-two&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;two&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;\&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-three&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;three&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-four&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;four&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;\&lt;/span&gt;
            &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-five&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;five&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;data-six&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;six&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2014/01/14/ist-0.6.4-ie11-safari</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2014/01/14/ist-0.6.4-ie11-safari.html"/>
    <title>ist.js v0.6.4 - IE11- and Safari-compatible</title>
    <published>2014-01-14T00:00:00-08:00</published>
    <updated>2014-01-14T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;As of version 0.6.4, ist.js is now compatible with IE11 and Safari 6 (actually it worked with version 0.6.3, but the test suite had bugs that prevented it to succeed with those browsers).&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2014/01/12/ist-0.6.3</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2014/01/12/ist-0.6.3.html"/>
    <title>ist.js v0.6.3</title>
    <published>2014-01-12T00:00:00-08:00</published>
    <updated>2014-01-12T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I just released ist.js version 0.6.3.  This release does not introduce any new feature, but ist.js is now tested thoroughly with multiple browsers on multiple platforms using &lt;a href=&quot;https://travis-ci.org/njoyard/ist&quot;&gt;Travis&lt;/a&gt; and &lt;a href=&quot;https://saucelabs.com/u/istjs&quot;&gt;Sauce Labs&lt;/a&gt;.  For now, only Chrome, Firefox and Opera are tested but I plan to add IE, Safari, iOS and Android support soon.  About IE, I&#39;m not sure which versions to support yet, but my goal is to support at least IE10, even maybe IE9 (it seems IE8 would be too much work, but it is not completely excluded yet).&lt;/p&gt;

&lt;p&gt;Under the hood, ist.js now uses &lt;a href=&quot;http://pegjs.majda.cz/&quot;&gt;PEGjs&lt;/a&gt; version 0.8.0, which should speed up template parsing and also allows size optimization, thus I may release size-optimized versions in the near future.&lt;/p&gt;

&lt;p&gt;I also fixed a small inconsistency where rendering text nodes with undefined content would not have the same result on different browsers.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2013/12/18/ist-0.6.1-bugfix</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2013/12/18/ist-0.6.1-bugfix.html"/>
    <title>ist.js v0.6.1 bugfix release</title>
    <published>2013-12-18T00:00:00-08:00</published>
    <updated>2013-12-18T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I just released ist.js 0.6.1, which fixes problems when building projects that
use &lt;code&gt;ist!path/to/template&lt;/code&gt; dependencies with r.js.&lt;/p&gt;

&lt;p&gt;Additionnaly, ist.js now uses &lt;a href=&quot;http://karma-runner.github.io/&quot;&gt;Karma&lt;/a&gt; as a testing framework.  All tests have
been adapted to Karma and I added a bunch of new tests (including r.js build
tests).  Karma is a very nice framework, which is able to serve files on a
webserver and automatically launch web browsers (including PhantomJS for example)
to run test suites.  It also paves the way to setting up continuous integration
for ist.js.&lt;/p&gt;

&lt;p&gt;Also, the download links on the home page have been fixed to point to the correct
path on github.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2013/11/25/ist-0.6-updates-nodes</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2013/11/25/ist-0.6-updates-nodes.html"/>
    <title>ist.js v0.6 can finally update nodes !</title>
    <published>2013-11-25T00:00:00-08:00</published>
    <updated>2013-11-25T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;After having rewritten the template renderer 3 times, ist.js is finally able
to update rendered nodes.  I settled on an approach that is MUCH simpler that
anything I had attempted before, and that just works (I guess taking a break
from ist.js for several months also helped).&lt;/p&gt;

&lt;p&gt;Fragments returned from a template &lt;code&gt;render()&lt;/code&gt; method now have an additional
&lt;code&gt;update()&lt;/code&gt; method to update rendering, so you must keep a reference on those
fragments to be able to update them (even if you called
&lt;code&gt;somenode.appendChild(fragment)&lt;/code&gt;, and as a consequence the fragment itself is
now empty).&lt;/p&gt;

&lt;p&gt;Here is a quick example:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;js&quot;&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;template&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ist&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;div &amp;#39;{{ foo }}&amp;#39;&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;rendered&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;template&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;foo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;bar&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;rendered&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// &amp;lt;div&amp;gt;bar&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// rendered is now empty, but it still holds the update() method !&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;rendered&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;foo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;baz&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// &amp;lt;div&amp;gt;baz&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You can call the &lt;code&gt;update()&lt;/code&gt; method with a new context object, or without any
arguments to reuse the same object as before.&lt;/p&gt;

&lt;p&gt;Some methods have also been renamed in this version.  The goal is to have
short method names everywhere.  &lt;code&gt;Template#findPartial&lt;/code&gt; is now
&lt;code&gt;Template#partial&lt;/code&gt;, &lt;code&gt;ist.fromScriptTag&lt;/code&gt; became &lt;code&gt;ist.script&lt;/code&gt; and
&lt;code&gt;ist.createNode&lt;/code&gt; is now &lt;code&gt;ist.create&lt;/code&gt;.  The previous methods will still work
for a few releases.&lt;/p&gt;

&lt;p&gt;The syntax for directive helpers has changed a bit since 0.5.7, and they must
be written a bit differently to cope with updating (as the same helper will be
called for both rendering and updating).  As always, refer to the
&lt;a href=&quot;http://istjs.njoyard.fr/doc.html&quot;&gt;documentation&lt;/a&gt; for more details and examples.&lt;/p&gt;

&lt;p&gt;Finally, my apologies to people reading those news in a feed reader, as the
last update caused all previous news posts to be seen as new (this was a
consequence of moving urls to github.io).&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2013/09/06/ist-0.5.7</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2013/09/06/ist-0.5.7.html"/>
    <title>ist.js v0.5.7 released</title>
    <published>2013-09-06T00:00:00-07:00</published>
    <updated>2013-09-06T00:00:00-07:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I just pushed a 0.5.7 release.  I&#39;ve been working quite a bit to prepare
version 0.6 (which will mainly enable updating rendered templates), rewriting
things many times, and I decided to do another release before 0.6 because of
some already useful changes.&lt;/p&gt;

&lt;p&gt;On a user&#39;s perspective, here is what changed in this version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New directives are available. &lt;code&gt;@dom&lt;/code&gt; enables inserting DOM nodes when
rendering:&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;k&quot;&gt;@dom&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;someNode&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;




&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;nx&quot;&gt;template&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;someNode&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;div&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;You can now create reusable &quot;components&quot; using &lt;code&gt;@define&lt;/code&gt; and &lt;code&gt;@use&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;k&quot;&gt;@define&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;article&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;nc&quot;&gt;.article&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;h1&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ title }}&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ text }}&amp;quot;&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;@each&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;articles&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;@use&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;article&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Rendering performance has been boosted quite a lot (around 30% faster in my
not-scientific-at-all benchmarks).  This is actually a quite welcome side
effect of rewriting things to enable template updating.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For people defining directive helpers, here is a summary of what changed; please
refer to the &lt;a href=&quot;http://istjs.njoyard.fr/doc.html&quot;&gt;documentation&lt;/a&gt; for more details.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Directive helper definition has changed a bit to prepare ground for 0.6;
helpers defined before 0.5.7 are incompatible.  The two main changes are that
rendered nodes are now to be inserted into a document-fragment passed as a
parameter, and that the outer and inner context objects are now both &quot;real&quot;
parameters (no more using &lt;code&gt;this&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;pushEvalVar&lt;/code&gt; and &lt;code&gt;popEvalVar&lt;/code&gt; methods on rendering context objects have
been deprecated in favor of new &lt;code&gt;pushScope&lt;/code&gt; and &lt;code&gt;popScope&lt;/code&gt;.  They will be
removed in version 0.6.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;More changes have happened under the hood, see the &lt;a href=&quot;https://raw.github.com/njoyard/ist/master/CHANGELOG&quot;&gt;changelog&lt;/a&gt; for more
details.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2013/03/09/ist-0.5.6-bugfix</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2013/03/09/ist-0.5.6-bugfix.html"/>
    <title>ist.js v0.5.6 released</title>
    <published>2013-03-09T00:00:00-08:00</published>
    <updated>2013-03-09T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I have just pushed ist.js version 0.5.6 to GitHub.  This version fixes a bug
that prevented building (with r.js) projects when using the &lt;code&gt;ist!&lt;/code&gt; requirejs
plugin syntax.&lt;/p&gt;

&lt;p&gt;I&#39;m sorry for the lack of updates lately; I&#39;m currently working on ist.js v0.6,
which will allow updating rendered nodes with a new or modified context,
introduce some new built-in helpers and enhance performance.  I plan to add
JSDoc to the code and rewrite tests to be more thorough, better organized and so
that they can be automated (and hopefully get ist.js on a continuous integration
server).&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2012/12/06/ist-0.5.5-new-documentation</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2012/12/06/ist-0.5.5-new-documentation.html"/>
    <title>ist.js v0.5.5 released - new documentation online</title>
    <published>2012-12-06T00:00:00-08:00</published>
    <updated>2012-12-06T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;I&#39;ve been rewriting the documentation for a while and it is finally &lt;a href=&quot;http://istjs.njoyard.fr/doc.html&quot;&gt;online&lt;/a&gt;.
I think it is a lot clearer now, but do not hesitate to contact me if you have
any remark or question.&lt;/p&gt;

&lt;p&gt;Additionnaly, ist.js version 0.5.5 has just been released.  Several bugs have
been fixed (see the &lt;a href=&quot;https://raw.github.com/njoyard/ist/master/CHANGELOG&quot;&gt;changelog&lt;/a&gt; for more details), rendering performance has
been improved a bit and two new features are available.  First, a new built-in
&lt;code&gt;@eachkey&lt;/code&gt; directive is available to enumerate objects.  Here is an example of
how to use it; more information is available in the documentation.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nt&quot;&gt;dl&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;@eachkey&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;myObject&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;dt&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ key }}&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;dd&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ value }}&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The other new feature enables setting event handlers directly in templates.  The
syntax is close to attribute/property qualifiers; the main difference is that
the value after the equal sign must be a valid ist.js expression (without curly
braces), which should of course return a function.  Say you have an array named
&lt;code&gt;menu&lt;/code&gt; in your rendering context object, where each item has a &lt;code&gt;label&lt;/code&gt; property
and an associated handler function named &lt;code&gt;handler&lt;/code&gt;, you could use a template
like this one:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nt&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;#menu&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;@each&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;menu&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[!&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;handler&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;{{ label }}&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I&#39;m not entirely satisfied with this syntax; I could as well have used a new
built-in directive but I still find the square brackets less clumsy.  Naturally
I&#39;m open to feedback on this point.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2012/11/19/ist-0.5.4-inline-text</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2012/11/19/ist-0.5.4-inline-text.html"/>
    <title>ist.js v0.5.4 released</title>
    <published>2012-11-19T00:00:00-08:00</published>
    <updated>2012-11-19T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;ist.js v0.5.4 has just been released. It now supports inline text nodes, so that
the following are equivalent:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nt&quot;&gt;h1&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&amp;quot;My wonderful title&amp;quot;&lt;/span&gt;

&lt;span class=&quot;nt&quot;&gt;h1&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;My wonderful title&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <id>http://njoyard.github.io/ist/2012/11/18/first-post</id>
    <link type="text/html" rel="alternate" href="http://istjs.njoyard.fr/2012/11/18/first-post.html"/>
    <title>New website</title>
    <published>2012-11-18T00:00:00-08:00</published>
    <updated>2012-11-18T00:00:00-08:00</updated>
    <author>
      <name>Nicolas Joyard</name>
      <uri>http://istjs.njoyard.fr</uri>
    </author>
    <content type="html">&lt;p&gt;Welcome to the new website for ist.js.  I&#39;m still polishing things up a bit here, but overall it should be nearly fully functional.  Make sure to try the &lt;a href=&quot;online.html&quot;&gt;online demo&lt;/a&gt; !&lt;/p&gt;

&lt;p&gt;Don&#39;t hesitate to contact me it you have any problems (with ist.js or with this website) or suggestions, on &lt;a href=&quot;http://twitter.com/njoyard&quot;&gt;twitter&lt;/a&gt; or using the &lt;a href=&quot;https://github.com/njoyard/ist/issues&quot;&gt;GitHub issue tracker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This website will adapt to smaller screens soon. I&#39;m also going to rewrite the documentation as it needs to be organized better ; currently I think it&#39;s a bit confusing for newcomers.&lt;/p&gt;
</content>
  </entry>
  
 
</feed>
