見出し画像

【FlowLauncher】SearchScrapboxの開発秘話【プラグイン】

前回の記事の『How to 情報整理(ランチャーアプリ『Flow Launcher』編)』でもご紹介したWindowsランチャーアプリの「Flow Launcher」ですが、そのプラグインを作成し、公式に承認いただきました!(2024年6月9日時点でプラグインストアには掲載されておりましたが、色々と用件が積み重なり、今日まで紹介記事は引き伸ばしてしまいました)

今回はそのプラグインである『SearchScrapbox』についてご紹介します。

※ Flow Launcher および今回紹介するプラグインの導入/動作後において、いかなる不利益・損害が生じた場合でも、当記事の作成者は責任を負いません。記事内の GitHub 上のデータや、動作時の影響範囲などをご確認後、自己責任にてご利用ください。


今回の記事は、主に4つのセクションからなっております。

『SearchScrapboxの導入/使用方法』で、当プラグインの導入/使用方法についてご紹介しています。プラグインの使用のみを目的とされている場合はこのセクションだけをご確認いただければと思います。

『SearchScrapboxの概要』で、当プラグインの開発理由、および Cosense(旧Scrapbox)の簡単な紹介をしております。

『SearchScrapboxが開発されるまで』『承認前のプラグインのテスト方法』で、プラグインの完成までのいきさつを紹介していますので、興味がある方のみご確認いただければと思います。


✅️SearchScrapboxの導入/使用方法

Flow Launcher を開き、以下のコマンドを実行すると、プラグインがインストールされます。

pm install SearchScrapbox

そして、以下のコマンドを実行すると、プロジェクト内のページが一覧表示されます。(50件まで表示可能)

ss <プロジェクト名>

下側に表示される候補を選択することで、そのページにアクセスできます。

また、以下のように、プロジェクト名のあとに空白を入れ、更に検索ワードを入力することで、プロジェクト内のページをワード検索できます。

ss <プロジェクト名> <検索ワード>

そして、検索ワードを与えた際、ページが1つも引っかからなかったとき、そのまま候補を選択することでページを作成することができます。

候補を選択するとプロジェクト内に「notExistPage」
(この例の場合)という名前のページを作成できます。



✅️SearchScrapbox の概要

今回作成したプラグイン「SearchScrapbox」について説明します。

株式会社Helpfeel が提供する「Cosense(旧Scrapbox)」というサービスでは、『プロジェクト(というデータの容器みたいなもの)』を作成し、その中に複数の『ページ』が作成できます。これはいわば情報整理ツールであり、リンクなどをはじめとした直感的な記述方法で知識を体系的にまとめることが可能です。

詳しい概要や使用方法についてはネットで探せば色々と出てきますが、以下の書籍が個人的にオススメです。

そして、今回開発した『SearchScrapbox』は、Webブラウザを開く前に、Flow Launcher からプロジェクト内のページの検索/作成を可能とするプラグインとなっています。

従来までは Cosense を使用する場合、通常であれば Webブラウザを開く動作を一度挟んでから検索やページの作成を実行する必要がありましたが、当プラグインを使用すれば検索結果を選択することで、すぐに目的のページにアクセスすることが可能です。

情報の整理をする利点の1つとして「目的の情報を引き出せる」ことが挙げられます。しかし、そのために必要なプロセスが少しでも多く、かつそれを頻繁に行なわなければいけない場合、そのコストは意外にも大きいものとなり、結果的にモチベーションの低下につながります。

今回のプラグインは、そのプロセスを削減することにより、このサービスを使用する際の少しですが無視できない手間を減らすことを目的として開発されました。

しかし、使用方法によっては逆に手間が増えてしまう(例えば、異なる長いプロジェクト名を Flow Launcher に頻繁に打ち込む必要がある、などの場合)ことも考えられますので、ケースバイケースでご利用いただければと思います。



✅️SearchScrapbox が開発されるまで

以下の Flow Launcher の公式ドキュメント
Flow Launcher - Documentation (英語)
を参照すると、プラグインを作成できるプログラミング言語はおおまかに次の3種類とされています。

  • C#(.NET というプラットフォームを使用)

  • Python

  • JavaScript/TypeScript

今回、私は何年か前に少しだけ学習していた Python を使用して作成することにしました。

