必要な場合にUIを使う †
UIはパラメーター不足時に生成 †
UIはページ/要素に与えたパラメーターが足りない時に作られる。
なら、ボタンを置くには?
→パラメーターを何も与えない。
パラメーターを受け付けない要素は?
→必ずUI作成になる?
実行するには何かしらのパラメーターを付けるようデザインすればいい。
ボタンを押すとそのパラメーター付きのリクエストになる。
goとかdoとかexecというような値のないパラメーターを。
パラメーターを全く受けない要素ではボタン作成は不可能になる。ページを閲覧した時点で実行されるものになる。
実装は要素側で。
特にルールを作るわけでなく、個々の要素をそういう風に作るというだけ。
投稿も機能→パラメーター不足時にフォーム生成 †
投稿時にパラメーターが揃っていれば投稿→クライアントには投稿後のレスポンスを返す。
これとClick.toなどを組み合わせると、デスクトップアプリからコピペ+クリックで特定Wikiに投稿可能に。
Click.toの設定を変えるだけで、投稿完了まで進むかフォームにコピペ内容がある状態までかを変えられる。
投稿時には「投稿ボタンを押したときのパラメーター」があるかどうかで投稿完了まで進むか決定。
パラメーター不足時はリクエストから受け付ける †
フォームを作るのは却下。ネスト時にフォームを表示できない。
パラメーターが無いときはURLクエリーやPOSTの本文などから入力。あれば入力無し。
パラメーター名を決めておく必要がある。リクエストに埋め込める名前で。
リクエストからパラメーターを取得するのはページ/要素次第。要素からでもリクエストを参照できるので自身が解釈できるパラメーターを入手。
フォームを設置するなら別途用意。
せめてパラメーター名をフォームと共有する仕組みが欲しい。パラメーター名を間違えると機能しないので。
ネスト解決できればフォームを作るのも可能。分かりやすい。
複数のフォームを1つに統合できないと。<form>と送信ボタンを統一しておいてフィールドを移し替え。不可能ではない。
フォームのネストが解決できればフォームとリクエストの両方から入力したい。
足りないのではなく間違っている場合 †
usage出力 †
どうにも解釈/訂正(与えた者の意図を尊重した訂正)のできない入力をされたらそれなりにおかしい出力になるように。
例えばusageを出力する。日本語を使わないほうがいいかも知れない。ページ/要素側でローカライズするのは手間がかかるし。