Share on Bluesky buttonを付ける
よくあるweb pageをSNSへ共有するボタンのBluesky版をちゃちゃっとでっち上げたので共有。まだ公式からはパーツとしては公開されておらず、仕様のみが公開されている、という状況のようでした。
いちおうボタンを押すとその時開いていたpageのtitle、URLを含む形でbskyの新規postを開く、またボタンを押したときにpage上のtextを選択しているとそのtextも含んだ形で開く、という感じの仕様です。サイズは適当に調整してください。またChrome/Firefoxではそれなりに動きそうなことは確認しましたが、どれほどuniversalに動くのかは未検証です。あとbskyのintent起動時に指定出来るtextの最大長は300文字とのことですが1、その辺りも全然気にしていないのであんまりお行儀良くないです。
<input type="image" src="https://web-cdn.bsky.app/static/favicon-32x32.png" title="Share on Bluesky" width="28" height="28" onclick="(()=>{const e=encodeURIComponent,s=document.getSelection().toString();window.open('https://bsky.app/intent/compose?text='+e((s?`"${s}" `:'')+(document.title+' '+location.href+(s?`#:~:text=${e(s)}`:''))),'_blank')})()">
-
これ、そもそもBlueskyの1 postの上限文字数が300文字だから、ということのようで、軽く試した限りintentで新規postを開くときに指定するtextには300文字を超えてかなりたくさんの文章を指定しても動作するようでした。お行儀が悪いことには変わりないですが(^^;。 ↩︎