## Blueprints

Looking at Gedcom information in a structured hierarchical manner like Edit View or Table View is one thing. Rendering the information about an entity in a static 2d way is another. Both Tree View and Entity View do just that. They render individuals and entities in a constrained rectangular space on your screen or paper.

The underlying technology used for this by GenJ is HTML. The instructions of how to render an entity is called a Blueprint. It consists of standard HTML with the addition of a new HTML element "prop".

Here's an example:

          <b><prop path=INDI></b>
          <prop path=INDI:NAME>
          born <prop path=INDI:BIRT:DATE>
          in <prop path=INDI:BIRT:PLAC>,
          lived in <prop path=INDI:RESI:ADDR:CITY>
          and worked as a <prop path=INDI:OCCU>.

which looks like this once rendered:

> I008 Meier, Nils born 25 May 1970 in Rendsburg, lived in San Francisco and worked as a Software Engineer.

As you can see the "path" argument to "prop" contains a Tag Path identifying what to render into the text-flow. Here the following values of properties are resolved;

> path=... | result | individual's ...
> INDI | I008 | ID
> INDI:NAME | Meier, Nils | name
> INDI:BIRT:DATE | 25 May 1970 | birth date
> INDI:BIRT:PLACE | Rendsburg | birth place
> INDI:RESI:ADDR:CITY | San Francisco | city of residence
> INDI:OCCU | Software Engineer | occupation

By using different blueprints the same data can be rendered in various ways, because different sets of information, layouts and colors can be choosen:

Views utilizing blueprints will offer to select and edit them through their settings. Predefined blueprints cannot be changed but user-defined blueprints can be changed once created (blueprints are managed globally and not per view).

Note: This is a very advanced feature that won't be necessary to be understood by all users. The default blueprints should be sufficient for 80% of the users.