YODL V1.14

Chapter 1: Introduction

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:

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.

1.1: Why use YODL?

YODL is not a word processor, not even an editor. At first glance you might say, yeah, YODL is just yet oneother document language.. why learn it?

First of all, YODL may lower the threshold of new users to start writing documents. An example of an excellent, though not very user-friendly document language is LaTeX. Typing all the backslash and curly brace characters in LaTeX and remembering that an asterisk must be typed as $*$ may be hard at first. In such situations, a properly configured YODL macro set removes these obstacles and thereby helps novices. Yodl is designed to be easy to learn. As the YODL package is growing, so is the manual. The ease of `learning YODL' may thus somewhat diminish, but just keep in mind: as long as you need just plain texts, YODL does OK. If you want more functionality, e.g., the composition of manual pages for Unix, dig into the documentation.

Second, YODL permits to create more than one macro set, defining the same commands, but leading to different output actions. Thereby, the same input file can be converted to several output formats, depending on the loaded macro set. In this, YODL is a `general front' document language, which converts a YODL document to a specialized language for further processing. This was of course one of my reasons to write YODL: I needed a good converter for either LaTeX or HTML.

Third, YODL always allows an `escape route' to the output format. Most situations can be handled with YODL macros, but sure enough, some users will want special actions for a given output format. A typical example for the necessity of such an escape route is the typesetting of mathematical formulas. Say you want to use YODL for a document that is converted either to LaTeX (being a very good mathematical typesetter) or to HTML (a very poor mathematical typesetter). An approach might be to decide inside the document how to typeset a mathematical formula. YODL provides conditional command processing to accomplish this. The decision would be based on the output format: for LaTeX, you'd typeset the formula using all the facilities that LaTeX offers, and for HTML you'd use poor-mans typesetting. Typically, other pre-processors for documents don't allow such escape routes. Well, YODL does.

1.2: Legalese

The YODL package consists of the sources for the YODL program, this documentation, all macro packages which are written by me and which are also in the distribution, and all post-processors of YODL's output. I hereby reserve the copyright for the whole YODL package, as described above. You are allowed to redistribute the package, as long as you provide all distribution files (including this message). You are allowed to use the package for any non-commercial activity. If you wish to use the package in a commercial setting, contact me first. (There is no reason at all why YODL shouldn't be used commercially. Consider contacting me as a small compliment to the author and maintainer.)

I cannot force you to leave all files of the YODL distribution unmodified. However, I do kindly request that you don't modify any of the files prior to (re)distribution. The reason for this is that I'd like to have the latest version too. If you have useful additions to the package, please mail me and I'll incorporate the changes (when I find the time). I can be reached as karel@icce.rug.nl. Or, if you find bugs and have the fix, mail me a description of the bug, the general idea of the fix, and if possible the diffs.

As for warranties: YODL is free of charge, so don't expect any. If you think that YODL crashed your hard disk and destroyed years of work then you're out of luck (very highly unlikely.. I wrote YODL without malevolent intentions and it's just a translation program after all..).

The YODL package isn't shareware, it isn't beggarware, it isn't freeware. First of all, it's megahard-ware, because, who wants a picosoft. Second, it's postcardware! That means, send me a postcard (preferably from a far-away place) if you like it. But mostly, it's GPL-ware, see one of the files COPYING on your disk.

Incase you decide to send me a postcard: I can be reached as

Karel Kubat
Rietveldlaan 37
9731 MJ Groningen
The Netherlands