**Custom Markup Cookbook** This is just a rough idea of things that can be done via the custom markup functionality of #301 and #405. It'll 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