Plume開発覚え書き
IDとかURIとか整理した方がいい
ブログ
タイトル:ユーザー入力。そのままDB
スラッグ:表示用URIに使われる(Rocketのルーティングて使われる)。タイトルを元に作る。一度作ったらactor_idとしてDBに入って以後それを使う。今の実装はキャメルケースにしたあとアルファヌメリクのみにフィルタリング。将来は任意の文字列にしたい。そうしたらactor_idとして使う時はエスケープし、スラッグ(表示用URI及びDBからの探索)として使う時はそのまま使う(表示用URIのそのままというのは、uri!マクロに任せるということ)。タイトルからの生成アルゴリズムを変えると、(過去の分は不変値としてDBに入ってるので)デッドリンクを生むのでおいそれと変えられない。
ap_url:オリジンとスラッグで作られる。urlと言いつつIRIでよい。がスラッグが今はアルファヌメリクだから結局URIになってる。スラッグが任意の文字列になったらそのままIRIに使うことはできなくなるので生成用の関数があると良い
fqn:ローカルではactor_id、リモートのブログはactor_id@host。つまりスラッグを使う。スラッグが任意になったら以下略
ポスト
タイトル:ユーザー入力。そのまま保存
スラッグ:タイトルそのまま(過去はタイトルを加工してた)。slugとしてDBに保存。
ap_url:[オリジン、ブログのFQN、ポストのスラッグ]で生成。一度ポストが公開状態になったら以後変わらない。DBに保存。
スラッグにパーセントエンコードされた文字が含まれていたらどうなる?
空白%20文字
find by slugでヒットしなくなる?
ならない。make actor idで調整される
タイトル -> iriコンポーネント
ライブラリーある?
タイトル -> uriコンポーネント
それぞれは簡単。
iriコンポーネント -> uriコンポーネントは?
含まれているかも知れない%20とかの、%をエンコードしてはいけない
デコードしてエンコード、か