Move Pod::Perldoc from ext/ to dist/
[perl.git] / dist / Pod-Perldoc / lib / Pod / Perldoc / ToNroff.pm
1
2 require 5;
3 package Pod::Perldoc::ToNroff;
4 use strict;
5 use warnings;
6
7 # This is unlike ToMan.pm in that it emits the raw nroff source!
8
9 use base qw(Pod::Perldoc::BaseTo);
10
11 sub is_pageable        { 1 }  # well, if you ask for it...
12 sub write_with_binmode { 0 }
13 sub output_extension   { 'man' }
14
15 use Pod::Man ();
16
17 sub center          { shift->_perldoc_elem('center'         , @_) }
18 sub date            { shift->_perldoc_elem('date'           , @_) }
19 sub fixed           { shift->_perldoc_elem('fixed'          , @_) }
20 sub fixedbold       { shift->_perldoc_elem('fixedbold'      , @_) }
21 sub fixeditalic     { shift->_perldoc_elem('fixeditalic'    , @_) }
22 sub fixedbolditalic { shift->_perldoc_elem('fixedbolditalic', @_) }
23 sub quotes          { shift->_perldoc_elem('quotes'         , @_) }
24 sub release         { shift->_perldoc_elem('release'        , @_) }
25 sub section         { shift->_perldoc_elem('section'        , @_) }
26
27 sub new { return bless {}, ref($_[0]) || $_[0] }
28
29 sub parse_from_file {
30   my $self = shift;
31   my $file = $_[0];
32   
33   my @options =
34     map {; $_, $self->{$_} }
35       grep !m/^_/s,
36         keys %$self
37   ;
38   
39   defined(&Pod::Perldoc::DEBUG)
40    and Pod::Perldoc::DEBUG()
41    and print "About to call new Pod::Man ",
42     $Pod::Man::VERSION ? "(v$Pod::Man::VERSION) " : '',
43     "with options: ",
44     @options ? "[@options]" : "(nil)", "\n";
45   ;
46
47   Pod::Man->new(@options)->parse_from_file(@_);
48 }
49
50 1;
51 __END__
52
53 =head1 NAME
54
55 Pod::Perldoc::ToNroff - let Perldoc convert Pod to nroff
56
57 =head1 SYNOPSIS
58
59   perldoc -o nroff -d something.3 Some::Modulename
60
61 =head1 DESCRIPTION
62
63 This is a "plug-in" class that allows Perldoc to use
64 Pod::Man as a formatter class.
65
66 The following options are supported:  center, date, fixed, fixedbold,
67 fixeditalic, fixedbolditalic, quotes, release, section
68
69 Those options are explained in L<Pod::Man>.
70
71 For example:
72
73   perldoc -o nroff -w center:Pod -d something.3 Some::Modulename
74
75 =head1 CAVEAT
76
77 This module may change to use a different pod-to-nroff formatter class
78 in the future, and this may change what options are supported.
79
80 =head1 SEE ALSO
81
82 L<Pod::Man>, L<Pod::Perldoc>, L<Pod::Perldoc::ToMan>
83
84 =head1 COPYRIGHT AND DISCLAIMERS
85
86 Copyright (c) 2002 Sean M. Burke.  All rights reserved.
87
88 This library is free software; you can redistribute it and/or modify it
89 under the same terms as Perl itself.
90
91 This program is distributed in the hope that it will be useful, but
92 without any warranty; without even the implied warranty of
93 merchantability or fitness for a particular purpose.
94
95 =head1 AUTHOR
96
97 Current maintainer: Adriano R. Ferreira <ferreira@cpan.org>
98
99 Past contributions from:
100 Sean M. Burke <sburke@cpan.org>
101
102 =cut
103