../common/images/vh_36.pngVHIST 1.84.0
Docu Home

Viewing VHIST Files

Table of Contents

vhistzard allows you to view the contents of VHIST files, extract embedded files from the them as well as validate workflow steps and embedded files. The presentation of the file's content can be customised with the use of templates ("themes"). Each template is a html file containing some additional information in the form of html comments. Therefore, own templates can be created using any text editor or website creation tool.

unvhist-prelim_new-s.png

The outline on the left-hand side is used for navigation inside the VHIST file. Embedded files can be extracted or validated by right clicking on an entry. The green tickmarks or red crosses signalise the validity of a file or section. The textbrowser on the right shows detailed information about the individual sections and files inside the VHIST file.

Opening a VHIST File

To open a VHIST file, select "Open" from the "File" menu and navigate to the according file. Alternatively, just drag the file from you file manager (e.g. Explorer on Windows, the Finder on Mac OS X) onto the dialog. vhistzard will read the VHIST file and present you with an outline of its content as well as detailed information about the files and sections.

Navigating Inside a VHIST File

To navigate inside a VHIST file, you can either use the outline on the left-hand side of the dialog or scroll through the textual information on the right-hand side. To jump to one special section or file, double click on the entry in the outline.

Extracting Embedded Files

To extract one or several files from a VHIST file, select the files in the outline, right click on one of them and select "extract" in the context menu. In the following dialog, you can select a directory to store the files in,

Selecting a Template/Theme

You can use vhistzard to view the summary of your VHIST file by means of various templates ("themes"). Different templates show information in different granularties and present them in different ways. To select a template, click on the drop down list above the text viewer.

Searching in the Summary

To search for text in the summary, either click on the search icon above the text viewer or press Ctrl+F. Then enter the search term in the appearing text field. You can press Return or Shift+Return to jump to the next or previous search result, respectively.

Technical information on Templates/Themes

A template is a XHTML2 [1] file which can be viewed by any HTML browser. It usually contains keywords (e.g. $COMMENT) which will then be replaced by the corresponding content from the current VHIST file. See below for a list of keywords which will be available when the template is being read by vhistzard. User-defined attributes (workflow step) are prepended with $USR:: and converted to upper case, so for a key pair ("MyKey", "MyValue") the placeholder $USR::MYKEY will yield the value "MyValue". We strongly suggest to use the dump-all.htm template to generate a list of all available keywords for a give VHIST file before modifying a template. Keywords may contain alphanumerical characters, "_" and ":" (but not as the last character).

The template can provide additional information on how information from the VHIST file should be rendered in HTML (or PDF) which can depend on the existence or values of certain entries. In addition, it is possible to define blocks of arbitrary HTML commands and use them as building blocks if certain conditions are met. In order to remain HTML compatible, we use HTML/XML comments and evaluate them in our own parser.

For each section/workflow step of the VHIST file, the template will be processed with a set of keywords for that particular workflow step, so e.g. $SECTION will contain the current section's name. There are named blocks with reserved names: __top__ and __bottom_ are only evaluated once and __files__ is evaluated for each file (of each section/workflow step).

In order to provide maximum flexibility, you can access the properties of all files of a section from the template. Keywords such as $FILEPATH[3] are available which in this case will refer to the path of the third file of that section. If you write $FILEPATH[*] inside the files block, the "*" will match the current file's index.

Similiarities to the C/C++ preprocessor syntax are intended in the following list of commands for HTML/PDF generation:

  • #ifdef $KEYWORD - If $KEYWORD has a value (has been set in the VHIST file) the next HTML block will be used, otherwise it will be skipped.
  • #ifndef $KEYWORD - If $KEYWORD has a value (has been set in the VHIST file) the next HTML block will be skipped, otherwise it will be used.
  • #ifequal $KEYWORD value - If $KEYWORD is equal to value, the next HTML block will be used, otherwise it wll be skipped.
  • #else - May only be used in conjunction with one of the #if statements.
  • #begin(<name>) - Defines the start position of a named block.
  • #end(<name>) - Defines the end position of a named block.
  • #showblock(<name>) - Inserts a named block at this position.
  • #evenodd begin - Starts processing for $EVENODD keywords.
  • #evenodd end - Ends processing for $EVENODD keywords.

In the following example, the first and last line are HTML/XML comments which will be ignored by any HTML browser. When used in a template, the second line will only be used for rendering HTML/PDF output if the keyword $COMMENT has been set (which is the case if the current section/workflow step files contains a comment).

<!– #ifdef $COMMENT –>
Comment: $COMMENT<br/>
<!– #endif –>

The next example demonstrates how to set content differently for HTML and for PDF generation

<!– #ifndef $ISPDFGEN –>
 this will only appear in the HTML version
<!– #else –>
 this will only appear in the PDF file
<!– #endif –>

The following special keywords are available (in alphabetical order):

  • $EVENODD - Processing of $EVENODD is activated between occurances of #evenodd start and #evenodd end. The keyword will be replaced by the strings "odd" and "even", resp. These terms will be used in an alternating fashion, starting with "odd". This feature is generally useful when defining tables with rows that should have an alternating background color and it is required when the table's rows depend on some conditions which are not fully known when designing the table's layout. Template black-and-white.htm makes use of this feature.
  • $FILEHASUSRATTRIBUTES[*] - Will be set to "TRUE" if any User-defined attributes (files) have been defined for the workflow step, otherwise this keyword is undefined. User-defined attributes can be accessed with keywords of the form $USR::MYKEY[*].
  • $ISPDFGEN - Will be set to "TRUE" if content is generated for a PDF file, otherwise this keyword is undefined.
  • $ISFIRSTSECTION - Will be set to "TRUE" if the current section is the first section of the output (either HTML or PDF), otherwise this keyword is undefined.
  • $PREVIEWID[*] - Contains the ID of the current file's preview image if one was defined, see Pre-defined flags (files), otherwise this keyword is undefined.
  • $THUMBNAILID[*] - Contains the ID of the current file's thumbnail image if one was defined, see Pre-defined flags (files), otherwise this keyword is undefined.
  • $VHISTFILE - The file name (without the full path) of the selected VHIST file.
  • $VHISTFILESIZEINBYTES - The size of the selected VHIST file in Bytes.
  • $VHISTFILESIZEINMB - The size of the selected VHIST file in MB.
  • $VHISTFILELASTMODIFIED - The last-modified-date of the VHIST file.
  • $WSHASUSRATTRIBUTES - Will be set to "TRUE" if any User-defined attributes (workflow step) have been defined for the workflow step, otherwise this keyword is undefined. User-defined attributes can be accessed with keywords of the form $USR::MYKEY.
  • $WSPREVIEWID - Contains the ID of the section's preview image if one was defined, see Pre-defined flags (files), otherwise this keyword is undefined.

Footnotes:

[1]

World Wide Web Consortium, XHTML2 Working Group Home Page. URL http://www.w3.org/MarkUp/

(C) 2005-2013 Max Planck Institute for Neurological Research Cologne, Germany