From the NannyMUD documentation
2000-12-17
NAME
XML doc system - NannyMUD documentation in XML.DESCRIPTION
INTRODUCTION The XML documentation system was created to solve certain problems, detected in the fall of 2000, with the ihelp system. + The amount of documentation. The documentation is immense. The sheer amount of text that needs to be processed to index things has long ago passed the limits where it is unsuitable to do so using LPC. + The lack of structure in the dokumentation. The format of the documentation files has been improved through the years, but it still has too little meta-information to be used efficiently. For example, it is very hard to extract subtopics and property descriptions from the files describing standard lib objects. + Conversions to other formats. The format of the documentation files is not easy to convert to other formats, such as HTML or Microsoft help format. We would like to do that, allowing our wizards to download and read the documentation off-line. + Technical problems. The ihelp system has been changed and patched so many times, that the code has reached the point where it is hard to maintain. Further changes are problematic, but needed. For example, it cannot handle if the same subtopic exists in more than one place. SYSTEM OVERVIEW The documentation is stored in text files with the suffix xml, and they follow a DTD which is available from NannyMUD's WWW page. The full URL is specified in the xml-files. An external Perl program parses the xml files, producing files with the suffix r2r (eady-to-read), and four index files. The r2r files are parsed as far as is possible without knowing the settings of the players inside the MUD. The Perl parser is run from a cron job on the MUD-host. It will keep track of what files needs to be updated by checking the last modification time of the xml and r2r files, as well as itself. If the parser has been modified, all r2r files are updated. The index files are updated at each run. The index files are read by a daemon, /obj/util/xmand, which caches the data. It keeps track of when it needs to re-read the index files. The daemon offers an API towards a client object (feel free to write your own client). The daemon is used by the client object. The client available so far is a module to the wizmod. It is named 'xmanmod'. LIMITATIONS The XML doc contains only the documentation for wizards, and then only the parts available under /doc/xml. It does not support topics added by creations of wizards. In particular, it does not support topics added using eval() syntax. FUTURE EXTENSIONS The following is a short list of possible future extensions that could be implemented. + Interactive traversal of the help tree, much like ihelp's.SEE ALSO
xmand in xdoc/xmandSEE ALSO
xmanmod in xdoc/xmanmod