/mdgen

Model-Driven Code Generator

Primary LanguageJavaScriptMIT LicenseMIT

Model-Driven Generation (mdgen)

A command line tool for template-based code generation from metadata encoded in JSON format based on metadata-json files (.mdj) typically created by StarUML.

Installation

This tool depends on Node.js so you need to install it first. Install globally using npm command so as to use mdgen in any directory.

$ npm install -g mdgen

Features

  • Generate codes using EJS templates.
  • Generate a PDF document from diagrams.

Usage

$ mdgen [command] [options]

Generate codes with EJS template

To generate codes with EJS template, use render command with following options:

  • -m, --model <file> : a model file to load (default model.mdj)
  • -t, --template <file> : template file (default template.ejs)
  • -o, --output <file> : output file (default mdgen-out)
  • -s, --select <selector> : selector expression to select a set of elements (default @Project).

To see the help, type mdgen render -h or mdgen render --help in shell.

Here is an example to generate a set Java source files. Loads model.mdj file and renders all of UML Classes with java-template.ejs template, then save to files of its name and .java file extension in out folder.

$ mdgen render -m model.mdj -t java-template.ejs -o "out/<%=element.name%>.java" -s @UMLClass

Generate a PDF document

To generate a PDF document of diagrams, use pdf command with following options:

  • -m, --model <file> : model file to load (default model.mdj)
  • -o, --output <file> : output file (default mdgen-out.pdf)
  • -s, --select <selector> : selector expression to select a set of elements (default @Diagram). This means all diagrams.
  • -z, --size <size> : page size (default A4). Full list of page size can be found here.
  • -l, --layout <layout> : page layout (default landscape). Or use portrait.
  • -n, --showname <yesno> : show diagram name on page top (default yes). Or use no.

Here is an example generating all diagrams in a PDF document.

$ mdgen pdf -m model.mdj -o document.pdf