Re: [xsl] How to correctly position breaks in mixed content?

Subject: Re: [xsl] How to correctly position breaks in mixed content?
From: "Wendell Piez wapiez@xxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 14 Apr 2021 12:34:00 -0000
Hi,

Yep, this is essentially an overlap problem.

What a wonderful thing, that we have workable solutions. :->

Cheers, Wendell


On Wed, Apr 14, 2021 at 5:55 AM Geert Bormans geert@xxxxxxxxxxxxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Hi Trevor,
>
> One option would be to replace the mixed content elements by empty elements
> <var>n<superscript>th</superscript></var>
> to become
> <var type="s" id="ID01"/>n<superscript  type="s" id="ID02"/>th<superscript
>   type="e" id="ID02"><var  type="r" id="ID01"/>
>
> if so all your characters are siblings, so can do a line breaking
> algorithm, preserving the empty elements
> after that you simply reconstruct the elements
>
> Met vriendelijke groeten,
> Best regards,
>
> Geert Bormans
>
> ----- Op 14 apr 2021 om 11:46 schreef Trevor Nicholls
> trevor@xxxxxxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>:
>
> NB currently XSL 2.0
>
>
>
> I'm struggling with what I thought would be a simple enough problem:
>
>
>
> given content like this
>
>
>
> "<code>Mixed content, mainly text but with some text such as <var>variable
> names</var> wrapped in elements, sometimes nested like a reference to the
> <var>n<superscript>th</superscript></var> occurrence.</code>"
>
>
>
> and a constraint that code should be rendered within a fixed width box, I
> need to come up with a template which will process the <code> element and
> transform it into its word-wrapped equivalent.
>
>
>
> I don't need to concern myself with character sizes or styles; the output
> of this transformation will always be rendered in a fixed-width font.
>
>
>
> I can write something which works fine if a <code> element is simple text
> - but the requirement is for this to work with mixed content too. In the
> above example, if the constraint is that the line must wrap at or before 64
> characters, the first break comes in the middle of the first <var>.
>
>
>
> Assuming that the <code> example above is the current element, what I am
> trying to write is a template
>
>
>
> <xsl:template name="wordwrap">
>
>   <xsl:param name="input" select="." />
>
>   <xsl:param name="linelen" select="64" />
>
> b&
>
> </xsl:template>
>
>
>
> that will output
>
>
>
> "Mixed content, mainly text but with some text such as
> <var>variable</var><wordwrap/>
>
> <var>names</var> wrapped in elements, sometimes nexted like a reference
> to<wordwrap/>
>
> the <var>n<superscript>th</superscript></var> occurrence."
>
>
>
> Can anyone offer me some pointers as to how I should implement this?
>
>
>
> Cheers
>
> T
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/554170> (by
> email)
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/174322> (by
> email <>)
>


--
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...

Current Thread