宣伝: 『「シミュレーション仏教」の試み』(JRF 著)。Amazon Kindle で、または、少し高いですが、DRM フリー EPUB を BOOTH で、販売中!
技術系電子本。Python による仏教社会シミュレーション( https://github.com/JRF-2018/simbd )の哲学的解説です。

« HLPVIEW: プチコンmkII用の簡易アドヴェンチャーゲーム用ルーチン | トップページ | hide_img.js:画像のクラス指定に順って閲覧を要クリック化する »

2014年2月 8日 (土)

gengou.js:日付を後付けで元号表示にする

ブログ記事の上の日付とかを西暦から元号に変えるための JavaScript。最初の紹介はいちおう [cocolog:78797141] になるが、ほぼ説明してない。このサイトで使ってるので、どういう感じになるかは PC でこのサイトを見てればわかるはず。使い方は、次をページ(ブログテンプレートとか)で JavaScript をロードしてる部分に足すだけ。

<script type="text/javascript" src="http://jrf.cocolog-nifty.com/archive/lib/gengou.js"></script>
<script type="text/javascript">
<!--
add_event_listener_rewrite_gengou("//div[@class='content']/h2");
add_event_listener_rewrite_gengou("//div[@class='sticky-entry']/h2");
-->
</script>


どの日付を換えるかは、上の add_event_listener_rewrite_gengou の引数の XPath で指定してるので、そこを変えればほぼどんなサイトでも使えるはず。

もちろん、gengou.js はダウンロードして自分のサイトに置いて使ったほうがいい。そのときは、内部で古いブラウザ用にここから取ってきた XPath のライブラリを使ってるので、それもいっしょに置いて、ソースの GENGOU_XPATH_JS で指定すること。(どうせならと、XPath 2.0とかを選ぶ人もいるかもしれないけど。)

ただ、このスクリプト、元号は直近の記事分は変わらないようになってて、「その日以降元号にする」という部分は、ソース直書きになる。そこはソース中の↓の "2014-02-12" を最新の日付に更新しさえすればいい。私は(生きてれば)だいたい3ヶ月ごとに更新していくはず。三つ組の最後の部分は終了日で、ネット時代になってからずっと平成なので null のまま、ソースには「ももくり三年」にちなんだ例が載ってて、"平成%(数)G年%(和)m%(数)d日" と指定して「平成二十六年如月十一日」と漢数字化するような例も載ってる。

var Gengou = [
  [null, "2019-04-30", null], 
  ["平成%(半)G年(%Y年) %_m月%_d日", "1989-01-08", null]
];


一番上でリンクしたひとことでも書いたんだけど、私が死んだあと誰かがここを引き継ぐと、デフォルトでは元号の表示が切れるわけで、そこは少し失礼にあたる。ずっと同じ元号のほうが失礼が薄いという考え方もあるのは知ってるが、私の後継者が万一現れたとき、よくわからないまま、この先のすごい高齢化社会において「新しく若い元号」を認めないような形になるのをむしろ避けたかった。

そういうことだから、このスクリプトを自分のとこにおけないと、私の更新が止まれば元号表示が止まっちゃう。こういうスクリプトの提供は政府がやってくれたら便利なんだけどね…。政府だと責任とか小回りの点で難しかったら、神社の団体とか、特定のデカい神社とかがやってくれたらありがたいのに。(いちおう、最新の JavaScript には Intl.DateTimeFormat とかいう機能があるらしいけど…。)

「素人」が自分のサイトで使うために作っただけなので、コード品質は「良い」とは言えないと思う。ただ、その程度なのでパブリックドメインが著者たる私の意志。商用だろうが改造しようが、お好きに使っていただいても私は文句言いません。
更新: 2014-02-08,2014-02-11,2019-02-21
初公開: 2014年02月08日 00:37:43
最新版: 2019年02月21日 00:26:38

2014-02-08 00:37:41 (JST) in JRF 作成ソフトウェア JavaScript | | コメント (3) | トラックバック (0)

批評や挨拶のためのネットコミュニティ

  • はてなブックマーク(って何?) このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク
  • Twitter (って何?)

トラックバック


トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)はまだありません。
» JRF のソフトウェア Tips:gengou.js:日付を後付けで元号表示にする (この記事)

コメント

更新:記事を書いたあと確認すると、IE でなぜか元号表示になってない!前はうまく行ってたのに…。

調べると、xpath のモジュールを「インクルード」するときに、document.body ができてなかったため、ちょっとダーティだが、そのときは HEAD の部分で include するようにした。(しかも、IE6 だと document.head じゃダメで、document.getElementsByTagName('head')[0] にしないとダメ。Thanks→《javascript - document.head.appendChild or document.createElement not working in IE - Stack Overflow》。)

いろいろやってて、Time-Stamp は名前と合ってないけど、前の分は gengou-20140129.js に、今回の分は gengou-20140208.js にアーカイブしておいた。

投稿: JRF | 2014-02-08 02:12:12 (JST)

更新:gengou-20140211.js。バージョン 0.03。

POSIX や GNU の strftime とか date コマンドとかで使えるフォーマットで書くように改めた。もちろん全部が使えるわけではなくサブセット…下位互換にしたということ。ただし、和暦年数指定の "%G" だけは、それらと違う意味になっている。

内部的にはかなり大きな変更で、またまた IE6 のオブジェクトのプロパティリストがらみのシンタックスエラーに悩んでいた。一番最後のカンマの問題ではなく、最後、「ケツカンマ」を避けるために { null: null } みたいにしたところ、最初の null がプロパティとして指定してはいけないたぐいのものらしくエラーになっていた。

投稿: JRF | 2014-02-11 23:25:42 (JST)

更新: gengou-20190221.js。バージョン 0.04。

「元年」に対応した。半角数字を普段使うが元年だけ漢字にしたいときは、上のように (半) を使う。

投稿: JRF | 2019-02-21 00:29:48 (JST)

コメントを書く



(メールアドレス形式)


※匿名投稿を許可しています。ゆるめのコメント管理のポリシーを持っています。この記事にまったく関係のないコメントはこのリンク先で受け付けています。
※暗号化パスワードを設定すれば、後に「削除」、すなわち JavaScript で非表示に設定できます。暗号解読者を気にしないならメールアドレスでもかまいません。この設定は平文のメールで管理者に届きます。
※コメントを書くために漢字[かんじ]でルビが、[google: キーワード] で検索指定が使えます。


ランダムことわざ: 七転び八起き。