Blogger標準javascriptを使用せずガジェットを使う

Bloggerの標準javascriptを使用しない設定は簡単です。「b:js='false'」を<html>に追加するだけです。
<html b:css='false' b:js='false' b:defaultwidgetversion='2' b:layoutsVersion='3' b:responsive='true' b:templateUrl='vegeclub.xml' b:templateVersion='1.3.3' expr:dir='data:blog.languageDirection' expr:lang='data:blog.locale'>
これで</body>の前に https://www.blogger.com/static/v1/widgets/1471798886-widgets.js などの標準javascriptのログが表示されなくなります。標準javascriptが読み込まれないので、表示スピードは早くなります。
Blogger標準javascriptのログ一覧

標準javascriptを使用しない設定にすると、「ブログアーカイブ」ガジェットは動かなくなってしまいます。表示されている投稿と同じ年月に投稿したものだけ表示され、それ以外の投稿はクリックしても表示されません。

このブログの場合、投稿のときだけGoogleアドセンスの数を多くしています。またデータも多いので重いです。投稿以外はGoogleアドセンスの数を少なくしているので軽いです。投稿は表示スピードを早くしたいので、標準javascriptを使用せず、それ以外は表示スピードを早くしなくても元から早いので、標準javascriptを使用するようにします。

Bloggerの標準javascriptのログから最小で動く設定を考えます。
初めの2行、3行目の「_WidgetManager._Init」以降、「ブログアーカイブ」ガジェットの1行だけあれば、動くことが分かりました。
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1471798886-widgets.js"></script>
<script type='text/javascript'>
_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d130669731611474771','//googlebloggertrouble.blogspot.com/2019/04/bloggerstart.html','130669731611474771');
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sec-sideber2', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': '\u8aad\u307f\u8fbc\u307f\u4e2d\x26hellip;'}, 'displayModeFull'));
</script>
これでは、1つのテンプレートを複数のサイトで使うにはサイトの数だけこの記述が必要なので、Bloggerの関数を使ってサイトurlなどを自動で取得するように変更します。また「script type='text/javascript'」の「type='text/javascript'」部分は省略してもいいので消します。
<script src="https://www.blogger.com/static/v1/widgets/1471798886-widgets.js"></script>
<script>
_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d<data:blog.blogId/>','<data:view.url.canonical/>','<data:blog.blogId/>');
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sec-sideber2', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': '\u8aad\u307f\u8fbc\u307f\u4e2d\x26hellip;'}, 'displayModeFull'));
</script>
これを投稿以外という条件で囲んで</body>の前に書けば、投稿以外のときだけ標準javascriptを使用できるようになります。
<b:if cond='!data:view.isPost'>
<script src="https://www.blogger.com/static/v1/widgets/1471798886-widgets.js"></script>
<script>
_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d<data:blog.blogId/>','<data:view.url.canonical/>','<data:blog.blogId/>');
_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sec-sideber2', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': '\u8aad\u307f\u8fbc\u307f\u4e2d\x26hellip;'}, 'displayModeFull'));
</script>
</b:if>
https://www.blogger.com/static/v1/widgets/1471798886-widgets.js の必要部分だけを抜き出した方がいいのですが、複雑でよく更新されるので、定期的に標準javascriptを使用する設定に戻して、https://www.blogger.com/static/v1/widgets/1471798886-widgets.js の最新版の記述に書き換える方を選びました。他の行も変わる可能性があるので、そのときに一緒に更新します。
この記事のタイトルとURLをコピーする blogger
blogger