Yodl stands for `Yet oneOther Document Language' and is basically a pre-processor to convert document files in a special macro language (the Yodl language) to any output format. The Yodl language is not a `final' language, in the sense that it can be viewed or printed directly. Rather, a document in the Yodl language is a `pre-document', that is converted with some macro package to an output format, to be further processed. In this, Yodl somewhat resembles SGML (Standard Generalized Markup Language) but is designed to be more transparent and easier to use. I wrote Yodl because I needed a good document preprocessor to convert output to either LaTeX (for printing) or to HTML (HyperText Markup Language, used in WWW documents) for publishing via a WWW site. Although SGML does this too, I wanted something that is used `intuitively' and with greater ease. This is reflected in the syntax of the Yodl language, in the available macros of the Yodl macro package, and very probably also in other aspects of Yodl. However, Yodl is designed to convert to any output format; so it is possible to write a macro package that converts Yodl documents to, say, the man format for manual pages. I am not very familiar with the man format, but I've put some work into this too; resulting in the `manpage' document type and its converter. A few highlights of Yodl are:
  • Yodl allows the inclusion of files. This makes it easier to split up a document into `logical' parts, each kept in a separate file. Thus, a `main document' file can include all the sub-parts. (Imagine that you're the editor of a journal. Authors are likely to send in their submissions in separate files; inclusion can then be very handy!)
  • Files which are included are searched for either `as-is', or in a given `system-wide include' directory, similar to the workings of the C preprocessor. Therefore, it is possible to create a set of include files holding macros, and to place them into one macro directory. (See also chapter ??, where a macro package that is distributed with Yodl is described.)
  • For all the handled files (either stated on the commandline or included), Yodl supplies an extension if none is present. The default extension is .yo, but can be defined to anything in the compilation of the yodl program.
  • Yodl supports conditional parsing of its input, controlled by defined symbols. This resembles the #ifdef / #else / #endif preprocessor macros of the C language. Yodl also supports other if clauses, e.g., to test for the presence of an argument to a macro.
  • Yodl offers hooks to define counters, to modify them, and to use them in a document. Thereby Yodl offers the possibility for automatic numbering of e.g., sections. Of course, some document languages (e.g., LaTeX) offer this too; but some don't. When converting a Yodl document to, say, HTML, this feature is very handy.
  • Yodl is designed to be easy to use: Yodl uses `normal' characters to identify commands in the text, instead of insisting weird-looking tags or escape characters. Editing a document in the Yodl macro language is designed to be as easy as possible.
  • Similar to other document languages, Yodl supports `character conversion tables' which define how a character should appear in the output.
  • This document first describes Yodl from the point of the user: how can macros be defined, how is the program used etc.. Next, my own macro package is presented and the macros therein described. Finally, this document holds technical information about the installation and the inner workings of Yodl.
    Go back to index of Yodl.

    Please send Yodl questions and comments to yodl@icce.rug.nl.

    Please send comments on these web pages to (address unknown)

    Copyright (c) 1997, 1998, 1999 Karel Kubat and Jan Nieuwenhuizen.

    Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


    This page was built from Yodl-1.31.18 by

    <(address unknown)>, Thu Jul 24 13:52:51 2003 CEST.