Wednesday, January 20, 2016

Blogger XML Operator and Syntax Updates 2015

Blogger Logo

Recently Blogger has released several new operators for the syntax of XML them. This new syntax allows us to be able to write code templates that better, more logical and more efficient. In addition to reducing the size of the file is XML, the new syntax also allows developers to be able to find new potentials in manipulating the template code Bloggers who used mostly only we can do with JavaScript. Here is a summary ...

And

Before

<b:if cond='data:blog.searchQuery'>
<b:if cond='data:numPosts &gt; 10'>
The search results by the number of posts more than 10 ...
</b:if>
</b:if>

After

<b:if cond='data:blog.searchQuery and data:numPosts &gt; 10'>
The search results by the number of posts more than 10 ...
</b:if>
<b:if cond='data:blog.searchQuery &amp;&amp; data:numPosts &gt; 10'>
The search results by the number of posts more than 10 ...
</b:if>

Or

Before

<b:if cond='data:blog.pageType == &quot;index&quot;'>
Pass the test ...
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
Pass the test ...
</b:if>

After

<b:if cond='data:blog.pageType == &quot;index&quot; or data:blog.pageType == &quot;item&quot;'>
Pass the test ...
</b:if>
<b:if cond='data:blog.pageType == &quot;index&quot; || data:blog.pageType == &quot;item&quot;'>
Pass the test ...
</b:if>

Not

Before

<b:if cond='data:comment.isDeleted'>
<b:else/>
Comments are not erased here ...
</b:if>
<b:if cond='data:comment.isDeleted == &quot;false&quot;'>
Comments are not erased here ...
</b:if>

After

<b:if cond='!data:comment.isDeleted'>
Comments are not erased here ...
</b:if>
<b:if cond='not data:comment.isDeleted'>
Comments are not erased here ...
</b:if>
Which can not be:
<!-- TEMPLATE ERROR: 'not' term cannot be used as operator except when preceding 'in' or 'contains' -->
<b:if cond='data:comment.isDeleted not &quot;false&quot;'>
Comments are not erased here ...
</b:if>
<!-- TEMPLATE ERROR: Extra characters at end of string: buf=[!] remainder=["false"] -->
<b:if cond='data:comment.isDeleted ! &quot;false&quot;'>
Comments are not erased here ...
</b:if>
Which can be:
<b:if cond='not data:comment.isDeleted == &quot;false&quot;'>
Comments are not erased here ...
</b:if>
<b:if cond='!data:comment.isDeleted == &quot;false&quot;'>
Comments are not erased here ...
</b:if>

Ternary Selector

Before

&lt;html class=&#39;<b:if cond='data:blog.pageType == &quot;item&quot;'>
page-item
<b:else/>
page-non-item
</b:if>&#39;&gt;

&lt;/html&gt;

After

<html expr:class='data.blog.pageType == &quot;item&quot; ? &quot;page-item&quot; : &quot;page-non-item&quot;'>

</html>
<html expr:class='&quot;page-&quot; + (data.blog.pageType == &quot;item&quot; ? &quot;&quot; : &quot;non-&quot;) + &quot;item&quot;'>

</html>

Membership

Almost the same as the operator or, just that all references must be the same comparison, values ​​are distinguished:

Before

<b:if cond='data:comment.author == &quot;Taufik Nurrohman&quot;'>
Admin comment ...
</b:if>
<b:if cond='data:comment.author == &quot;Taufik&quot;'>
Admin comment ...
</b:if>
<b:if cond='data:comment.author == &quot;Admin&quot;'>
Admin comment ...
</b:if>

After

<b:if cond='data:comment.author in {&quot;Taufik Nurrohman&quot;,&quot;Taufik&quot;,&quot;Admin&quot;}'>
Admin comment ...
</b:if>
<b:if cond='data:comment.author in [&quot;Taufik Nurrohman&quot;,&quot;Taufik&quot;,&quot;Admin&quot;]'>
Admin comment ...
</b:if>
<b:if cond='{&quot;Taufik Nurrohman&quot;,&quot;Taufik&quot;,&quot;Admin&quot;} contains data:comment.author'>
Admin comment ...
</b:if>
<b:if cond='[&quot;Taufik Nurrohman&quot;,&quot;Taufik&quot;,&quot;Admin&quot;] contains data:comment.author'>
Admin comment ...
</b:if>

Else If

Before

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<data:post.body/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<data:post.body/>
<b:else/>
<data:post.snippet/>
</b:if>
</b:if>

After

<b:if cond='data:blog.pageType == "item"'>
<data:post.body/>
<b:elseif cond='data:blog.pageType == &quot;static_page&quot;'>
<data:post.body/>
<b:else/>
<data:post.snippet/>
</b:if>
or…
<b:if cond='data:blog.pageType in {&quot;item&quot;,&quot;static_page&quot;}'>
<data:post.body/>
<b:else/>
<data:post.snippet/>
</b:if>

Reference:

No comments:

Post a Comment