File Coverage

lib/Pod/PseudoPod/DOM/App/ToHTML.pm
Criterion Covered Total %
statement 18 43 41.8
branch 0 8 0.0
condition n/a
subroutine 6 8 75.0
pod 0 2 0.0
total 24 61 39.3


line stmt bran cond sub pod time code
1             package Pod::PseudoPod::DOM::App::ToHTML;
2             # ABSTRACT: helper functions for bin/ppdom2html
3              
4 1     1   1045 use strict;
  1         2  
  1         28  
5 1     1   4 use warnings;
  1         1  
  1         22  
6 1     1   5 use autodie;
  1         1  
  1         4  
7              
8 1     1   4771 use Pod::PseudoPod::DOM;
  1         3  
  1         43  
9 1     1   530 use Pod::PseudoPod::DOM::Corpus;
  1         312  
  1         53  
10              
11 1     1   7 use Pod::PseudoPod::DOM::App qw( open_fh );
  1         2  
  1         404  
12              
13             sub process_files_with_output
14             {
15 0     0 0   my ($role, @files) = process_args( @_ );
16 0           my @docs;
17             my %anchors;
18 0           my $corpus = Pod::PseudoPod::DOM::Corpus->new;
19              
20 0           for my $file (@files)
21             {
22 0           my ($source, $output) = @$file;
23              
24 0           my $parser = Pod::PseudoPod::DOM->new(
25             formatter_role => $role,
26             formatter_args => { add_body_tags => 1, anchors => \%anchors },
27             filename => $output,
28             );
29              
30 0           my $HTMLOUT = open_fh( $output, '>' );
31 0           $parser->output_fh($HTMLOUT);
32              
33 0           $parser->no_errata_section(1); # don't put errors in doc output
34 0           $parser->complain_stderr(1); # output errors on STDERR instead
35              
36 0 0         die "Unable to open file ($source)\n" unless -e $source;
37 0           $parser->parse_file( open_fh( $source ) );
38              
39 0           $corpus->add_document( $parser->get_document, $parser );
40             }
41              
42 0           $corpus->write_documents;
43 0           $corpus->write_index;
44 0           $corpus->write_toc;
45             }
46              
47             sub process_args
48             {
49 0     0 0   my @files;
50 0           my $role = 'HTML';
51 0           my %roles = ( html => 'HTML', epub => 'EPUB' );
52              
53 0           for my $arg (@_)
54             {
55 0 0         if ($arg =~ /^--(\w+)=(\w+)/)
56             {
57 0 0         if ($1 eq 'role')
58             {
59 0 0         $role = exists $roles{$2} ? $roles{$2} : $role;
60             };
61             }
62             else
63             {
64 0           push @files, $arg;
65             }
66             }
67              
68 0           return "Pod::PseudoPod::DOM::Role::$role", @files;
69             }
70              
71             1;
72              
73             __END__
74              
75             =pod
76              
77             =encoding UTF-8
78              
79             =head1 NAME
80              
81             Pod::PseudoPod::DOM::App::ToHTML - helper functions for bin/ppdom2html
82              
83             =head1 VERSION
84              
85             version 1.20210620.2040
86              
87             =head1 AUTHOR
88              
89             chromatic <chromatic@wgz.org>
90              
91             =head1 COPYRIGHT AND LICENSE
92              
93             This software is copyright (c) 2021 by chromatic.
94              
95             This is free software; you can redistribute it and/or modify it under
96             the same terms as the Perl 5 programming language system itself.
97              
98             =cut