.. -*-rst-*-
Release Notes
===============
.. contents::
Release 0.3.45
--------------
reStructuredText parsing:
* Allow plug-in roles to return an array mixing text and DOM elements
* Changed the implementation of the :parent: option to the class::
directive to be more general
reStructuredText transforms:
* Pending transforms can now supply a code reference instead of a
string to implement the transform
Writer 'html':
* No longer round column widths to the nearest integer: rounding can
cause the percentages to go over 100%. Browsers deal better with
percentages < 100 than > 100.
* Allow classes to be attached to rows (can happen with the :parent:
option of the class:: directive)
Directive 'perl':
* Improved handling when errors occur in running directive, especially
for the perl role.
Release 0.3.44
--------------
reStructuredText parsing:
* Fixed an issue in recognizing a Roman numeral list beginning VI.
* Added :parent: option to class:: directive
* Propagate classes on list items in list tables to the table cells
Writer 'html':
* Force HTML ids to be unique
* Process attributes (such as class) on list items and literal
Release 0.3.43
--------------
* Cleaned up tests to accommodate forgiving implementations of
'convert' command
Directive 'code-block':
* Extension to 'generic' state:
- Function string can now specify "variable", "reference" or a
custom face for formatting substrings
- The function regular expression can now contain up to 9 substrings
Writer 'latex':
* Fixed a potential undefined variable warning
Release 0.3.42
--------------
reStructuredText parsing:
* Fixed a bug where recursive substitution definitions caused an
infinite loop.
* Fixed an issue that caused some tests to fail on systems that do not
have a ``convert`` program available.
Plug-in directives:
* Improved POD documentation of perl:: directive.
* The code-block:: directive has a new ``-D code-block-states-flags``
flag to specify non-standard flags (such as defines) to the states
program while doing markup.
* The code-block:: directive has new options ``:states-file:`` and
``:states-flags:`` that perform the same function (and, if
specified, override the values of) the ``-D code-block-states-file``
and ``-D code-block-states-flags`` options on a per-code-block
basis.
* The default states markup file has a new language definition
``generic`` whose markup is controlled completely by ``-D
code-block-states-flags`` or ``:states-flags:``.
Release 0.3.41
--------------
prest application:
* Made the -e option default to 'utf8' (instead of just claiming to do so)
* Sped up reading of the file
* Fixed the code that returns the list of available encodings for -h
reStructuredText parsing:
* There is a new built-in ``substitution-reference`` role
* Custom roles based upon mathml-display will also appear in display style
* Fixed a bug with parsing consecutive bulleted lists
* Added ability to generate Roman numerals for enumeration lists
* Keep class information on custom roles
* Added ability to attach a label to a mathml equation that becomes
a substitution definition annotated with the equation number.
* Added :format: option to the sectnum:: directive to allow Roman
numerals or letters as well as numbers at various levels of the numbering
Plug-in directives:
* The code-block:: directive allows a :class: option
* The perl:: directive defines a $SUBSTITUTION variable giving the
name of any substitution definition being defined by the perl directive.
Writer 'html':
* Added support for the label of a mathml equation
* Do a better job of propagating class information for parsed_literal
* Convert the -e encoding to the right format for HTML.
Writer 'latex':
* Allow a stylesheet mechanism for styling classes of inline
elements. For example, if you define a custom role ``myrole``, then
text using that role will appear with ``\styleinlinemyrole(...)``
around it. There will be a null definition for the style which can
be overridden using ``\renewcommand{\styleinlinemyrole}{1}{#1}``.
* Fixed parsed literals to be more literal than they were (e.g., don't
convert ``<=`` to a less-than-or-equal sign.)
* Handle blank lines within parsed literals
* Fixed the newlines around ``\item`` and ``\end{description}``
* Fixed a bug where a comment could cause some actual text to
disappear because it didn't end with a newline
* Added support for superscript and custom roles
* Added support for a figure's class to be used as the name of the
latex environment
* Added support for mathml labels
Release 0.3.40
--------------
Second attempt to fix a test that failed because it was not site-independent
Release 0.3.39
--------------
Fixed a test that failed because it was not site-independent
Release 0.3.38
--------------
General changes:
* Updated coverability comments for more recent Devel::Cover versions.
prest script:
* Turn off warnings after finishing so that Devel::Cover doesn't cause
tests to fail
reStructuredText parsing:
* Delete spaces within URIs of targets and embedded URIs
* Hopefully fixed a problem that was causing regression failures for
perl 5.9 and above
* Fixed a problem that occurred if Encode module was not available
* Added "tab" as a value for the :delim: option of the csv-table::
directive
Writer 'html':
* Added "-W field-colon' option
* Use HTML::Entities to produce more readable output of mathml markup
* Dead code removal
* Fixed document title/subtitle not to hold markup characters
Writer 'latex':
* Added "-W author-skip" option
* Added "-W omit-docinfo" option
* Added "-W packages" option
* Added ``\styleaddress`` to style an organization, address, or contact
* Added ``\styleclassZZZ`` markup to allow style for class ZZZ
* Ensure math environment for "|" character
* Fixed a warning for a system message with no ids
* Added handlers for inline and compound
* Put the document's title/subtitle into the document's docinfo rather
than using global variables
* Avoid a latex error for definition and option lists by putting an empty
``\mbox{}`` between the term/classifier and the newline
* Don't implement option group as a ``tabular`` environment
* Have a table use a ``table`` environment if there is a title
* Fixed the processing of auto-symbol footnotes.
Release 0.3.37
--------------
reStructuredText parsing:
* Added "-D relax-citation-characters" option.
* Added roles "mathml-display" and "mathml-inline" to force
display/inline mode.
* Role name is now passed in as fourth argument to role attribute
subroutines.
* DefineRole now allows defining other info about the role than just
its options.
* Plug-in directives can now have an init routine that gets called to
define and initialize them.
* Plug-ins can now define roles as well as directives.
* Roles can now define a reparse option which will cause the output to
be reparsed as reStructuredText.
Writer 'latex':
* Added "-W chapter" and "-W cloak-email-addresses" options.
* Added a new '\styleliteralblock' style command.
* Fixed a problem with inferring minus signs.
* Fixed a problem with converting opening single quotes.
* Fixed handling of raw latex.
Release 0.3.36
--------------
Directive 'code-block':
* Allow the 'states' executable to be found anywhere on the path, but
check standard locations first.
Writer 'latex':
* Sort the dependent \usepackage modules so that there is a canonical
order for regression testing
Writer 'index':
* Sort the inline targets so that there is a canonical order for
regression testing
Release 0.3.35
--------------
There were no functional changes in this release.
Fixed the latex simple test not to use a code-block directive, which
compiles differently on different machines.
Release 0.3.34
--------------
reStructuredText transforms:
* Fixed a bug with hyperlink resolution when a chained target went to
an indirect target to an internal target.
Writer 'index':
* Fixed a bug in dealing with raw DOM objects.
Writer 'latex':
* Fixed bugs in line blocks
* Fixed bugs in parsed literals
* Fixed a bug where a paragraph ending in an interpreted text item did
not result in a new paragraph
* Fixed a bug with processing quotes around marked up text
* Fixed a bug with special characters in options
* Added support for outputting mathml to latex (requires
Text::ASCIIMathML 0.4 or later)
Release 0.3.33
--------------
There were no functional changes in this release.
* Fixed some tests and expects to be compatible with perl 5.9.5.
* Modified Makefile.PL hopefully to be compatible with more versions
of make.
* Changed the way the system plug-in directive gets the message from
STDERR so that it will hopefully be compatible with more systems.
Release 0.3.32
--------------
prest script:
* Generated a fatal error if an input file cannot be opened.
ReStructuredText parsing:
* The target role now keeps the case of the target in creating its
name.
Writer 'html':
* Process the :class: option on images.
* If the "-W image-exts" option is used (it's actually deprecated in
favor of "-D image-exts"), the default alt attribute now also uses
the substituted extension.
Writer 'index':
* Improved help text.
* Added "-W index-indirect-targets" option.
* Added "-W index-role-target" option.
Writer 'xref':
* Added a "-W xref-role-target" option to specify which target role
(if any) should be used for cross references.
* The "-W xref-role-targets" option has been removed.
In general:
* Recoded to remove most dependencies on internal structure of DOM
objects outside of DOM.pm.
Release 0.3.31
--------------
ReStructuredText parsing:
* Added a "target" role that allows separation of inline target tags
from the text that is displayed.
* Fixed a bug where, if two items in an enumerated list occurred with
no blank line between them and a third item was separated by a blank
line, the third item was put into a separate list.
Directive 'perl':
* Exported the following new global variables: ``$DIRECTIVE`` and
``$PARSER``.
Writer 'html':
* Mark a single paragraph in a compound as both class "compound-first"
and "compound-last".
* Fixed a bug where a class attribute on a field list did not
propagate to the output.
* Fixed a bug where an align attribute on a table did not propagate to
the output.
Writer 'index':
* Implemented the '-W doc-titles' and '-W index-role-targets' options.
* Output nothing instead of an empty table if there are no index
entries.
Writer 'xref':
* Added the ``-W xref-role-targets`` option.
* Allowed the suffix to be an empty string.
Release 0.3.30
--------------
* Fixed problem with find command in Makefile.PL that used a Linuxism.
* Made most of the perl modules use the subversion release as version number.
Release 0.3.29
--------------
* Renamed ReleaseNotes.txt to ChangeLog so that it will appear as a
special file on CPAN.
* Made one more effort to fix the indexing of version numbers.
Release 0.3.28
--------------
* Create lib/Text/Restructured.pm from lib/Text/Restructured.pm.PL so
we can insert the version number in to allow CPAN to index it
correctly.
* Fixed a problem with creating regular-expression expects for tests.
Release 0.3.27
--------------
Fixed problem with CPAN indexing of versions.
Release 0.3.26
--------------
* Completely reworked the regression test structure so as not to be
dependent upon GNU make.
Writers 'dom' and 'xml':
* Fixed a bug with attribute strings that contain double quotes.
Release 0.3.25
--------------
* Fixed a problem with Makefile.PL.
ReStructuredText parsing:
* Don't write messages to STDERR for errors in directives in test
data.
Writer 'html':
* Fixed a problem with quote markes in "alt" image text.
* Added "-W body-only" flag.
Release 0.3.24
--------------
* Fixed problems with running with -T.
* Fixed Makefile.
Release 0.3.23
--------------
* Fixed the help to parse as reStructuredText.
* Execute evals in ``Text::Restructured::Writer::Eval`` instead of ``Eval_::``.
* Initialize some of the opt variables to avoid warnings if not driven
by prest.
ReStructuredText parsing:
* Added "-D image-exts" flag so that each writer doesn't have to
support the functionality separately.
Writer 'html':
* Added "-W enum-list-prefixes" flag.
* Documentation deprecates "-W image-exts".
Writer 'latex':
* Be more lenient about including graphics for files that aren't in
the current directory.
* Fixed the processing of raw DOM elements to ignore those not
intended for latex.
* Added a newline before admonitions so they're processed in vertical
mode.
Writer 'toc':
* Added "-W parent-role" flag.
Release 0.3.22
--------------
Release 0.3.21
--------------
Updated the ``toc`` writer to have expanded abilities with the ``-W
file-suffix`` option.
Fixed the Makefile.PL so that hopefully at least some platforms will
pass regression tests.
Added release notes to the prest documentation.
Release 0.3.20
--------------
Made the ``html``, ``toc``, and ``xref`` writers compatible with
non-breaking spaces in Perl 5.8.0 implementation of Unicode. (Unicode
implementation was fixed in Perl 5.8.6.)
All ``-D`` or ``-W`` option names can use either hyphens ("-") or
underscores ("_") for word separators; internally everything uses
underscores.
reStructuredText parsing:
* Added hyphens to the following ``-D`` options: ``entry-attr``,
``include-ext``, ``include-path``, ``nest-inline``, ``perl-path``,
``row-attr``, ``table-attr``.
* Added the following ``-D`` options: ``file-insertion-enabled``,
``ignore-include-errs``, ``raw-enabled``.
* Fixed a bug where explicit targets were not permitted within an
embedded url (e.g., '``reference <#explicit-target>``').
* Don't consider targets defined on the same source/line number to be
duplicate targets (can happen with multiply-included files).
* Fixed the checking for inconsistent title levels to be more robust.
* Keep an ``@INCLUDES`` array to keep track of the include stack. This
variable can be accessed in a ``perl``/``if`` directive.
* Fixed a bug where large grid tables could result in a deep
recursion error.
reStructuredText transforms:
* Added the ``-D docinfo-levels`` option.
* Changed the documentation to show the ``-D`` options with hyphens ("-")
instead of underscores ("_") separting words.
* The ``sectnum`` directive now processes starting from its containing
section, rather than from the top of the DOM tree.
Directive '``raw``':
* Added a ``:head:`` option.
Directive '``if``':
* Export the ``$SOURCE``, ``$LINE``, and ``@INCLUDES`` for use in Perl
code.
Directive '``perl``':
* Implemented ``:file:`` option.
* Exported ``@INCLUDES``.
Directive '``sectnum``':
* Added a ``:prefix-title:`` option.
Writer '``html``':
* Inserted hyphen in the ``-W body-attr`` option.
* Updated for adding hyphens to the following ``-D`` options:
``table-attr``, ``entry-attr``, ``row-attr``.
* Added ``-W image-exts`` option.
* Added support for ``:head:`` option of ``raw`` DOM.
* Fixed a bug with targets.
* Fixed a potential undefined variable warning for footnote references.
Writer '``index``':
* Changed documentation for ``-W`` options to use hyphens ("-") instead of
underscores ("_") between words.
* Implemented ``-W output-header`` and ``-W title-underline`` options.
* Changed implementation to use a ``compound`` directive instead of a
``raw`` directive to set the class for the generated contents.
* Removed a potential undefined variable warning for indirect targets.
Writer '``toc``':
* Updated documentation to show ``-W`` options with hyphens ("-") instead of
underscores ("_") to separate words.
* Restructured for simplicity.
* Changed the way non-breaking spaces are removed from generated DOM
objects since the auto-numbering may have things other than numbers
in it.
Writer '``xref``':
* Added the following ``-W`` options: ``appendix``, ``chapter``,
``section``, ``xref-sections``, ``xref-targets``.
* Restructured the code for simplification.
Release 0.3.19
--------------
Added support for ascii-mathml role and directive to produce mathml
markup. The mathml markup is only supported in the ``dom`` and ``html``
writers for now.
Release 0.3.18
--------------
Went through code coverage reports and updated the tests to bring the
line and condition coverage up to 100% (except the soon-to-be-outdated
``latex`` writer). This analysis resulted in the following fixes:
Prest application:
* Fixed a bug where help prints out multiple times if there are
duplicate writers.
* Relocated all the code for parsing and interpreting writer schemas
to ``Text::Restructured::Writer``.
* Fixed the version number not to end with a period.
* Don't use ``FindBin`` to append the directory in which the script is
found to its ``@INC`` path.
* Don't convert digits in ``-W`` options to underscores.
* Removed code for parsing DOM files to ``Text::Restructured::DOM::Parse``.
* Insert blank line in usage before "Descriptions of Plug-in
Directives" and "Descriptions of Writers".
reStructuredText parsing:
* Stricter option checking in most directives.
* Removed package globals and incorporated into a parser object.
* Initialize ``ANONYMOUS_TARGETS`` in init.
* Fixed the handling of inline literals in definition lists.
* Put a system message in the document rather than dying if a plug-in
directive fails to compile.
* Simplified the code by removing tests whose conditions were
invariant.
* Fixed an infinite loop that could come up in processing nested
inline markup.
* Fixed an infinite loop that could come up if a line block started
with two or more blank lines.
* Fixed the removal of inline markup characters from normalized names.
* Have ``include`` directive do nothing if the file is empty, as opposed
to returning an empty paragraph.
* Added checks for the ``:prefix:`` and ``:suffix:`` options to the
``role`` directive to be sure they're formatted correctly.
* Return a system message if the title in a table-type directive is
not a single paragraph.
* Merged the code for ``csv-table`` and ``list-table`` directives to the
extent possible.
* Fixed the ``:class:`` option for ``target-notes``.
reStructuredText transforms:
* Simplified code by removing branches whose conditions were
invariant.
* Return a system message if evaluating transform code results in an
error.
* Process ``:class:`` option for ``target-notes`` directive.
* Allow ``decorations`` transform to put in link to prest documentation if
DOCURL is specified.
Directive '``code_block``':
* Added ``-D code-block-states-file`` option.
* Do line numbering whether or not states can be run if
``:numbered:``.
Directive '``system``':
* Return a ``PCDATA`` DOM if in a substitution definition context (instead
of appending it).
* Don't add a null paragraph if the text is empty.
Writer '``dom``':
* Updated to use ``$writer`` argument to access ``ProcessDOMPhase``.
Writer '``html``':
* Changed the semantics of ``-W embed-stylesheet`` and ``-W stylesheet``.
* Added ``-W stylesheet2`` option to specify a secondary embedded stylesheet.
* Changed default of ``-W field-limit`` to 14 from 15.
* Reworked so all the writer's annotations are in DOM's ``{_html}`` member.
* Reworked so that DOM's ``{attr}`` member is read-only; HTML attributes
are all copied to ``{_html}{attr}`` member.
* Factored out much of the attribute handling into a ``GetAttr`` routine.
* Fixed output of literals embedded in literals.
Writer '``index``':
* Restructured code for simplification
* Pass the a writer argument into ``QuoteStart``.
* Fixed processing of ``-W short-titles``.
* Added handler for interpreted roles.
Writer '``toc``':
* Simplified code for ``generated``.
Writer '``xref``':
* Simplified code for substitution definitions.
Release 0.3.17
--------------
Did not exist.
Release 0.3.16
--------------
Updated manifest to add files that will allow the regression to pass
on machines with differing locales.
Release 0.3.15
--------------
Added test files to fix problems when different locales use different
text for system error messages.
Prest application:
* Fixed problem that caused bare subroutines in writers to be compiled
more than once.
* Removed the path out of the subroutine names created when compiling
writer routines.
* Fixed the ``#line`` directives for writer subroutines so that better
error messages/coverage results are obtained.
Made writers more efficient by renaming package subroutines to ``BEGIN``
so that they will always be called exactly once.
Writer '``html``':
* Incorporated changes in docutils ``html`` writer:
* No longer change double-quotes to "``"``".
* No longer put a newline after a ``<pre>``.
Release 0.3.14
--------------
First release that was indexable on CPAN.