Table of Contents
The following is a list of changes that have been made since the 1.69.1 release.
The following changes have been made to the
common
code
since the 1.69.1 release.
Add the xsl:key for the kimber indexing method.
Add support for qandaset
.
Support dbhtml/dbfo start PI for orderedlist
numbering in both HTML and FO
Added CVS header.
Changed content model of text element to ANY rather than #PCDATA
because they could contain markup.
Added refentry
.meta.get.quietly param.
If zero (the default), notes and warnings about "missing" markup
are generated during gathering of refentry
metadata. If non-zero,
the metadata is gathered "quietly" -- that is, the notes and
warnings are suppressed.
NOTE: If you are processing a large amount of refentry
content,
you may be able to speed up processing significantly by
setting a non-zero value for refentry
.meta.get.quietly.
We must use file:///c:/ instead of c:/ because extension functions are choking on c:/. Grrrr.
Move xml:base fiddling to named template: add-xml-base
Make sure entityref gets expanded when stripping (there are no entity declarations in the stripped document)
Attempt to deal with file:/c:/path correctly (c:/path)
After namespace stripping, the source document is the temporary tree
created by the stripping process and it has the wrong base URI
for
relative references. Earlier versions of this code used to try to
fix that by patching the elements with relative @fileref attributes.
That was inadequate because it calculated an absolute base URI
without
considering that there might be xml:base attributes already in effect.
It seems obvious now that the right thing to do is simply to put the
xml:base on the root of the document. And that seems to work.
Added missing param declarations on several templates. Lack of
them was causing processing with Saxon to fail. Thanks to
Denis Bradford for reporting the problem.
Created a new message-logging named template, log.message, by
generalizing the old refentry
.emit.message template and moving it
out of common/refentry.xsl and into common/common.xsl
Refined XPath statements and notification messages for refentry
metadata handling.
Added message-prolog and message-epilog and
suppress-context-node-name local params to the write.chunk and
write.text.chunk templates. They enable additional info
to be
emitted before/after the "Writing..." message, and enable they
context-node name to be suppressed in output. The reason for
these additions is that the write.text.chunk template is
"repurposed" in manpages output for writing the names of soelim
stub files as well as "real" man pages, and also is used for
writing the manifest
file, and it is useful to emit details about
the type of file it is writing each time.
Added refentry
.emit.message utility templated and andrefentry
.emit.messages parameter for emitting note/warning
messages about missing markup.
Fixed regression caused by recent changes to refentry
metadata
handling. Closes #1467100. Thanks to Daniel Leidert for reporting.
Added support for "software" and "sectdesc" class values onrefmiscinfo
; "software" is treated identically to "source", and
"setdesc" is treated identically to "manual".
Made further refinements to the code for doing Refentry
metadata
gathering; "normalized" the formatting of notification/warning
messages emitted during metadata gathering.
Simplified XPath check for refentry
"source" metadata.
Drastically reworked all of the XPath expressions used in refentry
metadata gathering -- completely removed $parentinfo and turned
$info into a set of nodes that includes the *info contents of theRefentry
plus the *info contents all all of its ancestor
elements. The basic XPath expression now used throughout is (using
the example of checking for a date
):
(($info[//date])[last()]/date)[1].
That selects the "last" *info/date date
in document order -- that
is, the one eitther on the Refentry
itself or on the closest
ancestor to the Refentry
.
It's likely this change may break some things; may need to pick
up some pieces later.
Also, changed the default value for the man.th.extra2.max.length
from 40 to 30.
Handle additional case when extension functions were not unable to load external resource on Windows box
Set priority="-1" on match="/" template in stripns.xsl, to
suppress "Ambiguous rule match" warnings.
Added a "string.lower" template. Does the opposite of
string.upper().. Used in the XSLT-based build process for
generating the NEWS file and release notes, where we take
the "display names" of subsections like "HTMLHelp", and change
them into the actual directory names, like "htmlhelp".
Added support for DocBook 5 namespace-stripping in manpages
stylesheet. Closes request #1210692.
Added <xsl:template match="/"> to make stripns.xsl usable as a
standalone stylesheet for stripping out DocBook 5/NG to DocBook 4.
Note that DocBook XSLT drivers that include this stylesheet all
override the match="/" template.
Fixed problems with notifications generated when date
found.
Checkpointing. Still have a way to go on reworking this.
Number figures, examples, and tables from book
if there is no prefix (i.e. if chapter.autolabel
is set to 0). This avoids having the list of figures where the figures mysteriously restart their numeration periodically when chapter.autolabel
is set to 0.
Fixed bug #1359008. If a mediaobject
contains only one object, use it
even if it is only a textobject
.
Fixed bug # 1364478 xml:id not recognized by olink
database
.
Fixed attribute inheritance when in entrytbl
.
Clarified missing olink
error message.
Handle xml:id, version, and xlink:href better; make sure title
gets copied even when there's no info
Add children (with ids) of formal objects to target data.
Map info
elements to the right *info element when stripping NS. Set xml:base on external references rather than directly changing @fileref. Map xml:id to id.
Fixed test expression
This is a standalone "utility" stylesheet (it's not imported by
and of the drivers). Its purpose is to transform all instances of
DocBook-specific "insert file" markup (e.g., <textdata
fileref="foo.txt) with Xinclude instances. It is mainly intended
as an alternative to the DocBook XSLT Java insertfile() extension.
Move the stripns code to a common location; update @fileref and @entityref attributes in an attempt to handle the fact that the base URI
gets mangled by the stripping copy.
Made make-catalog.xsl general-purpose and moved to releasetools
dir so it can be used with other modules.
Added support for case when personname
doesn't contain specific name markup (as allowed in DocBook 5.0)
Fixed handling of %p in olink
xrefstyle templates.
Added colon to list of delimiters for parsing datetime strings
into tokens. Closes #1285053. Thanks to Jeroen Ruigrok for the bug
report, and to Mauritz Jeanson for spotting the cause.
Removed catalog.xml from version control and updated build to
automatically generate it. (To ensure it always contains the
correct version number for the release.) Thanks to John L. Clark
for the suggestion.
The following changes have been made to the
extensions
code
since the 1.69.1 release.
Fixed imports
Make xalan27.jar
Support Xalan 2.7
Applied patch from Ville Skytt. Changes to comments/javadoc only.
Closes patch #613993.
An attemp to fix base URIs when profiling is done and document is not in the current directory. This seems to work on my Windows machine, but I would be interested how it behaves in unix environment. URL handling in Java is very sensitive to such things.
Handle the case where the imageFn is actually a URI
. This still needs work.
The following changes have been made to the
fo
code
since the 1.69.1 release.
Adapted to the new indexing code. Now works just like a wrapper that calls kosek indexing method, originally implemented here.
Added missing and required attribute sets.
Apparently blank-body does work with fop1.extensions
.
Turn off blank-body region name for fop1.extensions
too, since apparently this
is still not fixed.
Added parameters for header/footer table
minimum height.
Add the index
.method parameter.
Integrate support for three indexing methods:
- the original English-only method.
- Jirka Kosek's method using EXSLT extensions.
- Eliot Kimber's method using Saxon extensions.
Use the 'index
.method' parameter to select.
Make sure sidebars get IDs so that cross references to them work
Added parameter ulink.hyphenate
.chars.
Added parameter insert.link
.page.number.
Implemented feature request #942524 to add insert.link
.page.number to
allow link element cross references to have a page number.
applied patch #1143813 to check glossterm
link
before forming it.
Add support for ulink.hyphenate
.chars so more characters can
be break points in urls.
Implemented patch #1075144 to make the url text in a ulink in FO
output an active link
as well.
table
footnotes now have their own table
.footnote
.properties attribute set.
Added qandaset
in support of it as a root element.
Add support for qandaset
as root element to generate a page sequence.
Add qandaset
to root.elements.
Added mode="page.sequence" to make it easier to put content
into a page sequence. First used for qandaset
.
Implemented feature request #1434408 to support formatting ofbiblioentry
.
Added biblioentry
.properties.
Fixed bug #1466816 "keep.relative.image.uris
not used for FO". Now
if the value is 1, the fileref is not changed by xml:base attributes.
Support PTC/Arbortext bookmarks
Added table
.footnote
.properties to permit table
footnotes to
format differently from regular footnotes.
Refactored table
templates to unify their processing and
support all options in all types. Now table
and informaltable
,
in both Cals and Html markup, use the same templates where
possible, and all support pgwide, rotation, and floats.
There is also a placeholder table
.container template to support
wrapping a table
in a layout table
, so the XEP table
title
"continued" extension can be more easily implemented.
Added new attribute set toc
.line.properties for controlling appearance of lines in ToC/LoT
fixed bug #1472393 fo:table-body missing from HTML informatable to FO.
Added support for float to example and equation
.
Added support for pgwide to figure
, example, and equation
(the latter two via a dbfo pgwide="1" processing instruction).
Add pgwide.properties attribute-set.
Fixed bug #1445304 indexterm
in biblioentry
not handled correctly
in bibliography
.mode.
Removed leftover refclass
.suppress cruft.
Added refclass
.suppress param.
If the value of refclass
.suppress is non-zero, then displayrefclass
contents is suppressed in output. Affects HTML and FO
output only.
Fixed problem with test for fop.extensions
in "floater" template.
Closes #1475639. Thanks to Mauritz Jeanson for reporting.
Do not break // in URL
DocBook V5.0 uses class="comment" for both XML/SGML comments
Improved support for task
subelements
Fix bug #1471303: Comments cause incorrect <group
> processing
Added missing anchor
Fixed bug # 1465290. Spaces are converted fo:leader only inside DocBook (non-namespaced elements). Text nodes inside different namespaces (e.g. MathML, SVG) are left untouched.
Made segtitle
bold in FO output. Closes #948245. Thanks to
Alastair Rankine for reporting.
Changed test expression used for determining whether a term
in avariablelist
is the final term
. Was using "position() = last()",
but that caused a fatal XPath error in xsltproc (though not in
Saxon); changed to "not(following-sibling::term
)", which is
probably a better way of doing it anyway.
Adjusted spacing around K&R-formatted Funcdef
and Paramdef
output
such that it can more easily be discerned where one ends and the
other begins. Closes #1213264.
Made handling of paramdef/parameter in FO output consistent with
that in HTML and manpages output. Closes #1213259.
Made handling of Refnamediv
consistent with formatting in HTML and
manpages output; specifically, changed so that Refname
(comma-separated list of multiple instances found) is used
(instead of Refentrytitle
as previously), then em-dash, then theRefpurpose
. Closes #1212562.
Committed patch to fix problem with Title
missing in Adobe Reader
"Document properties". Closes #1465301. Thanks to Mauritz Jeanson
for the patch.
Added output of Releaseinfo
to recto titlepage ("copyright
" page)
for Book
in FO output. This makes it consistent with HTML output.
Closes #1327034. Thanks to Paul DuBois for reporting.
Problem:
When source has width="" (empty width) on imagedata
, it ends up
getting converted to width="px" ("px" units with empty value) in
output.
Cause:
Stylesheets were not checking to see
if width was non-empty.
Fix:
Stylesheets now check to see
if value of width in source is
non-empty.
Affects:
This change affects FO output only. It causes width="auto"
output for width="" instances in source (instead of width="px").
Added condition for setting block-progression-dimension.minimum on
table-row, instead of height, when fop1.extensions
is non-zero.
For an explanation of the reason for the change, see
:
http://wiki.apache.org/xmlgraphics-fop/Troubleshooting/CommonLogMessages
Added new refclass
.suppress param for suppressing display ofRefclass
in HTML and FO output. Did not add it to manpages because
manpages stylesheet is currently just silently ignoring Refclass
anyway. Closes request #1461065. Thanks to Davor Ocelic (docelic)
for reporting.
Fix template named 'anchor
' to check @xml:id too.
Add support for keep-together PI to informal objects.
Add support for fop1.extensions
.
Add support for fop1 bookmarks.
Add fop1.extentions parameter to add support for
fop development version.
Start supporting fop development version, which will
become fop version 1.
Add template for task
in mode="xref-to".
fixed bug #1246878, no otherwise clause for start-indent and end-indent in a sidebar
float.
Fixed bug #1326440 where 'title
' in generate.toc
was not supported in FO.
Added missing variable declaration
Removed obsolete template match="legalnotice/title" mode="titlepage.legalnotice
.title
.mode".
table
footnotes now also get footnote
.properties attribute-set.
Fixed fo:marker output on bridgehead
to match current section
level.
Added index
.separator named template to compute the
separator punctuation based on locale.
Added normalize-space() to text values in document properties.
Handle author
better, the same as xep.xsl.
Added normalize-space() to text values in document properties.
Fixed bug in startinglinenumber when programlisting
is inside a programlistingco
.
Added handling for cases of Methodsynopsis
that have Modifier
instances after the Methodname
. Closes #1353365; thanks to
Stephen Langer for reporting.
Added support for link
, olink
, and xref
within OO Classsynopsis
and children. (Because DocBook NG/5 allows it).
Fixed 'nopage' option in xrefstyle.
fixed bug in sidebarinfo title
template match.
Support date
as an inline
Added new parameter keep.relative.image.uris
Make sure tfoots are bold too
Map Unicode space characters U+2000-U+200A to fo:leaders.
Output a real em dash for em-dash dingbat (instead of two hypens).
Problem:
In a PDF generated with Passivetex, every itemizedlist
(bulleted
list) has a linebreak after the bullet and before the listem
contents. That bullet should not be there.
Cause:
Design problem in Passivetex
Fix:
Added a fix that works around the problem by not wrapping the
listem output in an <fo:block> if passivetex.extensions=1. Closes
#1328348.
Affects:
Only affects output if passivetex.extensions=1. Otherwise,
follows previous code path, so behavior is exactly the same.
Fixed bug #1315700, where glossary
in part with role="auto"
produced invalid FO.
Move the stripns code to a common location; update @fileref and @entityref attributes in an attempt to handle the fact that the base URI
gets mangled by the stripping copy.
Corrected minor copy-paste error (orderedlist
template picking up
value of itemizedlist.label.width
instead of orderedlist.label.width
).
Support default label
width parameters for itemized and ordered lists
Comment out debugging message
Generate localized title
for Refsynopsisdiv
if no appropriateTitle
descendant found in source. Closes #1212398. This change
makes behavior for the Synopsis
title
consistent with the behavior
of HTML and manpages output.
Also, added xsl:use-attribute-sets="normal.para
.spacing" to block
generated for Cmdsynopsis
output. Previously, that block had no
spacing at all specified, which resulted it being crammed up to
closely to the Synopsis
head.
Added parameters to support localization of index
item
punctuation.
Added index.number.separator
, index.range.separator
, andindex.term.separator
parameters to support localization
of punctuation in index
entries.
Added "Cross References" section
in HTML doc (for consistency with
the FO doc). Also, moved the existing FO "Cross References"section
to follow the "Linking" section
.
Added ID attribues to all Reference
elements (e.g., id="tables"
for the doc for section
on Table
params). So pages for all
subsections of ref docs now have stable filenames instead of
arbitrary generated filenames.
Removed misguided code intended for normalizing whitespace in term
output for HTML and FO. (It's not necessary for those, though it is
still needed in manpages output because we're using the .TP macro,
and first line following that is treated differently than the
subsequent lines. So we need to get rid of any embedded line
breaks from within the Term
source.)
Added two new parameters for handling of multi-term varlistentry
elements:variablelist.term.break.after
:
When the variablelist.term.break.after
is non-zero, it will
generate a line break after each term
multi-term varlistentry
.variablelist.term.separator
:
When a varlistentry
contains multiple term
elements, the string
specified in the value of the variablelist.term.separator
parameter is placed after each term
except the last. The default
is ", " (a comma followed by a space). To suppress rendering of
the separator, set the value of variablelist.term.separator
to
the empty string ("").
These parameters are primarily intended to be useful if you have
multi-term varlistentries that have long terms.
Closes #1306676. Thanks to Sam Steingold for providing an example
"lots of long terms" doc that demonstrated the value of having
these options.
Also, added normalize-space() call to processing of each term
.
This change affects all output formats (HTML, PDF, manpages). The
default behavior should pretty much remain the same as before, but
it is possible (as always) that the change may introduce some new
bugginess.
Fixed bug #1306070 set with 2 books: wrong page numbering on 2nd book
.
Add sidebar
titlepage placeholder attset for styles.
Fixed incorrect variable name.
Fixed bug [ 1256277 ] sidebarinfo not supported, so now sidebarinfo
is supported.
Add titlepage for sidebar
.
Fixed bug [ 1261896 ] Section
title
's footnotes in page header.
Fixed set.flow.properties to match on draft page-masters too.
Implemented RFE #1292615.
Added bunch of new parameters (attribute sets) that affect list presentation: list.block.properties, itemizedlist
.properties, orderedlist
.properties, itemizedlist
.label
.properties and orderedlist
.label
.properties. Default behaviour of stylesheets has not been changed but further customizations will be much more easier.
Implemented RFE #1242092.
You can enable crop marks in your document by setting crop.marks=1 and xep.extensions=1.
Appearance of crop marks can be controlled by parameters crop.mark.bleed
(6pt), crop.mark.offset
(24pt) and crop.mark.width
(0.5pt).
Also there is new named template called user-xep-pis. You can overwrite it in order to produce some PIs that can control XEP as described in http://www.renderx.com/reference.html#Output_Formats
arbortext.extensions
supports the url(...) syntax.
Process not only subelements of book
, but all content including PI (possibly custom).
Fixed bug in char attribute, where text-align was being set to
any char value, even if the align attribute was not 'char'.
The CALS spec says text-align set to the value of char only
if the align attribute is 'char'.
The following changes have been made to the
html
code
since the 1.69.1 release.
Adapted to the new indexing code. Now works just like a wrapper that calls kosek indexing method, originally implemented here.
implemented index
.method parameter and three methods.
added index
.method parameter to support 3 indexing methods.
Applied patch #1143814 to avoid making bad links from glossterm
.
Implemented feature request #1072510 as a processing instruction
to permit including external HTML content into HTML output.
Fixed bug #1436121 problems with default.graphic.extension.
Moved test for $keep.relative.image.uris to the template
that matches on @fileref so all such processing is in
the same place.
Added new parameter chunk.tocs.and.lots
.has.title
which controls presence of title
in a separate chunk with ToC/LoT. Disabling title
can be very useful if you are generating frameset output (well, yes those frames, but some customers really want them ;-).
Support dbhtml/dbfo start PI for orderedlist
numbering in both HTML and FO
Implemented floats uniformly for figure
, example, equation
andinformalfigure
, informalexample
, and informalequation
.
fixed bug #1449319 Wrong levels for bridgeheads in XHTML (and HTML).
Added the autotoc.label
.in.hyperlink param.
If the value of autotoc.label
.in.hyperlink is non-zero, labels are
included in hyperlinked titles in the TOC
. If it is instead zero,
labels are still displayed prior to the hyperlinked titles, but
are not hyperlinked along with the titles.
Closes patch #1065868. Thanks to anatoly techtonik for the patch.
Added two new params: html.head.legalnotice
.link
.types and
html.head.legalnotice
.link
.multiple.
If the value of the generate.legalnotice.link
is non-zero, then
the stylesheet generates (in the head section
of the HTML source)
either a single HTML link
element or, if the value of the
html.head.legalnotice
.link
.multiple is non-zero, one link
element
for each link
type specified. Each link
has the following
attributes:
- a rel attribute whose value is derived from the value of
html.head.legalnotice
.link
.types
- an href attribute whose value is set to the URL of the file
containing the legalnotice
- a title
attribute whose value is set to the title
of the
corresponding legalnotice
(or a title
programatically
determined by the stylesheet)
For example:
<link
rel="copyright
" href="ln-id2524073.html" title="Legal Notice">
Closes #1476450. Thanks to Sam Steingold.
Removed leftover refclass
.suppress cruft.
Added refclass
.suppress param.
If the value of refclass
.suppress is non-zero, then displayrefclass
contents is suppressed in output. Affects HTML and FO
output only.
Added comment about possible hacking to deal with graphic relative URI
issue
Added convenience for testing the stripped results (commented out for productio)
DocBook V5.0 uses class="comment" for both XML/SGML comments
Improved support for task
subelements
Fix bug #1471303: Comments cause incorrect <group
> processing
Conditions for auto-generating index
are aligned with the rest of stylesheets.
Added message-prolog and message-epilog and
suppress-context-node-name local params to the write.chunk and
write.text.chunk templates. They enable additional info
to be
emitted before/after the "Writing..." message, and enable they
context-node name to be suppressed in output. The reason for
these additions is that the write.text.chunk template is
"repurposed" in manpages output for writing the names of soelim
stub files as well as "real" man pages, and also is used for
writing the manifest
file, and it is useful to emit details about
the type of file it is writing each time.
Fixed handling of punctuation for Funcparams
in HTML output.
Closes #1213275.
Fixed cut/paste error that was causing ID warnings to be emitted
for all Sect2
instances, even if they already had IDs.
Support inheriting linkends and xlink:hrefs in imageobjectco
areas
Added call to normalize-space() to cause contents of Abstract
to
be normalized when used as the value of the HTML "meta description".
Added new refclass
.suppress param for suppressing display ofRefclass
in HTML and FO output. Did not add it to manpages because
manpages stylesheet is currently just silently ignoring Refclass
anyway. Closes request #1461065. Thanks to Davor Ocelic (docelic)
for reporting.
Process Refpurpose/Inlinemediaobject correctly in generated ToC
.
Problem:
Contents of Refpurpose/Inlinemediaobject do not show up ToC
in
HTML output. DocBook 5 says that Refpurpose/Inlinemediaobject
is valid, so we need to handle it correctly.
Cause:
HTML stylesheets were doing an xsl:value-of on Refpurpose
when
generating the ToC
.
Fix:
Changed to xsl:apply-templates call instead. Also, removed
generation of hyphen character in ToC
between Refname
contents
and Refpurpose
. The Refpurpose
template generates an em dash
already, so now that apply-templates is run, that em dash gets
rendered in the TOC
, just as it is in the main text flow.
Affects:
This change only affects HTML output. I did not touch the FO
stylesheets because they are not currently rendering a TOC
for
Refentry
in the page contents anyway. And as far as the PDF
bookmarks, they appear to be generated with value-select for all
elements, regardless. I imagine that the reason might be that
images are not allowed in PDF bookmark labels.
As far as other effects, not the explanation above about the
change from generating a hypen in the TOC
to generating an em
dash.
Closes bug #1459977. Thanks to Davor Ocelic (docelic) for the bug
report.
The Makefile.param file is generated as part of the build, so
doesn't need to be in source control. I thought it wasn't,
currently, but it was showing up in my "cvs update", so I'm
(re)removing it.
Process alt
text with normalize-space().
Replace tab indents with spaces.
Content of citation
element is automatically linked to the bibliographic entry
with the corresponding abbrev
.
Add template for task
in mode="xref-to".
Suppress ID warnings if the .warnings parameter is 0
Add support for floatstyle to figure
.
Handling of xref
to area/areaset need support in extensions code also. I currently have no time to touch extensions code, so code is here to be enabled when extension is fixed also.
Added 3 parameters for overriding gentext forindex
punctuation.
Added parameters to support localization of index
item
punctuation.
Added index
.separator named template to compute the
separator punctuation based on locale.
Added a <div class="{$class}-contents"> wrapper around output of
contents of all formal objects. Also, added an optional
<br class="{class}-break"/> linebreak after all formal objects.
WARNING: Because this change places an additional DIV between the
DIV wrapper for the equation
and the equation
contents, it may
break some existing CSS stylesheets that have been created with
the assumption that there would never be an intervening DIV there.
The following is an example of what Equation
output looks like as
a result of the changes described above.
<div class="equation
">
<a name="three" id="three"></a>
<p class="title
"><b>(1.3)</b></p>
<div class="equation-contents">
<span class="mathphrase
">1+1=3</span>
</div>
</div><br class="equation-break">
Rationale: These changes allow CSS control of the placement of the
formal-object title
relative to the formal-object contents. For
example, using the CSS "float" property
enables the title
and
contents to be rendered on the same line. Example stylesheet:
.equation
{
margin-top: 20px;
margin-bottom: 20px;
}
.equation-contents {
float: left;
}
.equation
.title
{
margin-top: 0;
float: right;
margin-right: 200px;
}
.equation
.title
b {
font-weight: normal;
}
.equation-break {
clear: both;
}
Note that the purpose of the ".equation-break" class is to provide
a way to clear off the floats.
If you want to instead have the equation
title
rendered to the left
of the equation
contents, you can do something like this:
.equation
{
margin-top: 20px;
width: 300px;
margin-bottom: 20px;
}
.equation-contents {
float: right;
}
.equation
.title
{
margin-top: 0;
float: left;
margin-right: 200px;
}
.equation
.title
b {
font-weight: normal;
}
.equation-break {
clear: both;
}
Fixed bug in startinglinenumber when context isprogramlistingco
.
Added handling for cases of Methodsynopsis
that have Modifier
instances after the Methodname
. Closes #1353365; thanks to
Stephen Langer for reporting.
Added a chunker.output.quiet top-level parameter so that the chunker can be made quiet by default
Added support for link
, olink
, and xref
within OO Classsynopsis
and children. (Because DocBook NG/5 allows it).
ends-with() isn't an XSLT 1.0 function
Output the stripped document for debugging or if you want to process it more than once
Changed check for *info child in id.warning template from using
contains() to using ends-with() -- because contains() will match
informal* elements (informaltable
, etc) too -- not just *info
elements.
Also added check to make sure that *info element matched actually
has a title
(because some *info elements may not -- title
is not a
required child of *info elements).
And FWIW, I don't think it is too aggressive to have the default
behavior be to have the stylesheets emit notification messages
about ID-less titled objects. If it were the default to have it
not emit those, most users would probably never take the time to
turn it on, including the users who it is most meant to benefit
(those who don't yet know why they ought to be putting IDs on
their titled objects).
For case where id.warn
New parameter: id.warnings
. If non-zero, warnings are generated for titled objects that don't have titles. True by default; I wonder if this will be too aggressive?
If the keep.relative.image.uris
parameter is true, don't use the absolute URI
(as calculated from xml:base) in the img src attribute, us the value the author
specified. Note that we still have to calculate the absolute filename
for use in the image intrinsics extension.
Support date
as an inline
Hack font bugs in funcsynopses
Added new parameter keep.relative.image.uris
Move the stripns code to a common location; update @fileref and @entityref attributes in an attempt to handle the fact that the base URI
gets mangled by the stripping copy.
Added "Cross References" section
in HTML doc (for consistency with
the FO doc). Also, moved the existing FO "Cross References"section
to follow the "Linking" section
.
Added ID attribues to all Reference
elements (e.g., id="tables"
for the doc for section
on Table
params). So pages for all
subsections of ref docs now have stable filenames instead of
arbitrary generated filenames.
Removed misguided code intended for normalizing whitespace in term
output for HTML and FO. (It's not necessary for those, though it is
still needed in manpages output because we're using the .TP macro,
and first line following that is treated differently than the
subsequent lines. So we need to get rid of any embedded line
breaks from within the Term
source.)
Added two new parameters for handling of multi-term varlistentry
elements:variablelist.term.break.after
:
When the variablelist.term.break.after
is non-zero, it will
generate a line break after each term
multi-term varlistentry
.variablelist.term.separator
:
When a varlistentry
contains multiple term
elements, the string
specified in the value of the variablelist.term.separator
parameter is placed after each term
except the last. The default
is ", " (a comma followed by a space). To suppress rendering of
the separator, set the value of variablelist.term.separator
to
the empty string ("").
These parameters are primarily intended to be useful if you have
multi-term varlistentries that have long terms.
Closes #1306676. Thanks to Sam Steingold for providing an example
"lots of long terms" doc that demonstrated the value of having
these options.
Also, added normalize-space() call to processing of each term
.
This change affects all output formats (HTML, PDF, manpages). The
default behavior should pretty much remain the same as before, but
it is possible (as always) that the change may introduce some new
bugginess.
Problem:
Garbage characters appear in content of Title
attribute in HTML
output.
Cause:
Contents of Alt
element, including line breaks, were being copied
over "as is" to value of Title
attribute in HTML output. Line
breaks in Title
appear a garbage characters when displayed as
pop-up "tool text".
Fix:
Added call to normalize-space() when transforming content of Alt
for HTML output. Closes #1254532. Thanks to Sam Steingold for
reporting the problem.
Added "wrapper-name" param to inline.charseq named template,
enabling it to output inlines other than just "span". Acronym
andAbbrev
templates now use inline.charseq to output HTML "acronym
"
and "abbr" elements (instead of "span"). Closes #1305468. Thanks
to Sam Steingold for suggesting the change.
Fixed bug [ 1292052 ] acronym/remark in qandaentry/question TOC
.
Fixed bug [ 1261811 ] Redundant output of b and anchor
element with identical id.
Removed colspan on tr
elements since it is invalid and
already on the td
anyway. Fixes bug 1261832.
Can you say infinite loop? I knew you could.
Changed version attribute on xsl:stylesheet from 1.1 to 1.0
Attempt to support @dir more effectively
The following changes have been made to the
htmlhelp
code
since the 1.69.1 release.
We are using HTML output method, thus escaping is not necessary anymore, it is done automatically by XSLT engine
OK, prefixes that are excluded, must be also declared, otherwise saxon complains
Add namespace prefixes db and ng into the list of excluded prefixes (their declarations are added when profiling stylesheets is generated).
Applied patch #1048856 from techtonik. HTML output is used instead of d-o-e and text method.
The following changes have been made to the
lib
code
since the 1.69.1 release.
Move trim.text template into lib.xweb file.
The following changes have been made to the
manpages
code
since the 1.69.1 release.
Added the following params:
- man.indent.width (string-valued)
- man.indent.refsect (boolean)
- man.indent.blurbs (boolean)
- man.indent.lists (boolean)
- man.indent.verbatims (boolean)
Note that in earlier snapshots, man.indent.width was named
man.indentation.default.value and the boolean params had names
like man.indentation.*.adjust. Also the man.indent.blurbs param
was called man.indentation.authors.adjust (or something).
The behavior now is: If the value of a particular man.indent.*
boolean param is non-zero, the corresponding contents (refsect*,
list items, authorblurb/personblurb, vervatims) are displayed with
a left margin indented by a width equal to the value of
man.indent.width.
Added man.table
.footnotes.divider param.
In each table
that contains footenotes, the string specified by
the man.table
.footnotes.divider parameter is output before the
list of footnotes for the table
.
Added the man.output.in.separate.dir, man.output.base.dir
, and
man.output.subdirs.enabled parameters.
The man.output.base.dir
parameter specifies the base directory
into which man-page files are output. The
man.output.subdirs.enabled parameter controls whether the files
are output in subdirectories within the base directory.
The values of the man.output.base.dir
and
man.output.subdirs.enabled parameters are used only if the value
of man.output.in.separate.dir parameter is non-zero. If the value
of man.output.in.separate.dir is zero, man-page files are not
output in a separate directory.
Added man.font.table
.headings and man.font.table
.title
params,
for controlling font in table
headings and titles.
Corrected oversight in param values.
Added man.font.funcsynopsisinfo
and man.font.funcprototype
params, for specifying the roff font (for example, BI, B, I) forfuncsynopsisinfo
and funcprototype
output.
Added man.segtitle
.suppress param.
If the value of man.segtitle
.suppress is non-zero, then display ofsegtitle
contents is suppressed in output.
Added man.output.manifest
.enabled and man.output.manifest.filename
params.
If man.output.manifest
.enabled is non-zero, a list of filenames
for man pages generated by the stylesheet transformation is
written to the file named by man.output.manifest
.filename
Added refentry
.meta.get.quietly param.
If zero (the default), notes and warnings about "missing" markup
are generated during gathering of refentry
metadata. If non-zero,
the metadata is gathered "quietly" -- that is, the notes and
warnings are suppressed.
NOTE: If you are processing a large amount of refentry
content,
you may be able to speed up processing significantly by
setting a non-zero value for refentry
.meta.get.quietly.
Changed names of all boolean indentation params to man.indent.*
Also discarded individual man.indent.*.value params and switched
to just using a common man.indent.width param (3n by default).
Fixed problem with synopsis
content being mis-aligned.
Fixed problem with man.output.* name conflict (forgot to update
names in previous commit).
Added boolean man.output.in.separate.dir param, to control whether
or not man files are output in separate directory.
Updated table
converter to include context info
when logging
warnings about nested tables.
Fixed small bug in new verbatim-indenting code.
Added options for controlling indentation of verbatim output.
Controlled through the man.indentation.verbatims.adjust and
man.indentation.verbatims.value params. Closes #1242997
Added options for controlling indentation in lists and in *blurb
output in the AUTHORS section
. Controlled through the
man.indentation.lists.adjust, man.indentation.lists.value,
man.indentation.authors.adjust, and man.indentation.authors.value
parameters. Default is 3 characters (instead of the roff default
of 8 characters). Closes #1449369.
Also, removed the indent that was being set on informalexample
outuput. I will instead add an option for indenting verbatims,
which I think is what the informalexample
indent was intended for
originally.
Changed line-spacing call before synopfragment
to use ".sp -1n"
("n" units specified) instead of plain ".sp -1"
Added support for rendering figure
titles correctly (with a line
break before then and in bold).
Added support for writing man files into a specific output
directory and into appropriate subdirectories within that output
directory. Controlled through the man.base.dir
parameter (similar
to the base.dir
support in the HTML stylesheet) and the
man.subdirs.enabled parameter, which automatically determines the
name of an appropriate subdir (for example, man/man7, man/man1,
etc.) based on the section
number/manvolnum of the source Refentry
.
Closes #1255036 and #1170317. Thanks to Denis Bradford for the
original feature request, and to Costin Stroie for submitting a
patch that was very helpful in implementing the support.
Refined XPath statements and notification messages for refentry
metadata handling.
Added message-prolog and message-epilog and
suppress-context-node-name local params to the write.chunk and
write.text.chunk templates. They enable additional info
to be
emitted before/after the "Writing..." message, and enable they
context-node name to be suppressed in output. The reason for
these additions is that the write.text.chunk template is
"repurposed" in manpages output for writing the names of soelim
stub files as well as "real" man pages, and also is used for
writing the manifest
file, and it is useful to emit details about
the type of file it is writing each time.
Added support for copyright
and legalnotice
.
The manpages stylesheets now output a COPYRIGHT
section
, after the
AUTHORS section
, if a copyright
or legalnotice
is found in the
source. The section
contains the copyright
contents followed by
the legalnotice
contents. Closes #1450209.
Drastically reworked all of the XPath expressions used in refentry
metadata gathering -- completely removed $parentinfo and turned
$info into a set of nodes that includes the *info contents of theRefentry
plus the *info contents all all of its ancestor
elements. The basic XPath expression now used throughout is (using
the example of checking for a date
):
(($info[//date])[last()]/date)[1].
That selects the "last" *info/date date
in document order -- that
is, the one eitther on the Refentry
itself or on the closest
ancestor to the Refentry
.
It's likely this change may break some things; may need to pick
up some pieces later.
Also, changed the default value for the man.th.extra2.max.length
from 40 to 30.
Ensure better postcript/PDF output from "man -Tps" by doing a
"negative" vertical space with ".sp -1n" everywhere instead of
just ".sp -1".
Removed encoding on table
.xsl stylesheet.
Did some comment cleanup on the table
.xsl file.
Added newline before .sp request in template that matches
verbatims, because in some cases the .sp was appearing as aliteral
in output, because it was getting output inline without a
break before it.
Added template for matching Span; noticed problems with span
instances appearing as-is output, possibly as a side-effect of
failed Olink
processing -- so we need to catch it before it
sneaks through.
Moved table-footnote handling to links.xsl file. Added initial
support for converting Thead
to a "running header". Changed
column-separator from hard-coded tab character (default in tb(1))
to user-configurable character (colon by default). Changed prefix
on several params from "man.*" to "tbl.*".
Removed stripns.xsl from manpages/ subdirectory. manpages now use
the stripns.xsl in the common/ subdirectory.
Added support for DocBook 5 namespace-stripping in manpages
stylesheet. Closes request #1210692.
Restored default indentation behavior "normal" man behavior.
Corrected handling of empty Address
instances in author
section
.
Added support for top-alignment of cell contents.
Fixed handling of table
footnotes.
With this checkin, the table
support in the manpages stylesheet is
now basically feature complete. So this change closes request
#619532, "No support for tables" -- the oldest currently open
manpages feature request, submitted by Ben Secrest (blsecres) on
2002-10-07. Congratulations to me [patting myself on the back].
Added handling for table
titles. Also fixed handling of nested
tables; nest tables are now "extracted" and displayed just after
their parent tables.
Added character formatting for table
headings.
Added "options line" allbox/center/expand support.
Corrected handling for case where a cell with a rowspan is
preceded in the same row
by a cell or cells with colspans. Added
step for calling trim-text() on roff-formatted contents of each
cell, to trim off leading/trailing whitespace from those contents.
Fixed handling for case where table
is an HTML table
in the
DocBook source (rather than CALS). Adjusted warning message about
nested tables.
Further table
fine-tuning. Added handling for nested tables
(discard them with a warning, because tbl(1) does not support
nested tables). Also deal with cases where source table
has
multiple tgroup
. Only output "allbox" if border != 0.
Checkpointing. Now works correctly with the standard test table
(which contains rowspan and colspan instances. Need to test
further to make sure it will work with other rowspan/colspan
tables.
Checkpointing.
Checkpointing. Format spec now gets written correctly, including
for all instances of Rowspan. Just have an issue with generating
one less tab than should be in instances with rowspan/colspan.
Added support for *info gathering all the way up to root element.
Problem:: Existing stylesheets only gathered the *info child of
each Refentry
, plus *info child of its parent.
Change:: For each Refentry
, the stylesheets now contstruct a node
set that contains the entire contents of *info children of all
ancestors of that Refentry
, as well as its own *info child.
Closes #1243035. Thanks to Joe Orton for the feature request.
Added option for turning off bold formatting in Funcsynopsis
.
Boldface formatting in function
synopsis
is mandated in the man(7)
man page and is used almost universally in existing man pages.
Despite that, it really does look like crap to have an entireFuncsynopsis
output in bold, so I added params for turning off the
bold formatting and/or replacing it with a different roff special
font (e.g., "RI" for alternating roman/italic instead of the
default "BI" for alternating bold/italic). The new params are
"man.funcprototype
.font" and "man.funcsynopsisinfo
.font". To be
documented later.
Closes #1452247. Thanks to Joe Orton for the feature request.
Took some templates for matching inline instances of come
"computer" markup and moved them out of synop.xsl file and into
the inline.xsl file.
Someday I'll get around to learning basic XPath. And/or common
sense.
Use AUTHORS instead of AUTHOR
if we have multiple people to
attribute. Also, fixed checking such that we generate author
section
even if we don't have an author
(as long as there is at
least one other person/entity we can put in the section
). Also
adjusted assembly of content for Author
metainfo field such that
we now not only use author
, but try to find a "best match" if we
can't find an author
name to put there.
Closes #1233592. Thanks to Sam Steingold for the request.
Changes for request #1243027, "Impove handling of AUTHOR
section
."
This adds support for Collab
, Corpauthor, Corpcredt, Orgname
,Publishername
, and Publisher
. Also adds support for output ofAffiliation
and its children, and support for using gentext
strings for auto-attributing roles (Author
, Editor
, Publisher
,
Translator, etc.). Also did a lot of code cleanup and
modularization of all the AUTHOR
handling code. And fixed a bug
that was causing Author
info
to not be picked up correctly for
metainfo comment we embed in man-page source.
Provide support for adjusting default indent. Problem:: By
default, man pages are output with a indent of 8 characters.
That's a lot of wasted space that might better be used --
especially in cases where the content verbatim stuff that has long
lines. Change:: Added support for customizing the roff "default
indentation value" (value of IN register)
man.indentation.default.adjust (boolean) and
man.indentation.default.value params (number, 3n by default).
Also made some adjustments to get better formatting of
sub-subsection titles even without adjusting default indentation.
Formalpara
, output with "run in" head.
Closes #1448905.
Support bold output for "emphasis
remap='B'". (because Eric
Raymond's doclifter(1) tool converts groff source marked up with
".B" request or "\fB" escapes to DocBook "emphasis
remap='B'".)
Doh! If I only had a nickel for every time I made the mistake of
checking for plain following-sibling instead of *first* following
sibling, I would have enough money to buy... something.
Disappearing whitespace in Para
content, fixed.
Problem:: For a Para
, in output of content of two child elements
separated by whitespace, the space gets eaten. Also, for adjacent
text nodes separated by whitespace plus a comment. Cause:: I
didn't realize that running normalize-space() on a node that only
contains space returns an empty string :) Also, did not have the
code checking for comment or PI nodes correctly. Fix:: Added code
to correctly catch whitespacespace-only nodes, comments, and PIs.
Closes #1448860 and #1448856.
Segmentedlist
, fixed character formatting within seg
output.
Problem:: Seg
content that contained bold/ital character
formatting was getting munged. Cause:: Existing code was running
trim.text() on Seg
content; trim.text() is meant to be run only
on text nodes. Fix:: Removed call to trim.text() and replaced
with "apply templates and read resulting contents into a variable,
then run normalize-space() on that variable". That should work
OK, because Seg
content model does not permit verbatim content or
any other block content as its child content.
Closes #1447578. Thanks to Daniel Leidert for reporting.
Segmentedlist
output, adjusted width of table
cells.
Problem:: Content of table
cells in segmentedlist
output wraps
even when there's still plenty of room left for text on the
current line. Cause:: Behavior described is by design in tbl(1).
It effectively sets the maximum width of cells to 1/3 of the
current line length. Not sure why... Fix:: Added called to .ll
request that causes line length to temporarily be increased to
1.62 times the current line length before table
output of eachsegmentedlist
, then restore it back to previous width after
output of the table
markup. I suppose there are probably some
cases where that will produce some undesirable results. But for
now, it gives good output for all test cases I've tried.
If multiple Refnamediv
within same Refentry
, put a ".br" line
break between them, instead of a blank line. This closes up
spacing between them and also makes it clear that the break is
intentional, not a stray.
Funcsynopsisinfo
must be handled as a verbatim.
Problem:: Existing code was not preserving breaks and whitespace
in Funcsynopsisinfo
. Cause:: Lack of awareness thatFuncsynopsisinfo
is a verbatim environment. Fix:: Handle inFuncsynopsisinfo
in the same way as other verbatims (that is,
wrap in .nf/.fi requests. Additional problem: According to man(7)
man page and existing man2/ pages, all parts of a funcsynopsis
that are not args must be in bold. But because Funcsynopsisinfo
is a verbatim, it needs different roff bold markup than other
stuff. So wrapped it in ".ft B"/ft pair. (Perhaps it might make
sense to wrap the whole funcsynopsis
in ".ft B"/ft instead of
trying to bold/unbold at the word level, as we are doing now. Or
perhaps not.)
Closes bug #1447121. Thanks to Joe Orton for reporting.
Itemizedlist/Orderedlist with Title
, fixed handling of.
Also handling of paragraph text following a list.
Problem:: No output for Title
element of Itemized/Orderedlist.
Cause:: Missing logic for matching Title
instances in lists. Fix::
Added handling for Title
.
Also fixed problem that caused text following a list within the
same paragraph to be indented more than expected.
Closes #1447042 and #1447072.
Authorgroup
handling fixed. Problem:: Content of Authorgroup
was
not getting output. Cause:: Oversight in XPath expression causedAuthor
and friends to be found only if they were direct children
of *info. Fix:: Updated XPath expression to check for all Author
etc. descendants, not just direct children.
Closes bug #1447026. Thanks to Daniel Leidert for reporting.
Added support for Segmentedlist
.
Details: Output is tabular, with no option for "list" type output.
Output for Segtitle
elements can be supressed by setting
man.segtitle
.suppress. If Segtitle
content is output, it is
rendered in italic type (not bold because not all terminals
support bold and so italic ensures the stand out on those
terminals). Extra space (.sp line) at end of table
code ensures
that it gets handled correctly in the case where its source is the
child of a Para
. Closes feature-request #1400097. Thanks to
Daniel Leidert for the patch and push, and to Alastair Rankine for
filing the original feature request.
Corrected oversight in handling of Productname
. Problem:: Notrademark
output for Productname
class="trade" instances. Cause::
Oversight. Fix:: Added handling for the specified case.
Closes bug #1447004. Thanks to Daniel Leidert for reporting.
Fixed handling of admonitions that are children of Para
element.
Previously, handling of Caution
, Important
, Note, Tip
, Warning
fails if they are children of Para
. The reason is that they are
not included in the list of elements that we check when handling
"mixed block" content. Fixed by adding them to the list.
Closes bug #1446282. Thanks to Daniel Leidert for reporting.
Checkpointing. This still doesn't handle all rowspan/colspan
combinations correctly.
Proceed each converted Pre instance with a .sp macro, to generate
a line of vertical space before the .nf no-fill region.
Output dot before linebreak when transforming <br/>.
Tested and seems to work as expected. Classsynopsis
et al now
render with breaks and spaces in correct places.
Reverted change that caused xhtml stylesheets to be imported
instead of html ones.
Changed build to generate a "html-synop.xsl" file and to have it
imported into the driver stylesheet. The build now uses the newly
added html2roff.xsl stylesheet to transform the ../xhtml/synop.xsl
file to generate the html-synop.xsl file. The only transformation
it currently does is to transform <br/> instances into line breaks
and to transform <pre></pre> instances into roff "no fill region"
markup.
This change is a cheap way to enable the manpages stylesheet to
correctly handle OO synopsis
content, which it did not handle
correctly previously.
Checkpointing. This currently does not work as-is. I added support
for processing Rowspan correctly and it seems to work as expected,
but still need to do add some handling to actually generate the
tbl(1) format spec.
This implementation relies on holding a big node-set in memory,
containing "Cell" elements store information about the nature of
each cell (e.g., whether it is a "normal" cell, or the result of a
Rowspan or Colspan). I could not figure
out a way to implement
support for Rowspan without ending up storing multiple, duplicate,
Cell elements for each cell. (It gets uniq-ified later using the
EXSLT set:distinct function
.) The duplication will probably cause
performance and memory issues with big tables. Maybe I will figure
out later how to do it properly; but for now, this will have to do.
Fix for problem of multiple Arg
instances in Group
not being
separated by vertical bars. Closes #1346716. Thanks to Costin
Stroie for reporting the problem.
Move trim.text template into lib.xweb file.
Corrected error in generation of table
"format" spec.
Added a utility template for trimming whitespace off the beginning
and end of text chunks.
First shot at implementing table
support in the manpages
stylesheet. This works well as-is for normal span-less tables. It
even works for tables with colspans. But it does not yet even
attempt to do anything for rowspans. It will take more work to
add rowspan handling that. Not sure if it's worth the work, really.
Note: This table
support is implemented by do a first pass to
process each table
using the templates in the HTML stylesheet
(which we import). We don't override any of the <row
> or <tr
> or
<entry
> or <td
>, etc., table-markup templates, but we do override
the block and inline templates for whatever the child content of
the <entry
> and <td
> instances. So we end up with a node that has
"hybrid" output -- with table
rows and cells marked up with HTML
<tr
> and <td
> tags, with with the <td
> child content marked up in
roff.
So we use exsl:node-set on that node and make a second-pass
through all of it to replace the <tr
> and <td
> parts with tbl(1)
macros. Voila -- the end result is properly marked up tbl/roff
output for the table
.
One nice thing about doing it this is that it supports both CALS
and HTML table
markup, without needing any conditional logic to
deal with CALS separately. Because the first pass causes both the
CALS and HTML source markup to be "normalized" into HTML.
Improved handling or Author/Editor/Othercredit.
Reworked content of (non-visible) comment added at top of each
page (metadata stuff).
Added support for generating a manifest
file (useful for cleaning
up after builds, etc.)
Problem::
In output of <xref
endterm="foo"/> to top-level sections, titles
are not rendered in all caps.
Cause::
<xref
endterm="foo"/> is handled in the HTML stylesheets by a
different mode than that used for normal Xref
output.
Fix::
Added mode template for processing output of first-level section
titles when the are referred to via Endterm.
Closes #1215547. Thanks to Jens Granseuer for reporting the
problem.
Problem::
Number generated for Synopfragref output, but no number generated
in Synopfragment
output.
Cause::
manpages stylesheets import the HTML stylesheets. manpages
stylesheets do not include a Synopfragref template, so they were
just picking up the HTML one. However, the manpages stylesheet
did have a Synopfragment
template, which overrode the HTML one.
Problem is that the manpages Synopfragment
was not complete.
Fix::
Correctly "ported" Synopfragment
template from HTML stylesheets
and added manpages-specific character markup and features. As a
result of these changes, in the output now:
- correct numbers a generated for Synopfragment
output
- Synopfragref contentes are italicized, as they should be
- Synopfragment
output is output with a hanging indent (similar
to the hanging indent used for Cmysynopsis output)
- for cases where there are a group
of Synopfragments together,
a line of vertical space is generated only before first, and
suppressed before subsequent ones.
Closes #599439. Thanks to Dennis Grace for reporting the problem
(long, long ago) and for submitting a patch (which was used as-is
but neverthelesss provided some insights).
Problem::
Extra space added before Arg
output Cmdsynopsis
in some cases
where the Arg
contents appear at the beginning of a line.
bdmond [-s, --start]
[-k, --stop]
[-h, --help]
[-V, --version]
Cause::
Some other fix made around the time of v1.68.0 introduced a
regression in behavior for cases where an Arg
is preceded by anSbr
. The Sbr
produces a line break as expected, but the line break
is followed by a space and then the contents of the following Arg
.
Fix::
The code for processing Args now checks to see
if the first
preceding sibling of the Arg
is an Sbr
. If so, it does not output
the additional space; otherwise, it outputs the space.
- <xsl:if test="position()>1"><xsl:value-of select="$sepchar"/></xsl:if>
+ <xsl:if test="position()>1 and
+ not(preceding-sibling::*[1][self::sbr
])"
+ ><xsl:value-of select="$sepchar"/></xsl:if>
Closes #1313481. Thanks to Costin Stroie for reporting the problem
and pointing out where the cause was in the code.
Added two new parameters for handling of multi-term varlistentry
elements:variablelist.term.break.after
:
When the variablelist.term.break.after
is non-zero, it will
generate a line break after each term
multi-term varlistentry
.variablelist.term.separator
:
When a varlistentry
contains multiple term
elements, the string
specified in the value of the variablelist.term.separator
parameter is placed after each term
except the last. The default
is ", " (a comma followed by a space). To suppress rendering of
the separator, set the value of variablelist.term.separator
to
the empty string ("").
These parameters are primarily intended to be useful if you have
multi-term varlistentries that have long terms.
Closes #1306676. Thanks to Sam Steingold for providing an example
"lots of long terms" doc that demonstrated the value of having
these options.
Also, added normalize-space() call to processing of each term
.
This change affects all output formats (HTML, PDF, manpages). The
default behavior should pretty much remain the same as before, but
it is possible (as always) that the change may introduce some new
bugginess.
The following changes have been made to the
params
code
since the 1.69.1 release.
New parameters to set header/footer table
minimum height.
fixed validation bug.
Support multiple indexing methods for different languages.
Remove qandaset
and qandadiv
from generate.toc
for fo output
because formerly it wasn't working, but now it is and the
default behavior should stay the same.
add support for page number references to link
element too.
fix syntax error in text
Add support for more characters to hyphen on when ulink.hyphenate
is turned on.
New attribute-set to format biblioentry
and bibliomixed
.
Added new parameter chunk.tocs.and.lots
.has.title
which controls presence of title
in a separate chunk with ToC/LoT. Disabling title
can be very useful if you are generating frameset output (well, yes those frames, but some customers really want them ;-).
Added new attribute set toc
.line.properties for controlling appearance of lines in ToC/LoT
Allow table
footnotes to have different properties from regular footnotes.
Set different values for html (left) and fo (begin).
Set properties for pgwide="1" objects.
Added the autotoc.label
.in.hyperlink param.
If the value of autotoc.label
.in.hyperlink is non-zero, labels are
included in hyperlinked titles in the TOC
. If it is instead zero,
labels are still displayed prior to the hyperlinked titles, but
are not hyperlinked along with the titles.
Closes patch #1065868. Thanks to anatoly techtonik for the patch.
Added two new params: html.head.legalnotice
.link
.types and
html.head.legalnotice
.link
.multiple.
If the value of the generate.legalnotice.link
is non-zero, then
the stylesheet generates (in the head section
of the HTML source)
either a single HTML link
element or, if the value of the
html.head.legalnotice
.link
.multiple is non-zero, one link
element
for each link
type specified. Each link
has the following
attributes:
- a rel attribute whose value is derived from the value of
html.head.legalnotice
.link
.types
- an href attribute whose value is set to the URL of the file
containing the legalnotice
- a title
attribute whose value is set to the title
of the
corresponding legalnotice
(or a title
programatically
determined by the stylesheet)
For example:
<link
rel="copyright
" href="ln-id2524073.html" title="Legal Notice">
Closes #1476450. Thanks to Sam Steingold.
Fixed borked markup.
Added the following params:
- man.indent.width (string-valued)
- man.indent.refsect (boolean)
- man.indent.blurbs (boolean)
- man.indent.lists (boolean)
- man.indent.verbatims (boolean)
Note that in earlier snapshots, man.indent.width was named
man.indentation.default.value and the boolean params had names
like man.indentation.*.adjust. Also the man.indent.blurbs param
was called man.indentation.authors.adjust (or something).
The behavior now is: If the value of a particular man.indent.*
boolean param is non-zero, the corresponding contents (refsect*,
list items, authorblurb/personblurb, vervatims) are displayed with
a left margin indented by a width equal to the value of
man.indent.width.
Added man.table
.footnotes.divider param.
In each table
that contains footenotes, the string specified by
the man.table
.footnotes.divider parameter is output before the
list of footnotes for the table
.
Added the man.output.in.separate.dir, man.output.base.dir
, and
man.output.subdirs.enabled parameters.
The man.output.base.dir
parameter specifies the base directory
into which man-page files are output. The
man.output.subdirs.enabled parameter controls whether the files
are output in subdirectories within the base directory.
The values of the man.output.base.dir
and
man.output.subdirs.enabled parameters are used only if the value
of man.output.in.separate.dir parameter is non-zero. If the value
of man.output.in.separate.dir is zero, man-page files are not
output in a separate directory.
Added man.font.table
.headings and man.font.table
.title
params,
for controlling font in table
headings and titles.
Added man.font.funcsynopsisinfo
and man.font.funcprototype
params, for specifying the roff font (for example, BI, B, I) forfuncsynopsisinfo
and funcprototype
output.
Changed to select="0" in refclass
.suppress (instead of ..>0</..)
Added man.segtitle
.suppress param.
If the value of man.segtitle
.suppress is non-zero, then display ofsegtitle
contents is suppressed in output.
Added man.output.manifest
.enabled and man.output.manifest.filename
params.
If man.output.manifest
.enabled is non-zero, a list of filenames
for man pages generated by the stylesheet transformation is
written to the file named by man.output.manifest
.filename
Fixed typo.
Added refclass
.suppress param.
If the value of refclass
.suppress is non-zero, then displayrefclass
contents is suppressed in output. Affects HTML and FO
output only.
Added refentry
.meta.get.quietly param.
If zero (the default), notes and warnings about "missing" markup
are generated during gathering of refentry
metadata. If non-zero,
the metadata is gathered "quietly" -- that is, the notes and
warnings are suppressed.
NOTE: If you are processing a large amount of refentry
content,
you may be able to speed up processing significantly by
setting a non-zero value for refentry
.meta.get.quietly.
Minor description update.
Added support for "software" and "sectdesc" class values onrefmiscinfo
; "software" is treated identically to "source", and
"setdesc" is treated identically to "manual".
Simplified XPath check for refentry
"source" metadata.
Drastically reworked all of the XPath expressions used in refentry
metadata gathering -- completely removed $parentinfo and turned
$info into a set of nodes that includes the *info contents of theRefentry
plus the *info contents all all of its ancestor
elements. The basic XPath expression now used throughout is (using
the example of checking for a date
):
(($info[//date])[last()]/date)[1].
That selects the "last" *info/date date
in document order -- that
is, the one eitther on the Refentry
itself or on the closest
ancestor to the Refentry
.
It's likely this change may break some things; may need to pick
up some pieces later.
Also, changed the default value for the man.th.extra2.max.length
from 40 to 30.
Bibliography
can set negative text-indent, so we must reset it for footnotes
Added a new substitution to man.string.subst.map
, because it is
necessary clean-up needed for dealing with a kludge for preserving
tab characters (which are used by tbl(1) as cell-separators)
Added option for turning off bold formatting in Funcsynopsis
.
Boldface formatting in function
synopsis
is mandated in the man(7)
man page and is used almost universally in existing man pages.
Despite that, it really does look like crap to have an entireFuncsynopsis
output in bold, so I added params for turning off the
bold formatting and/or replacing it with a different roff special
font (e.g., "RI" for alternating roman/italic instead of the
default "BI" for alternating bold/italic). The new params are
"man.funcprototype
.font" and "man.funcsynopsisinfo
.font". To be
documented later.
Closes #1452247. Thanks to Joe Orton for the feature request.
Added a couple of roff-cleanup string replacements to the
substitution map.
Added "Miscellaneous Technical" block to default subset. This
basically just means that the LEFT- and RIGHT-POINTING ANGLE
BRACKET characters (〈 and 〉, "rang" and "lang"
named entities) get converted correctly.
Added string substitution for eating extra space after .RE macro.
Fixed copy/paste error in default value. Closes bug #1446966.
Thanks to Daniel Leidert for reporting.
fop.extensions
now only for FOP version 0.20.5 and earlier.
Support for fop1 different from fop 0.20.5 and earlier.
Reset default value to empty string so template
uses gentext first, then the parameter value if not empty.
New parameter: id.warnings
. If non-zero, warnings are generated for titled objects that don't have titles. True by default; I wonder if this will be too aggressive?
Added new parameter keep.relative.image.uris
xsltproc fails on the default empty definition of these params.
I added single quotes.
Pick better defaults
Support default label
width parameters for itemized and ordered lists
Support article/info/title (DocBook 5.0)
Added parameters to localize punctuation in indexes.
Added two new parameters for handling of multi-term varlistentry
elements:variablelist.term.break.after
:
When the variablelist.term.break.after
is non-zero, it will
generate a line break after each term
multi-term varlistentry
.variablelist.term.separator
:
When a varlistentry
contains multiple term
elements, the string
specified in the value of the variablelist.term.separator
parameter is placed after each term
except the last. The default
is ", " (a comma followed by a space). To suppress rendering of
the separator, set the value of variablelist.term.separator
to
the empty string ("").
These parameters are primarily intended to be useful if you have
multi-term varlistentries that have long terms.
Closes #1306676. Thanks to Sam Steingold for providing an example
"lots of long terms" doc that demonstrated the value of having
these options.
Also, added normalize-space() call to processing of each term
.
This change affects all output formats (HTML, PDF, manpages). The
default behavior should pretty much remain the same as before, but
it is possible (as always) that the change may introduce some new
bugginess.
Convert 'no' to string in default value.
Implemented RFE #1292615.
Added bunch of new parameters (attribute sets) that affect list presentation: list.block.properties, itemizedlist
.properties, orderedlist
.properties, itemizedlist
.label
.properties and orderedlist
.label
.properties. Default behaviour of stylesheets has not been changed but further customizations will be much more easier.
Fixed handling of groff font requests output for Refsect1/Title
instances. Closes #1296252. Thanks to Paul DuBois for reporting.
Problem:
Instances of \\FB (instead of \\fB) in output for
Refsect1/Title.
Cause:
All content of Refsect1/Title gets uppercased (including any groff
requests that end up in the output.
Fix:
Added s/\\FB/\fB/, etc., matches to value of man.string.subst.map
param. (man.string.subst.map
is basically used for "cleaning up"
borked groff markup output from initial formatting pass).
Affects:
This affects output of titles for all Refsect1-level headings in
manpages output.
Implemented RFE #1242092.
You can enable crop marks in your document by setting crop.marks=1 and xep.extensions=1.
Appearance of crop marks can be controlled by parameters crop.mark.bleed
(6pt), crop.mark.offset
(24pt) and crop.mark.width
(0.5pt).
Also there is new named template called user-xep-pis. You can overwrite it in order to produce some PIs that can control XEP as described in http://www.renderx.com/reference.html#Output_Formats
Fixed typo
Changed short descriptions in doc for *autolabel* params to match
new autolabel behavior.
The following changes have been made to the
profiling
code
since the 1.69.1 release.
Handling of @entityref added back
Use common xml:base fixup routine
Emit namespace declaration for prefixes db and ng that are used inside XPath. Can we get rid of this f*#@ing QNames in attribute problem someday? (Sorry for not being polite.)
Profiling now works together with namespace stripping (V5 documents). Namespace striping should work with all stylesheets named profile-, even if they are not supporting namespace stripping in a non-profiling variant.
Do not output !DOCTYPE for profiled content. Different users have needs for different versions of DTD.
More tweaks improving profiling of HTML Help
Moved profiling stage out of templates. This make possible to reuse profiled content by several templates and still maintaing node indentity (needed for example for HTML Help where content is processed multiple times).
I don't know why this was not on the top level before. Maybe some XSLT processors choked on it. I hope this will be OK now.
An attemp to fix base URIs when profiling is done and document is not in the current directory. This seems to work on my Windows machine, but I would be interested how it behaves in unix environment. URL handling in Java is very sensitive to such things.
The following changes have been made to the
template
code
since the 1.69.1 release.
The following changes have been made to the
tools
code
since the 1.69.1 release.
Added man.output.manifest
.enabled and man.output.manifest.filename
params.
If man.output.manifest
.enabled is non-zero, a list of filenames
for man pages generated by the stylesheet transformation is
written to the file named by man.output.manifest
.filename
Changed embedded manpages customization layer to use man.output.*
param names for controlling output directory.
Makefile for creating wrapper files that combine source files for
multiple DocBook doc instances.
Replaced "echo" with "@echo" where appropriate, to suppress echo output.
Moved Makefile.DocBook from contrib
module to xsl module.
The following changes have been made to the
wordml
code
since the 1.69.1 release.
fixed orderedlist
added contrib
element, better handling of default paragraph style
added doco
added bridgehead
added blocks stylesheet to support bibliographies, glossaries and qandasets
added mediaobject
caption
added callouts
added Word template file
added abstract
, fixed itemizedlist
, ulink
Added wordml into doc and release build.
fixed Makefile
added many features to Pages support
added revhistory
, inlines, highlights, abstract
fixed handling linebreaks when generating WordML
added Apple Pages support