Changes between Version 1 and Version 2 of WikiMacros
- Timestamp:
- 02/19/15 14:27:32 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiMacros
v1 v2 3 3 [[PageOutline]] 4 4 5 Trac macros are plugins to extend the Trac engine with custom 'functions' written in Python. A macro inserts dynamic HTML data in any context supporting WikiFormatting. 5 Trac macros are plugins to extend the Trac engine with custom 'functions' written in Python. A macro inserts dynamic HTML data in any context supporting WikiFormatting. Its syntax is `[[macro-name(optional-arguments)]]`. 6 6 7 Another kind of macros are WikiProcessors. They typically deal with alternate markup formats and representation of larger blocks of information (like source code highlighting).7 The WikiProcessors are another kind of macros. They typically deal with alternate markup formats and transformation of larger "blocks" of information (like source code highlighting). They are used for processing the multiline `{{{#!wiki-processor-name ... }}}` blocks. 8 8 9 9 == Using Macros == … … 14 14 The list of available macros and the full help can be obtained using the !MacroList macro, as seen [#AvailableMacros below]. 15 15 16 A brief list can be obtained via ![[MacroList(*)]] or ![[?]].16 A brief list can be obtained via `[[MacroList(*)]]` or `[[?]]`. 17 17 18 Detailed help on a specific macro can be obtained by passing it as an argument to !MacroList, e.g. ![[MacroList(MacroList)]], or, more conveniently, by appending a question mark (?) to the macro's name, like in ![[MacroList?]].18 Detailed help on a specific macro can be obtained by passing it as an argument to !MacroList, e.g. `[[MacroList(MacroList)]]`, or, more conveniently, by appending a question mark (`?`) to the macro's name, like in `[[MacroList?]]`. 19 19 20 20 … … 77 77 For more information about developing macros, see the [trac:TracDev development resources] on the main project site. 78 78 79 80 Here are 2 simple examples showing how to create a Macro with Trac 0.11. 81 82 Also, have a look at [trac:source:tags/trac-0.11/sample-plugins/Timestamp.py Timestamp.py] for an example that shows the difference between old style and new style macros and at the [trac:source:tags/trac-0.11/wiki-macros/README macros/README] which provides a little more insight about the transition. 79 Here are 2 simple examples showing how to create a Macro. Also, have a look at [trac:source:tags/trac-1.0.2/sample-plugins/Timestamp.py Timestamp.py] for an example that shows the difference between old style and new style macros and at the [trac:source:tags/trac-0.11/wiki-macros/README macros/README] which provides a little more insight about the transition. 83 80 84 81 === Macro without arguments === … … 102 99 def expand_macro(self, formatter, name, text): 103 100 t = datetime.now(utc) 104 return tag. b(format_datetime(t, '%c'))101 return tag.strong(format_datetime(t, '%c')) 105 102 }}} 106 103 … … 148 145 For example, when writing: 149 146 {{{ 150 {{{#!HelloWorld style="polite" 147 {{{#!HelloWorld style="polite" -silent verbose 151 148 <Hello World!> 152 149 }}} … … 160 157 One should get: 161 158 {{{ 162 Hello World, text = <Hello World!> , args = {'style': u'polite' }159 Hello World, text = <Hello World!> , args = {'style': u'polite', 'silent': False, 'verbose': True} 163 160 Hello World, text = <Hello World!> , args = {} 164 161 Hello World, text = <Hello World!> , args = None