スナックelve 本店

バツイチ40代女の日記です

アーカイブも畳むぞい!

snack.elve.club

アーカイブをリストボックスで表示することにした・・・。

挿れる場所作るの書くの忘れてた
デザインでサイドバーにhtml追加して、その下の方に高度な設定とかあるんでそこに適当な名前をつけてください。(ここではhatena-module-custom-archive)

えーっと、最初の年と月を指定して、今の月までぐるぐる・・・えーっと。
これを詳細設定の「要素にメタデータを追加」に追記

<script>
document.addEventListener('DOMContentLoaded', (event) => {

//開始する年月
var s_y;
s_y=2010;

var s_m;
s_m=5;

var ret;
var ret = '<select><option value="">年月選択</option>';
let d = new Date();

//最初の年
if (s_y<d.getFullYear()){
for ( var m = s_m;  m < 13;  m++) {
ret = ret + '<option value="https://elve.hatenadiary.jp/archive/' + s_y + '/' + m.toString().padStart(2, '0')  + '">' + s_y + '年' + m.toString().padStart(2, '0') + '月</option>' + '\n';
}
}

//ぐるぐる
for ( var y = s_y+1;  y < d.getFullYear();  y++) {
for ( var m = 1;  m < 13;  m++) {

// 繰り返す処理を書く
ret = ret + '<option value="https://elve.hatenadiary.jp/archive/' + y + '/' + m.toString().padStart(2, '0')  + '">' + y + '年' + m.toString().padStart(2, '0') + '月</option>' + '\n';

}
}

//今年
for(var m=1; m<=d.getMonth() + 1;m++){
ret = ret + '<option value="https://elve.hatenadiary.jp/archive/' + d.getFullYear() + '/' + m.toString().padStart(2, '0')  + '">' + d.getFullYear() + '年' + m.toString().padStart(2, '0') + '月</option>' + '\n';
}

//閉じ
ret=ret+'</select>';

//出力
document.querySelector("#box2-inner > div.hatena-module.hatena-module-html.hatena-module-custom-archive > div.hatena-module-body").innerHTML  = ret;
});
</script>

・・・何かもうちょいスマートにできないもんかねぇ(^_^;)