今日の一言「javascript」
しかし、昨年の同月の記事に、もっとサクッとアクセスしたいと思った。
好都合に、忍者ブログには、プラグインに「カレンダー」がある。
このカレンダーを制御している命令文(ソースコード)で、「年」マイナス「1」をすれば簡単にできるんじゃないか?
と思って、全然できなかった。
要は、忍者ブログでカスタマイズできるのは、固定化された「変数」だけなのだ。固定なのか変数なのか、何を言っているのか分からないと思うが、要するに「計算」ができないのだ。
例えば、今日が属する「年」といった情報は取得できるが、そこから「マイナス1」とかはできないのだ。
じゃあせめて、去年の「年」を表す変数がないかと思って調べた。
忍者ブログ:独自タグ一覧
お、これで行けそうじゃん! と思ったら、ダメだった。(理由は不明だが、結局、今日が属する年しか取得できなかった)
サイトURL/Date/YYYYMM/1/
の形式になっていることが分かった。
そこから閃く。
「じゃあ、javascriptで「今年」を取得して、そこから「1」引いて去年の値を取得する。それを元にして、ふつーにHTMLタグ<A>で書けばいいんじゃないか」
結果、以下の通り。
上のコードを、プラグインのフリーエリア(今回はプロフィール欄)に挿入したら、思い通りに動作した。
来月も、ちゃんと「201807」と、「201906」が表示されていれば、検証完了だ。
ちなみに、自ブログのURLを直打ちしているが、それは、それこそ忍者ブログの独自タグ「<!--$g_url-->」で取得できることが分かったので、そこら辺の微修正はして実装済み。
javascriptで、
var myURL = '<!--$g_url-->'
と変数へ一旦格納してからdocument.writeで書き出ししている。
思ったのだが、javascriptの書き出しの構文が難しい、というか煩雑。
さらにちなみに、文字列をつなげるの、「&」でもいいんじゃないか。そこらへんはPHPやVBAと同じか。だったら、タグインデックスさんも、&で表現してほしかったな。+だと読みづらいし、数式で計算されて意図せず動いたりした。
だめだった、やっぱり「+」なんだな。ちょっと扱いづらいな。
まぁともかく、「1年前」が表現できれば、あとは応用で、何年前でも、3か月前でも、ほぼコピペで作れるようになる。何事も、「0」を「1」にするまでが結構大変だったりする。
前書き
忍者ブログのプラグインを用いて、昨年の今頃の記事を出したいと思ったけど、できなかったから、javascriptで自作した件。経緯
月別のアーカイブから、過去の記事をたどることはできる。しかし、昨年の同月の記事に、もっとサクッとアクセスしたいと思った。
好都合に、忍者ブログには、プラグインに「カレンダー」がある。
このカレンダーを制御している命令文(ソースコード)で、「年」マイナス「1」をすれば簡単にできるんじゃないか?
と思って、全然できなかった。
要は、忍者ブログでカスタマイズできるのは、固定化された「変数」だけなのだ。固定なのか変数なのか、何を言っているのか分からないと思うが、要するに「計算」ができないのだ。
例えば、今日が属する「年」といった情報は取得できるが、そこから「マイナス1」とかはできないのだ。
じゃあせめて、去年の「年」を表す変数がないかと思って調べた。
忍者ブログ:独自タグ一覧
$plugin_calendar_prev_year
お、これで行けそうじゃん! と思ったら、ダメだった。(理由は不明だが、結局、今日が属する年しか取得できなかった)
対応
忍者ブログにおいて、月別のリンクは、サイトURL/Date/YYYYMM/1/
の形式になっていることが分かった。
そこから閃く。
「じゃあ、javascriptで「今年」を取得して、そこから「1」引いて去年の値を取得する。それを元にして、ふつーにHTMLタグ<A>で書けばいいんじゃないか」
結果、以下の通り。
――参考TAGインデックス様<script type="text/javascript"><!--var now = new Date();var year = now.getYear(); // 年var month = now.getMonth() + 1; // 月var lastmonth = month-1;//先月if(year < 2000) { year += 1900; }// 数値が1桁の場合、頭に0を付けて2桁で表示する指定if(month < 10) { month = "0" + month; }if(lastmonth < 10) { lastmonth = "0" + lastmonth; }// 表示開始//昨年の今頃document.write('<a href=\"http://unfixation.gjpw.net/Date/' + (year -1) + '' + month + '/1/\">昨年の今頃</a>')//先月の今頃document.write('<a href=\"http://unfixation.gjpw.net/Date/' + year + '' + lastmonth + '/1/\">先月の今頃</a>')// 表示終了// --></script>
上のコードを、プラグインのフリーエリア(今回はプロフィール欄)に挿入したら、思い通りに動作した。
来月も、ちゃんと「201807」と、「201906」が表示されていれば、検証完了だ。
ちなみに、自ブログのURLを直打ちしているが、それは、それこそ忍者ブログの独自タグ「<!--$g_url-->」で取得できることが分かったので、そこら辺の微修正はして実装済み。
javascriptで、
var myURL = '<!--$g_url-->'
と変数へ一旦格納してからdocument.writeで書き出ししている。
思ったのだが、javascriptの書き出しの構文が難しい、というか煩雑。
さらにちなみに、文字列をつなげるの、「&」でもいいんじゃないか。そこらへんはPHPやVBAと同じか。だったら、タグインデックスさんも、&で表現してほしかったな。+だと読みづらいし、数式で計算されて意図せず動いたりした。
だめだった、やっぱり「+」なんだな。ちょっと扱いづらいな。
まぁともかく、「1年前」が表現できれば、あとは応用で、何年前でも、3か月前でも、ほぼコピペで作れるようになる。何事も、「0」を「1」にするまでが結構大変だったりする。
後書き
(かっこ書きである。後書きといいつつ、かっこ書きである。このかっこ書き、いつから始めたんだっけ。――てなことを、少しは気軽に調べやすくなった気がする。ただ、特定の月にしか飛べないしページ送りなどもできない。やっぱり、ワードプレスとか、独自構築してたほうが自由度は高いんだよな。ただ、じゃあそこまで必要か、というと、別にまぁいっか……的な。でも、ふと思いついて実装できる手軽さ、アイディアを実現できる幅ってのは広いほうが楽しいと思う。――早速、新たに実装したリンク機能をもとに調べた。なるほど、3年前(の6月)では見当たらない。2年前には存在しているようだ。ほほぅ。そして、5年前は記事がほとんどない。この時期は、……あーそうか……(独り合点))PR