twostones   software  yads

apuntes
articles
books
guests
whoami
software

index

  

[Download yads-0.93-beta.tar.gz]

Yads is a program that translates sets of XML documents into a cohesive Web, or into a decent LaTeX document. Twostones.org is generated by it. It has several cool features, like the ability to embed Python or Perl in your documents, a very powerful linking mechanism, or the ability to deal with versions of a page in several languages. It can output the documents, or a Perl program that generates the document, which is very useful to write CGI scripts.

Yads is written in Perl. It was written around 1999, and even though I haven't touched its code since 2001 I still use it regularly. It's not finished. There are several things that should improve, and some that are plain broken (like the attempt to write DTDs for your documents).

One day I might get into it again. Maybe. The code is reasonably readable, but there are so many things I would do different today that it doesn't feel mine. (If I ever get to it again the first thing I will do is to make all the function calls using named parameters.)

I did made a timid attempt at documentation, but Yads is not easy to understand, nor it is well documented. Some people have used it successfully to write embedded documentation of complex software systems (I am among them; Yads can extract XML from comments in source files of programs written in several languages, and build a decent documentation out of that). But it might very well be that I will end up being its only user. Oh well.


Do I Care About Yads?

You do, if you

  1. Work with Linux or Unix.
  2. Maintain or have to build a medium size web site (say, more than a couple documents and less than a thousand), or have to document the source code of a project that includes C/C++ and Python/Perl.
  3. Textual content in plain HTML is a significant part of your site.
  4. You don't want to spend your time re-writing HTML files when the structure of the web or its design changes.
  5. You want humans to edit/add to the content, editing files that are reasonably easy to understand (ie, XML). (if this is not a requirement, and you don't mind programming Perl, and your web is big, you are probably better off generating the HTML online from a database.)
  6. You have enough time and stamina to go over the learning curve.


What Yads Has To Offer

Once things are set up and you understand how Yads works, maintaining a web site with it is trivial. You can add/eliminate files and Yads will rebuild your site with an updated map and new navigational aids and everything will look just right, or you can change the design of your entire web by editing just one file.


What Has Been Done With Yads

TwoStones.org, the web site you are looking at, is entirely built by yads. Whenever I have to add a new file I just copy it in the right place, type a command (make), and the new html tarball is ready to be uploaded to my ISP's server.

Yads is being used in my R&D lab to build an automatically generated/maintained web site, to which ~50 persons contribute in the form of XML files and stuff for download. This site contains today 1392 (and growing) distinct files managed by Yads, 194 of which are HTML files generated by Yads and strongly inter-linked among themselves.


Changes Since 0.6

  1. Added support for CGI's in Python.
  2. Dynamic documents (Perl and Python)- solved bug that made it misplace the output of code chunks in nested XML elements.
  3. PythonDoc looks for Python in /usr/local/bin
  4. Added mail attribute to author.


Documentation

You can download the documentation in PDF, or browse it online.


Bugs

  • fref only works in root directory. If in a subdirectory, the file won't be available for download.
  • Generation of DTDs does not work.


Acknowledgements

Ekkehard Kraemer (Ekkehard.Kraemer at t-systems.de) and Hans Hoellt (Hans.Hoellt at t-systems.de) have contributed suggestions, bug reports, and bug fixes.


Old Versions

   Yads (Yads Advanced Documentation System) is a XML-based system for building structured multi-node documents. Output is HTML or LaTeX.  


Copyright (C) 1999-2003 Joan M. Garcia  
Last modified 23/02/2003 HTML generated by yads