Home > 2015-05
2015-05
Blogger のテンプレートには、ウィジェットタグという、一定の条件ごとに出力する HTML コードを変化させるための特別なタグが存在します。今回、このウィジェットタグに新しい表現方法が加わったと、Blogger Buzz が伝えています。
これまで、ウィジェットタグの中では
+
で値を連結したり-
で値を差し引いたり==
や!=
で値が等しいか等しくないかをチェックしたり<
や>
、<=
、>=
で値を比較したり
NOT 演算子
!
や not
を使って、「何かが true
(真)ではないとき」という条件を表現する。<b:if cond='!data:post.allowComments'>...
(コメントが可能でなければ…)これまでは、
<b:else/>
を使って表現していたヤツですね。三項演算子
?
と :
を使った三項演算子。?
の前の条件が true
(真)の場合は :
の前のもの、false
(偽)の場合は :
の後ろのものを表示します。<a expr:class='data:post.allowComments ? "comments" : "no-comments"' ...
(コメント可能な場合、a
要素の class
属性に comments
を指定し、不可能な場合は no-comments
を指定する。)これまた、
<b:if cond='...'>
と <b:else/>
を組み合わせて、表現していたものです。メンバシップ演算子
これは、ある値が集合の要素の 1 つであるかどうかをチェックするためのもの。
in
と contains
とが使えます。<b:if cond='data:blog.pageType in {"index", "archive"}'>...
(ページタイプがトップページかアーカイブページのときに…)<b:if cond='{"item", "static_page"} contains data:blog.pageType'>
(ページタイプが個別ページか静的ページのときに…)in
と contains
で、チェック対象の値と集合(もしくは配列)の記述順が逆になるので要注意。とはいえ、複数の <b:if cond='...'>
を併記する必要がないのは、便利です。AND 演算子
and
や &&
を使って、複数の条件をともに満たす場合について、記述可能に。<b:if cond='data:blog.pageType == "index" and data:post.allowComments'>...
(ページタイプがトップページで、かつコメント可能なとき…)以前は、
<b:if cond='...'>
をネスト(入れ子に)して実現していたもの。OR 演算子
or
や ||
を使って、複数の条件のうち、1 つでも満たす場合について、記述可能に。<b:if cond='data:blog.pageType == "index" or data:post.allowComments'>...
(ページタイプがトップページか、またはコメント可能なとき…)in
、contains
と同様、これからは <b:if cond='...'>
を何回も書かなくて済みます。括弧
( )
を使って、演算の順序を指定する。<div expr:style='"max-width: " + (data:width + 10) + "px;"'>...
(div 要素 style 属性の最大幅に、現在の横幅プラス 10 ピクセルした値を指定する。)これらの新しい演算子や表現を使うと、これまで Blogger テンプレートで条件分岐を記述していた、煩雑な作業が随分と楽になりそうですね。本格的に Blogger テンプレートをいじってみたい!という人は、ぜひ参考にしてください。
参考:

先日、こういうメールをもらいました。
一昨日「Japanese Bloggers Info」を見つけました、あまりメジャーではないBloggerに関する情報サイトの存在が心強いです、そこで見つけた諸々の情報を有効に使わせていただきます、ありがとうございます。
さて、登録を済ませまして私のブログも登録しようとしたのですが、ログイン認証の段階で、
「お知らせ: サポートが終了した API は 2015 年 4 月 20 日よりご利用いただけなくなりました。サービスを再びご利用いただくために、代替 API への移行をお願いいたします。」
とのことです、ブログ登録に代替の手段はありますでしょうか。
このエラーは、Japanese Bloggers Info (以下 JBI)を動かしている Google App Engine (以下 GAE)上で、認証システムとして AuthSub が使えなくなり、登録ユーザーの所有ブログ情報が取得できなくなったのが原因です。現在、新しい認証システム OAuth2 への移行を行っている途中です。
このメンテナンスの間、JBI サイト上では、以下の機能が使えません。
- JBI へのブログ登録
- JBI からのブログ削除
ご不便をおかけしますが、メンテナンス終了まで、もうしばらくお待ちください。