Wednesday, June 3, 2015

Pemutakhiran Sintaks dan Operator XML Blogger 2015

Blogger Logo

Baru-baru ini Blogger telah merilis beberapa operator baru untuk sintaks XML mereka. Sintaks baru ini memungkinkan kita untuk dapat menulis kode templat yang lebih baik, lebih logis dan lebih efisien. Selain dapat mengurangi ukuran berkas XML, sintaks baru ini juga memungkinkan para pengembang untuk dapat menemukan potensi-potensi baru dalam memanipulasi kode templat Blogger yang dulu sebagian besar hanya bisa kita lakukan dengan JavaScript. Berikut ini adalah ringkasannya…

And

Sebelum

<b:if cond='data:blog.searchQuery'>
  <b:if cond='data:numPosts &gt; 10'>
    Hasil pencarian dengan jumlah posting lebih dari 10…
  </b:if>
</b:if>

Sesudah

<b:if cond='data:blog.searchQuery and data:numPosts &gt; 10'>
  Hasil pencarian dengan jumlah posting lebih dari 10…
</b:if>
<b:if cond='data:blog.searchQuery &amp;&amp; data:numPosts &gt; 10'>
  Hasil pencarian dengan jumlah posting lebih dari 10…
</b:if>

Or

Sebelum

<b:if cond='data:blog.pageType == &quot;index&quot;'>
  Lolos tes…
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  Lolos tes…
</b:if>

Sesudah

<b:if cond='data:blog.pageType == &quot;index&quot; or data:blog.pageType == &quot;item&quot;'>
  Lolos tes…
</b:if>
<b:if cond='data:blog.pageType == &quot;index&quot; || data:blog.pageType == &quot;item&quot;'>
  Lolos tes…
</b:if>

Not

Sebelum

<b:if cond='data:comment.isDeleted'>
<b:else/>
  Komentar yang tidak terhapus di sini…
</b:if>
<b:if cond='data:comment.isDeleted == &quot;false&quot;'>
  Komentar yang tidak terhapus di sini…
</b:if>

Sesudah

<b:if cond='!data:comment.isDeleted'>
  Komentar yang tidak terhapus di sini…
</b:if>
<b:if cond='not data:comment.isDeleted'>
  Komentar yang tidak terhapus di sini…
</b:if>

Yang ini tidak bisa:

<!-- 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;'>
  Komentar yang tidak terhapus di sini…
</b:if>
<!-- TEMPLATE ERROR: Extra characters at end of string: buf=[!] remainder=["false"] -->
<b:if cond='data:comment.isDeleted ! &quot;false&quot;'>
  Komentar yang tidak terhapus di sini…
</b:if>

Yang ini bisa:

<b:if cond='not data:comment.isDeleted == &quot;false&quot;'>
  Komentar yang tidak terhapus di sini…
</b:if>
<b:if cond='!data:comment.isDeleted == &quot;false&quot;'>
  Komentar yang tidak terhapus di sini…
</b:if>

Ternary Selector

Sebelum

&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;

Sesudah

<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

Hampir sama dengan operator or, hanya saja semua referensi pembanding harus sama, nilainya saja yang dibedakan:

Sebelum

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

Sesudah

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

Else If

Sebelum

<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>

Sesudah

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

atau…

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

Tambahan

b:switch, b:case, b:eval, b:withreferensi


Referensi:

Labels: , ,