Generating Documentation and Other Artifacts

Templates Folder

Every JS/UML project contains a templates folder containing all the active templates. Every time the model is changed, all templates in this folder will be applied to the model with the resulting artifacts appearing in the output folder.

Template Syntax

The templates are all written using the Velocity Template Language (VTL). The Velocity site (http://velocity.apache.org) contains the documentation about VTL, including:

Template Context

Each template operates at a certain "level" within the model hierarchy - the context objects available to each template include the context object for that level as well as the objects for all higher levels. The levels are as follows:

  • Model Level: a model template is run once for the whole model, it contains the $model context object

  • Package Level: a package template is run once for each nested package in the model, context objects are $package and $model

  • Class Level: run once for each class in the model, context objects are $class, $package and $model

Example Project Documentation

The example projects available on the download page all contain a set of documentation templates. Copying these templates into any JS/UML project will trigger the generation of the default documentation. Alternatively they can be used as the starting point for custom docs.

  • The default documentation is ugly, donations of prettier templates to the project are happily accepted