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.018
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 SUPPORT

31       This module has the same support period as perl itself:  it supports
32       the two most recent versions of perl.  (That is, if the most recently
33       released version is v5.40, then this module should work on both v5.40
34       and v5.38.)
35
36       Although it may work on older versions of perl, no guarantee is made
37       that the minimum required version will not be increased.  The version
38       may be increased for any reason, and there is no promise that patches
39       will be accepted to lower the minimum required perl.
40

ATTRIBUTES

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

METHODS

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

AUTHOR

84       Ricardo SIGNES <rjbs@semiotic.systems>
85

CONTRIBUTORS

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