Provided by: libpandoc-elements-perl_0.38-1_all bug


       Pandoc::Metadata - pandoc document metadata


       Document metadata such as author, title, and date can be embedded in different documents
       formats. Metadata can be provided in Pandoc markdown format with metadata blocks
       <> at the top of a markdown file or in YAML
       format like this:

         title: a title
           - first author
           - second author
         published: true

       Pandoc supports document metadata build of strings ("MetaString"), boolean values
       ("MetaBool"), lists ("MetaList"), key-value maps ("MetaMap"), lists of inline elements
       ("MetaInlines") and lists of block elements ("MetaBlocks"). Simple strings and boolean
       values can also be specified via pandoc command line option "-M" or "--metadata":

         pandoc -M key=string
         pandoc -M key=false
         pandoc -M key=true
         pandoc -M key

       Perl module Pandoc::Elements exports functions to construct metadata elements in the
       internal document model and the general helper function "metadata".


       All Metadata Elements support common element methods ("name", "to_json", "string", ...)
       and return true for method "is_meta".

   value( [ $key | $pointer ] [ %options ] )
       Called without an argument this method returns an unblessed deep copy of the metadata
       element. Plain keys at the root level (unless they start with "/") and JSON Pointer
       expressions (RFC 6901 <>) can be used to select
       subfields.  Note that JSON Pointer escapes slash as "~1" and character "~" as "~0". URI
       Fragment syntax is not supported.

         $doc->value;                   # full metadata
         $doc->value("");               # full metadata, explicitly
         $doc->value('/author');        # author field
         $doc->value('author');         # author field, plain key
         $doc->value('/author/name');   # name subfield of author field
         $doc->value('/author/0');      # first author field
         $doc->value('/author/0/name'); # name subfield of first author field
         $doc->value('/~1~0');          # metadata field '/~'
         $doc->value('/');              # field with empty string as key

       Returns "undef" if the selected field does not exist.

       As a debugging aid you can set option "strict" to a true value.  In this case the method
       will "croak" if an invalid pointer, invalid array index, non-existing key or non-existing
       array index is encountered.

       Instances of MetaInlines and MetaBlocks are stringified by unless option "element" is set
       to "keep".

       Setting option "boolean" to "JSON::PP" will return "JSON::PP:true" or "JSON::PP::false"
       for MetaBool instances.


       A plain text string metadata value.

           MetaString $string
           metadata "$string"

       A Boolean metadata value. The special values "false" and "FALSE" are recognized as false
       in addition to normal false values (0, "undef", "", ...).

           MetaBool $value
           metadata JSON::true()
           metadata JSON::false()

       A list of other metadata elements.

           MetaList [ @values ]
           metadata [ @values ]

       A map of keys to other metadata elements.

           MetaMap { %map }
           metadata { %map }

       Container for a list of inlines in metadata.

           MetaInlines [ @inlines ]

       Container for a list of blocks in metadata.

           MetaBlocks [ @blocks ]

       The "string" method concatenates all stringified content blocks separated by empty lines.