連結

Wiki Wiki Web的一項重要特色就是:可以輕易地在文字中加入超連結 PmWiki 更提供了許多種方法來建立這樣的連結:

連結到此wiki中的其它頁面

要建立到其他頁面的連結,只要用雙括號包住頁面的名稱即可,例如[[wiki sandbox]] 以及 [[installation]],以上兩個例子可以產生 wiki sandboxinstallation這兩個連結。

以上連PmWiki將利用雙括號中的(英文)頁面名稱,而PmWiki系統將會自動將雙括號內英文單字間的空白給消除,並且將空白或是其它分隔號後面的英文單字之首字母放大。產生出來的效果如下:例如輸入[[Wiki sandbox]]或者是[[wiki sandbox]]再或者是[[WikiSandbox]]以上三種不同的表達型式,都會產生一個叫做WikiSandbox的頁面。

也就是說, PmWiki 將遵照一定的規則來命名新增的頁面,但是其名稱的呈現方式仍將依照您所輸入的內容。

(就英文而言)您也可以在連結的後面加上字尾,此字尾將成為連結的一部分,但是它並不是連結的本身。例如輸入[[wiki sandbox]]es將會產生一個連結到WikiSandbox的連結,但是它的呈現方式將會是wiki sandboxes

在雙括號中的連結內容,若是又位在兩個夾注號中間的話,例如:(文字),則裡面的文字將不會被顯示出來。以下是範例:輸入[[(wiki) sandbox]]將會連結到WikiSandbox,但是它所呈現出來的樣子是 sandbox

最後,你可以用直的分隔線,即"|",來為連結(不是指頁面)重新命名(但是頁面的名稱是不變的)。以下是範例:輸入[[WikiSandbox | a play area]],將會產生連結至WikiSandbox的連結,但是在頁面中呈現的名稱卻是a play area。您也可以使用箭號(->)來用不同的型式為連結重新命名,例如輸入[[a play area -> WikiSandbox]] 將會產生a play area這樣的連結。

某些網站是支援WikiWord型式的連結的。這表示在文章中所出現的單字只要符合WikiWord的條件(單字間沒有空白,而兩個單字的首個字母都放大),系統就會自動產生連結,並新增一個以此連結命名的新頁面。

簡短連結

在PmWiki的系統中,可是在標題中使用一些特殊的符號。但是,有時候這些特殊的符號無法在您的電腦、您所使用的網路主機,或者是其它讀者的電腦所辨識。尤其是使用UTF-8的符號更常造成一些問題。所以我們建議不要在標題中使用特殊的符號,並儘量使用ANSCII編號支援的符號。
在PmWiki系統中,任何一個頁面都可以直接顯示其被作者設定的標題:(:title <name>:),而不是顯示它在PmWiki中的檔案名稱,以下的說明將會教您如何使用這個功能:

[[PageName|+]] 將會建立一個連結往「PageName」的連結,但是將連結的名稱以「頁面的標題」來顯示。例如:輸入 [[PmWiki.BasicEditing|+]] 將連結至「基本編輯規則」 (:title 基本編輯語法:) ,但是其連結的名稱卻是 Basic PmWiki editing rules

