= Trac リンク = #TracLinks [[TracGuideToc]] TracLinks は Trac の基礎となる機能です。というのも、 TracLinks によってシステムのエントリ間 - チケット、レポート、チェンジセット、Wikiページ、マイルストーン、ソースファイルなど - で簡単にハイパーリンクすることができるからです。 TracLinks は通常、 '''type:id''' (''id'' はアイテムの 番号や名前、パス) の形式で記述しますが、よく使われるコンポーネントについては、 下の例のように表記を省略することもできます。 == TracLinks が使えるところ == #WheretouseTracLinks TracLinks が使えるのは: * ソースコード (Subverison) のコミットメッセージ * Wikiページ * チケット、レポート、マイルストーンでの説明記述箇所 その他、 WikiFormatting を利用可能なことが明示されているすべてのテキストフィールド。 例: * チケット: '''!#1''', '''!ticket:1''' * チケットのコメント: '''!comment:1:ticket:2''' * レポート: '''!{1}''', '''!report:1''' * チェンジセット: '''!r1''', '''![1]''', '''!changeset:1''', (ディレクトリを限定) '''![1/trunk]''', '''!changeset:1/trunk''' * リビジョンログ: '''!r1:3''', '''![1:3]''', '''!log:@1:3''', '''!log:trunk@1:3''', '''![2:5/trunk]''' * Diff ([http://trac.edgewall.org/milestone/0.10 0.10] 以降): '''!diff:@1:3''', '''!diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default''', '''!diff:trunk/trac@3538//sandbox/vc-refactoring@3539''' * Wiki ページ: '''!CamelCase''', '''!wiki:CamelCase''' * 親ページ: '''![..]''' * マイルストーン: '''!milestone:1.0''' * 添付ファイル: '''!attachment:example.tgz''' (現在のページへの添付ファイル), '''!attachment:attachment.1073.diff:ticket:944''' (絶対パス) * ファイル: '''!source:trunk/COPYING''' * あるリビジョンのファイル: '''!source:/trunk/COPYING#200''' * あるリビジョンのファイルのある行数: '''!source:/trunk/COPYING@200#L25''' 表示: * チケット: #1, ticket:1 * チケットのコメント: comment:1:ticket:2 * レポート: {1} or report:1 * チェンジセット: r1, [1], changeset:1, (ディレクトリを限定) [1/trunk], changeset:1/trunk * リビジョンログ: r1:3, [1:3], log:@1:3, log:trunk@1:3, [2:5/trunk] * Diff ([http://trac.edgewall.org/milestone/0.10 0.10] 以降): diff:@1:3, diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default, diff:trunk/trac@3538//sandbox/vc-refactoring/trac@3539 * Wiki ページ: CamelCase, wiki:CamelCase * 親ページ: [..] * マイルストーン: milestone:1.0 * 添付ファイル: attachment:example.tgz(現在のページへの添付ファイル), attachment:attachment.1073.diff:ticket:944 (絶対パス) * ファイル: source:trunk/COPYING * あるリビジョンのファイル: source:/trunk/COPYING#200 * あるリビジョンのファイルのある行数: source:/trunk/COPYING@200#L25 '''Note:''' wiki:CamelCase の書式が使われることはほとんどありませんが、 ページ名が WikiPageNames のルールに従っていないページ (一文字、 アルファベット以外の文字、etc.) をリンクしたい場合には便利です。 WikiPageNames に Wiki ページ名へのリンクに関する特記事項が書いてあるので見て下さい。 フル表記の (簡略形でない) Trac リンクでは、次のようにしてリンクタイトルを カスタマイズすることもできます: {{{ [ticket:1 これは1番目のチケットへのリンクです]。 }}} 表示: [ticket:1 これは1番目のチケットへのリンクです]。 タイトルが省略された場合、 ID のみ (コロンの後ろ側) が表示されます。 {{{ [ticket:1] }}} 表示: [ticket:1] もし名前空間の一部が省略されていたら、 `wiki` がデフォルトの値です。(''バージョン 0.10 以降''): {{{ [SandBox the sandbox] }}} 表示: [SandBox the sandbox] TracLinks はとてもシンプルなアイディアですが、実際にはとても複雑な情報網になっています。実際、使う分にはとても直感的で簡単ですし、 "リンクを追跡する" ことによってプロジェクトでおこったことやなぜある事象が起こったのかを理解するのにとても役に立ちます。 == TracLinks の高度な利用 == #AdvanceduseofTracLinks === 相対リンク === #Relativelinks ページ内の特定アンカーにリンクするには '#' を使用します: {{{ [#Relativelinks 相対リンク] }}} 表示: [#Relativelinks 相対リンク] Hint: セクションのタイトルにマウスオーバしたときに、文字 '¶' が表示されます。これはそのセクションへのリンクですので、 `#...` の部分をコピーすれば、相対リンクのアンカーとして使用できます。 [http://trac.edgewall.org/wiki/SubWiki SubWiki] ページにリンクするには '/' を使用します: {{{ WikiPage/SubWikiPage or ./SubWikiPage }}} [http://trac.edgewall.org/wiki/SubWiki SubWiki] ページから親ページにリンクするには、単に '..' を使用します: {{{ [..] }}} [http://trac.edgewall.org/wiki/SubWiki SubWiki] ページから兄弟の位置にあるページにリンクするには '../' を使用します: {{{ [../Sibling see next sibling] }}} ''(0.11 で変更された箇所です)'' Trac 0.10 では `[../newticket]` のように書くと、トップレベル URL の /newticket にリンクする動作でした。しかし 0.11 では Wiki の名前空間にとどまり、兄弟の位置にあるページにリンクします。新しいシンタックスについては [#Server-relativelinks サーバ相対リンク] を参照してください。 === InterWiki リンク === #InterWikilinks 他に、プレフィックスを自由に定義して、他の Web アプリケーションのリソースをポイントさせることができます。プレフィックスと対応する Web アプリケーションの URL の定義は特殊な Wiki ページ、 InterMapTxt ページで定義されます。 他の TracEnvironment へのリンクを作ることもできますが、より柔軟に他の TracEnvironment を指す特別な方法があることを覚えておいてください。 === InterTrac リンク === #InterTraclinks InterWiki リンクと同じ要領で使用できますが、リンクする対象を他の Trac プロジェクトに特化した機能です。 プレフィックスとして定義した他の Trac Environment の名前とコロンに続けて、あらゆる種類の Trac リンクを記述することで、一つの Trac Enviroment から他の Trac Environment のリソースを参照することができます。このリモートの Trac Environment は、名前そのものかエイリアスとして、あらかじめ登録しておく必要があります。詳しくは InterTrac を参照してください。 InterWiki リンクに対する InterTrac リンクの利点は、 InterTrac リンクが Trac リンクの短縮書式を解釈できることにあります。例えば、チケットへのリンクは `#T234` (T は Trac Project へのエイリアスに設定されているとします) と書くことができ、チェンジセットへのリンクは `[trac 1508]` と書くことができます。 === サーバ相対リンク === #Server-relativelinks 静的リソースや `newticket` のような固定リンク、 `/register` ページのような サーバ内で共有するリソースなど、 Trac のリンク機構にビルトインされていない リソースに対して Project 内でリンクする機能は時折、有用になります。 Project 内のリソースにリンクするためには、 Project root からの絶対パスか、 現在のページの URL からの相対リンクを使用します (''0.11 で変更された箇所です''): {{{ [/newticket Create a new ticket] [/ home] }}} 表示: [/newticket newticket] [/ home] サーバ上の他のロケーション (Project の外部) にリンクするためには、 '//location' リンクシンタックスを使用します (''0.11 で変更された箇所です''): {{{ [//register Register Here] }}} 表示: [//register Register Here] === Trac リンクで空白文字をエスケープする === #QuotingspaceinTracLinks TracLinks のプレフィックスの後ろにスペースを含んだターゲットがある場合、 シングルクォーテーションかダブルクォーテーションで囲みます。 例: * !wiki:"The whitespace convention" * !attachment:'the file.txt' もしくは * !attachment:"the file.txt" * !attachment:"the file.txt:ticket:123" === リンクの無効化 === #EscapingLinks !TracLinks を無効化するには、先頭に '!' (エクスクラメーションマーク) を付けます。 {{{ !NoLinkHere. ![42] is not a link either. }}} 表示: !NoLinkHere. ![42] is not a link either. === パラメータつきの Trac リンク === #ParameterizedTraclinks Trac リンクの対象となる Trac リソースは通常、パラメータで制御される複数の表示形式を持っています。例えば、 Wiki ページでは `version` や `format` パラメータを使用でき、レポートでは動的変数の使用ができます。 あらゆる種類の Trac リンクは、 URL のクエリパラメータに相当する方法で記述できる。