| 1 | Support for HDF-based macros has been dropped starting with Trac 0.11 |
|---|
| 2 | as with the switch to the Genshi templating engine, the `hdf` data |
|---|
| 3 | prepared for the Clearsilver engine used upto Trac 0.10 has simply |
|---|
| 4 | disappeared. |
|---|
| 5 | |
|---|
| 6 | This means that the old-style macros installed in the `wiki-macros` folder, |
|---|
| 7 | i.e. the Python source files containing the simple function: |
|---|
| 8 | |
|---|
| 9 | def execute(hdf, txt, env): |
|---|
| 10 | ... |
|---|
| 11 | |
|---|
| 12 | must be rewritten into new-style macros, |
|---|
| 13 | i.e. plugins implementing the IWikiMacroProvider interface. |
|---|
| 14 | |
|---|
| 15 | This is not necessarily a complex task, given that: |
|---|
| 16 | - the plugin can be a "single file plugin" which doesn't need to be |
|---|
| 17 | configured to use setuptools. Creating a single .py source file |
|---|
| 18 | and dropping it at the right place (the `plugins` folder next to |
|---|
| 19 | the old `wiki-macros` folder) also works; |
|---|
| 20 | - instead of implementing the IWikiMacroProvider directly, |
|---|
| 21 | inheriting from the WikiMacroBase class also works well and is |
|---|
| 22 | a bit more convenient. |
|---|
| 23 | |
|---|
| 24 | Note that not only is this not more complex, but it's also much more |
|---|
| 25 | powerful, as the macro can now access the Wiki `formatter` object, |
|---|
| 26 | and through it, all the other objects that are meaningful in the |
|---|
| 27 | context of the Wiki text containing the macro call. |
|---|
| 28 | |
|---|
| 29 | You can see how the examples for the old-style macros have been |
|---|
| 30 | converted to the new-style macros (single file plugins), in the |
|---|
| 31 | `sample-plugins/HelloWorld.py` and `sample-plugins/Timestamp.py` files. |
|---|
| 32 | |
|---|
| 33 | Note that the TracGuideToc macro has been integrated in the main |
|---|
| 34 | source code base (in `trac/wiki/macros.py`). |
|---|