| 1 | = Support for InterWiki links |
| 2 | [[PageOutline(2-5,Contents,pullout)]] |
| 3 | |
| 4 | == Definition |
| 5 | |
| 6 | An InterWiki link can be used for referring to a Wiki page located in another Wiki system, and by extension, to any object located in any other Web application, provided a simple URL mapping can be done. |
| 7 | |
| 8 | InterWiki prefixes can even be used to introduce links to new protocols, such as `tsvn:` used by [trac:TortoiseSvn TortoiseSvn]. |
| 9 | |
| 10 | == Link Syntax |
| 11 | |
| 12 | {{{ |
| 13 | <target_wiki>(:<identifier>)+ |
| 14 | }}} |
| 15 | |
| 16 | The link is composed by the targeted Wiki (or system) name, followed by a colon, eg `MeatBall:`, followed by a page specification in the target. |
| 17 | Note that, as for InterTrac prefixes, '''InterWiki prefixes are case insensitive'''. |
| 18 | |
| 19 | The target Wiki URL is looked up in the [TracIni#interwiki-section "[interwiki]"] section of TracIni and in the InterMapTxt wiki page, modeled after MeatBall:InterMapTxt. If a prefix is defined in both the `[interwiki]` section and InterMapTxt, the `[interwiki]` section takes precedence. |
| 20 | |
| 21 | In addition to traditional !InterWiki links, where the target is simply ''appended'' to the URL, Trac supports parametric !InterWiki URLs: |
| 22 | identifiers `$1`, `$2`, ... in the URL will be replaced by corresponding arguments. |
| 23 | The argument list is formed by splitting the page identifier using the ":" separator. |
| 24 | |
| 25 | == [TracIni#interwiki-section "[interwiki]"] |
| 26 | |
| 27 | Every option in the `[interwiki]` section in TracIni defines one InterWiki prefix. The option name defines the prefix. The option value defines the URL, optionally followed by a description separated from the URL by whitespace. Parametric URLs are supported as well. |
| 28 | |
| 29 | '''Example:''' |
| 30 | {{{#!ini |
| 31 | [interwiki] |
| 32 | MeatBall = http://www.usemod.com/cgi-bin/mb.pl? |
| 33 | PEP = http://www.python.org/peps/pep-$1.html Python Enhancement Proposal $1 |
| 34 | tsvn = tsvn: Interact with TortoiseSvn |
| 35 | }}} |
| 36 | |
| 37 | == Examples |
| 38 | |
| 39 | For the following excerpt of the InterMapTxt page: |
| 40 | |
| 41 | {{{ |
| 42 | = InterMapTxt = |
| 43 | == This is the place for defining InterWiki prefixes == |
| 44 | |
| 45 | Currently active prefixes: [[InterWiki]] |
| 46 | |
| 47 | This page is modelled after the MeatBall:InterMapTxt page. |
| 48 | In addition, an optional comment is allowed after the mapping. |
| 49 | ---- |
| 50 | {{{ |
| 51 | PEP http://www.python.org/peps/pep-$1.html # Python Enhancement Proposal $1 |
| 52 | Trac-ML http://thread.gmane.org/gmane.comp.version-control.subversion.trac.general/$1 # Message $1 in Trac Mailing List |
| 53 | |
| 54 | tsvn tsvn: # Interact with TortoiseSvn |
| 55 | ... |
| 56 | MeatBall http://www.usemod.com/cgi-bin/mb.pl? |
| 57 | MetaWiki http://sunir.org/apps/meta.pl? |
| 58 | MetaWikiPedia http://meta.wikipedia.org/wiki/ |
| 59 | MoinMoin http://moinmoin.wikiwikiweb.de/ |
| 60 | ... |
| 61 | }}} |
| 62 | }}} |
| 63 | |
| 64 | Then, |
| 65 | * `MoinMoin:InterWikiMap` will be rendered as MoinMoin:InterWikiMap and the ''title'' for that link will be "!InterWikiMap in !MoinMoin". |
| 66 | * `Trac-ML:4346` will be rendered as Trac-ML:4346 and the ''title'' for that link will be "Message 4346 in Trac Mailing List". |
| 67 | |
| 68 | == List of Active Prefixes |
| 69 | |
| 70 | [[InterWiki]] |
| 71 | |
| 72 | ---- |
| 73 | See also: InterTrac, InterMapTxt |