wiki:CodeExampleMacro

Version 20 (modified by Ryan J Ollos, 12 years ago) (diff)

Syntax highlighting.

Code example box with syntax highlighting

Notice: This plugin is unmaintained and available for adoption.

Description

The CodeExampleMacro renders a code example box that supports syntax highlighting. It support three types of examples: simple, correct, and incorrect.

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.

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:


Installation

  1. Install plugin globally:
    • with easy_install:
      $ [sudo] easy_install https://trac-hacks.org/svn/codeexamplemacro
      
      • [sudo] is optional case you already have enough authority 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 case you already have enough authority to modify your server.

  4. Test if this component is working properly.
    1. If the plugin is installed correct, the example shown in the #Usage section on this page should be displayed.

Bugs/Feature Requests

Existing bugs and feature requests for CodeExampleMacro.

If you have any issues, create a new ticket.

Source & Download

You can check out CodeExampleMacro using Subversion, or browse the source with Trac, or [download:codeexamplemacro download] the zipped source.

Recent Changes

14903 by rjollos on 2015-09-21 15:43:45
Removes svn:mime-type text/plain.
14039 by rjollos on 2014-07-26 00: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 00:37:35
Added URL to setup.py and bumped version to 1.1. Refs #9716.
(more)

Author/Contributors

Author: nuald
Maintainer: nuald, rjollos
Contributors:

Attachments (7)

Download all attachments as: .zip