1Pod::Weaver(3)        User Contributed Perl Documentation       Pod::Weaver(3)
2
3
4

NAME

6       Pod::Weaver - weave together a Pod document from an outline
7

VERSION

9       version 4.019
10

SYNOPSIS

12         my $weaver = Pod::Weaver->new_with_default_config;
13
14         my $document = $weaver->weave_document({
15           pod_document => $pod_elemental_document,
16           ppi_document => $ppi_document,
17
18           license  => $software_license,
19           version  => $version_string,
20           authors  => \@author_names,
21         })
22

DESCRIPTION

24       Pod::Weaver is a system for building Pod documents from templates.  It
25       doesn't perform simple text substitution, but instead builds a
26       Pod::Elemental::Document.  Its plugins sketch out a series of sections
27       that will be produced based on an existing Pod document or other
28       provided information.
29

PERL VERSION

31       This module should work on any version of perl still receiving updates
32       from the Perl 5 Porters.  This means it should work on any version of
33       perl released in the last two to three years.  (That is, if the most
34       recently released version is v5.40, then this module should work on
35       both v5.40 and v5.38.)
36
37       Although it may work on older versions of perl, no guarantee is made
38       that the minimum required version will not be increased.  The version
39       may be increased for any reason, and there is no promise that patches
40       will be accepted to lower the minimum required perl.
41

ATTRIBUTES

43   logger
44       This attribute stores the logger, which must provide a log method.  The
45       weaver's log method delegates to the logger's log method.
46
47   plugins
48       This attribute is an arrayref of objects that can perform the
49       Pod::Weaver::Role::Plugin role.  In general, its contents are found
50       through the "plugins_with" method.
51

METHODS

53   plugins_with
54         my $plugins_array_ref = $weaver->plugins_with('-Section');
55
56       This method will return an arrayref of plugins that perform the given
57       role, in the order of their registration.  If the role name begins with
58       a hyphen, the method will prepend "Pod::Weaver::Role::".
59
60   weave_document
61         my $document = $weaver->weave_document(\%input);
62
63       This is the most important method in Pod::Weaver.  Given a set of input
64       parameters, it will weave a new document.  Different section plugins
65       will expect different input parameters to be present, but some common
66       ones include:
67
68         pod_document - a Pod::Elemental::Document for the original Pod document
69         ppi_document - a PPI document for the source of the module being documented
70         license      - a Software::License object for the source module's license
71         version      - a version (string) to use in produced documentation
72
73       The "pod_document" should have gone through a Pod5 transformer, and
74       should probably have had its "=head1" elements nested.
75
76       The method will return a new Pod::Elemental::Document.  The input
77       documents may be destructively altered during the weaving process.  If
78       they should be untouched, pass in copies.
79
80   new_with_default_config
81       This method returns a new Pod::Weaver with a stock configuration by
82       using only Pod::Weaver::PluginBundle::Default.
83

AUTHOR

85       Ricardo SIGNES <cpan@semiotic.systems>
86

CONTRIBUTORS

88       •   Alex Peters <lxp@cpan.org>
89
90       •   Apocalypse <perl@0ne.us>
91
92       •   Blabos de Blebe <blabos@cpan.org>
93
94       •   Caleb Cushing <xenoterracide@gmail.com>
95
96       •   Christian Walde <walde.christian@googlemail.com>
97
98       •   Christopher J. Madsen <perl@cjmweb.net>
99
100       •   Chris Weyl <cweyl@alumni.drew.edu>
101
102       •   Dave Houston <dave.houston@gmail.com>
103
104       •   Dave Rolsky <autarch@urth.org>
105
106       •   David E. Wheeler <david@justatheory.com>
107
108       •   David Golden <dagolden@cpan.org>
109
110       •   David Miguel Susano Pinto <carandraug+dev@gmail.com>
111
112       •   David Zurborg <post@david-zurb.org>
113
114       •   Doug Bell <doug@preaction.me>
115
116       •   Florian Ragwitz <rafl@debian.org>
117
118       •   Jonathan "Duke" Leto <jonathan@leto.net>
119
120       •   Joshua Keroes <joshua.keroes@integratelecom.com>
121
122       •   Karen Etheridge <ether@cpan.org>
123
124       •   Kent Fredric <kentfredric@gmail.com>
125
126       •   Kivanc Yazan <kyzn@cpan.org>
127
128       •   Marcel Gruenauer <hanekomu@gmail.com>
129
130       •   Randy Stauner <randy@magnificent-tears.com>
131
132       •   Ricardo Signes <rjbs@semiotic.systems>
133
134       •   Sam Graham <git@illusori.co.uk>
135
136       •   Shlomi Fish <shlomif@shlomifish.org>
137
139       This software is copyright (c) 2023 by Ricardo SIGNES.
140
141       This is free software; you can redistribute it and/or modify it under
142       the same terms as the Perl 5 programming language system itself.
143
144
145
146perl v5.36.0                      2023-01-12                    Pod::Weaver(3)
Impressum