-
Notifications
You must be signed in to change notification settings - Fork 11
/
README
177 lines (128 loc) · 6.77 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
podlators v6.0.2
(format POD source into various output formats)
Maintained by Russ Allbery <[email protected]>
Copyright 1999-2024 Russ Allbery <[email protected]>. This software is
distributed under the same terms as Perl itself. Please see the section
LICENSE below for more information.
BLURB
podlators contains Pod::Man and Pod::Text modules which convert POD
input to *roff source output, suitable for man pages, or plain text. It
also includes several subclasses of Pod::Text for formatted output to
terminals with various capabilities. It is the source package for the
Pod::Man and Pod::Text modules included with Perl.
DESCRIPTION
POD is the Plain Old Documentation format, the documentation language
used for all of Perl's documentation. I learned it to document Perl
modules, started using it for Perl scripts as well, and discovered it
was the most convenient way I've found to write program documentation.
It's extremely simple, well-designed for writing Unix manual pages (and
I'm a traditionalist who thinks that any program should have a regular
manual page), and easily readable in the raw format by humans.
The translators into text and nroff (for manual pages) included in the
Perl distribution had various bugs, however, and used their own ad hoc
parsers, so when I started running into those bugs and when a new
generic parser (Pod::Parser) was written, I decided to rewrite the two
translators that I use the most and fix the bugs that were bothering me.
This package is the result.
podlators contains two main modules, Pod::Man and Pod::Text. The former
converts POD into nroff/troff source and the latter into plain text
(with various options controlling some of the formatting). There are
also several subclasses of Pod::Text for generating slightly formatted
text using color or other terminal control escapes, and a general
utility module, Pod::ParseLink, for parsing the POD L<> formatting
sequences. Also included in this package are the pod2text and pod2man
driver scripts.
Both Pod::Text and Pod::Man provide a variety of options for fine-tuning
their output. Pod::Man also tries to massage input text where
appropriate to produce better output when run through nroff or troff,
such as distinguishing between different types of hyphens.
As of Perl 5.6.0, my implementation was included in Perl core, and each
release of Perl will have the at-the-time most current version of
podlators included. You therefore only need to install this package
yourself if you need a newer version than came with Perl (to get some
bug fixes, for example).
REQUIREMENTS
This module requires Perl 5.12 or later and Pod::Simple 3.26 or later.
(Pod::Simple 3.26 was included in Perl 5.17.10.)
The troff/nroff generated by Pod::Man should be compatible with any
troff or nroff implementation with the -man macro set, including mandoc.
It is primarily tested by me under GNU groff, but Perl users send bug
reports for a wide variety of implementations and Pod::Man is used to
generate all of Perl's own manual pages, so hopefully most of the bugs
have been weeded out.
BUILDING AND INSTALLATION
podlators uses ExtUtils::MakeMaker and can be installed using the same
process as any other ExtUtils::MakeMaker module:
perl Makefile.PL
make
make install
You will have to run the last command as root unless you're installing
into a local Perl module tree in your home directory.
TESTING
podlators comes with a test suite, which you can run after building
with:
make test
If a test fails, you can run a single test with verbose output via:
prove -vb <path-to-test>
The following additional Perl modules will be used by the test suite if
present:
* Test::CPAN::Changes (part of CPAN-Changes)
* Test::Kwalitee
* Test::MinimumVersion
* Test::Perl::Critic
* Test::Pod
* Test::Spelling
* Test::Strict
* Test::Synopsis
All are available on CPAN. Those tests will be skipped if the modules
are not available.
To enable tests that don't detect functionality problems but are used to
sanity-check the release, set the environment variable RELEASE_TESTING
to a true value. To enable tests that may be sensitive to the local
environment or that produce a lot of false positives without uncovering
many problems, set the environment variable AUTHOR_TESTING to a true
value.
SUPPORT
The podlators web page at:
https://www.eyrie.org/~eagle/software/podlators/
will always have the current version of this package, the current
documentation, and pointers to any additional resources.
New podlators releases are announced on the pod-people mailing list. To
subscribe or see the list archives, go to:
https://lists.perl.org/list/pod-people.html
For bug tracking, use the issue tracker on GitHub:
https://github.com/rra/podlators/issues
Please be aware that I tend to be extremely busy and work projects often
take priority. I'll save your report and get to it as soon as I can,
but it may take me a couple of months.
SOURCE REPOSITORY
podlators is maintained using Git. You can access the current source on
GitHub at:
https://github.com/rra/podlators
or by cloning the repository at:
https://git.eyrie.org/git/perl/podlators.git
or view the repository via the web at:
https://git.eyrie.org/?p=perl/podlators.git
The eyrie.org repository is the canonical one, maintained by the author,
but using GitHub is probably more convenient for most purposes. Pull
requests are gratefully reviewed and normally accepted.
LICENSE
The podlators package as a whole is covered by the following copyright
statement and license:
Copyright 1999-2024 Russ Allbery <[email protected]>
This program is free software; you may redistribute it and/or modify
it under the same terms as Perl itself. This means that you may
choose between the two licenses that Perl is released under: the GNU
GPL and the Artistic License. Please see your Perl distribution for
the details and copies of the licenses.
Some files in this distribution are individually released under
different licenses, all of which are compatible with the above general
package license but which may require preservation of additional
notices. All required notices, and detailed information about the
licensing of each file, are recorded in the LICENSE file.
Files covered by a license with an assigned SPDX License Identifier
include SPDX-License-Identifier tags to enable automated processing of
license information. See https://spdx.org/licenses/ for more
information.
For any copyright range specified by files in this package as YYYY-ZZZZ,
the range specifies every single year in that closed interval.