on outline processing, writing, and human activities for nature
日々かきながら考える場としてつかっている org mode ファイルのアウトラインの一部、narrowing (focus, zoom in) している範囲の文字列だけを Mastodon とBluesky へマルチポストする関数をつくったときのメモ。
大ざっぱな流れだけをかいています。コードはでてきません。
*
Narrowing している範囲の文字列を Mastodon へポストする関数は、このあいだつくった。
この関数 (masto-post-narrowedregion
という名前にした) では、まず指定範囲の文字列を Emacs の kill-ring とよばれる場所に一時保存する。それから mastodon.el という Emacs 用 Mastodon client (Emacs で Mastodon をつかうアプリのようなもの) を呼び出し、ポスト用 buffer を開き、そこへ kill-ring から文字列データを yank (copy) する。最後にその文字列を Mastodon へポストするよう mastodon.el にお願いする。
*
さて問題の Bluesky へポストする関数。
Bluesky へはテキストファイル (ここでは post.txt という名前にしている) からであればポストできる関数をつくってある。bsky という CLI (command line interface) との合わせ技。まずは、この関数に手を加えるところからはじめよう。
で、おさらい。この関数 (bsky-post-afile
という名前にした) では、Shell (zsh) を呼びだし、bsky CLI へポストしてくださいというコマンドを送る。このとき、ポストしたい文字列データは post.txt から送られる。
ということは、この post.txt へ Emacs の kill-ring に一時保存している文字列データを yank し保存すれば、あとは上の bsky-post-afile
と同じ手順でポストできる。ポストしたあと、次回に影響しないよう post.txt のデータを削除して終了。
*
仕上げ。Mastodon へポストするコードと Bluesky へポストするコードをひとつにする。名前は masto-bsky-post-narrwedregion
にしよう。
これで org mode でかいている文章の一部を Mastodon と Bluesky へマルチポストする関数の最初のコードができた。とりあえず動く。このコードを出発点にして、しばらくチューニングをつづける。