| 1 | = Wiki マクロ = |
| 2 | Wiki マクロとは、 Python で書かれた 'カスタム関数' によって Trac の Wiki エンジンを拡張するプラグインです。 WikiFormatting エンジンが利用可能なあらゆるコンテキストにおいて、マクロを使用することによって、動的な HTML データが挿入されます。 |
| 3 | |
| 4 | もう 1 種類のマクロは WikiProcessors です。これは通常、Wiki以外のマークアップ形式と表示を取り扱うために使用し、多くは、 (ソースコードハイライトのような) より大きいブロックに使用します。 |
| 5 | |
| 6 | == マクロの利用 == |
| 7 | マクロ呼び出しは、二つの ''角括弧 (square brackets) '' で括られた箇所です。 Python 関数のように、マクロは引数を取ることができ、括弧 (parenthesis) の中に、カンマで区切ったリストで表記します。 |
| 8 | |
| 9 | === 利用例 === |
| 10 | |
| 11 | {{{ |
| 12 | [[Timestamp]] |
| 13 | }}} |
| 14 | は、以下のように表示されます: |
| 15 | [[Timestamp]] |
| 16 | |
| 17 | {{{ |
| 18 | [[HelloWorld(Testing)]] |
| 19 | }}} |
| 20 | は、以下のように表示されます: |
| 21 | [[HelloWorld(Testing)]] |
| 22 | |
| 23 | == マクロ一覧 == |
| 24 | |
| 25 | ''Note: 以下に示すリストはマクロドキュメントを含むものだけです。 `-OO` による最適化や、 [wiki:TracModPython mod_python] での `PythonOptimize` オプションが設定されていると表示されません。'' |
| 26 | |
| 27 | [[MacroList]] |
| 28 | |
| 29 | == Macros from around the world == |
| 30 | |
| 31 | The [http://trac-hacks.org/ Trac Hacks] site provides a wide collection of macros and other Trac [TracPlugins 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. |
| 32 | |
| 33 | == カスタムマクロを開発する == |
| 34 | マクロは、 Trac 自身と同じように [http://www.python.org/ Python programming language] で書かれています。とてもシンプルなモジュールで、たった一つの `execute()` 関数だけを持ちます。マクロの識別はファイル名で行います。 Trac は、呼び出されたマクロが返却したデータをマクロが呼び出された Wiki ページの HTML に挿入して表示を行います。 |
| 35 | |
| 36 | 最も簡単なマクロの例です: |
| 37 | {{{ |
| 38 | #!python |
| 39 | # MyMacro.py -- The world's simplest macro |
| 40 | |
| 41 | def execute(hdf, args, env): |
| 42 | return "Hello World called with args: %s" % args |
| 43 | }}} |
| 44 | |
| 45 | Environment (`env`) オブジェクトを使用することも出来ます。この例では、コンフィグレーションとデータベースにアクセスしています: |
| 46 | {{{ |
| 47 | #!python |
| 48 | def execute(hdf, txt, env): |
| 49 | return env.config.get('trac', 'repository_dir') |
| 50 | }}} |
| 51 | |
| 52 | Note: バージョン 0.9 以降、 Wiki マクロは TracPlugins でも書くことが出来るようになりました。これによって、 HTTP request へのダイレクトアクセスなど、 "古い" マクロでは実現できなかったことが出来るようになりました。 |
| 53 | |
| 54 | マクロ開発についての詳しい情報は、プロジェクトメインサイトの [http://trac.edgewall.org/wiki/TracDev 開発リソース] を参照してください。 |
| 55 | |
| 56 | ---- |
| 57 | See also: WikiProcessors, WikiFormatting, TracGuide |