提案 #1352
未完了詳細な投稿内容の編集ができる、投稿タブを表示するプラグイン
説明
解決したい問題¶
現在のPostboxは、Twitterが短いテキストを投稿するサービスだった頃に設計されているため、テキスト入力エリアしかない。
Mastodonなどの別のWorldではこの前提は成り立たず、MastodonのWebでの投稿は以下のようなUIになっている。
また、Twitterも、現在は画像添付ができるなど、単純なテキスト投稿サイトではなくなっているどころか、そうだった頃のことを誰も覚えていないと思われるため、今の仕様は時代に即していない。
方法¶
前述の事情はあるにせよ、現在のPostboxの仕様は、疾く投稿できるうえ、ほとんど場合ニーズを満たしているので、廃止しない。
全く別の投稿作成インターフェイスを新しく作り、ユーザが都度使いたい方を使うという方針で一旦考える。
現在のQuickStepのように、Windowロールのコマンドとして投稿作成を呼び出せるようにする。
これを呼び出すと投稿タブを作成し、指定された方法で指定された入力項目を入力できるウィジェットを並べる。
投稿するWorldは、投稿タブを開いた時のCurrent Worldとする。開いた後にCurrent Worldを変更しても反映しない。Worldによって求められる入力項目は異なるし、同じWorldでも、アカウントによって入力できる項目が異なるかもしれない(権限の違いなど)。
入力項目の指定はプラグインDSLで行う。例えば以下のような感じを想定している。
compose(:mastodon) do
multitext "CW警告文", :spoiler_text
postbox
select "公開範囲", :visibility do
option :public, "公開"
option :unlisted, "未収載"
option :private, "非公開"
option :direct, "ダイレクト"
end
end
FormDSLに加えて、Postboxと同等の入力インターフェイスをもつテキスト領域を表示する postbox
のようなメソッドを用意する。
- ユーザがPostboxで入力中に、やっぱりファイルも添付したいと思った時に、本文を引き継いて投稿タブを開ける可能性がある
- Postboxの文字数カウントがこちらでも利用できる
- postboxロールのmikutterコマンドを使える可能性がある
Formの値はcompose spellにそのまま渡されるようにしておく。引数の解釈はcompose spellのほうでよしなにできるはずだが、この投稿タブDSLとcompose spellとWorldはそれぞれ別のプラグインで提供できるため、Spellに渡す前に値を変換できるレイヤーがあっても良いかも。
リプライも同時に実装できそう。
ファイル
関連するチケット