nakaoka3の技術ブログ

2023年中に52本なにか書きます

週末趣味プログラミングでObsidianプラグイン開発

思い立ってObsidainのプラグインを作り出す

土曜日の午前に歯医者から帰ってきて、何がきっかけだったか思い出せないけど、Obsidianでクイズが書けるプラグインを作りたくなった。

Obsidianに残っていたメモ

ObsidianはElectronベースのアプリケーションなので、Webアプリを開発するようにJavaScriptプラグインを開発することができる。Obsidianのテンプレートリポジトリから自分のリポジトリを作り、ちょろっと変更すると考えていたものができた。思ったよりも簡単だ。

Obsidianプラグインで作ったクイズ用のUI

簡単なJavaScript(TypeScript)で、普段使っているツールが拡張できるのは面白い。

Svelte を使う

JSで直接DOMを操作してクイズのUIを作ることはできたけど、ReactなどのUIフレームワークを使ってみようかなと思った。

Obsidianのドキュメントを見ると、ReactとSvelteの使い方が書かれている。Reactは仕事でも触っているが、どうせならSvelteを触ってみよう。Svelteもなかなかいいらしい。

Svelteで作り直すと、もう少し複雑な機能、複雑なUIも作っていい気がしてきた。

選択肢のあるクイズに拡張する

世の中には選択問題というものがある。旧センター試験や運転免許の試験も選択問題だった。ついでなので選択問題を作ってみよう。そんなに難しくはないはずだ。

Obsidianで選択肢問題

Svelteを使っているおかげか、すんなりと作ることができた。

何をつくるか自分で考えられるのが楽しい

正直やっていることは大したことはない。コードベースは小さいし、Web APIを叩いたり、データを永続化したりもしてない。それでも考えることが色々とあって楽しい。

クイズというものを、どうプログラムのなかで表現しようかと考えるのが楽しい。機能は増やせるけど、あまり機能を増やしても使い方が分かりにくくなるかも知れないとか、色々と考える事がある。仕事みたいな感じだが、趣味なので自分で全部決められるのがいい。ソフトウェア開発のプロセスの中で、ここが自分の好きなところなんだなというのに気がつく。

既存のコミュニティプラグインに似たものがなければ、もう少し品質や機能を頑張ってコミュニティプラグインとして公開できないか試してみようかと思う。コミュニティプラグインの公開の仕方とかわからんけど、調べたらなんとかなるだろう。

開発したプラグインリポジトリ

github.com