The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use App::XML::DocBook::Docmake;

my $docmake = App::XML::DocBook::Docmake->new({argv => [@ARGV]});

exit($docmake->run());

__END__

=head1 NAME

docmake - a tool to render DocBook/XML into various output formats.

=head1 SYNOPSIS

    # To render input.xml file into XHTML
    docmake -o output.xhtml xhtml input.xml

    # Same with more verbose output
    docmake -v -o output.xhtml xhtml input.xml

    # Render into pdf
    docmake -v -o output.pdf pdf input.xml

    # Same while not rebuilding if not necessary
    docmake -v --make -o output.pdf pdf input.xml

    # Render using a Stylesheet
    docmake -v -o output.xhtml -x my-stylesheets.xsl xhtml input.xml

=head1 DESCRIPTION

B<docmake> is a tool to render DocBook/XML into its resultant formats
using XSLT: XHTML, XSL-FO, PDF, RTF, etc. For a brief help type
C<docmake help> .

It aims to be a replacement for xmlto -
L<http://cyberelk.net/tim/software/xmlto/> . As opposed to xmlto,
it is written in Perl, which is easier to get right than xmlto's Bash, and
xmlto hasn't been updated for a long time when I started work on docmake.

=head1 USAGE

The basic invocation of docmake is:

    docmake [flags] MODE input.xml

=head2 MODES

The available modes are:

=over 4

=item * help

To get help.

=item * fo

Convert to XSL-FO.

=item * rtf

Convert to Word/RTF.

=item * xhtml

Convert to XHTML.

=item * pdf

Convert to PDF.

=back

=head2 FLAGS

The available flags are:

=over 4

=item * -h ; --help

Display some rudimentary help.

=item * --man

Display the man page.

=item * -v ; --verbose

Verbose - output the commands' invocation as they are executed.

=item * -o OUTPUT_PATH

Put the result in B<OUTPUT_PATH> .

=item * -x STYLESHEET ; --stylesheet STYLESHEET

Use the XSLT stylesheet B<STYLESHEET> for performing XSLT transformations.

=item * --basepath PATH

This is the base path for the DocBook stylesheets. The appropriate XSLT mode
will be appended to it. This is for example, useful for building DocBook 5
documents by specifying the path to their stylesheets.

=item * --stringparam KEY=VALUE

Specify the string parameter of B<KEY> as B<VALUE>. Note that as opposed to
xsltproc, B<KEY> and B<VALUE> cannot be specified as different command line
arguments, but rather should be on the same one, delimited by an equal sign ("C<=>").

=item * --make

Behave like make in building files only if their dependencies are newer.

=back

=head2 EXAMPLES

There are some examples for sample invocation in the Synopsis.


=head1 SUPPORT

You can look for information at:

=over 4

=item * Search CPAN

L<http://search.cpan.org/dist/App-XML-DocBook-Docmake/>

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/App::XML::DocBook::Docmake>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/App::XML::DocBook::Docmake>

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=App::XML::DocBook::Docmake>

=back

=head1 SEE ALSO

=over 4

=item * DocBook on the Wikipedia - L<http://en.wikipedia.org/wiki/DocBook>

=item * DocBook/XSL - The Complete Guide - L<http://www.sagehill.net/docbookxsl/>

=item * The DocBook Homepage - L<http://www.docbook.org/>

=item * xmlto - L<http://cyberelk.net/tim/software/xmlto/>

=back

=head1 COPYRIGHT & LICENSE

Copyright 2008 Shlomi Fish, all rights reserved.

This program is released under the following license: MIT/X11 License.
( L<http://www.opensource.org/licenses/mit-license.php> ).

=head1 AUTHOR

Shlomi Fish , L<http://www.shlomifish.org/> .

=cut