Provided by: libbiblio-endnotestyle-perl_0.06-2_all bug

NAME

       Biblio::EndnoteStyle - reference formatting using Endnote-like templates

SYNOPSIS

        use Biblio::EndnoteStyle;
        $style = new Biblio::EndnoteStyle();
        ($text, $errmsg) = $style->format($template, \%fields);

DESCRIPTION

       This small module provides a way of formatting bibliographic references using style
       templates similar to those used by the popular reference management software Endnote
       (http://www.endnote.com/).  The API is embarrassingly simple: a formatter object is made
       using the class's constructor, the "new()" method; "format()" may then be repeatedly
       called on this object, using the same or different templates.

       (The sole purpose of the object is to cache compiled templates so that multiple "format()"
       invocations are more efficient than they would otherwise be.  Apart from that, the API
       might just as well have been a single function.)

METHODS

   new()
        $style = new Biblio::EndnoteStyle();

       Creates a new formatter object.  Takes no arguments.

   debug()
        $olddebug = $style->debug(1);

       Turns debugging on or off and returns the old debugging status.  If an argument is
       provided, then debugging is turned either on or off according to whether then argument is
       true or false.  In any case, the old value of the debugging status is returned, so that a
       call with no argument is a side-effect-free inquiry.

       When debugging is turned on, compiled templates are dumped to standard error.  It is not
       pretty.

   format()
        ($text, $errmsg) = $style->format($template, \%fields);

       Formats a reference, consisting of a hash of fields, according to an Endnote-like
       template.  The template is a string essentially the same as those used in Endnote, as
       documented in the Endnote X User Guide at
       http://www.endnote.com/support/helpdocs/EndNoteXWinManual.pdf pages 390ff.  In particular,
       pages 415-210 have details of the recipe format.  Because the templates used in this
       module are plain text, a few special characters are used:

       ¬   Link adjacent words.  This is the "non-breaking space" described on page 418 of the
           EndNote X

       |   Forced Separation of elements that would otherwise be dependent.

       ^   Separator for singular/plural aternatives.

       `   Used to prevent literal text from being interpreted as a fieldname.

       The hash of fields is passed by reference: keys are fieldnames, and the corresponding
       values are the data.  PLEASE NOTE AN IMPORTANT DIFFERENCE.  Keys that do not appear in the
       hash at all are not considered to be fields, so that if they appear in the template, they
       will be interpreted as literal text; keys that appear in the hash but whose values are
       undefined or empty are considered to be fields with no value, and will be formatted as
       empty with dependent text omitted.  So for example:

        $style->format(";Author: ", { Author => "Taylor" }) eq ":Taylor: "
        $style->format(";Author: ", { Author => "" }) eq ";"
        $style->format(";Author: ", { xAuthor => "" }) eq ";Author: "

       "format()" returns two values: the formatted reference and an error-message.  The error
       message is defined if and only if the formatted reference is not.

AUTHOR

       Mike Taylor, <mike@miketaylor.org.uk>

COPYRIGHT AND LICENCE

       Copyright (C) 2007 by Mike Taylor.

       This library is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of
       Perl 5 you may have available.