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.019
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 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
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
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
85 Ricardo SIGNES <cpan@semiotic.systems>
86
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)