**Custom Markup Cookbook** This is just a rough idea of things that can be done via the custom markup functionality of #301. It's be a work in progress. *HTML Markup Shortcuts* Rather than having to do things like {quote:text}, you can define markups as shortcuts (the HTML would go in the custom formatter section): *: {quote:{big: big text}} using {quote:%k %a} *: {quote:{small: small text}} using {quote:%k %a} *: {quote:{strike: striked text}} using {quote:%k %a} *Emulating Other Wikis* Many other Wiki styles implement something like [wiki:page description]. This can be easily done with a {quote:{wiki: page description}} markup using as a formatter {quote:%a}. Want a link into the CVS repository without a cumbersome URL? {quote:{getfile cvstrac/main.c}} with {quote:%x}. The %x substitution allows you to use things like {quote:{getfile cvstrac/main.c}} or {quote:{getfile cvstrac/main.c CVSTrac's main.c}}. Some wikis implement "verbatim" blocks. This can easily be done with two separate custom markups, {quote:{verbatim}} and {quote:{endverbatim}} which respectively generate
 and 
HTML tags. For contrast, {quote:{verbatim}} can use a inline style tag to generate an off-white background such as
. 
        
*External Resources*        
        
Most external resources will simply be markups as convenient links. The        
advantage of using a custom markup rather than {quote:{link:}} markups or        
straight HTML is that if a service changes, you only have to change the custom        
markup.        
        
CPAN module? {quote: {cpan: module}} using        
{quote:%x}.        
        
An external resource section wouldn't be complete without       
{quote:{google: search terms}} with       
{quote:%k %a}.      
      
*Program Markups*      
      
It's possible to write custom markups that call external programs. This isn't      
always a good idea (from a performance and security perspective), but it may be      
the only way to do some things. *Note* that some of these examples are simply      
that, examples, and have *not* be exhaustively auditted from a security      
perspective.      
      
Trvial examples are markups which just run a command and spit out information.      
Date/time stamps, system information, etc. For example, a trivial  
{quote: {timestamp}} markup would simply use {quote: /bin/date} as a formatter  
with no substitution arguments.      
      
A more complicated example is a markup to inline something from the CVS      
repository into the wiki page, such as {quote:{include: cvstrac/main.c}}. Using      
the formatter {quote: /path/to/include '%r/%k'}, the following script could be      
used to inline the latest version of any file found under the repository:      
    
  #!/bin/sh      
  FILE=`/bin/echo $1 | /bin/sed 's/\.\.//g'`      
  /bin/cat <      
  `/usr/bin/co -q -p $FILE,v 2>/dev/null`      
  
END