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