The macro files for all converters are (by default) installed to a directory 
tt(/usr/local/lib/yodl). This is a good place to look if you want to 
see how a converter works, or if you want to write a new converter. 

The place to start looking is the file tt(shared.yo), which is used by all 
converters. This file defines most commands that are `global' in the sense 
that all converters implement them: e.g., tt(bf), tt(em) and so on. The 
implementation is per macro as follows, illustrated for e.g., tt(bf) (the 
actual implementation may be slightly different):

verb(\
    DEFINEMACRO(bf)(1)(\ 
        whenlatex(latexcommand({\bf )ARG1+latexcommand(}))\ 
        whenhtml(htmlcommand(<strong>)ARG1+htmlcommand(</strong>))\ 
        whenman(mancommand(\fB)ARG1mancommand(\fP))\ 
        whensgml(sgmlcommand(<bf>)ARG1+sgmlcommand(</bf>))\ 
        whentxt(ARG1)))
    
The macro expands to a set of commands that are active per output format, 
using tt(latexcommand), tt(htmlcommand) etc..

The file tt(shared.yo) is included in its turn by tt(tex.yo), tt(html.yo) and 
so on. These separate files are very short; their function is to:

startit()

    it() define the conversion type with an appropriate symbol (tt(latex) for
    latex conversions, tt(html) for HTML, and so on),
    
    it() activate character tables (when necessary),
    
    it() include tt(shared.dm),

    it() define special macros for the particular conversion (when necessary).

endit()

