<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Mar 10, 2009, at 4:22 AM, Daniel Owens wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div bgcolor="#ffffff" text="#000000"> <font size="+1"><font face="Arial Unicode MS">That sounds excellent. I hope to see it implemented soon.<br> <br> Daniel<br> </font></font><br> Peter von Kaehne wrote: <blockquote cite="mid:49B61E38.5090708@gmx.net" type="cite">Daniel Owens wrote:  <br>  <blockquote type="cite">This is probably opening a low-priority can of worms, but what if some controls on the form a module is displayed in were encoded in the conf file? I mean, you could define how certain attributes should be displayed to give module developers more control over how their modules display. </blockquote>  <br> Matthew and I started experimenting a little with using more of CSS in the main display panes of xiphos. The idea being to get a) more display design going with less effort and b) making it - potentially - possible for module writers to supply along with their module a style sheet how they wished to see certain elements expressed.  <br>  <br> This is all experimental work and might never come to anything, but given that nearly all frontends of importance use a HTML renderer with CSS capability we thought this something we should aat least explore further.  <br></blockquote></div></blockquote></div><br><div>JSword has a bug, but it has a mechanism to allow external CSS.</div><div><br></div><div>The path that JSword takes in converting a module to HTML bears repeating:</div><div><br></div><div>Module output is transformed into OSIS (or left as TEI) by custom parsers which is then transformed into HTML using xslt. JSword allows for the plugging in of different xslt style sheets.</div><div><br></div><div>The HTML that is produced is unlike that of SWORD's html renderers, which largely output presentation HTML. Rather it produces structural HTML using the class attribute to indicate what is output. These then are styled with CSS. (Because of the limits of Java's HTML renderer, the HTML has lots of hacks. Such as using &lt;font> as if it were a &lt;abbr> or &lt;span> and &lt;div> as if it were &lt;caption>) Here are some examples:</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&lt;xsl:template match="caption"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &lt;div class="caption">&lt;xsl:apply-templates/>&lt;/div></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&lt;/xsl:template></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&lt;!-- expansion is OSIS, expan is TEI --></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&lt;xsl:template match="abbr"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &lt;font class="abbr"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp; &nbsp; &lt;xsl:if test="@expansion"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp;&lt;xsl:attribute name="title"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;xsl:value-of select="@expansion"/></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp;&lt;/xsl:attribute></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp;&lt;/xsl:if></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp;&lt;xsl:if test="@expan"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp;&lt;xsl:attribute name="title"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;xsl:value-of select="@expan"/></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp; &nbsp;&lt;/xsl:attribute></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp;&lt;/xsl:if></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp; &nbsp;&lt;xsl:apply-templates/></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&nbsp;&nbsp;&lt;/font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">&lt;/xsl:template></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><font class="Apple-style-span" color="#00000000"><span class="Apple-style-span" style="background-color: transparent;">While JSword does not apply styles to these, they are still marked so that they can be styled.</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><font class="Apple-style-span" color="#00000000"><span class="Apple-style-span" style="background-color: transparent;"><br></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><font class="Apple-style-span" color="#00000000"><span class="Apple-style-span" style="background-color: transparent;">In Christ,</span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre"><font class="Apple-style-span" color="#00000000"><span class="Apple-style-span" style="background-color: transparent;">        </span></font></span><font class="Apple-style-span" color="#00000000"><span class="Apple-style-span" style="background-color: transparent;">DM</span></font><br></div></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></div></div><div><br></div></body></html>