はてなブログのテーマにそんな力は無い

f:id:c-miya:20170831083457p:plain

仕方ないと思うこともあるのですが、はてなブログでテーマに対して誤解と言うか過大評価している人をそれなりに見かけます。

テーマはcssのみ

はてなブログのテーマって、単なるcssなんですよ。普通のユーザーがデザイン設定から「デザインcss」で入力するのと同じです。

なにかのテーマを使っている場合は、その「デザインcss」の先頭に以下のようなコードが書かれていると思います。

/* <system section="theme" selected="10328749687225937733"> */
@import url("http://hatenablog.com/theme/10328749687225937733.css");
/* </system> */

これって、つまり http://hatenablog.com/theme/10328749687225937733.css にあるcssファイルを読み込んでるってことなんですけど、これがテーマの本体です。 この、たった1つのファイルが、はてなブログのテーマの正体です。

cssできることは限られている

cssって、難しいこと言えば色々あるんですけど、簡単に言えば「見た目をどうにかする」っていうものです。装飾部分です。単なるテキストを太字にしたり赤文字にしたり大きさを変えたり、そういうものです。文字を書き換えたり、どこかにリンクさせるだとか、そういったものはcssだけではできません。(そういう風に見せかける、というならあるかもですが。)

マウスカーソルを乗せた時に目次が開く、とかその程度なら「見た目の変更」の範囲内なのでできると思いますけど。

それはテーマのおかげでもないし原因でもない

はてなブログのテーマはcssだけです。つまり、テーマでできることって「見た目を変える」だけなんです。でもそれをどうやらわかってはもらえてないようです。「このテーマにはこんな機能がある」みたいに紹介されていることってありますよね?それ間違ってます。機能なんて、ないんです。それは元々はてなブログにあった機能か、テーマとは別で導入したhtmlなりなんなりの動作です。

  • このテーマはSNSボタンが最初から付いてる
    →いや付いてないから。別で貼り付けたhtmlのコードに対して予め対応するcssでデザインしてただけです。
  • このテーマはスライダーが実装されてる
    →いや付いてないから。別で貼り付けたhtmlのコードに対して予め対応するcssでデザインしてただけです。
  • このテーマはグローバルメニューが実装されてる
    →いや付いてないから。別で貼り付けたhtmlのコードに対して予め対応するcssでデザインしてただけです。
  • このテーマはハンバーガーメニューが実装されてる
    →いや付いてないから。別で貼り付けたhtmlのコードに対して予め対応するcssでデザインしてただけです。
  • このテーマにすると**が使えなくなる
    →あー…cssでその項目を非表示にしたり隠してある可能性はありますね。
  • ○○機能を追加してほしい、□□を表示したい
    →cssだけで機能追加は無理です。はてなに言ってください。
  • ZENO-TEALはデフォルトで読者登録ボタンが設置されてない
    →付けても消してもないです。元々あったのが消えたのであれば、自分で消した可能性が高いです。
  • ZENO-TEALは「次のページへ」しかない、「前のページへ」も入れたい
    →はてなブログの仕様です。はてなに言ってください。いやホント、前のページへも付けてください、はてなさん…。

まぁ、そのテーマの説明やデモサイトなんかで導入方法が書かれていて、それらをすべて自分で入れて、そこまで含めて「テーマ」だ、というのであれば、まぁ、テーマなんでしょうけど。デザイン設定から適用できるcss以外は、あとは単なるカスタマイズ例だと思うんですけどね。グローバルメニューも、スライダーも、オススメ記事も、SNSボタンも、別にどのテーマだろうが導入はできます。単にそれ用のcss(見た目の指定)がテーマに含まれているかどうか、だけです。

普通の人は知らなくてもいい

自分がはてなブログのテーマをいじったり、それ関係の記事を読むのが好きなので(自分のテーマに言及してくれた記事なんかは読みますし)こういうことがよく目に入ってしまって、いろいろ溜まってきているのでこんなこと書いてみました。

まぁ、普通にブログ書いて普通にテーマ適用させるだけの人なら、こんなこと知らなくても大丈夫です。問題ないです。ただ、自分のブログでテーマに関して何か解説的なことを書くだとか、カスタマイズ方法について書くのであれば、せめてこれくらいは知っておいてほしいです。「はてなブログのテーマは(今のところ)単なるcssでしかない」それだけは、おさえていてほしいです。