Hi Gerrit,
I'm glad you are interested in this aspect. There are 6 types of Oxygen
track changes:
https://www.oxygenxml.com/doc/versions/22.1/ug-editor/topics/track-changes-format.html
The insert track changes do not nest one in another, so you will never
have an insert track change inside another, same for the combination of
insert and delete track changes, they are not hierarchical, they are
intervals which do not intersect each other. So your XSLT should cover
most cases for insertions and deletions as oxy_insert_start and
oxy_insert_end processing instructions would usually be siblings
(surrounding wellformed XML content).
The surround change for example does not surround well formed XML
content, it just surrounds the start tag. The attribute change is just a
processing instruction before the XML start tag.
The comment and color highlights on the other side can nest one in
another and can intersect in any way. So these are nasty, you can create
elements for a comment start and end but you cannot create a wrapper
element over the entire content spanned by a comment or a color
highlight. You need some kind of a stack of processing instructions in
the XSLT to know where a comment starts and where it ends.
You can also reply to a change or to a comment in Oxygen and this will
generate extra comment changes which are threaded.
For DocBook 5 Oxygen ships with a bundled transformation scenario for
producing PDF with track changes, it's build file is located in:
OXYGEN_INSTALL_DIR/frameworks/docbook/xsl/fo-oxy-ct/build.xml
We also make available with an Apache 2.0 license the XSLT stylesheets
we use for DITA publishing, stylesheets which with small changes should
also work for DocBook HTML or PDF:
https://github.com/oxygenxml/dita-classic-pdf-review/tree/master/com.oxygenxml.pdf.review/review
From what I remember our way of handling this is to create from each
processing instruction start or end an equivalent XML element in a
custom Oxygen namespace, then to match all text() nodes, the template is
here:
https://github.com/oxygenxml/dita-classic-pdf-review/blob/master/com.oxygenxml.pdf.review/review/review-pis-to-elements-core.xsl
<xsl:template match="text()" priority="100">
and if there are change elements which are around the text, surround
each text fragment in a highlight element. So we avoid surrounding
entire pieces of XML in annotation elements, we just surround each
individual piece of text.
Regards,
Radu
Radu Coravu
Oxygen XML Editor
On 8/17/20 10:21 PM, Imsieke, Gerrit, le-tex wrote:
Apologies for cross-posting. Please think about whether the answer is
most relevant to only one of both mailings lists before replying to both.
I recently wanted to render a large book (DocBook 5.1) that was
copy-edited in oXygen author mode and that contained the corresponding
processing instructions, and I wanted to render it with the Ant-based
FO scenario that displays changes. But for some reason that I could
not really fathom, neither this FOP scenario nor the default PDF
rendering scenario produced results, with different error messages.
Increasing oXygen’s or Ant’s heap space to insane amounts didn’t
improve the situation.
Anyway, I didn’t need a PDF; HTML would be fine, too, so I decided to
add an oXygen change markup renderer to Norm’s brand new xslTNG
stylesheets, https://github.com/docbook/xslTNG
There’s a pull request to xslTNG where I asked Norm to merge it into
xslTNG (https://github.com/docbook/xslTNG/pull/67). But since it has
been hardly tested on many documents, Norm is hesitant to merge it,
and I’d like to collect some user feedback first.
I’d like to ask you to test it on your DocBook files that have been
enhanced with change markup in oXygen’s author mode. The patched
renderer is at https://github.com/gimsieke/xslTNG/tree/oxy-markup. You
probably need Gradle or something to build it yourself, but you can
use the latest release (https://github.com/docbook/xslTNG/releases)
and replace the changed files
(https://github.com/docbook/xslTNG/pull/67/files).
Or you can just run the stylesheet
https://github.com/gimsieke/xslTNG/blob/oxy-markup/src/main/xslt/transforms/80-oxy-markup.xsl
standalone, render the resulting DocBook to HTML and define the CSS
classes .oxy_insert and .oxy_delete to naybe color:green and
color:red, respectively.
Please let me know whether it works in principle or whether there are
bugs or missing features. Also whether there’s already another
stylesheet somewhere in place that is supposed to render the oXygen
change markup PIs.
Gerrit
_______________________________________________
oXygen-user mailing list
[email protected]
https://www.oxygenxml.com/mailman/listinfo/oxygen-user
_______________________________________________
oXygen-user mailing list
[email protected]
https://www.oxygenxml.com/mailman/listinfo/oxygen-user