NAME

Pod::Knit - Stitches together POD documentation

VERSION

version 0.0.1

SYNOPSIS

my $knit = Pod::Knit->new( config => {
    plugins => [
        'Abstract',
        'Version',
        { Sort => { order => [qw/ NAME * VERSION /] },
    ]
});

print $knit->munge_document( file => './lib/Pod/Knit.pm' )->as_string;

DESCRIPTION

Pod::Knit is a POD processor heavily inspired by Pod::Weaver. The main difference being that Pod::Weaver uses a Pod::Elemental DOM to represent and transform the POD document, whereas Pod::Knit uses representation of the document (the tags used in that representation are given in Pod::Knit::Document).

This module mostly take care of taking in the desired configuration, and transform POD documents based on it. For documentation of the system as a whole, peer at Pod::Knit::Manual.

attributes

config_file

Configuration file for the knit pipeline. Must be a YAML file.

E.g.:

--- stash: author: Yanick Champoux <yanick@cpan.org> plugins: - Abstract - Attributes - Methods - NamedSections: sections: - synopsis - description - Version - Authors - Legal - Sort: order: - NAME - VERSION - SYNOPSIS - DESCRIPTION - ATTRIBUTES - METHODS - '*' - AUTHORS - AUTHOR - COPYRIGHT AND LICENSE

./knit.yml if the file exists.

config

Hashref of the configuration for the knit pipeline.

The configuration recognizes two keys: stash, which value is a hashref of configuration elements to pass to the plugins, and plugins, the arrayref of plugins and (optionally) their arguments. See config_file for an example.

the content of the config_file, if it exists.

stash

Hashref of values accessible to the knit pipeline. Can be used to set values required by various plugins, like the distribution's version, the list of authors, etc.

the stash value of the config attribute, if presents. Else an empty hashref.

methods

munge_document

my $doc = $knit->munge_document( %args )

my $doc = $knit->munge_document( $original )

Takes a Pod::Knit::Document and returns a new document munged by the plugins.

If the input is %args, it is a shortcut for

my $doc = $knit->munge_document( 
    Pod::Knit::Document->new( knit => $knit, %args )
);

AUTHOR

Yanick Champoux <yanick@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

Full text of the license can be found in the LICENSE file included in this distribution.