=head1 NAME
Changes
=head1 0.19 Sun Oct 2 23:22:01 PDT 2005
- fix the =headX I<foo> rendering bug (the POD markup of the header
wasn't getting converted into html)
=head1 0.18 Fri Sep 2 12:24:27 PDT 2005
- a few style fixes [Philip M. Gollucci <pgollucci@p6m7g8.com>]
- fix DocSet::Doc::POD2HTML::View::HTMLPS not to anchor =headX titles,
since when rendering ps/pdf, some interpreters fail to render a
proper link, leaving some ugly misplaced link frame. That link was
pointing nowhere anyway, so it's a good thing it is gone.
- synced with html2ps changes html2ps-1.0b4 which was surprisingly
updated 5 years later.
=head1 0.17 Sat Nov 20 00:27:32 EST 2004
- inherit the 'copy_skip' attribute if not set in the child
- fix fetch_pdf_doc_ver not to try to copy the pdf version of the
document to the same directory.
=head1 0.16 Wed Apr 30 10:49:15 EST 2003
- set $DocSet::5005compat::VERSION explicitly as previous workarounds
to make EU::MM::parse_version not complain have failed.
- if the cache read fails, rebuild the docset as if the cache file
didn't exist (to solve the Storable binary incompatibilities probs)
- purge cache files when the rebuild is forced
=head1 0.15 Mon Nov 25 10:32:27 SGT 2002
- fix a missing dependency: the modified() is set for the index.html
objects when any of the index_(top|bottom) attributes's files are
newer than the autogenerated index.html based on any of these files.
- Fix DocSet::NavigateCache::new() to properly handle docsets with no
nodes
- in DocSet::5005compat added a workaround for a bug in
ExtUtils::MakeMaker v < 6.00, which tries to parse any word which
include VERSION in it, which causes problems when you do 'r' in
CPAN.pm. Thanks to Mark Veltzer for reporting the problem.
=head1 0.14 Mon Aug 19 14:29:36 SGT 2002
- added two examples that one can play with which demonstrate all the
DocSet features:
o examples/site/ - the shrinked version of perl.apache.org
o examples/presentation - a package for generating slides/handouts
- support local docset options, which can set command line options for
the scope of the current docset and below it.
- support the automatic page-break insertion in the slides-mode (-e)
- make the index_node's meta.id and meta.stitle attributes available
to the templates
- fix the html title rendering, not to have <a href="" name=""> as
some older browsers crush on that, use
<a href=""></a><a name=""></a> instead
- in each document verify that there are no duplicated anchors and
croak if there are.
- added the croak method to the rendering class, so if there is a
problem the context is dumped (the problematic source file).
- croak if the config file includes both: grouped and non-grouped
items.
- added docset id duplication checking, the program will croak when a
duplication is detected and report the offending config file and the
config file it was previous seen in.
- fix a bug with properly setting doc.dir.abs_doc_root, for the docs
in the very root e.g, src/404.html.
- added a new special attribute: 'changes', which points to a hidden
chapter including changes for each docset (if such exists). this is
an improvement over the inclusion of the changes.pod or alike along
with all other chapters because usually people don't want to see
changes and when the docset pdf is created huge changes files can be
an unwanted burden, so now if this attribute is included, the pdf
for the docset won't include this file in it.
- overload Carp.pm's subs in Config.pm and when die'ing or warn'ing
start dumping the relevant object attributes, like the used config
file, to aid the problem analysis.
- provide a fix for File::Spec->abs2rel for WIN32 [Per Einar Ellefsen
<per.einar@skynet.be>]
- improve the parsing of the E<lt>headE<gt> and make base, meta and
link elements available to the templates. [Per Einar Ellefsen
<per.einar@skynet.be>]
- correct the mapping of config.cfg to autogenerated index.html, also
use path2uri to convert from a path to uri. also fix the stripping
of the full base path on the non unix system, by using abs2rel from
File::Spec.
- implement the splitting of the long E<lt>preE<gt> text only in
DocSet::Doc::POD2HTMLPS's view_verbatim, where it's needed. Use the
simple view_verbatim() in DocSet::Doc::POD2HTML.
- must always use '/' when generating URIs, that means that fs paths
from OS like Win32 cannot be used as is. So we use the OS specific
splitdir to get rid of the separators and join the dirs with '/'.
- fix a bug with resolving L<> when not the minimal lenght link is
used, also solved a parallel bug with resolving links to ::index
- skip empty lines in preamble, when extracting pod
- provide the same data for the ps/index template as it was provided
for html/index
- change the <pre> rule generator, to do all the formatting work in
the stylesheet. plus add a new line in front of <pre> so the text
browsers will present it nicely.
- if the <pre> section is too long ps2pdf fails to generate pdf, so
split it into 40 lines chunks.
- sitemap is now correctly highlighted in the menu when selected
=head1 0.13 Fri May 10 02:53:53 SGT 2002
- implemented a special docset type: "sitemap" which automatically
generates a sitemap from the root of the docset the sitemap is
located in and all the way down including all sub-docsets.
- implemented the down() method in the NavigateCache class. Now it's
possible to traverse the whole set of docsets in both directions
starting from any node in any docset.
- force rebuild of the docset if the cache file is missing, even if
the target files aren't older than the source files. (this is the
case where for some reason the cache file was deleted)
- set the 'stitle' attr to 'title' for 'links' type, if missing.
- handle the case where docsets, links or chapters get removed
from docset. The cache uses only active items (listed in config.cfg)
changed the way the ordered list of items is constructed
- fix the bug where a change in the main config.cfg won't indicate a
modified docset and therefore a rebuild.
- I cannot reproduce the trailing punctuation character bug
(http://foo.com/bar.html.) in automatic POD URLifier, removed from
the TODO list.
- copy_glob => [foo/*] doesn't pick .dot_files in the first level of
subdir, because in unix glob() '*' doesn't match .files.
'copy_glob => [foo]' works correctly. Now this behavior is documented.
also fixed wrong documentation about copy_glob regarding creating
empty dirs.
- improve the logic for searching resources. If I have a setting of
search_paths as:
search_paths => [qw(
docs/1.0
.
)],
and the resource request is for L<foo|win32::binaries> everything is
cool if there is docs/1.0/win32/binaries.pod. However if somebody is
doing a better job and doing a fully qualified request like
L<foo|docs::1.0::win32::binaries> the page used to be reported as not
found, because it's cached in the prescan as 'docs/1.0' =>
'win32/binaries.pod'. Now this problem is solved.
- add a special handling for L<...|foo::bar::index> so only
foo::bar is checked that it's a dir in the search path and
index.html is autogenerated. This allows us to do L<the
guide|guide::index>
- improve the exception handling of incorrect paths in config.cfg,
when a chapter item cannot be found.
- now the 'src' link links to a file.orig so it won't be overwritten by the
generated html if the source was .html in first place.
- fix a bug where a few sizes fell through in format_bytes
- add a cool feature where the titles are linked their own entries in
the TOC, so one can easily move back and forward between big
sections of the document.
- change the timestamp to use local(gmtime) instead of ambiguous
mm/dd/yy
- move to use pre-bar css class for the virtual bar in <pre></pre>
sects (the user has to define this class).
- replaced call to `which` with a portable which function in
DocSet::Util (taken from Apache::Build in modperl-2.0 and made to
use the PATHEXT env variable on WinNT: I can re-submit this one into
the modperl-2.0 tree if you think that'll be useful, it finds the
specified file terminated by .exe, .bat, etc.. [Per Einar Ellefsen
<per.einar@skynet.be>]
- use perl %ENV instead of `env` to set PERL5LIB whenh calling
docset_build. [Per Einar Ellefsen <per.einar@skynet.be>]
- had to replace all regexes that used a directory/file path, and use
quotemeta() there, because the backslahes created illegal escape
sequences. [Per Einar Ellefsen <per.einar@skynet.be>]
- changed some things before calling URI in DocSet::Doc; it not, the
directory name would be considered part of the host name and thus
not tried to be opened. So I replaced \ with /, as that'll open the
file correctly. [Per Einar Ellefsen <per.einar@skynet.be>]
=head1 0.12 Thu Mar 28 10:20:07 SGT 2002
- add code that parses source HTML and escapes unsafe URI/HTML chars
in links.
- The path must be either ./foo or ../../foo and never leading ./
followed by ../, since the later doesn't work in IE on Mac.
- partial implementation of L<> handling in POD according to the
latest spec, submitted to Pod::POM and therefore now DocSet requires
Pod::POM-0.15.
- hyperlinks validation with -l option is implemented now.
- implemented a RunTime system which allows to set/unset and retrieve
the current rendering object, needed for implementing
view_seq_link_transform_path() and view_seq_file() which need to use
the rendering object.
- implemented the view_seq_link_transform_path to locate the elements
in L<> in the search path and properly resolve all the internal
linking.
- added the implementation of the F<> sequence via view_seq_file(),
which links to a file if it finds it, otherwise it italize the path.
- working on documenting a few classes
- the templates now have an access to a new variable
doc.dir.path_from_base which specifies the path from the root/base
to the document without including the final file. ala
File::Basename::dirname(), it doesn't include any leading ./ and
closing / and originally developed for the searching sub-docsets.
- don't gzip the source and pdf docs anymore, it makes things harder
on the users. so what that they have to download a bit more...
=head1 0.11 Mon Feb 4 18:37:38 SGT 2002
- fix DocSet::Util::copy_file to preserve file
permissions. File::Copy::syscopy is broken.
- changed the behavior of NavigateCache::prev() method. If the current
node is hidden, we don't link it to the prev node, even if it's not
hidden. If we do it creates problems with circular linking if the
hidden object is linked via 'links => []' in the config file, and
there is some real node coming after it. (e.g. links followed by
chapters)
- source html pages now are converted to pdf as well.
- source html pages now are linked to their src and pdf versions in
release versions (dst_html) if the template supports that.
- fix the <a name=""> anchor generator to stip the leading and
trailing spaces in the titles.
- the <pre> sections are now rendered with help of html tables with
the left cell being a vertical line. To make the pre sections stand
out.
=head1 0.10 Thu Jan 31 00:54:33 SGT 2002
- fix a bug where hidden chapters were added to the generated PDFs.
- fixed paths like .././foo to be ../foo when handed to the templates.
- src HTML docs are parsed for:
<head>
...
<meta name="description" content="abstract goes here">
...
</head>
so now in templates we have doc.meta.abstract if provided by the
source doc.
=head1 0.09 Fri Jan 25 01:57:22 SGT 2002
- use the first para of a pod DESCRIPTION section on the index page,
as a document abstract.
- fix =head sections pod markup rendering
- split the pod by =head[1-4] sections when handing over to the
template, now the [TOC] appears at the end of each =head[1-4]
sections in the rendered HTML.
- rewrite the overloaded view_head method, to embed the name anchor
properly.
- changed the timestamp to be the output of 'scalar localtime'
- now individual documents are rendered as PDF as well (before only
docsets were rendered as PDF in pdf mode).
- split the copy_as_is functionality into scan and copy, so scan can
detect whether any of the items were modified and mark the docset as
dirty (modified).
- perfect the modification control, now only if at least one of the
items in the docset (chapters, files, docsets, config file) was
modified the docset will be rebuilt, otherwise it'll be skipped,
making the partial rebuild/updates much faster.
- the html pages now link to the pdf and source version of the
document (by prior copying and gzipping these into the same dir).
- Added a 'stitle' attribute in addition to the 'title' attribute. The
former is for use in the menu and nav bars, stands for 'short
title'.
=head1 0.08 Sun Jan 6 04:26:23 SGT 2002
- add perl-5.00503 compat layer (warnings.pm doesn't exist). DocSet is
now 5.00503 complient.
- add various fixes for a buggy perl 5.00503 on FreeBSD 4.5-PRERELEASE
- resolve relative URLs into full ones without any ../.., since the
app must work with full pathes while building things. (some perl
versions have problems if the paths aren't full).
=head1 0.07 Sat Jan 5 22:31:53 SGT 2002
- changed the config file name in example/ s/config/config.cfg/
- POD parsing warnings now indicate the problematic filepath
- fix a bug in grouped-index TOC generation (logic rewrite)
- now requires Pod::POD v0.12
- updated html2ps's version to html2ps-1.0b3 (with local patches)
- Now certain chapters and docsets can be marked as hidden, they will
be normally processed, but not linked from other pages.
=head1 0.06 Mon Nov 26 11:19:03 SGT 2001
- calls src_filter hook only if defined in the converter class
- change the converters inheritance tree. (e.g. DocSet::Doc::HTML2HTML
inherits from DocSet::Source::HTML, which inherits from DocSet::Doc)
- bug fix in HTML2HTML (src_filter wasn't declared)
- split pod on /\n\n/ not /\n\s*\n/
=head1 0.05 Fri Nov 23 11:20:48 SGT 2001
- support .pm source files (added DocSet::Source::POD::extract_pod
source filter, that extracts pod from .pm files)
- fix extract_pod to support empty of pod docs.
- fix the multi-parent inheritance. the src_filter wasn't called until
now.
- document the configuration files syntax in DocSet::Config
- added prerequisites:
'Template' => '2.0',
=head1 0.04 Wed Nov 21 10:00:07 SGT 2001
- added prerequisites:
'HTML::Parser' => '3.25',
'Pod::POM' => '0.02',
=head1 0.03 Wed Nov 14 00:11:56 SGT 2001
- requiring the class that does the converting in
DocSet/DocSet/HTML.pm
- minor templates fixes
=head1 0.02 Thu Nov 8 03:33:23 SGT 2001
- the keys 'docsets', 'chapters' and 'links' can be repeated as many
times as wanted. This allows to mix various types of nodes and still
have oredered the way you want. So now you can have a chapter
followed by a docset and followed by a few more chapters and ended
with a link.
- config files have changed they config container from %c to @c to
accomodate repetitive keywords: chapters, docsets, links, to low mix
the order of these. To fix the files in the 'example' setup run:
% cd example/src
% find . -name config -exec perl -pi -e 's|\%c|\@c|g' {} \;
do the same in your setup if you've one already.
- since normally books consist of parts which group chapters by a
common theme, support this feature as well. So the index can now be
generated as:
part I: Installation
* Starting
* Installing
part II: Troubleshooting
* Debugging
* Errors
* Help Links
* Offline Help
This happens only if this feature is used, otherwise a plain flat
toc is used: to enable this feature simply splice nodes with
declaration of a new group like this:
group => 'Installation',
chapters => [qw(start.pod install.pod)],
group => 'Troubleshooting',
chapters => [qw(debug.pod errors.pod)],
links => [{link data}],
chapters => ['offline_help.pod'],
- config: index pages can now specify a top and bottom documents to be
added before and after the automatically generated toc. if these
docs are for example in HTML, they have to be written in a proper
html, so the parser will be able to extract the body.
=head1 0.01 Tue Nov 6 03:30:23 SGT 2001
- first release
=cut