wiki:WikiMacros

Version 1 (modified by trac, 12 years ago) (diff)

--

Wiki マクロ

Wiki マクロとは、 Python で書かれた 'カスタム関数' によって Trac の Wiki エンジンを拡張するプラグインです。 WikiFormatting エンジンが利用可能なあらゆるコンテキストにおいて、マクロを使用することによって、動的な HTML データが挿入されます。

もう 1 種類のマクロは WikiProcessors です。これは通常、Wiki以外のマークアップ形式と表示を取り扱うために使用し、多くは、 (ソースコードハイライトのような) より大きいブロックに使用します。

マクロの利用

マクロ呼び出しは、二つの 角括弧 (square brackets) で括られた箇所です。 Python 関数のように、マクロは引数を取ることができ、括弧 (parenthesis) の中に、カンマで区切ったリストで表記します。

利用例

 [[Timestamp]]

は、以下のように表示されます:

Timestamp?

 [[HelloWorld(Testing)]]

は、以下のように表示されます:

HelloWorld(Testing)?

マクロ一覧

Note: 以下に示すリストはマクロドキュメントを含むものだけです。 -OO による最適化や、 mod_python での PythonOptimize オプションが設定されていると表示されません。

[[Admonition]]

Admonition

[[Image]]

画像を Wiki 形式のテキストに組み込みます。

1 番目の引数は、ファイル名を指定します。ファイルの指定は添付ファイルなど 3つの指定方法があります:

  • module:id:file: module に wiki または ticket が指定すると、 その Wiki ページまたはチケットの添付ファイルで file とファイル名が ついているものを参照します。
  • id:file: 上記と同様ですが、 id はチケットの短い記述方法か、 Wiki ページ名を指定します。
  • file: 'file' というローカルの添付ファイルを指します。これはファイルが 添付されている Wiki ページまたはチケットの中でのみ使用できます。

またファイルはリポジトリのファイルも指定できます。 source:file シンタックスを使用します。 (source:file@rev も可能です)

直接 URL を記述することもできます; /file と記述すると、プロジェクトの ディレクトリからの相対パスになり、 //file と記述すると、サーバルートからの パスになります。また、 http://server/file ではファイルの絶対パスになります。

残りの引数は任意で、 <img> 要素を組み立てる際の属性を設定します:

  • 数字と単位は画像のサイズと解釈されます。 (ex. 120, 25%)
  • right, left, center, top, bottom, middle は画像の配置として 解釈されます。 (right, left, centeralign=... でも指定でき、 top, bottom, middlevalign=... でも指定できます)
  • link=some TracLinks... を指定すると、画像のソースへのリンクが、 TracLinks に置き換えられます。値なしで引数が指定された場合、 リンクは単に削除されます。
  • nolink は画像のソースへのリンクを作成しません。 (非推奨, link= を使用してください)
  • key=value スタイルは画像の HTML 属性または CSS スタイルの

指示として解釈されます。有効なキーは以下の通りです:

  • align, valign, border, width, height, alt, title, longdesc, class, margin, margin-(left,right,top,bottom), id, usemap
  • border, margin, margin-* は数値での指定のみ可能です。
  • margincenter によって自動計算されたマージンを上書きします。

例:

    [[Image(photo.jpg)]]                           # シンプルな指定方法
    [[Image(photo.jpg, 120px)]]                    # 画像の幅サイズ指定
    [[Image(photo.jpg, right)]]                    # キーワードによる配置指定
    [[Image(photo.jpg, nolink)]]                   # ソースへのリンクなし
    [[Image(photo.jpg, align=right)]]              # 属性による配置指定

