• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(ページ,リンク,実装,目次,主要);
RIGHT:[[:t/自動リンク]] [[:t/リンク]] [[:t/名前]] [[☆]]

*目次 [#r5cc5d52]
#contents
----
#lsx(new=true);

*関連 [#j0772e03]
#lsx(tag=自動リンク,new=true,except=^リンク/自動リンク(/.*)?$)

[[検索:自動リンク]]

*自動リンク周辺のタグ [#h06211df]
#tag(0,自動リンク)


*リンク/自動リンクとは [#w1fa4c30]
RIGHT:[[:t/自動リンク]]

別名AutoLink。
プレーンテキストをリンク化する。

リンクになる書式は決まっていて不用意にリンク化されないよう言葉として使わない記号を含んでいるが、自動リンクは異なる。
ただ長いページ(文字数の多いページ)につながりやすいので、自動リンクでつながっているだけで「関連性がある」とするのは間違い。

自動リンクはセレンディピティのためのリンク。
明示的リンクになる書式は不用意にリンク化されないようにするけど、自動リンクはとにかくリンク化。
存在するページ名をリンク化。書式ではなくページが存在するかどうかでリンク化。

できた自動リンクが有用っぽいなら、明示的リンクに書き換えるといい。Wikiが充実することになる。

*実装 [#of9f3b84]
明示的リンクとは異なり、利用者の知らないうちにリンク化するため、ページ名の変更に追従すると利用者の思惑を外れることがある。追従するかどうかは場合による。

**自動リンクはリンクか埋め込み(include) [#xb4ca356]
明示的なリンク方法はリンクと埋め込みの2種類がある。
自動リンクがどちらになるかはリンク先次第。
どちらのリンク先も明示可能。指定すれば指定した通りになる。
† [[明示的リンク]]

これでWikiNotationのカスタマイズをWiki上で可能に。
WikiNotation1つを1ページにして、それを埋め込み側ページにする。
RIGHT:[[:t/構築]] [[:t/!]]

埋め込み側であることを指定するには特定ディレクトリ以下に置くことなどで。
**自動リンクの先にあるもの [#mfbfad60]
区切り文字で区切った単語ごとに最長一致。
----------
リンク先は文字列のどの範囲をリンク化するかにも関わるので、
自動リンクでのリンク先ページは…
+(ディレクトリ名を含む)フルパス名
+(ディレクトリ名を1つ以上含み、後方一致で適合する)ディレクトリ名と、ページ名
ディレクトリ名やページ名の途中からという意味ではない。適合の単位は区切り文字で分割した部分文字列。
+ページ名のみ、ディレクトリ名のみ
後方優先。ページ名→ディレクトリ名→さらに上のディレクトリ名。

…の順に優先。
つまり、後方からより長い部分に一致するページ、かつリンク文字列を全て含むページ。
ディレクトリ区切りはページ名に使えない文字を使うので、「ページ名だけを書いたのにディレクトリにリンクされる」ようなことはない。

適合するページが複数あるときは…
+同じディレクトリのページ
+近いページ
最も少ないリンク数でたどり着けるページ。
(ページ名だけでは判断できないし動的になってしまう)

…の順に判定。

----------

ページ名だけで深い階層にあるページにリンクするので、自動リンク→ページ/リンク/自動リンクのようなリダイレクトページが要らない。バックリンクなどの自動リンクを統一できる。
**ディレクトリ名無しでもリンク [#b53319b2]
/区切り以降の名前だけを書いても自動リンク。リンク先はフルパスのページ名。
ただし、優先順位がある。
+フルパスで書かれているページ名
+相対パス
親ディレクトリの指定方法が無いので、同じ階層と下位階層しか指定できない。
+曖昧リンク
候補が複数になるもの。
+検索リンク
候補が全くないとき。全文検索するリンク。

NaneyOrgWiki: WiKicker/HierarchicalWikiPage
[[http://www.naney.org/wiki/WiKicker/HierarchicalWikiPage.html>http://www.naney.org/wiki/WiKicker/HierarchicalWikiPage.html]]
…のように、途中が抜けているパスを使えるのも良い。これは曖昧リンクの1つ。ページ名だけの場合も曖昧リンク。

存在しないページ名として使えるのは候補が1つに決まる書き方のみ。
ページ/作成リンク(DanglingLink)のつもりで書かれた曖昧リンクはフルパスか相対パスとして解釈される。

----------

後で正確な名前のページを作ったとしても、機能が無くならないようにしたい。
近いページをすぐに探せるようにしたい。


RIGHT:[[:t/曖昧]] [[:t/名前]]
**ページ自身にはリンクしない [#i3a9f4df]
現在のページへのリンクはナビゲーションの中にあるので不要。
こうしないと包含関係にあるページ名の短いほうがリンクされなくなってしまう。

包含関係にあるページ名は長いほう優先。

現在のページとは距離ゼロのもっとも近いページのこと。

曖昧さ回避ページと競合する?
**2つのプラグインで実装 [#i3b8f916]
-[[]]を付けるプラグイン
-[[]]をリンク化するプラグイン

…で。


**ディレクトリ構造ではなくタグのようなもので [#heb66464]
/から始まるのをフルパスとして、それ以外を相対パスにする方法はあるが、これは使いにくい。

→ディレクトリ廃止、全てタグのようなものとして、新規作成リンクはそれらを全て引き継ぐ。(タグというオブジェクトはすでにあるので「タグのようなもの」)
とりあえずそうして、(移動ではなく)タグの付け外しを後からでも可能に。

引き継ぐのはタグのようなものだけなので、末尾の1区間(ページ名)は引き継がない。同じ階層へのリンクとみなすということ。

DanglingLinkは曖昧さ回避ページへリンク。
そのページに新規作成リンクがある。複数あってもいい。
こういう対話UIはwikiでは少ない?