**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}. This can also be combined with an {quote:{anchor: name}} markup (which just formats as {quote:}) to link to different parts of a wiki page. That is, {quote:{wiki: page#anchorname}} would cause the browser to skip right to the {quote:{anchor:anchorname}} markup in the given _page_. 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