5 | | Wiki processors can be used in any Wiki text throughout Trac, |
6 | | for various different purposes, like: |
7 | | - [#CodeHighlightingSupport syntax highlighting] or for rendering text verbatim, |
8 | | - rendering [#HTMLrelated Wiki markup inside a context], |
9 | | like inside <div> blocks or <span> or within <td> or <th> table cells, |
10 | | - using an alternative markup syntax, like [wiki:WikiHtml raw HTML] and |
11 | | [wiki:WikiRestructuredText Restructured Text], |
12 | | or [http://www.textism.com/tools/textile/ textile] |
13 | | |
14 | | |
15 | | == Using Processors == |
16 | | |
17 | | To use a processor on a block of text, first delimit the lines using |
18 | | a Wiki ''code block'': |
| 5 | Wiki processors can be used in any Wiki text throughout Trac, such as: |
| 6 | - [#CodeHighlightingSupport syntax highlighting] or for rendering text verbatim |
| 7 | - rendering [#HTMLrelated Wiki markup inside a context], like inside <div> blocks or <span> or within <td> or <th> table cells |
| 8 | - using an alternative markup syntax, like [wiki:WikiHtml raw HTML] and [wiki:WikiRestructuredText Restructured Text] or [http://www.textism.com/tools/textile/ textile] |
| 9 | |
| 10 | == Using Processors |
| 11 | |
| 12 | To use a processor on a block of text, first delimit the lines using a Wiki ''code block'': |
39 | | Besides their content, some Wiki processors can also accept ''parameters'', |
40 | | which are then given as `key=value` pairs after the processor name, |
41 | | on the same line. If `value` has to contain space, as it's often the case for |
42 | | the style parameter, a quoted string can be used (`key="value with space"`). |
43 | | |
44 | | As some processors are meant to process Wiki markup, it's quite possible to |
45 | | ''nest'' processor blocks. |
46 | | You may want to indent the content of nested blocks for increased clarity, |
47 | | this extra indentation will be ignored when processing the content. |
48 | | |
49 | | |
50 | | == Examples == |
| 32 | Besides their content, some Wiki processors can also accept ''parameters'', which are then given as `key=value` pairs after the processor name and on the same line. If `value` has to contain space, as it's often the case for the style parameter, a quoted string can be used (`key="value with space"`). |
| 33 | |
| 34 | As some processors are meant to process Wiki markup, it's quite possible to ''nest'' processor blocks. |
| 35 | You may want to indent the content of nested blocks for increased clarity, this extra indentation will be ignored when processing the content. |
| 36 | |
| 37 | == Examples |
247 | | For more processor macros developed and/or contributed by users, visit: |
248 | | * [trac:ProcessorBazaar] |
249 | | * [trac:MacroBazaar] |
250 | | * [http://trac-hacks.org Trac Hacks] community site |
251 | | |
252 | | Developing processors is no different from Wiki macros. |
253 | | In fact they work the same way, only the usage syntax differs. |
254 | | See WikiMacros#DevelopingCustomMacros for more information. |
255 | | |
| 237 | Line numbers can be added to code blocks and lines can be highlighted //(since 1.1.2)//. |
| 238 | {{{ |
| 239 | {{{#!python lineno=3 marks=3,9-10,16 |
| 240 | def expand_markup(stream, ctxt=None): |
| 241 | """A Genshi stream filter for expanding `genshi.Markup` events. |
| 242 | |
| 243 | Note: Expansion may not be possible if the fragment is badly |
| 244 | formed, or partial. |
| 245 | """ |
| 246 | for event in stream: |
| 247 | if isinstance(event[1], Markup): |
| 248 | try: |
| 249 | for subevent in HTML(event[1]): |
| 250 | yield subevent |
| 251 | except ParseError: |
| 252 | yield event |
| 253 | else: |
| 254 | yield event |
| 255 | }}} |
| 256 | }}} |
| 257 | {{{#!python lineno=3 marks=3,9-10,16 |
| 258 | def expand_markup(stream, ctxt=None): |
| 259 | """A Genshi stream filter for expanding `genshi.Markup` events. |
| 260 | |
| 261 | Note: Expansion may not be possible if the fragment is badly |
| 262 | formed, or partial. |
| 263 | """ |
| 264 | for event in stream: |
| 265 | if isinstance(event[1], Markup): |
| 266 | try: |
| 267 | for subevent in HTML(event[1]): |
| 268 | yield subevent |
| 269 | except ParseError: |
| 270 | yield event |
| 271 | else: |
| 272 | yield event |
| 273 | }}} |
| 274 | |
| 275 | For more processor macros developed and/or contributed by users, visit the [th:WikiStart Trac Hacks] community site. |
| 276 | |
| 277 | Developing processors is no different from Wiki macros. In fact, they work the same way, only the usage syntax differs. See WikiMacros#DevelopingCustomMacros for more information. |