(:Summary:PmWiki's default [[PmWiki/InterMap]] links, and how to can create additional InterMap links:) (:title Custom InterMap:) (:Audience: administrator (intermediate) :) This page describes PmWiki's default [[InterMap]] links, and how a [[wiki administrator]] can create additional InterMap links. An intermap entry takes the following format: -> [@ MapPrefix: http://example.com/partial/url/ @] The InterMap entry can be for any of the [[(PmWiki:)link schemes]] supported by PmWiki. [[<<]] You can create your own InterMap links by doing one or more of the following: * Modify the page called ''[[{$SiteGroup}.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(s)]] 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 [[PmWiki/upgrade(s)]] 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): * ''local/localmap.txt'' * ''$SiteGroup.InterMap'' * ''$FarmD/local/farmmap.txt'' * ''$FarmD/scripts/intermap.txt'' !! PmWiki InterMaps (:include PmWiki/InterMap#custominclude#customincludeend:) >>faq<< [[#faq]] Q: Are InterMap names case sensitive? A: Yes, thus [@eAdmin:@] is a different InterMap link than [@EAdmin:@]. Q: How can I achieve a ''localmap.txt'' mapping with the effect of [@Pics: Path:/somepathto/pics/@]? A: Use the following: ->[@Pics: /somepathto/pics/@] Q: How can I define an InterMap in PHP? A: Use the following: ->[@ $LinkFunctions['PmWikiHome:'] = 'LinkIMap'; $IMap['PmWikiHome:'] = 'http://pmwiki.org/wiki/$1'; @]