内部名補完ルールを変更することで実現。
外部名補完もするか †
PageDictionaryでプレビューモード・タイムマシンモードの外部名補完をするか。
補完対象は(利用者に依存する)見解名と版番号。
他にもあり得る?
4つの外部名(Space, Entry, View, Revision)以外にあるか?
プレビューでは(公開中の)現行版よりも新しい版を現行版とする。
編集/承認も現行版よりも新しい版を扱う機能。
タイムマシンでは現行版よりも古い版を現行版とする。
現行版とは同じ外部名(ページ名)を持つ版のうちの代表。
† :i/いろいろな代表
権限判定は必要 †
プライベートな下書きの場合、他人には見せられない。プレビューでも権限判定は必要。
複数のページをプレビューモードに取り入れたい †
→ :Done/プレビューモードのまま仮公開したい
ページごとに任意の版を現行版にして、セッションを越えて(将来の)他人と共有できるようにするには??
仮公開だけの版(一度も現行版になれなかった版)もでき得る。
プレビュー版の生存期間次第。1人で見るだけならセッションと同じ期間でいいし、数人で共有できるなら、永続化しなければならない。
さまざまなキャッシュをプレビューごとに分けなければならない。
プレビューを永続化するなら、ページ以外の自動生成されるデータのありかを別途用意しなければならない。
その場所と現行版を与えてくれるAPIがあれば、プレビューモードに対応したプラグインを作れそう。
複数ページをプレビューするには †
公開予定のページなら、タイムマシンモードで未来時刻を見ればいい。
まだ存在しないページなら、プレビューモード内でページを作成したり、プレビューモード内で未公開の版を現行版にしたりするのがいい。