他の wiki ページ、チケット、モジュールの画像を使用することができます。

    [[Image(OtherPage:foo.bmp)]]    # 現在のモジュールが Wiki の場合
    [[Image(base/sub:bar.bmp)]]     # 下位の Wiki ページから
    [[Image(#3:baz.bmp)]]           # #3というチケットを指している場合
    [[Image(ticket:36:boo.jpg)]]
    [[Image(source:/images/bee.jpg)]] # リポジトリから直接指定する!
    [[Image(htdocs:foo/bar.png)]]   # プロジェクトの htdocs ディレクトリにあるファイル

このマクロは Shun-ichi Goto <gotoh@…> さんが作成した Image.py が 元になっています

[[InterTrac]]

Provide a list of known InterTrac prefixes.

[[InterWiki]]

Provide a description list for the known InterWiki prefixes.

[[KnownMimeTypes]]

WikiProcessors で処理できる既知の mime-type を表示します。

引数が与えられた場合は、 mime-type へのフィルタとして作用します。

[[MacroList]]

インストールされている、すべての Wiki マクロをリストします。 もし利用可能ならばドキュメントも含みます。

非必須オプションとして、特定のマクロの名前を引数として渡すことが出来ます。 この場合、指定されたマクロのドキュメントだけを表示します。

Note: このマクロは mod_python の PythonOptimize オプションが有効になっている 場合は、マクロのドキュメントを表示することが出来ません!

[[PageOutline]]

現在の Wiki ページの構造的なアウトラインを表示します。 アウトラインのそれぞれの項目は一致する表題へのリンクとなります。

このマクロは 3 つの任意のパラメータをとります:

  • 1 番目の引数はアウトラインに含まれる表題の範囲 (レベル) を設定することができ、 数または数の範囲をとります。 例えば、 "1" と指定した場合、アウトラインにはトップレベルの表題のみが表示されます。 "2-3" と指定した場合、アウトラインには、レベル 2 とレベル 3 のすべての表題が ネストしたリストとして表示されます。 デフォルトでは、すべてのレベルの表題が表示されます。
  • 2 番目の引数は、タイトルを特定するのに使われます。 (デフォルトはタイトルなし)
  • 3 番目の引数はアウトラインのスタイルを指定します。 inline または pullout を指定することができます (後者がデフォルトです) 。 inline スタイルでは、アウトラインをコンテンツの一部として整形しますが、 pullout スタイルでは、アウトラインをフローティングボックスに整形し、 コンテンツの右側に配置します。

[[RecentChanges]]

最近更新されたすべてのページを最後に変更した日付でグループ化し、リストします。

このマクロは、 2 つの引数をとります。最初の引数はプレフィックスの文字列です: プレフィックスが指定された場合、結果のリストにはそのプレフィックスで始まるページのみが 含まれます。この引数が省略された場合は、すべてのページがリストされます。

2番目の引数は結果リストに表示するページの数を制限するために使用します。 例えば 5 に制限すると指定した場合、最近更新されたページのうち、新しいもの 5 件がリストに含まれます。

[[RepositoryIndex]]

リポジトリ一覧を表示します。

下記の名前付きの引数を使用することができます:

format
レンダリングするフォーマットを選択します:
  • compact はリポジトリのプレフィックスの名前をカンマ区切りの リストで表示します ( デフォルト )
  • list はリポジトリのプレフィックスの名前を、通常の記述のリストで表示します
  • table はリポジトリブラウザのトップページと同様の形式で 表形式で表示します
glob
リポジトリ名に対する glob 形式のフィルタとして作用します (デフォルトは '*' です)
order
引数で指定されたカラムでリポジトリを並べ替えます。 ( "name", "date" または、 "author" のいずれかを使用できます )
desc
1 を設定すると、降順に並べ替えます。

(0.12 以降)

[[TicketQuery]]

指定された条件にマッチするチケットを一覧表示します。

このマクロの引数はカンマ区切りのリストにした、 "key=value" 形式の キー付きパラメータを使用します。

key がフィールド名であった場合、 value は TracQuery#QueryLanguage で 定義されているような、フィルタを指定するシンタックスでなければなりません。 ? の文字で始まる query: リンク向けの簡素化した URL シンタックス とは 異なります 。フィールドの値としてカンマ (,) そのものを含む場合は バックスラッシュ (,) でエスケープする必要があります。

引数 or で区切られたフィルタのグループは、 OR 条件で結合されます。

このほか、フィルタとしていくつか名前付きパラメータを使用できます。 これらは検索結果をどのように表示するかを制御できます。すべて非必須です。

format はチケットのリストがどのように表示されるかを決定します:

  • list -- デフォルトの表示形式です。チケット ID と概要 (Summary) を 一覧表示します。 1 行ごとに 1 つのチケットを表示します。
  • compact -- チケット ID の一覧をカンマ区切りで 表示します。
  • count -- 条件に当てはまるチケットの件数のみが表示されます。
  • table -- カスタムクエリービューと似た形式で表示されます (ただし コントロールは表示されません)。

max は表示されるチケット数の上限値を指定します (デフォルトは 0 です。これは無制限を意味します)。

order はチケットを整列する列を指定します (デフォルトは id となっています)。

desc はチケットの整列を逆順に行うか指定します。 (デフォルトは false です)。

group はチケットをグループ化を指定します (デフォルトは何も設定されていません)。

groupdesc はグループの表示を逆順とするかを指定します (デフォルトは false となっています)。

verbose を true に設定すると、リストされたチケットの 各行にチケットの説明を表示します。これは table format 専用です。 このパラメータは廃止予定です。代わりに rows を使用してください。

rows パラメータは1行使って表示するフィールドを指定します。 rows=description|summary のように使用します。

Trac 0.10 との互換性のため、マクロは最終引数にキーなし引数が与えられた場合 format として解釈します。 また、フィールドセパレータに使用する "&" は (order を除いて) 現時点では動作しますが、この機能は廃止予定です。

[[TitleIndex]]

すべての Wiki ページをアルファベットのリスト形式で出力に挿入します。

引数として、接頭辞となる文字列を許容します: 指定された場合、 生成されるリストにはページ名が接頭辞で始まるものだけが含まれます。 すべてのページがリストされます。 接頭辞が与えられた上で、第二引数に 'hideprefix' が与えられた場合、 出力からは接頭辞が除外されます。

この他、 format および depth などを名前付き引数として指定できます:

  • format=compact: ページ名をカンマ区切りのリストとして表示します。
  • format=group: 共通の接頭辞を持つページでリストを生成します。 また min=n の引数を使用することができ、 n にはリストを生成するページの最小数を指定します。
  • format=hierarchy: ページ名をパスとした階層構造で表示します。 このフォーマットでも min=n の引数を使用することができ、 n には階層を生成するページの最小数を指定します。
  • depth=n: リストするページの階層数を指定します。 0を指定した場合、トップレベルのページのみ表示され、 1を指定した場合、1代目の子ページが表示されます。 何も指定しない場合か、-1を指定した場合、 全てのページが階層構造により表示されます。

[[TracAdminHelp]]

trac-admin コマンドのヘルプを表示します。

例:

[[TracAdminHelp]]               # 全てのコマンド
[[TracAdminHelp(wiki)]]         # 全ての wiki コマンド
[[TracAdminHelp(wiki export)]]  # "wiki export" コマンド
[[TracAdminHelp(upgrade)]]      # upgrade コマンド

[[TracGuideToc]]

Trac ガイドの目次を表示する。

このマクロは Help/Guide の目次 (ToC) を簡単かつ荒っぽく作成します。 この目次には Trac* と WikiFormatting のページが含まれていますが、 カスタマイズはできません。目次をカスタマイズしたい場合は、 TocMacro を探してください。

[[TracIni]]

Trac の設定ファイルのドキュメントを生成します。

通常、このマクロは Wiki ページ TracIni の中で使用されます。 省略可能な引数にはコンフィグのセクションのフィルタ、 コンフィグのオプション名のフィルタを指定できます: フィルタで指定された文字列 で始まるコンフィグのセクションとオプション名のみが出力されます。

[[VineBTS]]

Sorry, no documentation found

Macros from around the world

The  Trac Hacks site provides a wide collection of macros and other Trac plugins contributed by the Trac community. If you're looking for new macros, or have written one that you'd like to share with the world, please don't hesitate to visit that site.

カスタムマクロを開発する

マクロは、 Trac 自身と同じように  Python programming language で書かれています。とてもシンプルなモジュールで、たった一つの execute() 関数だけを持ちます。マクロの識別はファイル名で行います。 Trac は、呼び出されたマクロが返却したデータをマクロが呼び出された Wiki ページの HTML に挿入して表示を行います。

最も簡単なマクロの例です:

# MyMacro.py -- The world's simplest macro

def execute(hdf, args, env):
    return "Hello World called with args: %s" % args

Environment (env) オブジェクトを使用することも出来ます。この例では、コンフィグレーションとデータベースにアクセスしています:

def execute(hdf, txt, env):
    return env.config.get('trac', 'repository_dir')

Note: バージョン 0.9 以降、 Wiki マクロは TracPlugins でも書くことが出来るようになりました。これによって、 HTTP request へのダイレクトアクセスなど、 "古い" マクロでは実現できなかったことが出来るようになりました。

マクロ開発についての詳しい情報は、プロジェクトメインサイトの  開発リソース を参照してください。


See also: WikiProcessors, WikiFormatting, TracGuide