一般的にはよそのWikiに同名ページがあればリンクする機能。
相手のシステムによってどうなるか異なる。
あっち側もXの場合、SisterWikiになる。あっちとこっちがまるでひとつのサイトかのように見える。
通知や自動リンクやフォーク機能を提供。
→ リンクではなく同名ページを自動的に作るのがいい。あとで書き換えられる。リンクするにしても、同名ページにリンク記法をひとつ置いたページ(:i/リンクひとつ書けばリダイレクト)を、自動的に作ればいい。
仕様 †
よそのサイトにあるページ名に自動リンク。そのために同じ名前のページを作る。そのリンク先はこっちのWiki。閲覧時に表示されるのはこっちのWikiのスタイル+あっちのページ内容(+あっちのページへのリンク)。存在しないページをそれと気付かせずに見せる。編集時にはフォークして派生版を作ることになる。
可能なら派生時にあっちに通知。
全文検索するためにもリンクだけでなくページ/内容もインポートしたい。ただ、それを公開せず、リンクだけのように見せる。
設計 †
実装はSisterWikiページというページ/型。SisterWikiにあるページを自動的/定期的にインポート。ページの実装がSisterWikiページになる。
SisterWikiページを編集するとフォークになるのは通常の編集と同じ。それを派生元の編集者に通知するにはどうするか。
→ Wiki間の接点はインポート時。次回インポート時にあっち側にSisterWikiページの複製版(第2のSisterWikiページ)を作ってもらう。こっち側にあっち側の編集者は分からないし、あっち側の情報を更新することも出来ないので、SisterWikiのためのページ/型を拡張点にする。
自動リンク対象になるので、WikiのいずれのページからでもSisterWiki(からインポートしたページ)へリンク可能に。
インポートしたページからはインポート元(SisterWikiにあるオリジナルページ)へリンク。
SisterWiki(インポート元)はWikiの設定にある情報。
登録できるのは同一Wikiにあるスペースや、よそのWikiにあるスペース。SisterWikiと呼びつつスペースが対象になる。
インポートは定期的に。自動で。
Wiki以外からでもできそうだけど、リンクできそうな名前は付けられてないだろうからWiki限定で。
主従関係があって、一方的な同期。従側は読み取り専用。編集しようとすると主側のWiki/スペースに飛ぶことになる。
インポートがよそのサイトの情報をコピペする程度の手間でできて、同じ手間で削除できれば実用的。
相手が異なるWikiシステムの場合 †
SisterWikiにならない。こちらからリンクするだけ。それと、こちらのサイト内で自動リンクを可能にする。
通知(こっち側からあっち側への情報提供)は不可能。フォークは通知と抱き合わせにするのでこれも不可能。
フォークが不可能ならSisterWikiページは不要。ページ名だけを保持して、あっち側のWikiへ飛ぶ自動リンクだけを作る。
ページを作らずに自動リンクするAutoAliasを自動的に作るだけ。
ページを作るならnoindex, followにして、CanonicalURLも設定。
相手が非Wikiの場合 †
SisterWikiにならない。自動リンクだけ。
ページ名だけを保持。複製(SisterWikiページ)は作らず、自動リンクがあっち側のオリジナルページへ飛ぶものになる。
相手がWikiでも非Wikiとして登録できる。
ページタイトルにリンク。そのためには相手サイト別に置換ルールを決めて、ページタイトルの一部を置き換えてからAutoAliasに加える。
AutoAliasでなくページを作るならnoindex, followにして、CanonicalURLも設定。
使い道 †
- 例えばヘルプ。
同じ内容で提供元を更新すれば提供先も更新される。見た目は提供先のスタイルで表示される。 - 用語集にも。
- Wikiのまとめにも。
→ :i/複数のWikiページをSisterWikiと見解でまとめ - スペースを集めるのにも。
SisterWiki用に複数スペースを作って、それぞれを別々のスペースと関連付ける。ひとつのドメインにスペースを集められる。
SisterWikiは単方向 †
Wikiの題材や方向性が混ざってしまうので、双方向にはしない。一方的にインポートするだけ。
双方向にするにはフォローバックが必要。その代わり、フォローに承認は要らない。
botがページ/内容ごとインポート †
SisterWikiを「ページのインポート」にして、単純化したい。
botが他サイトを参照して、自サイトにページを作る。botの挙動以外は既存の仕組みで実現できる。