Obsidian 日付を挿入するプラグインをリリース
はじめに
Date Inserter
という日付を簡単に挿入するためのObsidianプラグインをリリースしました。
カレンダーを表示して日付を選択するとファイル本文内のカーソル位置に選択した日付を挿入できます。
本記事ではDate Inserter
の機能紹介、設定項目、その他雑記(開発の背景、コンセプトなど)を書きます。
ちなみにObsidianのプラグインどころかOSSのリリースも初めてでした。
Date Inserterのリンク
オススメしたい人
-
Obsidian
アプリを使っている人 - 日付を入力することが多い人(
2024年03月09日
、03/09(土)
など) - カレンダーで日付を確認しながら日付を入力したい人(「来週の火曜日って何日だっけ?」など)
機能紹介
機能: 日付の挿入
まず、Date Inserter: Open Calendar
コマンドを実行すると、カレンダーを内包するモーダルを表示します。
次に矢印キーでフォーカスを移動して任意の日付でEnterまたはSpaceキーで選択します。
すると、開いているファイルのカーソル位置に選択した日付が挿入されます。
※日付のフォーマットは後述の設定: Date formatで変更できます。
この機能しかないです。超シンプルです。
各種設定
設定: Date format
挿入する日付のフォーマットを指定します。
※フォーマットに用いる文字の詳細はこちらを参照してください。
後述の設定: Languageが日本語
の場合のフォーマット例を記載します。
-
yyyy/mm/dd
=>2024/01/23
-
yyyy年m月d日 DD
=>2024年1月23日 火曜
-
mm.dd(D)
=>01.23(火)
設定: Language
カレンダーの月や曜日を表示する際の言語を指定します。
※バージョン0.1.1
では英語
と日本語
のみ対応しています。
設定: Week start
カレンダーの先頭(左端)の曜日を指定します。
設定: Highlight the today
カレンダーの今日の日付を強調して表示するかを指定します。
設定: Highlight day of week
カレンダーの各曜日を強調して表示するかを指定します。
その他雑記
開発背景
開発しようと思ったキッカケは僕はObsidianを使っていて日付を入力する機会が多くあります。
自分やメンバーのタスクのスケジュール、提出物の期日などの入力です。
特にタスクのスケジュールをメモする時は曜日を確認して日付を入力したいことが多いです。
そこでリリース済みのプラグインで良いものががないかなと探してみると意外に無くて、仕方なしに暫くの間は別ツールでカレンダーを確認して入力して凌いでいました。
が、毎回別ツールで確認するのがあまりにも億劫すぎて「無いなら作ろう」となりました。
開発コンセプト
機能がシンプルなだけに開発コンセプトもシンプルです。
- 使いやすいこと(キーボード操作で完結できること)
- 作るのが簡単なこと
この2点です。
Obsidianのプラグインの開発・リリースの工程を知らなかった分、カレンダー部分の実装はライブラリを利用して工数を削りました。
キーボードでカーソル移動ができること、シンプルな見た目、という観点でライブラリを選定しました。
また、カレンダー以外の独自で実装が必要な箇所は、当初はインラインでのコンテキストメニュー表示で構想していましたが、コンテキストメニューで自由なUIにする方法が見つからなかったので、モーダル表示に方針転換しました。
手間を削った結果、UI検討に2, 3時間、実装に1日弱でいけたので良かったです。
開発・リリースして良かったこと
さらっと箇条書きで済ませますが、1点目は達成できなきゃ意味がないので当然として特に2〜4点目が良かったと感じています。
- 日付の挿入が簡単になった
- Obsidianプラグインの開発・リリースの工程が理解できた
- 需要のあるものをリリースできたという実感できた
- 見知らぬ人にコードをレビューしてもらう経験ができた
また、Obsidianのプラグインはダウンロード総数が確認できます。
3/1にリリースされて6日目で100ダウンロードを超えたあたりで需要があるものをリリースできた実感が湧いてきました。
その後もちょっとずつ増えて3/8時点で154ダウンロードです。
誰かが使ってくれている(かもしれない)というのはとても嬉しいです。
さいごに
今後Date Inserter
は他の対応言語の追加やちょっとした設定項目の追加を検討しています。
シンプルな機能なので大幅な機能追加などは今のところ予定していません。
始めてObsidianプラグインをリリースしたことで、リリースまでの勝手が理解できたので別プラグインも開発・リリースしていく予定です。
Discussion