bionic (3) Pandoc.3pm.gz

Provided by: libpandoc-wrapper-perl_0.6.1-1_all bug

NAME

       Pandoc - wrapper for the mighty Pandoc document converter

SYNOPSIS

         use Pandoc;             # check at first use
         use Pandoc 1.12;        # check at compile time
         Pandoc->require(1.12);  # check at run time

         # execute pandoc
         pandoc 'input.md', -o => 'output.html';
         pandoc -f => 'html', -t => 'markdown', { in => \$html, out => \$md };

         # alternative syntaxes
         pandoc->run('input.md', -o => 'output.html');
         pandoc [ -f => 'html', -t => 'markdown' ], in => \$html, out => \$md;
         pandoc [ -f => 'html', -t => 'markdown' ], { in => \$html, out => \$md };

         # check executable
         pandoc or die "pandoc executable not found";

         # check minimum version
         pandoc->version > 1.12 or die "pandoc >= 1.12 required";

         # access properties
         say pandoc->bin." ".pandoc->version;
         say "Default user data directory: ".pandoc->data_dir;
         say "Compiled with: ".join(", ", keys %{ pandoc->libs });
         say pandoc->libs->{'highlighting-kate'};

         # create a new instance with default arguments
         my $md2latex = Pandoc->new(qw(-f markdown -t latex --smart));
         $md2latex->run({ in => \$markdown, out => \$latex });

         # set default arguments on compile time
         use Pandoc qw(-t latex);
         use Pandoc qw(/usr/bin/pandoc --smart);
         use Pandoc qw(1.16 --smart);

         # utility method to convert from string
         $latex = pandoc->convert( 'markdown' => 'latex', '*hello*' );

         # utility methods to parse abstract syntax tree (requires Pandoc::Elements)
         $doc = pandoc->parse( markdown => '*hello* **world!**' );
         $doc = pandoc->file( 'example.md' );
         $doc = pandoc->file;  # read Markdown from STDIN

