# $Id$
#
# >>Copyright::
# Copyright (c) 1992-1996, Ian Clatworthy (ianc@mincom.com).
# You may distribute under the terms specified in the LICENSE file.
#
# >>History::
# -----------------------------------------------------------------------
# Date Who Change
# 29-Feb-96 ianc SDF 2.000
# -----------------------------------------------------------------------
#
H1: Macros
H2: Introduction
A {{macro}} is a command which can be embedded within [[SDF]].
Macros begin with an exclamation mark (!) as the first non-whitespace
character on a line. Some examples are:
E: !use "delphi"
E: !define DOC_AUTHOR "Joe Bloggs"
E: !build_title
H2: Commonly used macros
Some commonly used macros are given below.
!block table
Macro Description
init {{variables}} initialise variables
define {{variable}} [{{expression}}] set a variable's value
build_title build a title page
block {{filter}} begin a block of text
endblock end a block of text
include {{file}}[; {{filter}}] include another file
import {{file}}[; {{parameters}}] import a figure
!endblock
A complete list of the supported macros and their parameters
is given in the {{DOC: SDF Reference}} manual.
H2: Creating new macros
The easiest way to create a new macro is to use the
{{MAC:macro}} and {{MAC:endmacro}} macros. For example:
!block example; pure
!macro MY_MACRO
This text will appear whenever the author calls !MY_MACRO.
!endmacro
!endblock
Macros can also be implemented by a Perl subroutine which
generates the SDF text to be inserted when the macro is called.
See the {{DOC:SDF Guru Guide}} for further details.