How to format the output of your collection - GreenstoneWiki

greenstone.org
greenstone wiki
greenstone trac
planet greenstone

# How to format the output of your collection

### From GreenstoneWiki

The full list of formatting options is shown here. But for more information about how to use these options, the developer's guide is the place to go.

## Site-wide formatting options

These should be placed in `gsdl/etc/main.cfg`.

Syntax: SiteFormat <option-name> <option-value>

Item | Description
HomePageCols int | Set the number of columns used to display collections on the home page. Default: 3
HomePageType pulldown | Display the collection list on the home page as a pulldown menu, rather than using the default table of collection images. This alters the html that appears in the dynamically generated _homeextra_ macro. You can then move this macro around in home.dm. Default: not set

## Collection-specific formatting options

These should be placed in gsdl/collect/<collname>/etc/collect.cfg.

Syntax: format <option-name> <option-value>

Item | Description
DocumentImages true/false | If true, display a cover image at the top left of the document page Default: false
DocumentTitles true/false | If DocumentImages is false, and this is true, use DocumentHeading to display the title. Default: true
DocumentHeading formatstring | This is used for a document heading at the top left if DocumentImages is false and DocumentTitles is true. Default: `{Or}{[parent(Top):Title],[Title],untitled} <br>[Title]`
DocumentContents true/false | Display table of contents (if document is hierarchical), or next/previous section arrows and "page k of n" text (if document is paged) Default: true
DocumentButtons string | . Default: "Detach|Highlight"
DocumentText formatstring | Format of the text to be displayed on a document page Default: `<center> <table width=537> <tr><td>[Text]</td></tr> </table> </center>`
DocumentArrowsTop true/false | Display next/previous section arrows at top of document, underneath the navigation bar, on document page Default: false
DocumentArrowsBottom true/false | Display next/previous section arrows at bottom of document page Default: true
DocumentSearchResultLinks true/false | Display next search result link /previous search result link at top of a document page Default: false
DocumentUseHTML true/false | If true, each document is displayed in a separate frame. The Preferences page will also change slightly, adding options applicable to a collection of HTML documents. Default: false
NavigationBar pulldown | If set, provides a drop down list in place of the usual navigation bar (that contains search and classifier options). This alters the html that appears in the dynamically generated `_navigationbar_ macro`. Default: not set
AllowExtendedOptions true/false | This allows the entire content of the document page to be controlled by format statements. Use DocumentHeading and DocumentText to format the document. This option prevents the other hard coded stuff (table of contents, buttons etc) from being output. It effectively disables the DocumentContents, DocumentButtons, DocumentImages format options. New format items are provided for use in format statements if AllowExtendedOptions is true (see table below) Default: false

## Formatting Lists

The standard use of format statements is for the lists in search results, classifiers etc. Here is a list of the various lists available for format, and what they control. Note that classifiers are numbered from 1 upwards, in the order that they appear in the config file.

Item | Description
VList | Applies to all vertical lists, unless overridden by a more specific format item. These include search results, classifier lists, and document table of contents
HList | Applies to all horizontal lists. Horizontal lists are often used in classifiers, particularly AZ[Compact][Section]Lists
DateList | Applies to all date lists - these are the vertical lists generated by a DateList classifier.
SearchVList | The vertical list of search results
DocumentVList | The document table of contents
CL1VList | Applies only to the vertical list of classifier 1
CL1HList | Applies only to the horizontal list of classifier 1
CL1DateList | Applies only to the DateList in classifier 1

## Formatstring items

