1.3. A simple example
1.3.1. A sample SDF document
A sample SDF document is shown below:
# Build the title !define DOC_NAME "GalaxyBuilder" !define DOC_TYPE "Discussion Paper" !define DOC_AUTHOR "Joe Bloggs" !build_title H1: Introduction After extensive market research, I believe there is an excellent opportunity for us to develop software for the I<galaxy construction industry>. Potential customers include: * NASA * European Community * China * Japan. Note: The proposed name of the software package to be developed is [[DOC_NAME]]. If you want to suggest a better name, send email to {{EMAIL:joe@bloggs.com}}. H2: Software Requirements The key requirements are: ^ support for the design and simulation of galaxies containing up to: - 1000 large planets, or - 5000 small planets + the package needs to be easy to use + the package needs to be well documented. H2: Project Team Exploding galaxies will be B<very> bad for business, so we need the best team possible for this project: !block table Person Role Mary Jones Project Manager Hans Blass Architect Bill Smith Software Engineer !endblock
Note: This document (called mydoc.sdf) is provided in the doc/paper directory of the SDF distribution.
1.3.2. A brief explanation
Comments begin with a # character as the first non-whitespace character on a line.
Macros are embedded commands which begin with a ! as the first non-whitespace character on a line. The define macro is used to set variables. The value of a variable can be embedded in paragraph text by using the [[...]] syntax.
The DOC_NAME and DOC_TYPE variables are used by the build_title macro which creates:
- a cover page (or two) for paper-based outputs
- a title header for online outputs.
Paragraphs can be tagged in different ways. For the vast majority of SDF documents, the only tags used are:
Tag | Meaning |
H1: | level 1 heading |
H2: | level 2 heading |
* | item in level 1 bulleted list |
- | item in level 2 bulleted list |
^ | first item in level 1 ordered list |
+ | next item in level 1 ordered list |
> | fixed-width, verbatim text |
Note: | note |
Phrases can also be tagged in several ways. Any phrase can be tagged using the syntax:
{{XYZ:...}}
where XYZ is the tag. For single, uppercase character tags like I (Italics) and B (Bold), POD-style syntax is also supported:
X<...>
where X is the tag.
Tables can be specified using the table filter, typically in combination with the block and endblock macros. The first row is the headings. Remaining rows are data.