Scrapboxからはてなブログに投稿するスクリプトを書いてみようと思った。
さて、今日はあんまりやる気がない。どうも仕事もサボりがちであり、ネットをフラフラするサボり癖が再び再発している。
特にメンタルで何かが悪化してるという感じではなかったが、昨日は風邪の気配を感じたので葛根湯を飲んで厚い布団をかぶって寝た。どうもまたしてもおかしな寒暖差の天気が続いており、気を抜くとまたやられるはずである。
特に書きたいネタがある訳でもないのでブログをどうするかな。最近は個人的な趣味の開発ばかりをやってる感じであり、それをブログで書いても置いてきぼりな記事になりそうだなーという気もする。
まぁ、今日は僕のメモ環境の話でも書こうか。僕はかなりの重度のメモ魔であり、一日中Scrapboxに何か思いついたことであるとか、仕事でやってることなどを打刻してメモをするようにしてる。これは僕なりの仕事に集中をするためのライフハックであり、こうやって今やってる作業をメモしておきいつでもすぐ作業に戻れるようにしておかないと、集中力がなくて仕事が脱線してしまうのである。
僕がメインで使ってるメモはScrapboxである。ここんところ色々と類似のサービスがあって悩ましいところであるのだけど、サービスとしての思想であるとか色々とカスタマイズが可能であるところが気に入って使ってる。
特にScrapboxとはライバル関係であるObsidianについては、実に魅力的でそちらも気になってしまっている。Scrapboxの1番の難点はそこであると思うのだが、iOSでのScrapboxのスマホクライアントアプリというのが有力なものが存在しておらず、僕はFlutterで自分が使う用のScrapboxでライフログを記録するアプリを作成して使ってる。
僕がライフログを記録するために使ってる「ScrapDiary」についてはいつかはストアに公開しておきたいと思ってるのだが、appleのストア審査が厳しすぎて心が折れてしまった。基本的にScrapboxをスマホで使おうと思うと適切なAPIがないのでWebviewのライブラリを使うしかないのであるが、Appleの審査ではWebviewでサイトを表示するだけのアプリには基本的にはPWAを使えとリジェクトされる。
だから、アプリならではの独自の機能を追加するために四苦八苦してるのだけど、そこんところのappleの審査を通すためだけにかなりの時間とリソースを食われてるのだ。appleでアプリ開発をするためにはapple developerにサブスク登録もしないとならないし、それで年間で12000円も利用料も取られるので、無料でアプリを公開すると持ち出しである。かといって個人で課金システムや広告をつけるのもかなりの手間であるし、「めんどくせ!」となってしまった。
ここんところはまぁ、ChatGPT君と壁打ちでもしながら徐々にアプリ開発を進めていこう。やっぱ個人開発で自分のプロダクトを持ってる人というのはかっちょいーし、そういうOSSとか個人開発でバリバリやってる人には憧れがある。
ネットをフラフラしていると、Obsidianからメモをはてなブログに直接投稿できるというプラグインのニュースを見つけた。
これ、Scrapboxでも可能じゃないかなーと思った。僕はブログで書く分の下書きについてはScrapboxに1日ごとにブログ下書きのページを作って、それをコピペしてはてなブログに貼り付けて毎日投稿をしている。
そこのところのコピペ整形作業については省略可能な雑事だろう。Scrapboxで下書きを書いておき、それをUserScriptでボタン一発でページの内容を抜き出して、はてなブログのAPIに下書きとして送りつけておけば、あとは投稿日時であるとかタグ付け諸々を調整するだけで毎日更新の記事ができる。ただでさえ忙しいのだから省略可能な仕事は省略しておきたい。
僕はScrapboxの他の作業についてはTampermonkeyのUserScriptで色々とやっている。その日のページを作成したりとか、週報のテンプレートを読み込む作業などは、Scrapbox上でショートカットキー一発で作成できるようにしてる。
Tampermonkeyにて、Scrapboxで日記ページを作るためのUserScript · GitHub
Tampermonkeyにて、Scrapboxで週報を作るためのUserScript · GitHub
これの要領で、現在開いてるページのAPIを叩いてデータを取り出し、それを適当に整形してやって、はてなブログのAPIにfetchで送りつけてやればOKかな? と思われる。
まー、ごちゃごちゃ言わんで手を動かして作ってみますかね。作業効率化のためのプログラミングは費用対効果が高いであるし、まずは直近のプライベートのプロジェクトはこれを仕上げてみよう。