wiki:CodeExampleMacro

Code example box with syntax highlighting

Description

This macro renders a code example box that supports syntax highlighting. It comes in the following forms: simple, correct, and incorrect. The examples can be used for code review and functional testing, see below for examples.

Key features:

  • The SELECT ALL link highlights all of the code in the box to simplify the copy and paste action.
  • A mouse click on the header (title) will show or hide the code block.
  • Code from the repository can be displayed using TracLinks syntax. The multiple repository configuration (Trac >= 0.12) is supported.

All rights reserved by Codedgers Inc.

Bugs/Feature Requests

Existing bugs and feature requests for CodeExampleMacro are here.

If you have any issues, create a new ticket.

defect

12 / 14

enhancement

8 / 11

task

1 / 1

Download

Download the zipped source from here.

Source

You can check out CodeExampleMacro from here using Subversion, or browse the source with Trac.

Installation

  1. Install plugin globally, for example with easy_install:
    [sudo] easy_install https://trac-hacks.org/svn/codeexamplemacro
    
    • [sudo] is optional in case you have authorisation to modify your server.
    • You might be required to select a specific tag, branch. Defaults to select from trunk.
  2. Enable this component by updating TracIni file as follows:
    [components]
    codeexample.code_example_processor.* = enabled
    
  3. Restart web server on command line:
    [sudo] /etc/init.d/apache2 restart
    
    • [sudo] is optional in case you have authorisation to modify your server.
  4. Test if this component is working properly. If the plugin is installed correctly, the example shown in the #Usage section on this page should be displayed.

Usage

  1. Inside a wiki area you can invoke the #!CodeExample wiki processor to render a special formatted box containing specified source code, as shown and exemplified down:
    {{{
    #!CodeExample
    ## parameter = value
    ....
    ## parameter = value
    #!language
    ...code...
    }}}
    
    • Where ## parameter = value can be one or many from:
Argument
Version
Required (R)
Optional (O)
Description
Default
## type O A type of box example: simple, good, bad
* Example: ## type = bad
simple
## title O The title of the example.
* Example: ## title = Source from repository A
If ## type = simple then EXAMPLE:
If ## type = good then CORRECT EXAMPLE:
If ## type = bad then INCORRECT EXAMPLE:
## path O A file in the repository (using TracLinks format for source code)
* Example: ## path = GPGMail/Source/GPGMailPreferences.m
None
## repo O Repository to use (Trac 0.12 and upper only).
* Example: ## repo = T.B.D.
None
## regex O A regular expression indicates where to start an example.
* Example: ## regex = ".*updater\s*{"
None
## lines O Number of lines to show.
* Example: ## lines = 3
None
#!language O Syntax highlighter. language is any supported by Trac. See TracSyntaxColoring.
* Example: #!python
trac
  1. The simple example:
    {{{
    #!CodeExample
    #!python
    @staticmethod
    def get_templates_dirs():
        """ Notify Trac about templates dir. """
        from pkg_resources import resource_filename
        return [resource_filename(__name__, 'templates')]
    }}}
    
    • will be rendered as:


  2. The incorrect example:
    {{{
    #!CodeExample
    ## type = bad
    #!haskell
    fibs = 0 : 1 : [ a + b | a <- fibs | b <- tail fibs ]
    }}}
    
    • will be rendered as:


  3. The correct example:
    {{{
    #!CodeExample
    ## type = good
    #!haskell
    fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
    }}}
    
    • will be rendered as:


  4. There is also support for getting sources from the repository:
    {{{
    #!CodeExample
    ## path=GPGMail/Source/GPGMailPreferences.m
    ## regex=".*updater\s*{"
    ## lines=3
    #!objective-c
    }}}
    
    • will be rendered as:

Recent Changes

14903 by rjollos on 2015-09-21 17:43:45
Removes svn:mime-type text/plain.
14039 by rjollos on 2014-07-26 02:37:54
1.2: Include images in egg and fixed links to sample screenshots. Fixes #8331.

Thanks to AllenB and ilewismsl for the patches.

14038 by rjollos on 2014-07-26 02:37:35
Added URL to setup.py and bumped version to 1.1. Refs #9716.
(more)

Author/Contributors

Author: nuald
Maintainer: Alexander Slesarev, rjollos
Contributors:

Last modified 10 months ago Last modified on Nov 16, 2015, 1:34:36 PM

Attachments (7)

Download all attachments as: .zip