| | 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 | The [http://projects.edgewall.com/trac/ Trac Project] has a section dedicated to user-contributed macros, [http://projects.edgewall.com/trac/wiki/MacroBazaar MacroBazaar]. If you're looking for new macros, or have written new ones to share with the world, don't hesitate adding it to the [http://projects.edgewall.com/trac/wiki/MacroBazaar MacroBazaar] wiki page. |
| | 31 | |
| | 32 | ---- |
| | 33 | |
| | 34 | == カスタムマクロを開発する == |
| | 35 | マクロは、 Trac 自身と同じように [http://www.python.org/ Python programming language] で書かれています。とてもシンプルなモジュールで、たった一つの ''インタフェース (entry point) '' 関数だけを持ちます。マクロの識別はファイル名で行います。Trac は、呼び出されたマクロが返却したデータを HTML に挿入して表示を行います。 |
| | 36 | |
| | 37 | 最も簡単なマクロの例です: |
| | 38 | {{{ |
| | 39 | #!python |
| | 40 | # MyMacro.py -- The world's simplest macro |
| | 41 | |
| | 42 | def execute(hdf, args, env): |
| | 43 | return "Hello World called with args: %s" % args |
| | 44 | }}} |
| | 45 | |
| | 46 | Environment (`env`) オブジェクトを使用することも出来ます。この例では、コンフィグレーションとデータベースにアクセスしています: |
| | 47 | {{{ |
| | 48 | #!python |
| | 49 | def execute(hdf, txt, env): |
| | 50 | return env.get_config('trac', 'repository_dir') |
| | 51 | }}} |
| | 52 | |
| | 53 | Note: バージョン 0.9 以降、 Wiki マクロは TracPlugins でも書くことが出来るようになりました。これによって、 HTTP request へのアクセスなど、 "古い" マクロでは実現できなかったことが出来るようになりました。 |
| | 54 | |
| | 55 | マクロ開発についての詳しい情報は、プロジェクトメインサイトの [http://projects.edgewall.com/trac/wiki/TracDev 開発リソース] を参照してください。 |
| | 56 | |
| | 57 | ---- |
| | 58 | See also: WikiProcessors, WikiFormatting, TracGuide |