さらに、ドキュメントを確認すると、どうやら GitHub のマイページを準備する必要があるとのことでしたので、とりあえず作成。

もしプラグインの作成が完了した場合、Flow Launcher の公式がプラグインを管理するための GitHub のページ
GitHub - Flow-Launcher/Flow.Launcher.PluginsManifest: Community-made plugins and submissions)にアクセスし、とあるプルリクエストを送る必要があります。

というわけで色々な情報を参考に、今回紹介する『SearchScrapbox』というプラグインがやっとのことで完成したため、GitHubのマイページに公開し、プルリクエストを送信しました。

なお、送るプルリクエストの内容ですが、
Flow.Launcher.PluginsManifest/plugins.json at plugin_api_v2 · Flow-Launcher/Flow.Launcher.PluginsManifest · GitHub
に、自分が追加を要望するプラグインに関する情報を追記する必要があります。

それから約2週間後、GitHub Action workflow というものを、承認してほしいプラグインのフォルダ内に.ymlファイルとして追加するように公式から連絡がきました。(指示を受けた際に「このプラグインのこの.ymlファイルを参考に書いてね」という情報もあったため、そこそこスムーズに作成できました)

というわけで以下を作成。
SearchScrapbox/.github/workflows/Publish Release.yml at main · AyasataInfo/SearchScrapbox · GitHub
そしてその後、Action workflow の手動トリガーを始めとした複数の指示があり、プルリクエストを開始してほぼ一ヶ月程度で作成したプラグインは承認されました。

もしこの記事を閲覧している方でプラグインを開発し、公式から承認を得ることを目指す方は、期間には多少のばらつきはあるかと思いますが、以上の経緯から、おおよそ承認まで1ヶ月程度は見ておいたほうが良いかと思います。



✅️承認前のプラグインのテスト方法

何らかのプログラミング言語でプラグインを作成するわけですが、当然動作確認をしながらプログラムを作成するのですから公式から承認される前に開発中のプラグインを Flow Launcher にローカル上で導入する必要が生じます。

その方法を簡単に紹介すると、例えばCドライブに Flow Launcher がインストールされている場合、以下のディレクトリ

C:\Users\<ユーザ名>\AppData\Roaming\FlowLauncher\Plugins

に開発中のプラグインのデータが含まれるフォルダを配置後、Flow Launcher で以下のコマンドを実行すると、上記のディレクトリに配置されている全てのプラグインがリロードされます。

reload Plugin Data

もちろん、作成中のプラグインも読み込まれますので、そうすることで検証のための動作チェックができるようになります。



✅️最後に

今回のプラグインの名前に旧名(Scrapbox)が採用された理由としては、このプラグインの開発途中で Scrapbox が Cosense へと改名されたためです。現時点ではAPI用のURLが "scrapbox" の文字列を使用したりしていることもあり、今後の状況を鑑み、タイミングを見計らいプラグイン名を変更する予定です。

また、Cosense は情報整理ツールとしては大きな可能性を持つサービスだと思いますので、もし興味を持たれた方がいらっしゃれば是非使用してみてください。詳細は省きますが利用条件によっては無料で利用可能です。

※もし記事の内容で間違い等ございましたら、お手数ですがご連絡いただければと思います。


ー宣伝ー
私は現在、iOS(iPhone、iPad)向けにアプリを開発しています。
情報整理や音声、モーションセンサなどを利用した様々なアプリを開発しておりますので、もしご興味があれば是非ご確認ください。
アプリに関するご意見もお待ちしています。
AppStoreのリンク


以上で記事は終わりです。
最後までお読みいただきありがとうございます。


- 参考 -
Cosense
https://scrapbox.io/
Flow Launcherのプラグインを作ってNotionに手軽にToDoを追加する|がっしー (note.com)
https://note.com/watagassy/n/n6fe047094f46
デスクトップ上のファイルを掃除するFlow Launcherプラグインを作った - Umi Uyuraのブログ (hatenablog.com)
https://umi-uyura.hatenablog.com/entry/2022/01/23/224204


記事をご覧いただき、ありがとうございます! 今回の内容はいかがでしたでしょうか。 感想、「こんな記事を書いてほしい!」などのご要望、ご意見など、 コメントやSNSなどにお寄せいただければと思います。