* InterMap

< Include other pages | Documentation Index | Conditional markup >

author (intermediate)


The InterMap (also called InterWiki in some other wikis) is a system for defining links between Wiki Wiki Web sites that was first developed by UseMod and Meatball (see UseMod:InterWiki and Meatball:InterWiki). The method is to use a word shortcut that stands for a defined path. InterMap links have the form MapPrefix:PagePath, where the host prefix is converted to a partial URL based on entries in the site's intermap.txt and localmap.txt files.


◆ The default intermap.txt


The default intermap.txt distributed with PmWiki (in the scripts/ directory) includes the following InterMap entries:

PmWiki: https://www.pmwiki.org/wiki/PmWiki/
Cookbook: https://www.pmwiki.org/wiki/Cookbook/
Wiki: http://www.c2.com/cgi/wiki?
UseMod: http://www.usemod.com/cgi-bin/wiki.pl?
Meatball: http://www.usemod.com/cgi-bin/mb.pl?
Wikipedia: https://en.wikipedia.org/wiki/
PITS: https://www.pmwiki.org/wiki/PITS/
PmL10n: https://www.pmwiki.org/wiki/Localization/


◆ The page Site.InterMap

Site.InterMap includes the following entries:


Thus, "PmWiki:Variables" becomes "https://www.pmwiki.org/wiki/PmWiki/" + "Variables", a link to the PmWiki.Variables page on the official PmWiki web site, Wiki:FrontPage is a link to the front page of the first WikiWikiWeb, and Wikipedia:Stonehenge takes you to the Wikipedia article about the famous megaliths in England.


◆ Usage in a wiki page


Like other links, you can use the double-bracket syntax to get different link text:

* [[Meatball:StartingPoints | starting points]] over at Meatball
* [[starting points -> Meatball:StartingPoints]] over at Meatball


If you want to link just to what the intermap says (e.g. https://en.wikipedia.com/wiki/ for Wikipedia), then do [[Wikipedia:. | Wikipedia's main page]], which produces Wikipedia's main page. Note the . (period) after the Map: reference.


The special Path: InterMap entry can be used to create "relative urls" in links.


◆ Custom InterMap prefixes

The actual set of InterMap links at any site is defined by the site administrator via the Site.InterMap page and the local/localmap.txt file.


An intermap entry takes the following format:


MapPrefix:      https://example.com/partial/url/


The InterMap entry can be for any of the link schemes supported by PmWiki.

You can create your own InterMap links by doing one or more of the following:


  • Modify the page called Site.InterMap and place entries like the ones above in it.
  • Create a file called local/localmap.txt and place entries like the ones above in it.
  • In a WikiFarm installation you can create a file called
    local/farmmap.txt and there place entries like the ones above in it.
    These prefixes will be common to all the wikis in the farm.
  • Ensure that there is a space after the colon.


Do not edit the file scripts/intermap.txt directly! If you do, you'll
lose your changes when you upgrade PmWiki.



◆ Variables and InterMap links


It's possible to use variables within your InterMap entries. The following
entries create ThisWiki: and ThisPage: shortcuts:


ThisWiki:        $ScriptUrl
ThisPage:        {$PageUrl}


You can also define InterMap entries where the text of the entry is
substituted into the middle of the URL. Just include '$1' in the URL where
you want the substitution to take place. For example:


Jargon: http://catb.org/~esr/jargon/html/$1.html


would cause Jargon:F/feature-creep to be converted to http://catb.org/~esr/jargon/html/F/feature-creep.html.



◆ Tips and tricks


It is possible to document your intermap prefixes directly in the page
Site.InterMap. The extra text will not cause a performance penalty, nor
will it break the definition of prefixes. However, be aware that anything
matching a line starting with a word and a colon (:) will be
considered to define a prefix.


The order in which various sources are checked for definitions of prefixes
is controlled by the variable $InterMapFiles. Currently the precedence
(highest to lowest is as follows):




Are InterMap names case sensitive?

Yes, thus eAdmin: is a different InterMap link than EAdmin:.


How can I achieve a localmap.txt mapping with the effect of Pics: Path:/somepathto/pics/?

Use the following:

Pics: /somepathto/pics/



How can I define an InterMap in PHP?

Use the following:

      $LinkFunctions['PmWikiHome:'] = 'LinkIMap';
      $IMap['PmWikiHome:'] = 'https://pmwiki.org/wiki/$1';

< Include other pages | Documentation Index | Conditional markup >

This page may have a more recent version on pmwiki.org: PmWiki:InterMap, and a talk page: PmWiki:InterMap-Talk.