1Pod::Weaver(3) User Contributed Perl Documentation Pod::Weaver(3)
2
3
4
6 Pod::Weaver - weave together a Pod document from an outline
7
9 version 4.018
10
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
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
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
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
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
84 Ricardo SIGNES <rjbs@semiotic.systems>
85
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)