So-net ブログの独自タグ「基本 〜 HTML テンプレート」[So-net ブログカスタマイズ]

So-net

So-net ブログのテンプレート内で使える独自タグです。公式では解説されていないので自分で試してみた部分をまとめています。基本的には seesaa ブログと同じシステムですが、So-net ブログ独自のタグがあるかもしれません。

サービス側の仕様変更により動作変更、使用不可になる可能性があります。

基本的な文法

<% 変数 %> 変数を出力します。
<% 変数 | 関数 %> 変数を関数で整形して出力します。
<% if:条件 %>〜<% /if %> 条件が真の場合に〜を出力します。
<% unless:条件 %>〜<% /if %> 条件が偽の場合に〜を出力します。<% if %><% else %><% /if %> と同等です。
<% else %> <% if %> または <% unless %> 使用時に条件を分岐します。
<% loop:変数 %>〜<% /loop %> 変数が存在する場合にループを繰り返します。回数はブログの設定で決めるためここでは恐らく設定出来ません。
<%- または -%> 前後の改行コードを取り除きます(seesaa)。
※So-net ブログでは -%> は効かないかもしれません。
コメント <% /if %> など、終了タグ内であれば何か書いても動作するようです。
例)<% if:article %><% /if # article %>

ページの分岐方法の例

<% if:page_name eq 'ページ名' %>〜<% /if %> ページ名が一致する場合に〜を出力します。ページ名については下記参照。
<% unless:page_name eq 'ページ名' %>〜<% /unless %> ページ名が一致しない場合に〜を出力します。ページ名については下記参照。
<% if:archive_page_name eq 'ページ名' %>〜<% /if %> アーカイブページで月別、日別を切り分ける場合に使います。

ページの種類

page_name

  • index(インデックスページ)
  • article(記事ページ)
  • archive(アーカイブページ)
  • category(カテゴリページ)
  • tag(タグ検索ページ)
  • search(検索ページ)

archive_page_name

  • mday(日別アーカイブ)
  • month(月別アーカイブ)

関数について

代表的なものだけです。変数の後に「|」で区切ることで変数を整形することが出来ます。一つの変数に対して複数の関数が使用可能です。

__and__ それ以前の条件が真の場合、それ以降の変数または関数を出力します。
__or__ それ以前の条件が偽の場合、それ以降の変数または関数を出力します。
break_sp スペースを取り除きます。
bodyfilter(article_info,blog) 自動改行オン・オフの判別(?)
clickable
clickable('target="_blank" rel="nofollow"')
http:// で始まる部分を自動でリンクにします。属性を付加することも出来ます。
date_format
date_format('%Y-%m-%d %H:%M')
date_format('%Y年%m月%d日 %H時%M分')
時間の表示形式です。自分で好きなフォーマットを決めることが出来ます。
dismiss_pictograms 記号等を数値文字参照します。記事タイトルなどにシングルまたはダブルクォーテーションなどが含まれる場合、HTML や JavaScript がエラーになることを防ぎます。
html html エンティティ。
nl2br 改行コードを <br> に変換します。
ns2br 改行コードをスペースに変換します。
oneline 改行コードを取り除いて1行にします。
shorten
shorten(120)
()内で指定した byte 以降を表示しません。
tag_bleak b、i、img、a 以外の HTML タグを取り除きます。
tag_strip HTML タグを全て取り除きます。
text_summary
text-summary(120)
HTML タグを有効にした状態で()内で指定 byte 以降を表示しません。

HTML テンプレート内

HTML テンプレート内で使われている変数です。

コンテンツの出力

使用しているテンプレートによっては左または右コンテンツは出力されません。カラム数による条件分岐は style.layout 変数が使われています。

<% content_header %> ヘッダーコンテンツを出力する
<% content_main %> メインコンテンツを出力する
<% content_left %> 左コンテンツを出力する
<% content_right %> 右コンテンツを出力する

<head></head>

<% extra_title | dismiss_pictograms | html %> 特別なタイトル(記事名またはカテゴリ名、タグ名)を出力する
<% if:extra_title %><% /if %> extra_title がある場合に出力されるエリア
<% blog.title | dismiss_pictograms | html %> ブログ名を出力する
<% blog.description | nl2br | tag_strip %> ブログの説明を出力する
<% blog.keywords | oneline | tag_strip | __or__ | blog.title | oneline | html %> ブログのキーワードを出力する(存在しない場合はブログ名)
<% extra_keywords | oneline | html %> 記事に関連付けされているキーワードを出力する
<% if:blog.facebook_user_id -%><% /if -%> Facebook ID を登録している場合に出力されるエリア
<% blog.facebook_user_id | html -%> Facebook ID を出力
<% if:blog.has_ogp(page_name) -%><% blog.ogp_tag(article) -%><% /if -%> OGP タグを出力
<% site_info.blog_url %> So-net ブログの URL を出力する
http://blog.so-net.ne.jp
<% site_info.blog_url %>/_common/skins/blog_base.css So-net ブログのベース CSS の URL
<% css.page_url(page) %>?<% css.timestamp | break_sp %> ユーザー CSS の URL
<% site_info.blog_url %>/_common/favicon.ico So-net ブログのファビコンの URL
<% blog.page_url %> ブログの URL を出力する。
http://***.blog.so-net.ne.jp/
<% blog.page_url %>index.rdf RSS 1.0
<% blog.page_url %>atom.xml RSS 2.0
<% page_name %> ページの種類を出力する(単独ではあまり使い道はない)。
<% blog.name %> ブログ名(サブドメイン部分)を出力する
<% if:article %><% /if %> 記事が存在するときに出力されるエリア(index では出力されないみたいです)
<% article.id %> 記事の絶対 ID を出力します。サービスの表示・非表示を切り替える JavaScript の呼び出しなどに使われています。

記事テンプレート内

記事テンプレート内で使われている変数です。特殊なタグのみ追加していきます。

<% if:is_first %><% /if %> loop:list_article 内で最初のループでのみ出力されるエリア。単独で使うことも出来、最初のループであれば "1"、それ以外であれば "0" を返す。複数記事表示時の広告挿入に使われている。記事テンプレート以外では動作しない模様。