cpan/Pod-Simple/t/fcodes.t Pod::Simple test file
cpan/Pod-Simple/t/fornot.t Pod::Simple test file
cpan/Pod-Simple/t/for.t Pod::Simple test file
-cpan/Pod-Simple/t/fullstop.t Pod::Simple test file
cpan/Pod-Simple/t/heads.t Pod::Simple test file
cpan/Pod-Simple/t/html01.t Pod::Simple test file
cpan/Pod-Simple/t/html02.t Pod::Simple test file
'Pod::Simple' =>
{
'MAINTAINER' => 'arandal',
- 'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.11.tar.gz',
+ 'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.13.tar.gz',
'FILES' => q[cpan/Pod-Simple],
# XXX these two files correspond to similar ones in blead under
# pod/, but the blead ones have newer changes, and also seem to
# ChangeLog for Pod::Simple dist
#---------------------------------------------------------------------------
+2009-12-17 David E. Wheeler <david@justatheory.org>
+ * Release 3.13
+
+ Removed deleted test file from MANIFEST.
+
+2009-12-17 David E. Wheeler <david@justatheory.org>
+ * Release 3.12
+
+ Removed "All rights reserved" from all files.
+
+ Added acknowledgements to man.he.net and search.cpan.org for
+ permission to link man pages and Perl module links to their sites
+ in the output of Pod::Simple::HTML and Pod::Simple::XHTML.
+
+ Add "html_h_level" option to Pod::Simple::XHTML and ::HTML to allow
+ a =head1 to become an <h2> and so on. RJBS.
+
+ Add batch_mode_page_object_init() method to Pod::Simple::XHTML.
+ This allows it to be used by Pod::Simple::HTMLBatch.
+
+ Fixed a regression in Pod::Simple::XHTML where '=begin html' blocks
+ were incorrectly escaped rather than simply passed through unmolested.
+ RJBS.
+
+ Removed the undocumented "fullstop_space_harden" attribute, which
+ apparently was only used by Pod::Text a very long time ago.
+
2009-12-09 David E. Wheeler <david@justatheory.org>
* Release 3.11
version number lowered.
2009-11-12 David E. Wheeler <david@justatheory.org>
- * Release 3.11
+ * Release 3.10
Converted test files that had DOS endings to have Unix endings
(RT #50922 from Steve Hay).
-=head1 Pod::Simple version 3.11
+=head1 Pod::Simple version 3.13
Pod::Simple is a Perl library for parsing text in the Pod ("plain old
documentation") markup language that is typically used for writing
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.11';
+$VERSION = '3.13';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
'bare_output', # For some subclasses: whether to prepend
# header-code and postpend footer-code
- 'fullstop_space_harden', # Whether to turn ". " into ".[nbsp] ";
-
'nix_X_codes', # whether to ignore X<...> codes
'merge_text', # whether to avoid breaking a single piece of
# text up into several events
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
#use constant DEBUG => 7;
BEGIN {
require Pod::Simple;
my $treelet = ['~Top', {'start_line' => $start_line},];
unless ($preserve_space || $self->{'preserve_whitespace'}) {
- $para =~ s/\. /\.\xA0 /g if $self->{'fullstop_space_harden'};
-
$para =~ s/\s+/ /g; # collapse and trim all whitespace first.
$para =~ s/ $//;
$para =~ s/^ //;
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
sub import {
my($value,$variable);
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.11';
+$VERSION = '3.13';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.11';
+$VERSION = '3.13';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.11';
+$VERSION = '3.13';
use UNIVERSAL ();
BEGIN {
'title_prefix', 'title_postfix',
# What to put before and after the title in the head.
# Should already be &-escaped
+
+ 'html_h_level',
'html_header_before_title',
'html_header_after_title',
$new->html_footer( qq[\n<!-- end doc -->\n\n</body></html>\n] );
$new->{'Tagmap'} = {%Tagmap};
+
return $new;
}
+sub __adjust_html_h_levels {
+ my ($self) = @_;
+ my $Tagmap = $self->{'Tagmap'};
+
+ my $add = $self->html_h_level;
+ return unless defined $add;
+ return if ($self->{'Adjusted_html_h_levels'}||0) == $add;
+
+ $add -= 1;
+ for (1 .. 4) {
+ $Tagmap->{"head$_"} =~ s/$_/$_ + $add/e;
+ $Tagmap->{"/head$_"} =~ s/$_/$_ + $add/e;
+ }
+}
+
sub batch_mode_page_object_init {
my($self, $batchconvobj, $module, $infile, $outfile, $depth) = @_;
DEBUG and print "Initting $self\n for $module\n",
my $self = $_[0];
my $fh = $self->{'output_fh'};
my $tagmap = $self->{'Tagmap'};
+
+ $self->__adjust_html_h_levels;
my($token, $type, $tagname, $linkto, $linktype);
my @stack;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002-2004 Sean M. Burke. All rights reserved.
+Copyright (c) 2002-2004 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.
+=head1 ACKNOWLEDGEMENTS
+
+Thanks to L<Hurricane Electrict|http://he.net/> for permission to use its
+L<Linux man pages online|http://man.he.net/> site for man page links.
+
+Thanks to L<search.cpan.org|http://search.cpan.org/> for permission to use the
+site for Perl module links.
+
=head1 AUTHOR
Pod::Simple was created by Sean M. Burke <sburke@cpan.org>.
use vars qw( $VERSION $HTML_RENDER_CLASS $HTML_EXTENSION
$CSS $JAVASCRIPT $SLEEPY $SEARCH_CLASS @ISA
);
-$VERSION = '3.11';
+$VERSION = '3.13';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
package Pod::Simple::LinkSection;
# Based somewhat dimly on Array::Autojoin
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2004 Sean M. Burke. All rights reserved.
+Copyright (c) 2004 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use Pod::Simple ();
use vars qw(@ISA $VERSION);
-$VERSION = '3.11';
+$VERSION = '3.13';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.11';
+$VERSION = '3.13';
use strict;
# Objects of this class are used for noting progress of an
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.11';
+$VERSION = '3.13';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.11';
+$VERSION = '3.13';
sub new { # Class->new(tagname);
my $class = shift;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.11';
+$VERSION = '3.13';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.11';
+$VERSION = '3.13';
sub new { # Class->new(text);
my $class = shift;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
package Pod::Simple::PullParserToken;
# Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token
@ISA = ();
-$VERSION = '3.11';
+$VERSION = '3.13';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use vars qw($VERSION @ISA %Escape $WRAP %Tagmap);
-$VERSION = '3.11';
+$VERSION = '3.13';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.11'; ## Current version of this package
+$VERSION = '3.13'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.11';
+$VERSION = '3.13';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION $FREAKYMODE);
-$VERSION = '3.11';
+$VERSION = '3.13';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use Carp ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
@ISA = ('Pod::Simple');
sub new {
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002 Sean M. Burke. All rights reserved.
+Copyright (c) 2002 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
use Symbol ('gensym');
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
require 5;
package Pod::Simple::Transcode;
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
BEGIN {
if(defined &DEBUG) {;} # Okay
package Pod::Simple::TranscodeDumb;
use strict;
use vars qw($VERSION %Supported);
-$VERSION = '3.11';
+$VERSION = '3.13';
# This module basically pretends it knows how to transcode, except
# only for null-transcodings! We use this when Encode isn't
# available.
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.11';
+$VERSION = '3.13';
sub is_dumb {0}
sub is_smart {1}
package Pod::Simple::XHTML;
use strict;
use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES );
-$VERSION = '3.11';
+$VERSION = '3.13';
use Carp ();
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
Add additional meta tags here, or blocks of inline CSS or JavaScript
(wrapped in the appropriate tags).
+=head2 html_h_level
+
+This is the level of HTML "Hn" element to which a Pod "head1" corresponds. For
+example, if C<html_h_level> is set to 2, a head1 will produce an H2, a head2
+will produce an H3, and so on.
+
=head2 default_title
Set a default title for the page if no title can be determined from the
'html_javascript',
'html_doctype',
'html_header_tags',
+ 'html_h_level',
'title', # Used internally for the title extracted from the content
'default_title',
'force_title',
my $self = shift;
my $new = $self->SUPER::new(@_);
$new->{'output_fh'} ||= *STDOUT{IO};
- $new->accept_targets( 'html', 'HTML' );
$new->perldoc_url_prefix('http://search.cpan.org/perldoc?');
$new->man_url_prefix('http://man.he.net/man');
$new->html_header_tags('<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />');
$new->{'output'} = [];
$new->{'saved'} = [];
$new->{'ids'} = {};
+
+ $new->{'__region_targets'} = [];
+ $new->{'__literal_targets'} = {};
+ $new->accept_targets_as_html( 'html', 'HTML' );
+
return $new;
}
}
}
+=head2 accept_targets_as_html
+
+This method behaves like C<accept_targets_as_text>, but also marks the region
+as one whose content should be emitted literally, without HTML entity escaping
+or wrapping in a C<div> element.
+
=cut
+sub __in_literal_xhtml_region {
+ return unless @{ $_[0]{__region_targets} };
+ my $target = $_[0]{__region_targets}[-1];
+ return $_[0]{__literal_targets}{ $target };
+}
+
+sub accept_targets_as_html {
+ my ($self, @targets) = @_;
+ $self->accept_targets(@targets);
+ $self->{__literal_targets}{$_} = 1 for @targets;
+}
+
sub handle_text {
# escape special characters in HTML (<, >, &, etc)
- $_[0]{'scratch'} .= encode_entities( $_[1] )
+ $_[0]{'scratch'} .= $_[0]->__in_literal_xhtml_region
+ ? $_[1]
+ : encode_entities( $_[1] );
}
sub start_Para { $_[0]{'scratch'} = '<p>' }
sub _end_head {
my $h = delete $_[0]{in_head};
+
+ my $add = $_[0]->html_h_level;
+ $add = 1 unless defined $add;
+ $h += $add - 1;
+
my $id = $_[0]->idify($_[0]{scratch});
my $text = $_[0]{scratch};
$_[0]{'scratch'} = qq{<h$h id="$id">$text</h$h>};
# This handles =begin and =for blocks of all kinds.
sub start_for {
my ($self, $flags) = @_;
- $self->{'scratch'} .= '<div';
- $self->{'scratch'} .= ' class="'.$flags->{'target'}.'"' if ($flags->{'target'});
- $self->{'scratch'} .= '>';
+
+ push @{ $self->{__region_targets} }, $flags->{target_matching};
+
+ unless ($self->__in_literal_xhtml_region) {
+ $self->{scratch} .= '<div';
+ $self->{scratch} .= qq( class="$flags->{target}") if $flags->{target};
+ $self->{scratch} .= '>';
+ }
+
$self->emit;
}
sub end_for {
my ($self) = @_;
- $self->{'scratch'} .= '</div>';
+
+ $self->{'scratch'} .= '</div>' unless $self->__in_literal_xhtml_region;
+
+ pop @{ $self->{__region_targets} };
$self->emit;
}
return "$t$i";
}
-1;
+=head2 batch_mode_page_object_init
-__END__
+ $pod->batch_mode_page_object_init($batchconvobj, $module, $infile, $outfile, $depth);
-=head1 SEE ALSO
+Called by L<Pod::Simple::HTMLBatch> so that the class has a chance to
+initialize the converter. Internally it sets the C<batch_mode> property to
+true and sets C<batch_mode_current_level()>, but Pod::Simple::XHTML does not
+currently use those features. Subclasses might, though.
+
+=cut
-L<Pod::Simple>, L<Pod::Simple::Methody>
+sub batch_mode_page_object_init {
+ my ($self, $batchconvobj, $module, $infile, $outfile, $depth) = @_;
+ $self->batch_mode(1);
+ $self->batch_mode_current_level($depth);
+ return $self;
+}
+
+1;
+
+__END__
=head1 SEE ALSO
without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.
+=head1 ACKNOWLEDGEMENTS
+
+Thanks to L<Hurricane Electrict|http://he.net/> for permission to use its
+L<Linux man pages online|http://man.he.net/> site for man page links.
+
+Thanks to L<search.cpan.org|http://search.cpan.org/> for permission to use the
+site for Perl module links.
+
=head1 AUTHOR
Pod::Simpele::XHTML was created by Allison Randal <allison@perl.org>.
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.11';
+$VERSION = '3.13';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2002-2004 Sean M. Burke. All rights reserved.
+Copyright (c) 2002-2004 Sean M. Burke.
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
+++ /dev/null
-# Testing hardening fullstop spaces
-BEGIN {
- if($ENV{PERL_CORE}) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use strict;
-use Test;
-BEGIN { plan tests => 11 };
-
-#use Pod::Simple::Debug (6);
-
-print "# Hi, I'm ", __FILE__, "\n";
-ok 1;
-
-use Pod::Simple;
-use Pod::Simple::DumpAsXML;
-use Pod::Simple::XMLOutStream;
-print "# Pod::Simple version $Pod::Simple::VERSION\n";
-sub e ($$) { Pod::Simple::DumpAsXML->_duo(@_) }
-
-&ok( e "", "" );
-&ok( e "\n", "", );
-
-die unless ok !! Pod::Simple::XMLOutStream->can('fullstop_space_harden');
-sub harden { $_[0]->fullstop_space_harden(1) }
-
-print "# Test that \". \" always compacts without the hardening on...\n";
-
-ok( Pod::Simple::XMLOutStream->_out("\n=pod\n\nShe set me a message about the M.D. I\ncalled back!\n"),
- qq{<Document><Para>She set me a message about the M.D. I called back!</Para></Document>}
-);
-ok( Pod::Simple::XMLOutStream->_out("\n=pod\n\nShe set me a message about the M.D. I called back!\n"),
- qq{<Document><Para>She set me a message about the M.D. I called back!</Para></Document>}
-);
-ok( Pod::Simple::XMLOutStream->_out("\n=pod\n\nShe set me a message about the M.D.\nI called back!\n"),
- qq{<Document><Para>She set me a message about the M.D. I called back!</Para></Document>}
-);
-
-
-print "# Now testing with the hardening on...\n";
-
-ok( Pod::Simple::XMLOutStream->_out(\&harden, "\n=pod\n\nShe set me a message about the M.D. I\ncalled back!\n"),
- qq{<Document><Para>She set me a message about the M.D.  I called back!</Para></Document>}
-);
-ok( Pod::Simple::XMLOutStream->_out(\&harden, "\n=pod\n\nShe set me a message about the M.D. I called back!\n"),
- qq{<Document><Para>She set me a message about the M.D. I called back!</Para></Document>}
-);
-ok( Pod::Simple::XMLOutStream->_out(\&harden, "\n=pod\n\nShe set me a message about the M.D.\nI called back!\n"),
- qq{<Document><Para>She set me a message about the M.D. I called back!</Para></Document>}
-);
-
-
-print "# Byebye\n";
-ok 1;
-
use strict;
use Test;
-BEGIN { plan tests => 10 };
+BEGIN { plan tests => 11 };
#use Pod::Simple::Debug (10);
use Pod::Simple::HTML;
-sub x ($) { Pod::Simple::HTML->_out(
- sub{ $_[0]->bare_output(1) },
+sub x ($;&) {
+ my $code = $_[1];
+ Pod::Simple::HTML->_out(
+ sub{ $_[0]->bare_output(1); $code->($_[0]) if $code },
"=pod\n\n$_[0]",
) }
"heading building"
);
+ok(x('=head1 This is a heading', sub { $_[0]->html_h_level(2) })
+ => q{/\s*<h2><a[^<>]+>This\s+is\s+a\s+heading</a></h2>\s*$/},
+ "heading building"
+);
+
ok(x(
'=head2 This is a heading too')
=> q{/\s*<h2><a[^<>]+>This\s+is\s+a\s+heading\s+too</a></h2>\s*$/},
-# Testing the =item directive
-BEGIN {
- if($ENV{PERL_CORE}) {
- chdir 't';
- @INC = '../lib';
- }
-}
-
-use strict;
-use Test;
-BEGIN { plan tests => 4 };
-
-my $d;
-#use Pod::Simple::Debug (\$d,0);
-
-ok 1;
-
-use Pod::Simple::DumpAsXML;
-use Pod::Simple::XMLOutStream;
-print "# Pod::Simple version $Pod::Simple::VERSION\n";
-sub e ($$) { Pod::Simple::DumpAsXML->_duo(@_) }
-
-my $x = 'Pod::Simple::XMLOutStream';
-
-print "##### Tests for =item directives via class $x\n";
-
-$Pod::Simple::XMLOutStream::ATTR_PAD = ' ';
-$Pod::Simple::XMLOutStream::SORT_ATTRS = 1; # for predictably testable output
-
-
-print "#\n# Tests for =item [number] that are icky...\n";
-ok( $x->_out("\n=over\n\n=item 5\n\nStuff\n\n=cut\n\nCrunk\nZorp\n\n=item 4\n\nQuux\n\n=back\n\n"),
- '<Document><over-text indent="4"><item-text>5</item-text><Para>Stuff</Para><item-text>4</item-text><Para>Quux</Para></over-text></Document>'
-);
-
-ok( $x->_out("\n=over\n\n=item 5.\n\nStuff\n\n=cut\n\nCrunk\nZorp\n\n=item 4.\n\nQuux\n\n=back\n\n"),
- '<Document><over-text indent="4"><item-text>5.</item-text><Para>Stuff</Para><item-text>4.</item-text><Para>Quux</Para></over-text></Document>'
-);
-
-
-print "# Wrapping up... one for the road...\n";
-ok 1;
-print "# --- Done with ", __FILE__, " --- \n";
+# Testing the =item directive\r
+BEGIN {\r
+ if($ENV{PERL_CORE}) {\r
+ chdir 't';\r
+ @INC = '../lib';\r
+ }\r
+}\r
+\r
+use strict;\r
+use Test;\r
+BEGIN { plan tests => 4 };\r
+\r
+my $d;\r
+#use Pod::Simple::Debug (\$d,0);\r
+\r
+ok 1;\r
+\r
+use Pod::Simple::DumpAsXML;\r
+use Pod::Simple::XMLOutStream;\r
+print "# Pod::Simple version $Pod::Simple::VERSION\n";\r
+sub e ($$) { Pod::Simple::DumpAsXML->_duo(@_) }\r
+\r
+my $x = 'Pod::Simple::XMLOutStream';\r
+\r
+print "##### Tests for =item directives via class $x\n";\r
+\r
+$Pod::Simple::XMLOutStream::ATTR_PAD = ' ';\r
+$Pod::Simple::XMLOutStream::SORT_ATTRS = 1; # for predictably testable output\r
+\r
+\r
+print "#\n# Tests for =item [number] that are icky...\n";\r
+ok( $x->_out("\n=over\n\n=item 5\n\nStuff\n\n=cut\n\nCrunk\nZorp\n\n=item 4\n\nQuux\n\n=back\n\n"),\r
+ '<Document><over-text indent="4"><item-text>5</item-text><Para>Stuff</Para><item-text>4</item-text><Para>Quux</Para></over-text></Document>'\r
+);\r
+\r
+ok( $x->_out("\n=over\n\n=item 5.\n\nStuff\n\n=cut\n\nCrunk\nZorp\n\n=item 4.\n\nQuux\n\n=back\n\n"),\r
+ '<Document><over-text indent="4"><item-text>5.</item-text><Para>Stuff</Para><item-text>4.</item-text><Para>Quux</Para></over-text></Document>'\r
+);\r
+\r
+\r
+print "# Wrapping up... one for the road...\n";\r
+ok 1;\r
+print "# --- Done with ", __FILE__, " --- \n";\r
+\r
use strict;
use lib '../lib';
-use Test::More tests => 43;
+use Test::More tests => 48;
#use Test::More 'no_plan';
use_ok('Pod::Simple::XHTML') or exit;
is($results, qq{<h1 id="Poit-">Poit!</h1>\n\n}, "head1 level output");
initialize($parser, $results);
+$parser->html_h_level(2);
+$parser->parse_string_document( "=head1 Poit!" );
+is($results, qq{<h2 id="Poit-">Poit!</h2>\n\n}, "head1 level output h_level 2");
+
+initialize($parser, $results);
$parser->parse_string_document( "=head2 I think so Brain." );
is($results, qq{<h2 id="I-think-so-Brain.">I think so Brain.</h2>\n\n}, "head2 level output");
$parser->parse_string_document( "=head4 Zort & Zog!" );
is($results, qq{<h4 id="Zort-Zog-">Zort & Zog!</h4>\n\n}, "head4 level output");
+sub x ($;&) {
+ my $code = $_[1];
+ Pod::Simple::XHTML->_out(
+ sub { $code->($_[0]) if $code },
+ "=pod\n\n$_[0]",
+) }
+
+like(
+ x("=head1 Header\n\n=for html <div>RAW<span>!</span></div>\n\nDone."),
+ qr/.+<\/h1>\s+<div>RAW<span>!<\/span><\/div>\s+.*/sm,
+ "heading building"
+) or exit;
initialize($parser, $results);
$parser->parse_string_document(<<'EOPOD');
is $parser->resolve_man_page_link('crontab'),
"${MANURL}1/crontab", 'Man link without section';
+# Make sure that batch_mode_page_object_init() works.
+ok $parser->batch_mode_page_object_init(0, 0, 0, 0, 6),
+ 'Call batch_mode_page_object_init()';
+ok $parser->batch_mode, 'We should be in batch mode';
+is $parser->batch_mode_current_level, 6,
+ 'The level should have been set';
+
######################################
sub initialize {