CG・プログラミング・AIとかについてのメモ

Bloggerテンプレートで自動的に追加される不要なコードを回避する方法

はじめに

Bloggerテンプレートを必要最小限の内容で作成しても、保存時に自動でいくつかのデフォルト機能のコードが追加されてしまいます。この仕様によりデータ量が大幅に増加してしまうため、対応策を考えてみます。

不要なコードが追加される理由

Bloggerでは、テンプレート内に特定の機能に対応する <b:includable> タグが存在しないと、それらを自動的に補完する仕様になっています。このブログのテンプレートを作成するにあたって、シェアボタン・コメント・モバイルテンプレートに関するコードをすべて削除しても、テンプレートエディタでの保存時にそれらのコードが自動的に復活して20KB以上もデータが増えてしまいました。

<b:includable> タグの中身だけを消して対処

この自動補完を完全に防ぐことはできないようなので、コードの追加量をできるだけ抑える方法をとります。復活してしまう <b:includable></b:includable> タグの両端だけを残し、中身のコードをすべて削除しました。このように空の状態にしておくことで、Blogger側は「この機能はすでにテンプレートに存在している」と認識し、自動挿入を行わなくなるようです。

<b:includable id='hogehoge'>
  <!-- 
  ここに処理が書いてある
  -->
</b:includable>
<b:includable id='hogehoge'>
</b:includable>

<b:includable />のようにタグが一行で完結している箇所にはcond='false'を挿入しておきました。コードの長さは微妙に増えてしまいますが、クイックエディット用アイコンの読み込みなど不要な処理を防ぐことができるかなと思います。

<b:include name='hogehoge' cond='false' />

削除するコードの例

<b:includable id='postQuickEdit' var='post'>
</b:includable>

<b:include name='quickedit' cond='false' />
<b:includable id='shareButtons' var='post'>
</b:includable>
<b:includable id='comment-form' var='post'>
</b:includable>
<b:includable id='commentDeleteIcon' var='comment'>
</b:includable>
<b:includable id='comment_count_picker' var='post'>
</b:includable>
<b:includable id='comment_picker' var='post'>
</b:includable>
<b:includable id='comments' var='post'>
</b:includable>

<b:includable id='iframe_comments' var='post'>
</b:includable>

<b:includable id='threaded-comment-form' var='post'>
</b:includable>
<b:includable id='threaded_comment_js' var='post'>
</b:includable>
<b:includable id='threaded_comments' var='post'>
</b:includable>
<b:includable id='mobile-index-post' var='post'>
</b:includable>
<b:includable id='mobile-main' var='top'>
</b:includable>
<b:includable id='mobile-nextprev'>
</b:includable>
<b:includable id='mobile-post' var='post'>
</b:includable>

補足

<b:includable>~</b:includable> の間に存在する(子要素の) <b:includable></b:includable> は丸ごと削除しても問題ないようです。