链接

Wiki系统的一个重要功能,就是可以方便的创建各种链接,PmWiki也是如此。

链接到其它Wiki页面

添加一个简单的链接,最简单的做法,就是直接对要连接的页面名用双书名号括起来。像这样[[wiki sandbox]],这样[[installation]]. 就可以建立wiki sandboxinstallation这两个链接了。

PmWiki使用两个方括号括住链接的方式创建链接。例如 [[Wiki Sandbox]], [[wiki sandbox]], 和 [[WikiSandbox]] 都会被默认显示为像WikiSandbox这样的一个链接。 Or in other words, PmWiki will automatically create the "link path name" using the page name in CamelCase, but the "link text" will display in the format you have entered it.

Some PmWiki sites (default not) will recognize words written in CamelCase, called a WikiWord, automatically as a link to a page of the same name.

创建文本链接

这里有很多不同的方式建立文本链接。

  1. Hide link text. Link text within (parentheses) will not be not displayed, so that [[(wiki) sandbox]] links to WikiSandbox but displays as sandbox. For addresses actually containing parentheses, use %28 and %29 http://www.example.com/linkwith%28parenthese%29.
  2. Change link text. You can specify another link text after a vertical brace, as in [[WikiSandbox | a play area]], or you can use an arrow (->) to reverse the order of the link text and the target, as in [[a play area -> WikiSandbox]]. Both links displays as a play area.
  3. Show page title instead of page name. The use of special characters in the page name is not a problem for PmWiki, but on some servers it may be better to use only plain A-Z letters for the page "name" (which is also a filename), and set the page "title" to the extended or international characters with the (:title PageTitle:) directive within the page. The page title can be shown instead of the page name with the [[PageName|+]] link markup, e.g. page BasicEditing contains the directive (:title 基本语法:) with the result that a link written as [[BasicEditing|+]] will display as 基本语法.
    Since PmWiki version 2.2.14 this works also for those technical pages that have an entry in the XLPage, without the need to add the (:title PageTitleName:) directive within that page (for more details see Localization.Localization).

On top of above ways, a suffix can be added to the end of a link, which becomes part of the link text but not of the target page name.
Note: This feature does currently not work with the [[PageName|+]] markup.

What to type

What it looks like

[[(wiki) sandbox]],\\
[[(wiki) sandbox]]es\\
[[WikiSandbox|wiki sandbox]],\\
[[WikiSandbox|wiki sandbox]]es\\
[[BasicEditing|+]]

sandbox,
sandboxes
wiki sandbox,
wiki sandboxes
基本语法

Links with tool tip