[[PageName|#]] 將建立一個連結至reference的連結,如同此頁後面所述[1].

[[!PageName]] 將在一個群組中(又名Category)建立一個連結至 PageName 的連結,請參見Categories

[[~Author]] 建立一個連結到「作者群組」中的特定作者頁面。

~~~ markup creates a link for the current Author when it encounters three tilde characters (~) in a row (~~~).

~~~~ markup creates a link for the current author and appends the current date and time when four tilde characters (~) in a row are encountered

連結到頁面中的特定位置 -- "anchors"

想要在頁面中建立一個可供快速移動的定位點,輸入此標註:[[#name]]。此標註將建立一個"anchor",它可以在此頁面中建立一個可供快速移動的位置。然後,您就可以建立連結到此定位點的連結了。您可以輸入:

  • [[#name|link text]] 來建立頁面中的連結
  • [[PageName#name]] or [[PageName#name|link text]] 連結到其它頁面中的定位點
  • 您可以用[[PageName(#name)]]的形式來連結名稱中的定位點

舉例說明:Intermaps 將連結至下面的intermaps段落

Notes:

  • 定位點的命名,其開頭必須以字母開頭不可使用數字
  • 連至定位點的連結必須 大小寫相同
  • 定位點中不可使用空白,例如: "[[#my anchor]]"是無效的,"[[#myanchor]]"則是有效的

連結行為

要產生一個連結,作為在當前頁面中的行為(action)的話,請使用: [[{$FullName}?action=actionname|linkname]]

範例:

  • [[{$FullName}?action=edit|Edit]] 來產生「編輯」的連結
  • [[{$FullName}?action=diff|differences]] 來產生查看「版本」的連結

連結至wiki外部

連結至外部網站 (URLs)

要連結至外部的網站,只要直接輸入以'http:'開頭的網址,或者是 'ftp:'等等的開頭,例如輸入:http://google.com/[[http://google.com/]] 都可以連結至google。另外,就如同上文所述,您可以使用雙括號及垂直的分隔線來建立有連結名稱的連結,例如:[[http://google.com/ | Google]][[Google -> http://google.com]]

如果連結中含有 (括號) ,請避免使用它們,並使用 %28 來代替 "(" ;使用 %29 來代替 ")" 例如:

[[http://en.wikipedia.org/wiki/Wiki_%28disambiguation%29 | 連結至 "Wiki (disambiguation)" ]]

連結至 "Wiki (disambiguation)"

連結至內部網路(本地)檔案

您可以建立連結至內部的檔案系統,輸入以 'file:///'為開頭的連結(至少對於 Internet Explorer 來說是必要的)。所以如: file:///S:\ProjPlan.mpp[[Shared S drive->file:///S:\]] 都是有效的連結。在Windows 的檔案系統下您可以使用網路位置(例如 \\server1\rootdirectory\subdirectory)來取代對不同使用者可能會不同的磁碟機編號。但是,不是所有的瀏灠器都可以支援這樣的連結型式。

連結特徵

作為 References

連結也可以被用作References的用途。這表示,所輸入的連結將以數字來作為 reference 的呈現方式,而不是以連結名稱的形式。下面的標註範例便顯示了以排序的數字來作為 reference :

輸入: [[http://google.com |#]] 將以這樣的形式呈現: [2]

Subsequent occurrence of the reference link format on the same page will be incremented automatically as per the following example: Entering [[http://pmwiki.com |#]] produces [3], [[#intermaps |#]] produces [4], and so on for further reference links.

Intermaps

Inter Map? 的連結也是可以使用的 (請參見Inter Map?)。在大部分的情況下,可以使用Path: 的表達方式,也可以使用相對了,或是絕對的位置來表示 (例如: Path:../../somedir/foo.html or Path:/dir/something.gif)

連結至其它的wiki group?

參見Wiki Group?

連結開啟新視窗

想要在新的視窗中開改啟連結,請使用 %newwin%...%%,範例如下:

你也可使用 %target=_blank%...%% 來產生開新視窗的連結

The following link %target=_blank% http://pmichaud.com %%
will open in a new window.

The following link http://pmichaud.com will open in a new window.

Links that are not followed by robots

Prefix a link with %rel=nofollow% to advise robots and link checkers not to follow it.

連結以及 CSS Classes

PmWiki 將自動地設定一些CSS classes 給某些種類的連結。您也可以各別設定不同種類連結的CSS Classes。

Note: 此列表可能尚未完整

.selflink
目前頁面的連結,可以放在側邊欄來表示 "you are here"(當前位置)
.wikilink
連結到本wiki系統中其它頁面的連結
.urllink
連結到本wiki系統之外的連結

Notes

Note: The default behavior of "+" above can be overridden to display the spaced title, rather than simply the title by adding the following to config.php:

## [[target |+]] title links
Markup('[[|+', '<[[|',
  "/(?>\\[\\[([^|\\]]+))\\|\\s*\\+\\s*]]/e",
  "Keep(MakeLink(\$pagename, PSS('$1'),
                 PageVar(MakePageName(\$pagename,PSS('$1')), '\$Titlespaced')
                ),'L')");

我要如何建立一個可以開啟新視窗的連結?

請使用%newwin% 標註,例如:

%newwin% http://example.com/ %%

http://example.com/

我要如何建立一個可以開啟新視窗的連結,而且設定新視窗的大小等特性?

這需要使用到 Javescript,請參見Cookbook:PopupWindow

我要如何建立一個電子郵件地址的連結?

請使用 mailto: 標註,如下面所示:

* mailto:myaddress@example.com
* [[mailto:myaddress@example.com]]
* [[mailto:myaddress@example.com | email me]]
* [[mailto:myaddress@example.com?subject=Some subject | email me]]

The markup [[mailto:me@example.com?cc=someoneelse@example.com&bcc=else@example.com&subject=Pre-set Subject&body=Pre-set body | display text]] =] lets you specify more parameters like the message body and more recipients (may not work in all browsers and e-mail clients).

參見 Cookbook:DeObMail來取得防範垃圾郵件的方法。

我要如何建立一個使用其它協定的連結,例如:nntp:, ssh:, xmpp:......之類的?

請參見 Cookbook:Add Url schemes

我要如何使用 WikiWord 來建一個外部連結,而不是Wiki頁面連結?

請使用連結的標註格式,以下為兩種可用的格式:

[[http://example.com/ | WikiWord]]
[[WikiWord -> http://example.com/]]

我要如何找出所有連結到某一頁面的頁面們(即 backlinks)?

在搜尋頁面中,輸入 link=Group.Page 來尋找所有連結到 to Group.Page的頁面

使用link= 選項,它在(:pagelist:) directive例如:

(:pagelist link=SomePage list=all:)   -- 顯示所有連結至某頁的頁面
(:pagelist link={$FullName} list=all:)  -- 顯示所有連結至目前頁面的頁面

PmWiki支援哪些連結方法?

請參見PmWiki:Link schemes Link schemes supported by PmWiki

我要如何建立外部連結,並可以開啟新視窗或是加上圖示?

請參見Cookbook:External links

我要如何以圖片作為連結?

輸入:[[Page| Attach:image.jpg ]] 或是 [[ http://site | http://site/image.jpg ]] 請參見 Images#links