DESCRIPTION

       This module provides a Perl wrapper for John MacFarlane's Pandoc <http://pandoc.org> document converter.

   IMPORTING
       The utility function pandoc is exported, unless the module is imported with an empty list ("use Pandoc
       ();").

       Importing this module with a version number or a more complex version requirenment (e.g. "use Pandoc
       1.13;" or "use Pandoc '>= 1.6, !=1.7") will check version number of pandoc executable instead of version
       number of this module (see $Pandoc::VERSION for the latter). Additional import arguments can be passed to
       set the executable location and default arguments of the global Pandoc instance used by function pandoc.

FUNCTIONS

   pandoc
       If called without parameters, this function returns a global instance of class Pandoc to execute methods,
       or "undef" if no pandoc executable was found. The location and/or name of pandoc executable can be set
       with environment variable "PANDOC_PATH" (set to the string "pandoc" by default).

   pandoc( ... )
       If called with parameters, this functions runs the pandoc executable configured at the global instance of
       class Pandoc ("pandoc->bin"). Arguments are passed as command line arguments and options control input,
       output, and error stream as described below. Returns 0 on success.  Otherwise returns the the exit code
       of pandoc executable or "-1" if execution failed.  Arguments and options can be passed as plain
       array/hash or as (possibly empty) reference in the following ways:

         pandoc @arguments, \%options;     # ok
         pandoc \@arguments, %options;     # ok
         pandoc \@arguments, \%options;    # ok
         pandoc @arguments;                # ok, if first of @arguments starts with '-'
         pandoc %options;                  # ok, if %options is not empty

         pandoc @arguments, %options;      # not ok!

       Options

       in / out / err
           These options correspond to arguments $stdin, $stdout, and $stderr of IPC::Run3, see there for
           details.

       binmode_stdin / binmode_stdout / binmode_stderr
           These options correspond to the like-named options to IPC::Run3, see there for details.

       binmode
           If defined any binmode_stdin/binmode_stdout/binmode_stderr option which is undefined will be set to
           this value.

       return_if_system_error
           Set to true by default to return the exit code of pandoc executable.

       For convenience the "pandoc" function (after checking the "binmode" option) checks the contents of any
       scalar references passed to the in/out/err options with utf8::is_utf8() and sets the
       binmode_stdin/binmode_stdout/binmode_stderr options to ":encoding(UTF-8)" if the corresponding scalar is
       marked as UTF-8 and the respective option is undefined. Since all pandoc executable input/output must be
       UTF-8 encoded this is convenient if you run with use utf8, as you then don't need to set the binmode
       options at all (encode nor decode) when passing input/output scalar references.

METHODS

   new( [ $executable ] [, @arguments ] )
       Create a new instance of class Pandoc or throw an exception if no pandoc executable was found. The first
       argument, if given and not starting with "-", can be used to set the pandoc executable ("pandoc" by
       default). Additional arguments are passed to the executable on each run.

       Repeated use of this constructor with same arguments is not recommended because "pandoc --version" is
       called for every new instance.

   run( ... )
       Execute the pandoc executable with default arguments and optional additional arguments and options. See
       function pandoc for usage.

   convert( $from => $to, $input [, @arguments ] )
       Convert a string in format $from to format $to. Additional pandoc options such as "--smart" and
       "--standalone" can be passed. The result is returned in same utf8 mode ("utf8::is_unicode") as the input.
       To convert from file to string use method "pandoc"/"run" like this and set input/output format via
       standard pandoc arguments "-f" and "-t":

         pandoc->run( $filename, @arguments, { out => \$string } );

   parse( $from => $input [, @arguments ] )
       Parse a string in format $from to a Pandoc::Document object. Additional pandoc options such as "--smart"
       and "--normalize" can be passed. This method requires at least pandoc version 1.12.1 and the Perl module
       Pandoc::Elements.

       The reverse action is possible with method "to_pandoc" of Pandoc::Document.  Additional shortcut methods
       such as "to_html" are available:

         $html = pandoc->parse( 'markdown' => '# A *section*' )->to_html;

       Method "convert" should be preferred for simple conversions unless you want to modify or inspect the
       parsed document in between.

   file( [ $filename [, @arguments ] ] )
       Parse from a file (or STDIN) to a Pandoc::Document object. Additional pandoc options can be passed, for
       instance use HTML input format ("@arguments = qw(-f html)") instead of default markdown. This method
       requires at least pandoc version 1.12.1 and the Perl module Pandoc::Elements.

   require( $version_requirement )
       Return the Pandoc instance if its version number fulfills a given version requirement. Throw an error
       otherwise.  Can also be called as constructor: "Pandoc->require(...)" is equivalent to "pandoc->require"
       but throws a more meaningful error message if no pandoc executable was found.

   version( [ $version_requirement ] )
       Return the pandoc version as Pandoc::Version object.  If a version requirement is given, the method
       returns undef if the pandoc version does not fulfill this requirement.  To check whether pandoc is
       available with a given minimal version use one of:

         Pandoc->require( $minimum_version)                # true or die
         pandoc and pandoc->version( $minimum_version )    # true or false

   bin( [ $executable ] )
       Return or set the pandoc executable. Setting an new executable also updates version and data_dir by
       calling "pandoc --version".

   arguments( [ @arguments | \@arguments )
       Return or set a list of default arguments.

   data_dir
       Return the default data directory (only available since Pandoc 1.11).

   input_formats
       Return a list of supported input formats.

   output_formats
       Return a list of supported output formats.

   highlight_languages
       Return a list of programming languages which syntax highlighting is supported for (via Haskell library
       highlighting-kate).

   libs
       Return a hash mapping the names of Haskell libraries compiled into the pandoc executable to
       Pandoc::Version objects.

SEE ALSO

       See Pandoc::Elements for a Perl interface to the abstract syntax tree of Pandoc documents for more
       elaborate document processing.

       See Pandoc wrappers and interfaces <https://github.com/jgm/pandoc/wiki/Pandoc-wrappers-and-interfaces> in
       the Pandoc GitHub Wiki for a list of wrappers in other programming languages.

       Other Pandoc related but outdated modules at CPAN include Orze::Sources::Pandoc and App::PDoc.

AUTHOR

       Jakob Voss

CONTRIBUTORS

       Benct Philip Jonsson

LICENSE

       GNU General Public License, Version 2