はてなブログの自作テーマのメニューで不具合が発生

公開:2016-02-27 06:20
更新:2020-02-15 04:37
カテゴリ:はてなブログのカスタマイズ,javascript

まあこれは自業自得なのだが。

最近はてなブログの内部実装が変わったらしく、私のブログのナビゲーションバーのアーカイブメニューをクリックしても年・月別のアーカイブメニューが表示されなくなった。 そもそもこのテーマははてなブログ臭さを消去するためBootstrapベースで作った。内部実装を解析して、Jqueryを使ってナビゲーションバーに無理やりサイドバーの内容を表示しているということもしている。

https://blog.sfpgmr.net/archive/category/%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA

でその際利用していたのが、Hatena.Dialy.URLGenerator.user_blog_url()メソッドだ。このメソッドで引数に/archive_moduleを指定すると年・月別エントリのフラグメントへのURLを取得できる。そのURLからフラグメントを取得して年・月別メニューを生成していたのだ。このメソッドがHatena.Dialyオブジェクトからなくなってしまったので表示できなくなってしまったのだ。

ソースコードを見て分かったのだが、最近内部的な実装がReactベースに変わったようである。いや、部分的に変えているのかも。その際にURLGeneratorが隠蔽されてしまったようだ。とりあえずはエラーとならないようにした。 私のカスタマイズ方法ははてな側が想定しているカスタマイズ許容範囲を超えていると思うので、表示されなくなってもしょうがないのであるが何か代替策がないか考えてみる。