188 lines
5.5 KiB
HTML
188 lines
5.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html> <head>
|
|
<title>Yet One-Other Document Language</title>
|
|
</head>
|
|
|
|
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>
|
|
"</H4>
|
|
|
|
<HR>
|
|
<center><h1>YODL: A New, Easy-To-Use Text Formatting Language</h1></center>
|
|
<hr>
|
|
|
|
<center><h4><a href="mailto: layers@vax2.rain.gen.mo.us">by Larry
|
|
Ayers</a></h4></center>
|
|
|
|
<center>Copyright (c) 1996</center><BR>
|
|
|
|
<center><H5>Published in Issue 9 of the Linux Gazette</H5></center>
|
|
|
|
|
|
<center><h3>Introduction</h3></center>
|
|
|
|
Linux/un*x is rich in difficult-to-learn, intricate text formatting systems.
|
|
Though the quality of printed output can be extremely high, the learning curve
|
|
can be concomitantly steep.<p>
|
|
|
|
This has led to the development of "meta-formatting" systems, which allow one
|
|
common text mark-up system to be output in several formats. An example is
|
|
SGML, which is very capable but hardly intuitive.<p>
|
|
|
|
<a href="mailto: karel@icce.rug.nl">Karel Kubat</a>, a Dutch programmer, has
|
|
written a new text formatting system which he calls YODL, for Yet OneOther
|
|
Document Language. (I get the impression that the awkward "oneother" word
|
|
construct exists because Mr. Kubat wanted to have <i>.yo</i> as a filename
|
|
suffix, rather than <i>.ya</i>.)<p>
|
|
|
|
<hr>
|
|
|
|
<center><h3>Origins</h3></center>
|
|
|
|
Karel Kubat had found himself spending an inordinate amount of time marking up
|
|
documents for HTML, then having to repeat the process for Latex; in other
|
|
words, he wanted to have a nicely formatted printout of a document and also
|
|
make it available on a web-page. For various reasons SGML was not satisfying
|
|
his needs so he set out to write an easy to use document language. His
|
|
criteria included a minimum of awkward-to-type tags and the ability to include
|
|
or reference other files in one master file. I think he succeeded remarkably
|
|
well.
|
|
|
|
<hr>
|
|
<center><h3>Features</h3></center>
|
|
|
|
A sample document will give you a good idea of what a .yo file looks like:<br>
|
|
<pre>
|
|
|
|
COMMENT(File for testing purposes.)
|
|
|
|
htmlbodyopt(fgcolor)(#0000E0)
|
|
htmlbodyopt(bgcolor)(#E0E0C0)
|
|
|
|
article(Test article for YODL)
|
|
(Karel Kubat)
|
|
(1996)
|
|
|
|
sect(First section) label(first)
|
|
|
|
This is the first section. Now for a subsection:
|
|
|
|
subsect(Subsection of first section.)
|
|
|
|
This is the subsection.
|
|
|
|
sect(Second section.)
|
|
|
|
This is the second section, but ref(first) is the first one.
|
|
Lets try some verbatim text.
|
|
|
|
verb(
|
|
#include <stdio.h>
|
|
|
|
int main ()
|
|
{
|
|
printf ("Hello World!\n");
|
|
return (0);
|
|
})
|
|
|
|
Now some weird characters: !@#$%^*[]{}\|"~`'.
|
|
|
|
Accents? em(Ich m\"ochte bitte \"uberhaupt ein Bier!)
|
|
bf(Apr\`es moi la d\'eluge.)
|
|
|
|
subsect(Some lists.)
|
|
|
|
subsubsect(An itemized list.)
|
|
|
|
itemize(
|
|
|
|
it() Item one.
|
|
|
|
it() Item two.
|
|
|
|
)
|
|
|
|
subsubsect(A descriptive list.)
|
|
|
|
description(
|
|
|
|
dit(First:) Item one.
|
|
|
|
dit(Second:) Item two.
|
|
|
|
)
|
|
|
|
subsubsect(An enumerated list.)
|
|
|
|
enumerate(
|
|
|
|
eit() Item one.
|
|
|
|
eit() Item two.
|
|
|
|
)
|
|
|
|
</pre>
|
|
This test file shows you what some of the tagging is like. Here's a brief
|
|
excerpt from a .yo file showing how other files from the current directory can
|
|
be included:<br>
|
|
<pre>
|
|
sect(Using the yodl program)
|
|
includefile(using)
|
|
|
|
subsect(Language elements)
|
|
includefile(elements)
|
|
</pre>
|
|
|
|
As you can see the tags are in an abbreviated verbal form, which makes them
|
|
easier to remember. The included files can be completely devoid of tagging.
|
|
This allows you to concentrate more on content rather than structure; the
|
|
structure can be mostly contained within the master document. YODL documents
|
|
are noticeably easier to read in their source format than either HTML or Latex
|
|
source. Format-specific tags are also allowed, as in the above HTML body
|
|
tags. They will be ignored by the Latex parser, for example. <p>
|
|
|
|
YODL is very well documented, and the installation of the docs is an effective
|
|
demonstration of the system. The docs come in .yo source form; these files
|
|
are copied to /usr/local/yodl/doc, and then YODL is run on them during the
|
|
installation, with the end result being several HTML files.<p>
|
|
|
|
As is true with any "meta-formatter", a user is better-off knowing something
|
|
about the output format. I think it's necessary to at least glance through
|
|
the output, just to catch any obvious errors. The advantage of a program like
|
|
YODL is that it will enable you to avoid the grunt-work of starting from
|
|
scratch.
|
|
|
|
<hr>
|
|
|
|
<center><h3>Package Contents</h3></center>
|
|
|
|
The main YODL program is written in C, and it works in conjunction with
|
|
several shell scripts and macro files. The main supported formats are HTML,
|
|
Latex, and the troff/groff man and ms formats. There is limited support for
|
|
conversion to plain ASCII and SGML, as well. As previously mentioned, the
|
|
documentation is unusually extensive, being about sixty pages worth of
|
|
well-written material.
|
|
|
|
<hr>
|
|
<center><h3>Availability</h3></center>
|
|
|
|
YODL can be downloaded from <a href="ftp://ftp.icce.rug.nl/pub/unix">its home
|
|
site</a> under the filename yodl-X.YY.tar.gz, with X.YY being a version
|
|
number. It is also available from ftp://sunsite.unc.edu and its mirrors, as
|
|
of this writing in the /pub/Linux/Incoming directory.
|
|
|
|
|
|
<hr> <center><address><a href="http://vax2.rain.gen.mo.us/~layers/">Larry
|
|
Ayers<layers@vax2.rain.gen.mo.us></a></address></center><br>
|
|
|
|
<hr>
|
|
<A HREF="./index.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
|
|
CONTENTS ]"></A>
|
|
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
|
|
PAGE ]"></A>
|
|
<A HREF="staroffice.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
|
|
<A HREF="lg_backpage09.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
|
<hr>
|
|
|
|
</body> </html>
|