読者です 読者をやめる 読者になる 読者になる

攻めは飛車角銀桂守りは金銀三枚

ITとアコースティックギター、そして日常のひとこま。

カテゴリー一覧ページを作成しました

はてな

はてなブログでサイドバーにはカテゴリー一覧を簡単に出せますが、それを記事ページに出そうとすると、ひと工夫が必要なようです。

実際にやってみました。

カテゴリーページの作成方法

カテゴリーページの作成ですが、Javascriptでできるようです。

参考にさせていただいたのは以下の記事です。
m4i.hatenablog.com

このページにあるスクリプトを元にちょっと改変して作ったページが以下です。
カテゴリー一覧 - 攻めは飛車角銀桂守りは金銀三枚

このページの記事は1つ<div>タグがあるだけであとはCSSとJavascriptが書いてあるだけです。

まずはスタイルシート。これは各カテゴリーに付く数字をカスタマイズしたものです。

<style>
.defaultlist
,.defaultlist li{
	padding:0px;
	margin:0px;
}
 
.defaultlist li{
	list-style-type:none !important;
	list-style-image:none !important;
	margin: 5px 0px 5px 0px !important;
}
 
.list8{
	counter-reset:li;
	margin-left:20px !important;
}
 
.list8 li{
	position:relative;
	display: block;
	padding:8px 0px 8px 40px; 
}
 
li.list8-count:after{
	counter-increment: li;
	content: counter(li);
	position: absolute;	
	left: -16px;
	top: 2px;
	background: #ccc;
	height: 30px;
	width: 30px;
	line-height: 32px;
	border: 2px solid #aaa;
	text-align: center;
	font-weight: bold;
	border-radius: 30px;
}
 
li.list8-count:before{
	content:''; 
	display:block; 
	position:absolute; 
	box-shadow: 0 0 2px 2px rgba(255,255,255,0.2) inset;
	top:11px; 
	left:15px; 
	height:0; 
	width:0; 
	border-top: 8px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 13px solid #aaa;
}
</style>

あとはJavascriptをちょこっと。

<div class="cate"></div>
<script>
(function($) {
  var $module_body = $('.cate:last');

  $module_body.parent()
    .removeClass('hatena-module-html')
    .addClass('hatena-module-categories')
    .prepend($('<div>'));

  $.get('/categories').done(function(html) {

    $module_body.html(html.replace(/[\s\S]*<div class="entry-content">\s*|\s*<\/div>[\s\S]*/g, ''));

     $('.cate>ul').attr('class', 'defaultlist');
     $('.cate>ul').attr('class', 'list8');
     $('.list8>li').attr('class', 'list8-count');

  });
})(jQuery);
</script>

この内容を記事ページに貼り付ければ完成です。

使いどころ・・・?
それはわたしのブログのように何も考えずにカテゴリーいっぱい作ってしまって収拾がつかなくなった時にヘッダーメニューから一気に飛べるようになる・・・と。

ま、やってみただけです。

トップメニューの「カテゴリー一覧」を選ぶとジャンプすると思います。

あとは「サブカテゴリー」をはじく処理を入れたい・・・

もっといい方法があるかもしれないけど、今日はこれでよしとします。