• 作成:

英語に弱すぎたのでgoodbye-rfc-2822-date-timeという英語の日時を日本語に変換するブラウザ拡張を作って1年強使っています

ソースコードやダウンロードのリンクはこちら.

誰が作ったの?

私.

いつ作ったの?

2018年12月22日には動くものが出来ていたようですね. 1年強放置していたわけです. 紹介記事を書こうと思っていたのですが先延ばし癖でずっと放置してしまいました.

これは何?

Dec 22, 2018のような RFC 2822 - Internet Message Format 基準の日時表記を2018年12月22日 土曜日のような母国語の表記に変換することを目的とした拡張機能です.

こんな感じ

今は主にGitHubとStack Overflow系列のサイトに対応しています. やる気が出たら拡張していく方針です.

何故作ったの?

私はプログラマなので, ライブラリなどのよく分からない挙動に遭遇したときはGoogle検索からGitHubやStack Overflowを閲覧します.

そこで問題になるのは情報の鮮度で, 古すぎる情報は特にバージョン違いなどに注意する必要があります.

同じ2019年でも2月なのか11月なのかでは情報の鮮度に雲泥の差があります.

またGitHubのissueのコメントで何月返信に期間がかかったのかも重要な情報です.

しかし私は英語の月名を覚えられませんでした.

Octoberと見ても

英語のアルファベットのキャラクター | かわいいフリー素材集 いらすとや

タコ? という感情しか浮かばなく覚えられる気が全くしません.

覚えられないので諦めて機械に変換してもらうことにしました.

何を使って作ったの?

機構は簡単なスクリプトで問題になるのはDOM操作ハックであることが予想されたので, TypeScript + Parcelの簡単な技術スタックで作成しました.

やっていることはサイトにJavaScriptを埋め込んでいるだけでUser Scriptでも出来ることです.

実際の日時変換はMoment.jsに任せています.

mozilla/web-ext: A command line tool to help build, run, and test web extensions を使うとマニフェストファイルなどのlintや簡単な警告(eval使ってるけど良いのかの確認)が得られて, そのままFirefoxとChrome両方に公開出来るバンドルzipファイルが作成できるから楽になります.

web-ext run --firefox-profile goodbye-rfc-2822-date-timeのようにプロファイルを指定して起動すれば, その拡張機能専用のホットリロード開発モードで起動できて, 一々データがリセットされないので言語設定などをそのままに出来て便利です. まあ私がFirefox向けを前提として作ってるだけでもっと便利な方法があるのかもしれませんが…

Googleへの不満

せっかく作ったChromeにそのまま移植可能なFirefox拡張機能なので, Chrome(Chromium)向けにも公開しているのですが, 公開するのに500円取られましたね.

自分では全く使わないのに公開する必要があるのか後で考え直すことになりました.

また審査期間がそれなりにあるのでマルウェアが動かないか動作確認しているのかと思ったのですが, そんなことはないようです.

何故わかるかと言うと, 移植当初はFirefoxの拡張機能で使えたSVGアイコンがそのまま使えると思ってそれを指定していたのですが, Chromeでは使えないのでインストール直後にエラーになるからです. 直後にエラーになるものを放置するのはまともに審査していると言えないと思えます.

Safari向けには公開しません

Safari Extensionsが廃止されてAPIが大きく異なる ようになるとかは割とどうでも良い問題で, こういう問題で公開しません.

年間99ドルも払って特に収益可能でもない自分では使わない拡張機能を作るほどマゾではないです.

Edge向けにも公開予定はないはずだったのですが

Edge向けに公開するか考えていたのですが, どうも招待制で将来的にはChromeのものを使えるらしいのでやめました. 「Edgeで既存のChrome拡張機能をサポートする意向」とMicrosoftの担当者がRedditで - ITmedia NEWS

今は EdgeでChromeの拡張機能をインストールする方法【Microsoft Edgeの使い方】 - WPTeq のようにChromeのものを使えば使えるようですね.

UserScriptとして公開したかった

わざわざブラウザ拡張にしなくてもUserScriptの形式にして Greasy Fork – 便利で安全なユーザースクリプトを で公開すればクロスブラウザ即対応じゃんと思ったのですが, @requireで外部スクリプトを指定しないといけない方法と, TypeScriptで型チェックしたいという欲望がミスマッチすぎるので諦めました.

ここ動かないんだけど?

是非ご連絡をください. 連絡も貢献で私は貢献を待っています.

利用者の声