Item | Description
[link][/link] | Link to the document (Greenstone version)
[href] | The href of the link to the document (Greenstone version), without the <a> tag
[srclink][/srclink] | Link to the original document (only if the original was converted to another form)
[icon] | An appropriate icon for a classifier/document node. E.g. bookshelf, book, chapter, page
[srcicon] | An appropriate icon for the original source document. E.g. Word, PDF, PS icon.
[num] | The document number (position in the search results - useful for debugging)
[numleafdocs] | The number of documents below the current classifier node. This is often used as a test for classifier nodes, as numleafdocs will not be set for documents. This allows different formatting for classifier nodes and document nodes in a hierarchy.
[Text] | The text of the current section
[RelatedDocuments] | Related Documents info (if available). This is a vertical list of Titles (or Subjects if Titles aren't available) that link to the related documents. It is based on "relation" metadata, which is a space separated list of collection,OID pairs.
[highlight][/highlight] | These are used for 'highlighting' (actually bolding) the selected section in a hierarchical table of contents, and the selected node in a classifier. Apart from those two cases, this has no effect. If you actually want to highlight/bold/italicise something in a list, and have it apply to all items in the list, then either use actual html tags, like <b></b>, <u></u> and <i></i>, or use the `_starthighlight_` and `_endhighlight_` macros (defined in macros/base.dm).
[Summary] | Displays Summary metadata if available, otherwise displays a short summary created on the fly.
[DocOID] | The internal identifier of the current section of the document
[DocTopOID] | The (top level) internal identifier of the current document (available 2.72)
[DocRank] | The rank of the current document - used in search results
[DocImage] | The URL to the cover image of the document
[collection] | The directory name of the collection this document is from - useful in cross-collection searching. (version 2.61)
[collection:meta-name] | A collection metadata for the collection this document is from - useful in cross-collection searching. E.g. [collection:collectionname]. This will display in the current language if an appropriate version is available. (version 2.61)
[metadata-name] | The value of this metadata element for the document

## Extended metadata names

There are a few options for displaying metadata. The basic way is to specify e.g. [Title] or [dc.Title]: this displays the value of that particular metadata element for the current document/section. Metadata names can be prefixed by parent: or sibling. The following examples all use Title or Subject metadata, but any metadata could be used, including ones with namespaces (e.g. dc.Title). Any metadata name can also be prefixed by "cgisafe:". This results in the value being formatted so that it is safe to put in a URL.

Item | Description
[parent:Title] | The Title of the immediate parent section
[parent(Top):Title] | The Title of the topmost parent section
[parent(All):Title] | All Titles of the parent sections, separated by nothing
[parent(All': '):Title] | All Titles of the parent sections, separated by ": " (or whatever appears inside the ' ')
[child:Subject] | The Subjects of all child nodes of the current node, separated by ' '. (child modifier avilable from version 2.61)
[child(All'xxx'):Subject] | The Subjects of all child nodes of the current node, separated by xxx
[child(2):Subject] | The Subject of the second child of the current node. Child numbering starts from 1.
[child(last):Subject] | The Subject of the last child of the current node. 'first' is also a valid option.
[sibling:Subject] | All Subjects of the current section, separated by " ". This is used for displaying metadata where there is more than one value. [Subject] will just display the first value.
[sibling(All'<br>'):Subject] | All Subjects of the current section, separated by <br>.
[sibling(2):Subject] | The second Subject metadata value for the current node. Numbering starts from 1.
[sibling(last):Subject] | The last Subject metadata value for the current node. 'first' is also a valid option.
[parent:sibling:Subject] | sibling can be combined with parent to give all (or specific) values for the parent node(s). All parent and sibling qualifiers can be used. (since version 2.61)
[child:sibling:Subject] | sibling can be combined with child to give all (or specific) values for the child node(s). All parent and child qualifiers can be used. (since version 2.61)
[cgisafe:parent(Top):Title] | The Title of the topmost parent section, made safe for URLs.
[cgisafe:sibling(All'<br>'):Subject] | All Subjects of the current section, separated by <br>, made safe for URLs.
[format:Date] | A nicely formatted version of Date metadata. format: can also be used with Language metadata (since version 2.71)

## Extended Formatstring items

These items are only available if AllowExtendedOptions is true.

Item | Description
[DocumentButtonDetach] | The Detach button
[DocumentButtonHighlight] | The Highlight button
[DocumentButtonExpandText] | The Expand Text button
[DocumentButtonExpandContents] | The Expand Contents button
[DocTOC] | The table of contents for a hierarchical document, or the next/previous and go to page x bits for a paged document.

## Conditional expressions in formatstrings

Item | Description
{If}{[metadata], action-if-non-null, action-if null} | If there is a value for this metadata element, then output the first clause, otherwise output the second clause. Either clause is optional: if empty, nothing will be done for that case.This is useful for displaying classifier nodes differently to document nodes: {If}{[numleafdocs],format for classifier,format for document}
{If}{[metadata] op value, action-if-true, action-if-not-true} | Can do tests on metadata values. These can be string comparisons, or numeric comparisons. Valid operators are:
String | Numeric | Meaning
eq | == | equals
ne | != | not equals
gt | > | greater than
ge | >= | greater than or equal to
lt | < | less than
le | <= | less than or equal to
sw |  | starts with | ew |  | ends with
Note that only eq and ne are available for Greenstone versions 2.60 and earlier.
{Or}{[metadata], [metadata2], [metadata3]...} | Each metadata is evaluated in turn, and the first one that exists is output Useful for cases where there are different namespaced version of the same metadata, e.g. {Or}{[dc.Title],[dls.Title],[Title],Untitled}. The last item can be plain text.
nested If/Or | {Or} can have another conditional as its final option, eg {Or}{[BookTitle],[Title],{If}{[XXX],aaa,bbb} }. The following is not valid: {Or}{[BookTitle],[Title]{If}{[XXX],aaa,bbb} }. {If} can have nested conditionals at either true/false option. eg. {If}{[numleafdocs],[Title],[BookTitle]{If}{[Subject],[Subject],unclassified} }

Retrieved from "http://greenstonewiki.cs.waikato.ac.nz/wiki/index.php/How_to_format_the_output_of_your_collection"

##### Views

- Article
- Discussion
- View source
- History

##### Personal tools

- Go to greenstone.org
- Log in
- Create an account

##### Search

##### Toolbox

- What links here
- Related changes
- Upload file
- Special pages
- Printable version