On Thu, 13 Apr 2023 10:53:31 -0500
"Karl O. Pinc" <k...@karlpinc.com> wrote:

> On Thu, 13 Apr 2023 16:01:35 +0200
> Brar Piening <b...@gmx.de> wrote:
> 
> > On 13.04.2023 at 10:31, Peter Eisentraut wrote:  

> > > Side project: I noticed that these new hover links don't appear in
> > > the single-page HTML output (make postgres.html), even though the
> > > generated HTML source code looks correct.  Maybe someone has an
> > > idea there.    
> > I feel responsible for the feature to work for all use cases where
> > it makes sense. I'll investigate this and post back.  
> 
> Looks to me like the ">" in the CSS was transformed into the &gt;
> HTML entity when the stylesheet was included into the single-file
> HTML.

The XSLT 1.0 spec says that characters in <style> elements should
not be escaped when outputting HTML.  [4]  But (I think) the
generate.css.header parameter method [1][2] of 
inserting the CSS into the HTML expands the CSS content
in an XML context, not a HTML context.  

I've played around with it, going so far as to make stylesheet.css
look like:

--------------<snip>--------
<!DOCTYPE  xsl:stylesheet [
<!ENTITY css SYSTEM "stylesheet.css">
]>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  &css;
</xsl:stylesheet>
--------------<snip>--------

and even substituted the actual text of stylesheet.css in
place of the &css; entity reference.  In these cases the
"<" character is still entity expanded, resulting in broken CSS.

My conclusion is that this method is broken.

(The other possibility, I suppose, is that xsltproc is broken.)

I think the thing to try is the sagehill.net approach [4].
This overrides the user.head.content template.  My hope is
that because the &css; entity is seen in a <style> element
in the template, that xsltproc then recognizances style element
content in a HTML output context.

(I don't know how xsltproc is supposed to know that it is
in a HTML output context.  I suppose exploring this would
be another avenue should the above fail.)


1
https://docbook.sourceforge.net/release/xsl/current/doc/html/custom.css.source.html

2
https://docbook.sourceforge.net/release/xsl/current/doc/html/generate.css.header.html

3 http://sagehill.net/docbookxsl/HtmlHead.html#EmbedCSS

4 https://www.w3.org/TR/xslt-10/#section-HTML-Output-Method

Regards,

Karl <k...@karlpinc.com>
Free Software:  "You don't pay back, you pay forward."
                 -- Robert A. Heinlein


Reply via email to