PerlPoint::Package 0.34 and PerlPoint::Converters 0.10 released
[email protected] ((Jochen Stenzel)) Sat, 16 Jun 2001 16:20:51 +0200
| Newsgroups | perl.perlpoint |
|---|---|
| Message-ID | <[email protected]> |
Hello,
it's been quite silent here for a while, and no PerlPoint news were
published for a long time. But behind the scenes we were working on new
versions of the toolkit. While I'm sending this out, PerlPoint::Package
0.34 and PerlPoint::Converters 0.10 are making their way to CPAN and
should arrive soon.
These releases are a real step forward. The first intention
of Package 0.34 was to improve internals by defining a better and
flexible way to declare tags. But then while using PerlPoint for
documentation purposes and listening to potential users, we also
focussed on improved usability and on documentation usage.
* These are major releases. *
This means that you *must* install both updates to get a new working
PerlPoint. Converters 0.009 will not work with the new Package 0.34,
nor will Converters 0.10 with older versions of the Package because of
internal changes. On the other hand, all existing documents should be
processed unmodified except for image pathes. Please see the related
note in the Converters changelog.
So what's new in these combined releases? To make reading easier, there
will be another message mentioning improvements of pp2html. Here are
the parser/Package news:
There's no additional paragraph type in this release. (Bad news first
;-)
OK. The list of changes is *very* long, please have a look at the
Changelog file for all the details. Here are the highlights:
* New way to declare tags.
This is an internal change resulting in various new modules
in the PerlPoint::Tags:: hierarchy. Tags declarations are
(very easy to use) modules now.
Benefits: clearer, more consistent, flexible way to define
tags. Improved parsing by searching for tag options / bodies
only if tags are declared to have options / bodies, which
makes writing documents more intuitive. Tag authors can
hook into parsing, performing own option / body / whatever
checks and telling the parser if the tag was well used or not.
Tag declarations can be easily shared by various converters
now. Documents containing tags which are not supported by the
current converter can be easily processed by setting the new
converter option -tagset (e.g. "-tagset HTML" which will
instruct the parser to accept all tags which are defined by
pp2html).
* Adapted way of macro processing.
To make tag and macro usage as similar as possible, macro
handling was adapted according to the new tag handling: the
parser will only search for macro options / bodies if the
related definitions contain option / body references. So if
you declare a macro without body, you can write "\MACRO<i>"
and "<i>" will be treated as plain text.
* Improved Performance.
Parsing could be accelerated significantly.
* More paragraphs cached.
Macro and variable usage formerly excluded a paragraph from
caching because definitions could potentially be subject to
changes. Watching definition changes by cached fingerprints,
such paragraphs can now be cached safely as well. Thanks to
Stefan Sautter for the idea.
* Cache is rebuilt automatically if modified builder components
(parser, used constants, serializer) are detected.
There should be no further need to write "Please remove
existing caches after this update" in release notes.
* Tag declared tables can be inlined now, declaring a string as
row separator by the new option *rowseparator*. This means
that you can write things like \TABLE{rowseparator="+++"}
A | B | C +++ 1 | 2 | 3 \END_TABLE just as part of a text
paragraph.
* Tables can be *nested*.
If the converter allows to use this feature, it is now valid
PerlPoint to write funny things like \TABLE{rowseparator="+++"}
column 1 | column 2 | B<\TABLE{rowseparator="%%%"} n1 |
n2 %%% n3 | n4 \END_TABLE> +++ xxxx | yyyy | zzzzz +++ uuuu |
vvvv | wwwww \END_TABLE.
* Startup directory and source nesting level are made accessible
via variables. Converters can "predeclare" variables (setting
up them internally at startup time so that all users can access
them just like variables specified explicitly in a document).
* No further need to guard "<".
* Simplified condition interface.
Access to user settings and variable values via interface
functions, hiding the (perly) details:
? flagSet(myFlag) or varValue('var') eq 'value'
Well, Perl is still to be seen ;-)
* pp2sdf could be significantly improved. Almost all pp2html
tags are directly supported now - have a look at the
impressive results!
* New basic tag \READY stops parsing instantly. Useful in
conditional or dynamically made document parts.
* Several bugfixes.
Enjoy!
Jochen