DokuWiki

It's better when it's simple

User Tools

Site Tools


interwiki

InterWiki Links

The original idea of InterWiki was to have one large distributed Wiki over the whole Internet. Today it's more of an easy way to link from one wiki to another by having some simple link syntax to accomplish so.

In DokuWiki this is done by prefixing Wiki pagenames with a shortcut separated by a > character.

Examples:

Shortcut Example Description
[[amazon>Wikis]] Wikis Affiliation link to Amazon. (.de and .uk available too)
[[callto>0123456789]] 0123456789 Callto link to open phone app.
[[doku>interwiki]] interwiki links to the DokuWiki wiki
[[go>pie]] pie Go lucky with first hit on Google
[[google>Wiki]] Wiki links to a Google search
[[paypal>id_here]] id_here links to PayPal
[[phpfn>random]] random links to a function in the PHP manual
[[rfc>9311]] 9311 links to https://www.rfc-editor.org/rfc/rfc9311
[[skype>echo123]] echo123 Links that opens Skype, ready to call Skype Test Call (echo123)
[[tel>123-456-7890]] 123-456-7890 Open phone app to call. More general then callto.
[[this>feed.php]] feed.php links to your wiki's URL. The example links to the local XML feed. [[this>]] is a special case and the only interwiki link which cannot be configured through any config file.
[[user>username]] username Links default to :user:username, on dokuwiki.org modified to its forum user profiles.
[[man>cp]] cp links to http://man.cx/
[[wp>InterWiki]] InterWiki links to the English language Wikipedia
[[wpfr>InterWiki]] InterWiki links to the French language Wikipedia. Also available: wpde, wpes, wpjp, wppl, wpru, wpmeta.

Here's an example of how to access an arbitrary file in DokuWiki's data/media directory by clicking on an image. It's useful for videos and PDF files.

[[this>lib/exe/fetch.php?media=video.ogg|{{image.png?300}}]]

Interwiki substitution for external images is also available.

{{ phpfn>images/php.gif?96}}

Configuring InterWiki Shortcuts

InterWiki shortcuts are defined in two files:

  • Default included links are in <dokuwiki_conf>/interwiki.conf file. (more can be found in https://usemod.org/intermap.txt). Modifications of this file are overwritten on a wiki upgrade.
  • Local modifications in <dokuwiki_conf>/interwiki.local.conf file.
    This is the file to add your own interwiki links. This will prevent the links from being overwritten on an update.

Alternatively, instead of editing the *.conf files directly, you can install and use the Configuration File Manager.

The interwiki shortcut has to be in lowercase and follow the pagename rules.

The format of the interwiki config file is:

conf/interwiki.local.conf
<shortcut>   <url to wiki>

Modify existing interwiki links, by reusing the shortcut:

conf/interwiki.local.conf
wp           https://fr.wikipedia.org/wiki/{NAME}

Or disable by mentioning no link

conf/interwiki.local.conf
wpmeta
paypal   # or use a comment to explain why it is disabled

The shortcut is the one you will be able to use in the link later. In the URL you can use some placeholders to be more flexible in linking. If no placeholder is given the URL-encoded wikiname will be appended to the URL. These placeholders are available:

Placeholder Replaced by
{URL} URL-encoded wikiname (the part which is appended to the URL in interwiki.local.conf)
{NAME} wikiname without any encoding
{SCHEME} scheme part if a URL was given as wikiname
{HOST} host part if a URL was given as wikiname
{PORT} port part if a URL was given as wikiname
{PATH} path part if a URL was given as wikiname
{QUERY} query part if a URL was given as wikiname

The last 5 parameters are useful when creating interwikilinks to cachesystems.

For configuration changes to take effect on the pages, the cache must be purged.

Examples

For example cached links with the old, not longer working, Coral Content Distribution Network could be used by a coral shortcut, defined using a couple of placeholders:

conf/interwiki.local.conf
coral http://{HOST}.{PORT}.nyud.net:8090{PATH}?{QUERY}

For example, Ubuntu's wiki uses namespaces and pagenames like this LaptopTestingTeam/ToshibaPortegeM700 and without using {NAME} as a placeholder in your interwiki.local.conf file, you'll get a “Not Found” error on their wiki, because it'll interpret the forward slash as a %2F ; so what you can do is add this line to your interwiki.local.conf:

conf/interwiki.local.conf
ubuntu   https://wiki.ubuntu.com/{NAME}

and now create your link to it like this:

[[ubuntu>LaptopTestingTeam/ToshibaPortegeM700|Ubuntu on Toshiba Portege M700 Tablet]]

If the wikiname will already include encoded characters (ex: %26 for &) use {PATH} in your interwiki.local.conf definition.

To refer to certain namespaces within you own wiki:1)

conf/interwiki.local.conf
<shortcut>      <dokuwiki_root>:ns:..:

For example:

conf/interwiki.local.conf
enlib     doku.php?id=:en:lib:

would address pages in the namespace :en:lib:pagename if using the link syntax [[enlib>pagename]].

Configuring InterWiki Shortcut Icons

Interwiki icons should have a size of 16×16 pixels, be in PNG or GIF format, and be named after the shortcut.

  • <dokuwiki_root>/lib/images/interwiki
    The directory to place the image files in.

You should also purge cached PNG and GIF images as well as the CSS Files if you have the default image instead of the one you uploaded.

rm -rf <dokuwiki_data>/data/cache/*/*.{gif,png,css}

It may actually be enough to invalidate the CSS caching by re-saving in the config manager ('re-saving' means pressing the save button of config manager without any changes of config options).

If you want to disable all or some kind of link icons, refer to disabling link icons.

Using the number sign/hash (#), not as comment

Because it is reserved to mark a comment line, a hash (#) needs to be escaped by a backslash (\#).

e.g. if you are using the name of your interwiki in the fragment part of your URL, you need to escape it.

Example:

  • Configuration
    conf/interwiki.local.conf
    postconf  http://www.postfix.org/postconf.5.html\#{NAME}
  • Usage
    [[postconf>smtpd_tls_received_header]]

See also

1)
Note: the link would always appear as if the page already exists. No 'preprove'.
interwiki.txt · Last modified: 2024-01-20 20:34 by 212.159.76.45

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki