# DocBook Common

This stylesheet module provides utility templates for DocBook that are independant of the target format.

## Templates

`db.copyright`

- Outputs copyright information

`db.linenumbering`

- Numbers each line in a verbatim environment

`db.linenumbering.start`

- Determines the starting line number for a verbatim element

`db.orderedlist.start`

- Determines the number to use for the first `listitem` in an `orderedlist`

`db.personname`

- Outputs the name of a person

`db.personname.list`

- Outputs a list of people's names

`db.copyright`

Outputs copyright information

### Parameters

`node`

- The `copyright` element to format

### Description

This template outputs copyright information from a `copyright` elements. It assembles the `year` and `holder` elements into a simple copyright notice, beginning with the copyright symbol "©".

`db.linenumbering`

Numbers each line in a verbatim environment

### Parameters

`node`

- The verbatim element to create the line numbering for

`number`

- The starting line number

### Description

This template outputs a string with line numbers for each line in a verbatim elements. Each line number is on its own line, allowing the output string to be placed to the side of the verbatim output.

`db.linenumbering.start`

Determines the starting line number for a verbatim element

### Parameters

`node`

- The verbatim element to determine the starting line number for

### Description

This template determines the starting line number for a verbatim element using the `continuation` attribute. The template finds the first preceding element of the same name, counts its lines, and handles any `startinglinenumber` or `continuation` element it finds on that element.

`db.orderedlist.start`

Determines the number to use for the first `listitem` in an `orderedlist`

### Parameters

`node`

- The `orderedlist` element to use

### Description

This template determines the starting number for an `orderedlist` element using the `continuation` attribute. Thi template finds the first preceding `orderedlist` element and counts its list items. If that element also uses the `continuation`, this template calls itself recursively to add that element's starting line number to its list item count.

`db.personname`

Outputs the name of a person

### Parameters

`node`

- The element containing tags such as `firstname` and `surname`

`lang`

- The language rules to use to construct the name

### Description

This template outputs the name of a person as modelled by the `personname` element. The `personname` element allows authors to mark up components of a person's name, such as the person's first name and surname. This template assembles those into a string.

`db.personname.list`

Outputs a list of people's names

### Parameters

`nodes`

- The elements containing tags such as `firstname` and `surname`

`lang`

- The language rules to use to construct the list of names

### Description

This template outputs a list of names of people as modelled by the `personname` element. The `personname` element allows authors to mark up components of a person's name, such as the person's first name and surname. This template makes a list formatted according to the locale set in `lang` and calls the template `db.personname` for each element in `nodes`.