From version 2.2.14 PmWiki can show tooltip titles with the following format:

  • External link: [[http://pmwiki.org"tool tip title" | external link ]]
  • InterMap link: [[Wikipedia:Wiki"tool tip title"| InterMap link ]]
  • Linked image: [[Attach:000962.png"tool tip title" | Attach: link]]
  • Inline image: Attach:000962.png"tool tip title"

PmWiki does not support tool tip titles for internal links!

Links to nonexistent pages

Links to nonexistent pages? are displayed specially, to invite others to create the page. See Creating new pages to learn more.

Links to pages in other wiki groups

Links as written above are links between pages of the same group. To create a link to a page in another group, add the name of that other group together with a dot or slash as prefix to the page name. For example, links to Main/WikiSandbox could be written as:

What to type

What it looks like

* [[Main.WikiSandbox]]
* [[Main/WikiSandbox]]
* [[(Main.Wiki)Sandbox]]
* [[Main.WikiSandbox | link text]]
* [[Main.WikiSandbox | +]]

要链接的默认首页"default home page" 请使用:

* [[Main.]]
* [[Main/]]

学习更多关于Wiki组?

分类链接

Categories are a way to organize and find related pages. The idea is that every page that falls into a particular subject area should have a link to a shared page containing links to other pages on that subject. These shared pages are created in the special group Category, and thus these subject areas are called "categories".

Adding a page to the category Subject is simple by adding the [[!Subject]] markup somewhere on that page. This will create a link to the page Category.Subject. So [[!Subject]] is a kind of link shortcut to the page Category.Subject. See Categories? to learn more.

用户页面链接

Similar is [[~Author]] a link shortcut to the page Author in the special group Profiles. PmWiki creates automatically this type of link for the current author, when it encounters three tilde characters (~) in a row (~~~) in the page text. The current author is the name found in the "Author" field, when you create or modify a page. When four tilde characters in a row are encountered (~~~~), also the current date and time is appended.

So, when the Author field contains "Author":
~~~ markup will be replaced by: Author?
~~~~ markup will be replaced by: Author? October 10, 2010, at 04:50 PM

Link shortcuts

[[PageName|#]] creates a reference link as shown below[1].

Links to specific locations within a page -- "anchors"

To define a location within a page to which you may jump directly, use the markup [[#name]]. This creates an "anchor" that uniquely identifies that location in the page. Then to have a link jump directly to that anchor, use one of

  • [[#name|link text]] within the same page, or
  • [[PageName#name]] or [[PageName#name|link text]] for a location on another page
  • The form [[PageName(#name)]] may be useful for hiding the anchor text in a link.

For example, here's a link to the Intermaps section, below.

注释:

  • The anchor itself must begin with a letter, not a number.
  • A link to an anchor must have the same capitalization as the anchor itself.
  • Spaces are not allowed in an anchor: "[[#my anchor]]" won't work, "[[#myanchor]]" will.
  • All anchor names in a page should be different.

Links to actions

To link to a specific action for the current page use [[{$FullName}?action=actionname|linkname]].

示例:

  • [[{$FullName}?action=edit|Edit]] for the editing or
  • [[{$FullName}?action=diff|differences]] for differences.

站外链接

Links to external sites (URLs)

Links to external sites simply begin with a prefix such as 'http:', 'ftp:', etc. Thus http://google.com/ and [[http://google.com/]] both link to Google. As with the above, an author can specify the link text by using the vertical brace or arrow syntax, as in [[http://google.com/ | Google]] and [[Google -> http://google.com]].

It is possible to set a "tooltip title" of the external link by adding it in quotes after the address:

The tooltip title of the link is "Home of PmWiki"
[[http://www.pmwiki.org/"Home of PmWiki"|link]]

link

If the external link includes (parentheses), escape these using %28 for "(" and %29 for ")" :

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

link to "Wiki (disambiguation)"

The recipe Cookbook:FixURL makes it easy to encode parentheses and other special characters in link addresses.

Links to intranet (local) files

Not all browsers will follow such links (some Internet Explorer versions reportedly follow them). You can link to a file system by including the prefix 'file:///'. So file:///S:\ProjPlan.mpp and [[Shared S drive->file:///S:\]] are both valid links. On a Windows file system you may want to use network locations (eg \\server1\rootdirectory\subdirectory) rather than drive letters which may not be consistent across all users. Not all browsers will follow such links.

详见: Cookbook:DirList。

Link characteristics

Links as References

Links may also be specified as References, so the target appears as an anonymous numeric reference rather than a textual reference. The following markup is provided to produce sequential reference numbering within a PmWiki page:

Formatting the link as: [[http://google.com |#]] produces: [2] as the link.

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 links are also supported (see Inter Map). In particular, the Path: InterMap entry can be used to create links using relative or absolute paths on the current site (e.g., Path:../../somedir/foo.html or Path:/dir/something.gif).

建立在新窗口打开的链接

要让链接在新窗口中打开,请使用 %newwin%...%%,例如:

  • %newwin% http://pmichaud.com %% 将会像这样: http://pmichaud.com
  • %newwin% [[http://baidu.com/ | 百度]] %% 将会像这样: 百度
  • %newwin% [[PmWiki.PmWiki]] %% 将会像这样: PmWiki.PmWiki

你也可以通过增加 %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样式

PmWiki automatically gives classes to several types of links. Among other things, this enables you to format each type differently.

Note: This may be an incomplete list.

.selflink
A link to the current page. Useful in sidebars to show "you are here".
.wikilink
A link to another page within the wiki.
.urllink
A link to a page outside the wiki.

说明

说明: 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/

在新窗口打开的链接如何配置?

需要使用javascript详见弹出窗口

How do I place a mailing address in a page?

Use the mailto: markup, as in one of the following:

* 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).

See also Cookbook:DeObMail for information on protecting email addresses from spammers.

How can I enable links to other protocols, such as nntp:, ssh:, xmpp:, etc?

See Cookbook:Add Url schemes

How do I make a WikiWord link to an external page instead of a WikiPage?

Use link markup. There are two formats:

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

How do I find all of the pages that link to another page (i.e., backlinks)?

In the wiki search form, use link=Group.Page to find all pages linking to Group.Page.

Use the link= option of the (:pagelist:) directive, as in

(:pagelist link=SomePage list=all:)   -- show all links to SomePage
(:pagelist link={$FullName} list=all:)  -- show all links to the current page

PmWiki支持哪些类型的链接?

详见: PmWiki:Link schemes

How do I open external links in a new window or mark them with an icon?

See Cookbook:External links

如何创建一个图片链接?

使用[[Page| Attach:image.jpg ]] 或 [[ http://site | http://site/image.jpg ]]。详见:图片链接

为什么不能访问 file:// 开始的链接?

因为这是指你的本地地址,他人无法访问。

本页面最后修订于:2012年-03月-30日
Powered by PmWiki