Changes between Version 2 and Version 3 of WikiProcessors
- Timestamp:
- Apr 5, 2019, 9:38:47 AM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiProcessors
v2 v3 1 1 = Wiki Processors 2 2 3 Processors are WikiMacros designed toprovide alternative markup formats for the [TracWiki Wiki engine]. Processors can be thought of as ''macro functions to process user-edited text''.3 Processors are WikiMacros that provide alternative markup formats for the [TracWiki Wiki engine]. Processors can be thought of as ''macro functions to process user-edited text''. 4 4 5 5 Wiki processors can be used in any Wiki text throughout Trac, such as: 6 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 cells8 - using an alternative markup syntax, like [ wiki:WikiHtml raw HTML] and [wiki:WikiRestructuredText Restructured Text] or [http://www.textism.com/tools/textile/ textile]7 - rendering [#HTMLrelated Wiki markup inside a context] such as <div> or <span> blocks or within <td> or <th> table cells 8 - using an alternative markup syntax, like [WikiHtml raw HTML] and [WikiRestructuredText Restructured Text] or [http://www.textism.com/tools/textile/ textile] 9 9 10 10 == Using Processors … … 40 40 {{{#!td colspan=2 align=center style="border: none" 41 41 42 __Example 1__: Inserting raw HTML42 '''Example 1''': Inserting raw HTML 43 43 }}} 44 44 |----------------------------------------------------------------- … … 60 60 {{{#!td colspan=2 align=center style="border: none" 61 61 62 __Example 2__: Highlighted Python code in a <div> block with custom style62 '''Example 2''': Highlighted Python code in a <div> block with custom style 63 63 }}} 64 64 |----------------------------------------------------------------- … … 94 94 {{{#!td colspan=2 align=center style="border: none" 95 95 96 __Example 3__: Searching tickets from a wiki page, by keywords.96 '''Example 3''': Searching tickets from a wiki page, by keywords. 97 97 }}} 98 98 |----------------------------------------------------------------- … … 142 142 The following processors are included in the Trac distribution: 143 143 144 || '''`#!default`''' || Present the text verbatim in a preformatted text block. This is the same as specifying ''no'' processor name (and no `#!`) ||144 || '''`#!default`''' || Present the text verbatim in a preformatted text block. This is the same as specifying ''no'' processor name (and no `#!`). || 145 145 || '''`#!comment`''' || Do not process the text in this section, i.e. contents exist only in the plain text - not in the rendered page. || 146 || '''`#!rtl`''' || Introduce a Right-To-Left block with appropriate CSS direction and styling ''(since 0.12.2)'' ||146 || '''`#!rtl`''' || Introduce a Right-To-Left block with appropriate CSS direction and styling. ''(since 0.12.2)'' || 147 147 |||| || 148 148 ||||= '''[=#HTMLrelated HTML related]''' =|| 149 149 || '''`#!html`''' || Insert custom HTML in a wiki page. || 150 || '''`#!htmlcomment`''' || Insert an HTML comment in a wiki page (''since 0.12'').||150 || '''`#!htmlcomment`''' || Insert an HTML comment in a wiki page. (''since 0.12'') || 151 151 || || Note that `#!html` blocks have to be ''self-contained'', i.e. you can't start an HTML element in one block and close it later in a second block. Use the following processors for achieving a similar effect. || 152 || '''`#!div`''' || Wrap an arbitrary Wiki content inside a <div> element (''since 0.11''). ||153 || '''`#!span`''' || Wrap an arbitrary Wiki content inside a <span> element (''since 0.11''). ||154 || '''`#!td`''' || Wrap an arbitrary Wiki content inside a <td> element(''since 0.12'') ||155 || '''`#!th`''' || Wrap an arbitrary Wiki content inside a <th> element(''since 0.12'') ||156 || '''`#!tr`''' || Can optionally be used for wrapping `#!td` and `#!th` blocks, either for specifying row attributes or better visual grouping (''since 0.12'') ||152 || '''`#!div`''' || Wrap wiki content inside a <div> element. || 153 || '''`#!span`''' || Wrap wiki content inside a <span> element. || 154 || '''`#!td`''' || Wrap wiki content inside a <td> element. (''since 0.12'') || 155 || '''`#!th`''' || Wrap wiki content inside a <th> element. (''since 0.12'') || 156 || '''`#!tr`''' || Can optionally be used for wrapping `#!td` and `#!th` blocks, either for specifying row attributes or better visual grouping. (''since 0.12'') || 157 157 || '''`#!table`''' || Can optionally be used for wrapping `#!tr`, `#!td` and `#!th` blocks, for specifying table attributes. One current limitation however is that tables cannot be nested. (''since 0.12'') || 158 158 || || See WikiHtml for example usage and more details about these processors. || … … 163 163 |||| || 164 164 ||||= '''[=#CodeHighlightingSupport Code Highlighting Support]''' =|| 165 || '''`#!c`''' [[BR]] '''`#!cpp`''' (C++) [[BR]] '''`#!python`''' [[BR]] '''`#!perl`''' [[BR]] '''`#!ruby`''' [[BR]] '''`#!php`''' [[BR]] '''`#!asp`''' [[BR]] '''`#!java`''' [[BR]] '''`#!js`''' (Javascript) [[BR]] '''`#!sql`''' [[BR]] '''`#!xml`''' (XML or HTML) [[BR]] '''`#!sh`''' (!Bourne/Bash shell) [[BR]] '''etc.''' [[BR]] || Trac includes processors to provide inline syntax highlighting for source code in various languages. [[BR]] [[BR]] Trac relies on external software packages for syntax coloring, like [http://pygments.org Pygments]. [[BR]] [[BR]] See TracSyntaxColoring for information about which languages are supported and how to enable support for more languages. || 166 |||| || 165 || '''`#!c`''' [[BR]] '''`#!cpp`''' (C++) [[BR]] '''`#!python`''' [[BR]] '''`#!perl`''' [[BR]] '''`#!ruby`''' [[BR]] '''`#!php`''' [[BR]] '''`#!asp`''' [[BR]] '''`#!java`''' [[BR]] '''`#!js`''' (Javascript) [[BR]] '''`#!sql`''' [[BR]] '''`#!xml`''' (XML or HTML) [[BR]] '''`#!sh`''' (!Bourne/Bash shell) [[BR]] || Trac includes processors to provide inline syntax highlighting for source code in various languages. [[BR]] [[BR]] Trac relies on [http://pygments.org Pygments] for syntax coloring. [[BR]] [[BR]] See TracSyntaxColoring for information about which languages are supported and how to enable support for more languages. || 166 |||| || 167 168 Since 1.1.2 the default, coding highlighting and MIME-type processors support the argument `lineno` for adding line numbering to the code block. When a value is specified, as in `lineno=3`, the numbering will start at the specified value. When used in combination with the `lineno` argument, the `marks` argument is also supported for highlighting lines. A single line number, set of line numbers and range of line numbers are allowed. For example, `marks=3`, `marks=3-6`, `marks=3,5,7` and `marks=3-5,7` are all allowed. The specified values are relative to the numbered lines, so if `lineno=2` is specified to start the line numbering at 2, `marks=2` will result in the first line being highlighted. 167 169 168 170 Using the MIME type as processor, it is possible to syntax-highlight the same languages that are supported when browsing source code. … … 173 175 Some examples: 174 176 {{{ 175 {{{ 176 #!text/html 177 {{{#!text/html 177 178 <h1>text</h1> 178 179 }}} … … 181 182 {{{#!td 182 183 The result will be syntax highlighted HTML code: 184 {{{#!text/html 185 <h1>text</h1> 186 }}} 187 188 The same is valid for all other [TracSyntaxColoring#SyntaxColoringSupport mime types supported]. 189 }}} 190 }}} 191 {{{#!td 183 192 {{{ 184 #!text/html 185 <h1>text</h1> 186 }}} 187 188 The same is valid for all other [TracSyntaxColoring#SyntaxColoringSupport mime types supported]. 189 }}} 190 }}} 191 {{{#!td 192 {{{ 193 {{{ 194 #!diff 193 {{{#!diff 195 194 --- Version 55 196 195 +++ Version 56 … … 213 212 {{{#!td 214 213 '''`#!diff`''' has a particularly nice renderer: 215 {{{ 216 #!diff 214 {{{#!diff 217 215 --- Version 55 218 216 +++ Version 56 … … 233 231 }}} 234 232 235 For more processor macros developed and/or contributed by users, visit: 236 * [http://trac-hacks.org Trac Hacks] community site 237 * [trac:ProcessorBazaar] 238 * [trac:MacroBazaar] [deprecated] 239 240 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. 233 Line numbers can be added to code blocks and lines can be highlighted //(since 1.1.2)//. 234 {{{ 235 {{{#!python lineno=3 marks=3,9-10,16 236 def expand_markup(stream, ctxt=None): 237 """A Genshi stream filter for expanding `genshi.Markup` events. 238 239 Note: Expansion may not be possible if the fragment is badly 240 formed, or partial. 241 """ 242 for event in stream: 243 if isinstance(event[1], Markup): 244 try: 245 for subevent in HTML(event[1]): 246 yield subevent 247 except ParseError: 248 yield event 249 else: 250 yield event 251 }}} 252 }}} 253 {{{#!python lineno=3 marks=3,9-10,16 254 def expand_markup(stream, ctxt=None): 255 """A Genshi stream filter for expanding `genshi.Markup` events. 256 257 Note: Expansion may not be possible if the fragment is badly 258 formed, or partial. 259 """ 260 for event in stream: 261 if isinstance(event[1], Markup): 262 try: 263 for subevent in HTML(event[1]): 264 yield subevent 265 except ParseError: 266 yield event 267 else: 268 yield event 269 }}} 270 271 For more processor macros developed and/or contributed by users, visit the [https://trac-hacks.org Trac Hacks] community site. 272 273 Processors are implemented using the same interfaces as Wiki macros, only the usage syntax differs. To develop a processor, see WikiMacros#DevelopingCustomMacros. 241 274 242 275 ----