stas 02/05/14 03:13:32 Modified: lib/DocSet/Doc Common.pm lib/DocSet/DocSet PSPDF.pm Log: DocSet sync: - provide the same data for the ps/index template as it was provided for html/index - bug fix in <pre> sections Revision Changes Path 1.10 +2 -1 modperl-docs/lib/DocSet/Doc/Common.pm Index: Common.pm =================================================================== RCS file: /home/cvs/modperl-docs/lib/DocSet/Doc/Common.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Common.pm 14 May 2002 05:24:57 -0000 1.9 +++ Common.pm 14 May 2002 10:13:32 -0000 1.10 @@ -158,7 +158,8 @@ # if the <pre> section is too long ps2pdf fails to generate pdf, # so split it into 40 lines chunks. my $result = ''; - while ($text =~ /((?:[^\n]*\n){1,40})/sg) { + while ($text =~ /((?:[^\n]*\n?){1,40})/sg) { + next unless length($1); # skip empty matches $result .= qq{<pre class="pre-section">$1</pre>\n}; } 1.4 +61 -4 modperl-docs/lib/DocSet/DocSet/PSPDF.pm Index: PSPDF.pm =================================================================== RCS file: /home/cvs/modperl-docs/lib/DocSet/DocSet/PSPDF.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PSPDF.pm 22 Mar 2002 02:01:52 -0000 1.3 +++ PSPDF.pm 14 May 2002 10:13:32 -0000 1.4 @@ -44,7 +44,9 @@ } - +# XXX: almost the same code as in ::HTML counterpart, consider +# creating ::Common and re-use +# # generate the index.html file based on the doc entities it includes, # in the following order: docsets, books, chapters # @@ -54,9 +56,36 @@ sub write_index_file { my($self) = @_; + my @toc = (); + my $cache = $self->cache; + + # TOC + my @node_groups = @{ $self->node_groups }; + my @ids = $cache->ordered_ids; + + # create the toc while skipping over hidden files + if (@node_groups && @ids) { + # index's toc is built from groups of items' meta data + while (@node_groups) { + my($title, $count) = splice @node_groups, 0, 2; + push @toc, { + group_title => $title, + subs => [map {$cache->get($_, 'meta')} + grep !$cache->is_hidden($_), + splice @ids, 0, $count], + }; + } + } + else { + # index's toc is built from items' meta data + for my $id (grep !$cache->is_hidden($_), $cache->ordered_ids) { + push @toc, $cache->get($id, 'meta'); + } + } + my $dir = { - abs_doc_root => $self->get_dir('abs_doc_root'), - rel_doc_root => '..', # META: probably wrong, could be ../..! (see write_index_html_file()) + abs_doc_root => $self->get_dir('abs_doc_root'), + rel_doc_root => $self->get_dir('rel_parent_root'), path_from_base => $self->get_dir('path_from_base'), }; @@ -65,18 +94,46 @@ abstract => $self->get('abstract'), }; - use DocSet::NavigateCache; my $navigator = DocSet::NavigateCache->new($self->cache->path, $self->get('id')); my %args = ( nav => $navigator, + toc => [EMAIL PROTECTED], meta => $meta, dir => $dir, version => $self->get('version')||'', date => get_date(), last_modified => get_timestamp(), ); + + # plaster index top and bottom docs if defined (after converting them) + if (my $body = $self->get('body')) { + my $src_root = $self->get_dir('src_root'); + my $dst_mime = $self->get('dst_mime'); + + for my $sec (qw(top bot)) { + my $src_file = $body->{$sec}; + next unless $src_file; + + my $src_ext = filename_ext($src_file) + or die "cannot get an extension for $src_file"; + my $src_mime = $self->ext2mime($src_ext) + or die "unknown extension: $src_ext"; + my $conv_class = $self->conv_class($src_mime, $dst_mime); + require_package($conv_class); + + my $chapter = $conv_class->new( + tmpl_mode => $self->get('tmpl_mode'), + tmpl_root => $self->get_dir('tmpl'), + src_uri => $src_file, + src_path => "$src_root/$src_file", + ); + $chapter->scan(); + $args{body}{$sec} = $chapter->converted_body(); + } + + } my $dst_root = $self->get_dir('dst_root'); my $dst_file = "$dst_root/index.html";
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]