スキップしてメイン コンテンツに移動

Bloggerのdefaultmarkupタグの最初は便利で最後は不要な使い方

Contempoなどの2017年の公式テーマからソースコードに追加されていたBloggerの独自タグの一つ、defaultmarkupとは何かを考える。

Bloggerのdefaultmarkupタグが記載されたContempoテーマのソースコード
Contempoテーマ via Blogger

head内に幾つも記載されていて中身はincludableタグばかりなんだ。翻ってbody内には同一のidと内容を持つincludableタグが記載されていて完全に重複している。ソースコードに二つのマークアップがまるでコピーされたように含まれているのはサイト作成で謎としかいいようがない。

概して一つしか要らないはずだし、body内のincludableタグでブログは成り立つと思う。defaultmarkupタグがなぜhead内に幾つも記載されているのか。Bloggerのテンプレートでの役目、そして使い方も分からない。

defaultmarkupタグはウィジェット毎の初期設定を示す

調べるとBloggerのウィジェットを作成するwidgetタグの初期設定を示していると分かった。指定される中身のincludableタグもwidget内に大部分が記載されている。一部は含まれないから注意しなくてはならないけど、とにかくテンプレートを編集しないかぎり、最初はhead内のdefaultmarkupタグに対してbody内のwidgetタグに同一の内容が見付かる。

このタグはデフォルトで定義されたインクルージョン(<b:includable>)を含みます。各々のタグは一つか、または幾つかのガジェットに特有です。このタグは<b:defaultmarkups>(「s」付き)だけに含まれます。

defaultmarkupタグはブログのガジェット、いい換えるとウィジェットのwidgetタグの内容を定義するインクルージョンのincludableタグをdefaultmarkupsタグの中で指定している。

defaultmarkupタグのBloggerでのマークアップの仕組み

使う際には三つの要素で成り立っているのを覚えておく。

ソースコードのサンプル

<b:defaultmarkups>
  <b:defaultmarkup type='Blog,FeaturedPost'>
    <b:includable id='headerByline'>
      ブログのコンテンツ
    </b:includable>
  </b:defaultmarkup>
</b:defaultmarkups>

全体は一つのdefaultmarkupsタグで囲まれてテンプレートのhead内に置かれている。

その中にdefaultmarkupタグを幾つでも記載できる。どんなウィジェットに使うかはtypeで指定する。サンプルではブログの投稿の「Blog」と注目の投稿の「FeaturedPost」が入っている。一つか複数ならば半角コンマで区切る。

ただしブログ自体に「Common」のtypeも使えるんだ。全てのウィジェットに共通している。個別のウィジェットのtypeではない。

defaultmarkupタグの中身はincludableタグだけだ。それぞれのidを持っていてブログのコンテンツを含んでいる。サンプルでは記事のタイトルや著者名などのヘッダーの「headerByline」を示している。includableタグの中身はサイト作成で通常のhtmlやJavaScriptなどか使用可能なBloggerの独自タグが記載される。

defaultmarkupタグはブログでどのように動作するのか

特定のwidget内のincludableタグの初期設定を行うけれどもブログでどのように動作するのかは基本的にソースコードに追加する役目を担っている。

だから複数のウィジェットに同一のインクルージョンを記載するために使うと便利なんだ。widgetタグに何も記載せず、defaultmarkupタグだけにincludableタグを記載してテンプレートを更新すると自動的にソースコードが特定のwidget内に追加される。個別に記載する手間が省けるので、数が増えるほどに正しく助かるんだ。

ユニークなのがもう既に記載されたincludableタグの内容を上書きしない。

つまりdefaultmarkupタグはwidget内を編集する、新しくカスタマイズするためではなく、只単にマークアップを追加するためにしか使われないし、ブログで動作しないんだ。

裏返していうと特定のwidget内に同一のidのincludableタグがもう既に記載されているかぎりはdefaultmarkupタグはソースコードに何の影響も与えないから削除して構わないわけだ。

最初、何もないところに使うとウィジェットに自動的にマークアップを追加できて便利だけど、一旦、使われると上書きしないからウィジェットのマークアップには使いようもなく、最後、もはや不要になってしまう。

反対にwidget内のincludableタグの書き換えがdefaultmarkup内に影響を与えるわけでもないし、上書きしない。だから使われた後は本当に初期設定を個々に保存しているだけなんだ。特定のwidget内のincludableタグを消去した場合には再び動作して同一のidで何もないところにマークアップを追加するにせよ、通常、カスタマイズの思い出か、登り終えた梯子のように実用上は無用の長物とも過言ではない。ソースコードにdefaultmarkupタグを残していてもいなくてもブログにとって変化はない。

僕はdefaultmarkupタグの中身を調べてwidget内にもう既に同一のidのincludableタグが記載されていて重複していればdefaultmarkupタグを削除してソースコードを見易くも切り詰めながらBloggerブログを使っている。

Contempoなどの2017年の公式テーマのincludableタグはテンプレートよりもサーバーからマークアップを持って来る場合が非常に多くて個別に編集するためには改めて追加しなくてはならない。そこでdefaultmarkupタグを使うとすこぶる役立つんだ。例えばブログと注目の投稿と人気の投稿のガジェットで同一のidのincludableタグが必要な状況(公開日のフォーマットのカスタマイズのpostTimestampのインクルージョンなどは共通している)に一回のマークアップで済ませられる。defaultmarkupタグから複数のwidgetタグへ分配されるので、カスタマイズは手早い。

テンプレートを更新したら必要はないから削除してソースコードを短くするか残しておいて初期設定を確認するために使える。

コメント

些細な日常の人気の投稿

PlayストアでAndroidアプリのダウンロードが非常に遅い場合の打開策

Imgurで画像URLと埋め込みコードを取得する方法

ジャパネットたかたの丸尾詩織の商品説明に気持ちが入っていて素晴らしい理由