DBSoft6:OPT#8#67100656GWD#1#0GCL#11#-2147483633WRC#1#0IDS#1#4WRO#3#>|:FON#11#Courier NewFOS#1#9STC#8#16777215STB#7#8388608TBC#0#TBD#1#4EFF#297#17,0,0,16777215,;3,0,16777215,;4,8421504,16777215,;5,0,16777215,;6,255,16777215,;10,16711680,16777215,;11,0,16777215,;12,16711680,16777215,;20,16711680,16777215,;21,255,16777215,;22,255,16777215,;23,16711680,16777215,;40,255,16777215,;42,0,16777215,;43,255,16777215,;45,0,16777215,;46,0,16777215,;GDF#1#0MDF#1#0SDF#1#0BDF#1#0FOC#1#0RMG#1#0LNN#13#MS Sans SerifLNS#1#8LNC#11#-2147483640LNT#1#1LNE#0##END#
of
Screenbook Maker XSLT Templates
About Screenbook Maker XSLT files
sbx_*.xsl files
toc_*.xsl files
opt_*.xsl files
webtoc_*.xsl files
XSLT for sbook.xml
@file sbx_slide.xsl
<< main template >>
<< head >>
<< body >>
<< layer 1 >>
<< layer 2 >>
<< layer 3 >>
<< layer 4 >>
<< call-templates >>
<< image 1 >>
<< image 2 >>
<< copyright >>
<< page menu >>
<< prev button >>
<< next button >>
<< slide name >>
@file sbx_sbook.xsl
<< main template >>
<< head >>
<< body >>
<< layer 1 >>
<< layer 2 >>
<< layer 3 >>
<< call-templates >>
<< image 1 >>
<< copyright >>
@file sbx_sbook2.xsl
<< main template >>
<< head >>
<< body >>
<< layer 1 >>
<< layer 2 >>
<< layer 3 >>
<< call-templates >>
<< image 1 >>
<< copyright >>
@file sbx_pic.xsl
<< main template >>
<< head >>
<< body >>
<< layer 1 >>
<< layer 2 >>
<< layer 3 >>
<< call-templates >>
<< image 1 >>
<< copyright >>
<< slide name >>
@file sbx_sbookt.xsl
<< main template >>
<< head >>
<< body >>
<< call-templates >>
@file sbx_sbooksimple.xsl
<< main template >>
<< html >>
@file sbx_index.xsl
<< main template >>
<< head >>
<< body >>
<< main table of info >>
@file sbx_slidetoc.xsl
<< main template >>
<< head >>
<< body >>
<< call-templates >>
<< slide name >>
@file sbx_slidetocf.xsl
<< main template >>
<< head >>
<< body >>
<< call-templates >>
<< slide name >>
@file sbx_slidetocp.xsl
<< main template >>
<< head >>
<< body >>
XSLT for Bookshelf sbooktoc.xml
@file toc_sbooks.hhc.xsl
<< html >>
@file toc_sbooks.hhp.xsl
@file toc_sbooks.rdf.xsl
<< channel >>
<< items >>
@file toc_sbooktoc.xsl
<< main template >>
<< head >>
<< body >>
@file toc_sbooktoc_ie.xsl
<< main template >>
<< head >>
<< body >>
@file toc_sbooktoc_ns.xsl
<< main template >>
<< head >>
<< body >>
@file toc_sbooktocp.xsl
<< main template >>
<< head >>
<< body >>
<< main table >>
@file toc_imsmanifest.xml.xsl
<< main template >>
<< manifest >>
<< metadata >>
<< organizations >>
<< resources >>
@file toc_LRN_Title.xsl
<< main template >>
XSLT for Bookshelf sbooktoc.xml in web bookshelf
@file webtoc_sbooktoc.xsl
<< main template >>
<< head >>
<< body >>
@file webtoc_sbooktoc_ie.xsl
<< main template >>
<< head >>
<< body >>
@file webtoc_sbooktoc_ns.xsl
<< main template >>
<< head >>
<< body >>
XSLT for Bookshelf options.xml
@file opt_titlehh.xsl
<< main template >>
<< head >>
<< body >>
This LEO file contains XSLT stylesheets that can be used with Screenbook Maker

These stylesheets were written by Joe Orr : jorr@screenbooks.net. They may be freely used, copied and edited.

Screenbook Maker looks for the following types of XSLT stylesheets in any bookshelf folder. Screenbook Maker will process all XSLT files that it finds matching the following naming convention. The explanation for each type of XSLT file can be found under this node.

sbx_*.xsl toc_*.xsl opt_*.xsl webtoc_*.xsl

To generate the stylesheets from this Leo file, press Shift+Ctrl+A when viewing this file in Leo.

The html files created by Screenbook Maker are 100% generated via these XSLT stylesheets, except that Screenbook Maker appends a short footnote ("Created with Screenbook Maker.."). To change the format of screenbooks created with Screenbook Maker, or to create new formats, simply edit these stylesheets or create new ones, and place the stylesheets in a screenbook bookshelf folder.

============================================================================= March, 2002

How Screenbook Maker uses these files:

When you create a screenbook using Screenbook Maker 1. Screenbook Maker looks in the bookshelf folder for files starting with "sbx_" and ending with ".xsl". 2. Screenbook Maker applies EACH of these files, no matter how many it finds, to the file sbook.xml in the folder of the screenbook you just created. 3. Screenbook Maker puts the output for each of these transformations into the screenbook folder, into a file named the same as the xslt stylesheet, minus the "sbx_" and the ".xsl". If the resulting filename has no extension, Screenbook Maker adds the extension ".htm".

Examples: sbx_simple.xsl : results in a file called simple.htm being placed into the screenbook folder. This folder is the result of the screenbook sbook.xml file being transformed by the sbx_simple.xsl stylesheet.

sbx_simple.txt.xsl : results in a file called simple.txt being placed into the screenbook folder. This folder is the result of the screenbook sbook.xml file being transformed by the sbx_simple.txt.xsl stylesheet.

Special transformations: If your XSLT stylesheet has a <files> element containing <file> elements, the transformation occurs on each <file> element and a separate file is written to the screenbook folder with 01, 02, etc. appended to the base stem. For example: sbx_slide.xsl : This stylesheet (contained within this LEO file) results in a series of files: slide01.htm, slide02.htm, etc.
How Screenbook Maker uses these files:

When you choose "Rebuild Table of Contents" or when you choose "Send to Web" from the Bookshelf menu, Screenbook Maker creates a file called sbooktoc.xml. This file contains a listing of all of the screenbooks in the bookshelf, including the description of each and other information. Then Screenbook Maker looks in the bookshelf folder for files beginning with "toc_" and ending in ".xsl". For EACH of these files, Screenbook Maker applies the file to sbooktoc.xml and puts the output for each of these transformations into the screenbook folder, into a file named the same as the xslt stylesheet, minus the "sbt_" and the ".xsl". If the resulting filename has no extension, Screenbook Maker adds the extension ".htm".
One additional type of XSLT file is used by Screenbook Maker. Any file in a screenbook bookshelf folder beginning with "opt_" and ending in ".xsl" will be applied to the options.xml file.
These XSLT stylesheets are applied to the sbook.xml file in the screenbook folder.

sbx_slide : creates slide view screenbook sbx_sbook : creates one page screenbook (all slides on one page) sbx_sbook2 : same as sbx_sbook but creates a page an icon in place of each image. sbx_pic : creates pic01.htm, pic02.htm etc, as target pages for the icon links in sbook2 sbx_sbookt : thumbnail view page sbx_simple : a simple example, creates a one page screenbook

sbx_index : creates the title page for the screenbook (used when printing)

sbx_slidetoc : creates a table of contents for the screenbook sbx_slidetocf : creates a table of contents for the screenbook for use in a frame sbx_slidetocp : creates a table of contents for the screenbook for printing
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> << call-templates >> </xsl:stylesheet>
@code

<xsl:template match="/"> <files> <xsl:for-each select="screenbook/pages/page"> <file> <html> << head >> << body >> </html> </file> </xsl:for-each> </files> </xsl:template>
<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="keywords" content="{../../keywords}" /> <meta name="description" content="{../../description}"/> <title> <xsl:value-of select="../../title"/> : <xsl:value-of select="title"/> </title> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'/> <script src='../../../../sbook.js'></script> <script>init2()</script> <style type="text/css"> BODY {margin-top:0} </style> </head>
@code

<body> << layer 1 >> << layer 2 >> << layer 3 >> </body>
@doc

The nav bar.

@code

<xsl:variable name="myIndex"><xsl:if test="position() &lt; 10">0</xsl:if><xsl:value-of select="position()"/></xsl:variable> <div id='Layer1' style='position:absolute; width:640px; height:30px; z-index:2; left: 10x; top: 1px'> <table> <tr> <td width='32' nowrap="nowrap" class='navbar' title='Look for more Screenbooks at Screenbooks.net'> <a href='http://www.evisa.com/e/sb.htm' target='_top'><img src='../../../../home.gif' width='18' height='14' border='0'/></a><xsl:text> </xsl:text> </td> <td width='32' nowrap="nowrap" class='navbar' title='Search this bookshelf'> <a href='../../../../search.htm' target='_top'><img src='../../../../search.gif' width='18' height='14' border='0'/></a><xsl:text> </xsl:text> </td>

<td width='30' nowrap="nowrap" class='navbar' title='View this page with no frames'> <a target='_top'> <xsl:attribute name="href">slide<xsl:value-of select="$myIndex"/>.htm</xsl:attribute> <img src='../../../../window.gif' border='0' hspace='2' width='30px' height='14px'/></a><xsl:text> </xsl:text> </td>

<td width='238' nowrap="nowrap" class='navbar'> <a class="menua" href='../../../../custom.htm'>font</a><xsl:text> &#160; </xsl:text> <a class="menua" href='../../../../help_s.htm'>help</a><xsl:text> &#160; </xsl:text>

<a class="menua" title='Table of contents of this Bookshelf (Frames)'> <xsl:attribute name="href">javascript:go('sbframetoc.htm?f=slide<xsl:value-of select="$myIndex"/>.htm')</xsl:attribute> bookshelf</a><xsl:text> &#160; </xsl:text>

<a class="menua" title='Table of contents of this Screenbook (Frames)'> <xsl:attribute name="href">javascript:go('frametoc.htm?f=slide<xsl:value-of select="$myIndex"/>.htm')</xsl:attribute> TOC</a><xsl:text> &#160; </xsl:text> <a class="menua" title='Titles and Thumbnails' href="javascript:go('sbookt.htm')">thumbnails</a> </td>

<td width='206' nowrap="nowrap" class='navbar'> <b><xsl:value-of select="position()"/> of <xsl:value-of select="$pageCount"/></b><xsl:text> </xsl:text> </td>

<td width='40' nowrap="nowrap" class='navbar2' title='Back one page'><xsl:call-template name="prevButton"><xsl:with-param name="myIndex" select="position()" /></xsl:call-template><xsl:text> </xsl:text> </td> <td width='40' nowrap="nowrap" class='navbar2' title='Next page'><xsl:call-template name="nextButton"><xsl:with-param name="myIndex" select="position()" /></xsl:call-template><xsl:text> </xsl:text> </td> </tr> </table> </div>

@doc

The title bar.

@code

<div id='Layer2' class="layer2" > <table width='640' border='0' align='left' bgcolor='#999999'> <tr> <td class='txt2' style="border:none">&#160; <span class='txt1'>&#160;<xsl:value-of select="/screenbook/category"/> : <xsl:value-of select="/screenbook/subcategory"/></span> <span class='txt3'>&#160; &#160;<xsl:value-of select="/screenbook/title"/></span> &#160; </td> </tr> </table> </div>
@doc

The rest of the page: text, pic, page menu, copyright etc.

@code

<div id='Layer3' style='position:absolute; width:700px; height:480px; z-index:2; left: 10px; top: 60px'>

<xsl:value-of select="text" disable-output-escaping="yes"/>

<div class='br1'> &#160; </div>

<xsl:call-template name="screenbookImage"> <xsl:with-param name="pic" select="picture"/> </xsl:call-template> <xsl:call-template name="screenbookImage2"> <xsl:with-param name="pic" select="picture"/> </xsl:call-template>

<map name="map1"><area shape="rect" coords="425,0 585,14" href="http://www.screenbooks.net" alt="screenbooks home site" /></map>

<br/><br/> <table class="footer" cellpadding="4" width="640"><tr><td valign="middle"> <xsl:call-template name="pageMenu"> <xsl:with-param name="count" select="1"/> <xsl:with-param name="myIndex" select="position()"/> </xsl:call-template> </td></tr></table> << layer 4 >>

<div style="width:640px" class="cp"> <xsl:call-template name="copyright"> <xsl:with-param name="page" select="."/> </xsl:call-template> </div>

</div>
@doc

This is a layer that only shows up when printing.

@code

<div id='Layer4' class="pageCount"> <xsl:value-of select="position()"/> of <xsl:value-of select="$pageCount"/> </div>
@code

<< image 1 >> << image 2 >> << copyright >> << page menu >> << prev button >> << next button >> << slide name >>

@code

<xsl:template name="screenbookImage"> <xsl:param name="pic"/> <xsl:choose> <xsl:when test="$pic='[Empty]'"> </xsl:when> <xsl:otherwise> <img border="0" src="{$pic}" width="{$pic/@width}" height="{$pic/@height}" class="image1" ismap="ismap" usemap="#map1" /> </xsl:otherwise> </xsl:choose> </xsl:template>
@doc

This html only gets used during printing.

@code

<xsl:template name="screenbookImage2"> <xsl:param name="pic"/> <xsl:choose> <xsl:when test="$pic='[Empty]'"> </xsl:when> <xsl:otherwise> <img border="0" src="highres/{$pic}" width='1' height='1' class="image2" /> </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="copyright"> <xsl:param name="page"/> &#160; <xsl:if test="$page/text != '[Empty]' and $page/author != '[Empty]'"> <span class='cp'>Text Author: <xsl:value-of select="$page/author"/></span> &#160; </xsl:if> <xsl:if test="$page/cp != '[Empty]'"> <span class='cp'><xsl:value-of select="$page/cp"/></span> &#160; </xsl:if> <xsl:if test="$page/sauthor != '[Empty]'"> <span class='cp'>Screenshot By: <xsl:value-of select="$page/sauthor"/></span> &#160; </xsl:if> </xsl:template>
@code

<xsl:template name="pageMenu"> <xsl:param name="count"/> <xsl:param name="myIndex"/> <xsl:choose> <xsl:when test="$myIndex = $count"> <span class='txt6'><xsl:value-of select="$count"/></span> &#160; </xsl:when> <xsl:otherwise> <a class="footer"> <xsl:attribute name="href"> <xsl:call-template name="slideName"> <xsl:with-param name="myIndex" select="$count"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="$count"/> </a> <xsl:text> &#160; </xsl:text> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="$count &lt; $pageCount"> <xsl:call-template name="pageMenu"> <xsl:with-param name="count" select="$count + 1"/> <xsl:with-param name="myIndex" select="$myIndex"/> </xsl:call-template> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="prevButton"> <xsl:param name="myIndex"/> <xsl:choose> <xsl:when test="$myIndex &gt; 1"> <a> <xsl:attribute name="href"> <xsl:call-template name="slideName"> <xsl:with-param name="myIndex" select="$myIndex - 1"/> </xsl:call-template> </xsl:attribute> <xsl:text></xsl:text><img src='../../../../left.gif' border='0' height='14px' width='30px' hspace='2' /><xsl:text></xsl:text> </a> </xsl:when> <xsl:otherwise>&#160; </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="nextButton"> <xsl:param name="myIndex"/> <xsl:choose> <xsl:when test="$myIndex &lt; $pageCount"> <a> <xsl:attribute name="href"> <xsl:call-template name="slideName"> <xsl:with-param name="myIndex" select="$myIndex + 1"/> </xsl:call-template> </xsl:attribute> <xsl:text></xsl:text><img src='../../../../right.gif' border='0' height='14px' width='30px' hspace='2' /><xsl:text></xsl:text> </a> </xsl:when> <xsl:otherwise>&#160; </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="slideName"> <xsl:param name="myIndex"/> <xsl:text>slide</xsl:text> <xsl:choose> <xsl:when test="$myIndex &lt; 10">0</xsl:when> <xsl:otherwise></xsl:otherwise> </xsl:choose> <xsl:value-of select="$myIndex"/> <xsl:text>.htm</xsl:text> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> << call-templates >> </xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="keywords" content="{../../keywords}" /> <meta name="description" content="{../../description}"/> <title> <xsl:value-of select="../../title"/> : <xsl:value-of select="title"/> </title> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'/> <script src='../../../../sbook.js'></script> <script>init2()</script> <style type="text/css"> BODY {margin-top:0} </style> </head>
@code

<< layer 1 >> << layer 2 >> << layer 3 >>
@code

<xsl:variable name="myIndex"><xsl:if test="position() &lt; 10">0</xsl:if><xsl:value-of select="position()"/></xsl:variable>

<div id='Layer1' style='position:absolute; width:180px; height:30px; z-index:2; left: 10x; top: 1px'> <table> <tr> <td width='56' nowrap="nowrap" class='navbar'> <a title='Table of contents of this Bookshelf (No Frames)' href="javascript:go('../../../../sbooktoc.htm')"><img src='../../../../books.gif' border='0' hspace='2' width='12px' height='14px'/></a><xsl:text> </xsl:text> <a title='Table of contents of this Bookshelf (Frames)'> <xsl:attribute name="href">javascript:go('sbframetoc.htm?f=slide<xsl:value-of select="$myIndex"/>.htm')</xsl:attribute> <img src='../../../../bwind.gif' border='0' hspace='3' width='12px' height='14px' /></a><xsl:text> </xsl:text> </td> <td width='40' nowrap="nowrap" class='navbar' title='Search this bookshelf'> <a href='../../../../search.htm' target='_top'><img src='../../../../search.gif' width='18' height='14' border='0' /></a> </td> <td width='20' nowrap="nowrap" class='navbar' title='View this page with no frames'> <a href='sbook.htm' target='_top'><img src='../../../../window.gif' border='0' hspace='2' width='30px' height='14px' /></a> </td> </tr> </table> </div>
@doc

The title bar.

@code

<div id='Layer2' class="layer2"> <table width='660' border='0' align='left' bgcolor='#999999'> <tr> <td class='txt2'>&#160; <span class='txt1'>&#160;<xsl:value-of select="/screenbook/category"/> : <xsl:value-of select="/screenbook/subcategory"/></span> <span class='txt3'>&#160; &#160;<xsl:value-of select="/screenbook/title"/></span> &#160; </td> </tr> </table> </div>
@code

<div id='Layer3' style='position:absolute; width:600px; z-index:2; left:10px; top:60px'>

<xsl:for-each select="/screenbook/pages/page"> <xsl:value-of select="text" disable-output-escaping="yes"/> <div class='br1'> &#160; </div> <xsl:call-template name="screenbookImage"> <xsl:with-param name="pic" select="picture"/> </xsl:call-template> <br/> <hr class='hr1'/> </xsl:for-each>

<xsl:call-template name="copyright"> <xsl:with-param name="page" select="/screenbook/pages/page[1]"/> </xsl:call-template>

</div>
@code

<< image 1 >> << copyright >>
@code

<xsl:template name="screenbookImage"> <xsl:param name="pic"/> <xsl:choose> <xsl:when test="$pic='[Empty]'"> </xsl:when> <xsl:otherwise> <img border="0" src="{$pic}" width="{$pic/@width}" height="{$pic/@height}" class="image1" ismap="ismap" usemap="#map1" /> </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="copyright"> <xsl:param name="page"/>

<xsl:if test="$page/text != '[Empty]' and $page/author != '[Empty]'"> <span class='cp'>Text Author: <xsl:value-of select="$page/author"/></span> &#160; </xsl:if> <xsl:if test="$page/cp != '[Empty]'"> <span class='cp'><xsl:value-of select="$page/cp"/></span> &#160; </xsl:if> <xsl:if test="$page/sauthor != '[Empty]'"> <span class='cp'>Screenshot By: <xsl:value-of select="$page/sauthor"/></span> &#160; </xsl:if> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> << call-templates >> </xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="keywords" content="{../../keywords}" /> <meta name="description" content="{../../description}"/> <title> <xsl:value-of select="../../title"/> : <xsl:value-of select="title"/> </title> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'/> <script src='../../../../sbook.js'></script> <script>init2()</script> <style type="text/css"> BODY {margin-top:0} </style> </head>
@code

<< layer 1 >> << layer 2 >> << layer 3 >>
@code

<xsl:variable name="myIndex"><xsl:if test="position() &lt; 10">0</xsl:if><xsl:value-of select="position()"/></xsl:variable>

<div id='Layer1' style='position:absolute; width:180px; height:30px; z-index:2; left: 10x; top: 1px'> <table> <tr> <td width='56' nowrap="nowrap" class='navbar'> <a title='Table of contents of this Bookshelf (No Frames)' href="javascript:go('../../../../sbooktoc.htm')"><img src='../../../../books.gif' border='0' hspace='2' width='12px' height='14px'/></a><xsl:text> </xsl:text> <a title='Table of contents of this Bookshelf (Frames)'> <xsl:attribute name="href">javascript:go('sbframetoc.htm?f=slide<xsl:value-of select="$myIndex"/>.htm')</xsl:attribute> <img src='../../../../bwind.gif' border='0' hspace='3' width='12px' height='14px' /></a><xsl:text> </xsl:text> </td> <td width='40' nowrap="nowrap" class='navbar' title='Search this bookshelf'> <a href='../../../../search.htm' target='_top'><img src='../../../../search.gif' width='18' height='14' border='0' /></a> </td> <td width='20' nowrap="nowrap" class='navbar' title='View this page with no frames'> <a href='sbook.htm' target='_top'><img src='../../../../window.gif' border='0' hspace='2' width='30px' height='14px' /></a> </td> </tr> </table> </div>
@doc

The title bar.

@code

<div id='Layer2' class="layer2"> <table width='660' border='0' align='left' bgcolor='#999999'> <tr> <td class='txt2'>&#160; <span class='txt1'>&#160;<xsl:value-of select="/screenbook/category"/> : <xsl:value-of select="/screenbook/subcategory"/></span> <span class='txt3'>&#160; &#160;<xsl:value-of select="/screenbook/title"/></span> &#160; </td> </tr> </table> </div>
@code

<div id='Layer3' style='position:absolute; width:600px; z-index:2; left:10px; top:60px'>

<xsl:for-each select="/screenbook/pages/page"> <xsl:value-of select="text" disable-output-escaping="yes"/> <div class='br1'> &#160; </div> <xsl:call-template name="screenbookImage"> <xsl:with-param name="pic" select="picture"/> </xsl:call-template> <br/> <hr class='hr1'/> </xsl:for-each>

<xsl:call-template name="copyright"> <xsl:with-param name="page" select="/screenbook/pages/page[1]"/> </xsl:call-template>

</div>
@code

<< image 1 >> << copyright >>
@code

<xsl:template name="screenbookImage"> <xsl:param name="pic"/> <xsl:choose> <xsl:when test="$pic='[Empty]'"> </xsl:when> <xsl:otherwise> <a> <xsl:attribute name="href"> <xsl:text>pic</xsl:text><xsl:if test="position() &lt; 10">0</xsl:if><xsl:value-of select="position()"/><xsl:text>.htm</xsl:text> </xsl:attribute> <img border="0" src="../../../../screen.png" width="11" height="12" /> </a> </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="copyright"> <xsl:param name="page"/>

<xsl:if test="$page/text != '[Empty]' and $page/author != '[Empty]'"> <span class='cp'>Text Author: <xsl:value-of select="$page/author"/></span> &#160; </xsl:if> <xsl:if test="$page/cp != '[Empty]'"> <span class='cp'><xsl:value-of select="$page/cp"/></span> &#160; </xsl:if> <xsl:if test="$page/sauthor != '[Empty]'"> <span class='cp'>Screenshot By: <xsl:value-of select="$page/sauthor"/></span> &#160; </xsl:if> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> << call-templates >> </xsl:stylesheet>
@code

<xsl:template match="/">

<files>

<xsl:for-each select="screenbook/pages/page">

<file>

<html> << head >> << body >> </html>

</file>

</xsl:for-each> </files>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="keywords" content="{../../keywords}" /> <meta name="description" content="{../../description}"/> <title> <xsl:value-of select="../../title"/> : <xsl:value-of select="title"/> </title> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'/> <script src='../../../../sbook.js'></script> <script>init2()</script> <style type="text/css"> BODY {margin-top:0} </style> </head>
@code

<< layer 1 >> << layer 2 >> << layer 3 >>
@code

<div id='Layer1' style='position:absolute; width:180px; height:30px; z-index:2; left: 10x; top: 1px'> <table> <tr> <td> <a> <xsl:attribute name='href'>sbook2.htm#<xsl:value-of select="position()"/></xsl:attribute><font size="2">Back To Screenbook</font></a> </td> </tr> </table> </div>

@doc

The title bar.

@code

<div id='Layer2' class="layer2"> <table width='660' border='0' align='left' bgcolor='#999999'> <tr> <td class='txt2'>&#160; <span class='txt1'>&#160;<xsl:value-of select="/screenbook/category"/> : <xsl:value-of select="/screenbook/subcategory"/></span> <span class='txt3'>&#160; &#160;<xsl:value-of select="/screenbook/title"/></span> &#160; </td> </tr> </table> </div>
@code

<div id='Layer3' style='position:absolute; width:600px; z-index:2; left: 10px; top: 60px'>

<xsl:call-template name="screenbookImage"> <xsl:with-param name="pic" select="picture"/> </xsl:call-template>

<map name="map1"><area shape="rect" coords="425,0 585,14" href="http://www.screenbooks.net" alt="screenbooks home site" /></map> <hr align='left' class='hr1' />

<xsl:call-template name="copyright"> <xsl:with-param name="page" select="."/> </xsl:call-template>

</div>
@code

<< image 1 >> << copyright >> << slide name >>
@code

<xsl:template name="screenbookImage"> <xsl:param name="pic"/> <xsl:choose> <xsl:when test="$pic='[Empty]'"> </xsl:when> <xsl:otherwise> <img border="0" src="{$pic}" width="{$pic/@width}" height="{$pic/@height}" class="image1" ismap="ismap" usemap="#map1" /> </xsl:otherwise> </xsl:choose> </xsl:template>
@code

<xsl:template name="copyright"> <xsl:param name="page"/>

<xsl:if test="$page/text != '[Empty]'"> <span class='cp'>Text Author: <xsl:value-of select="$page/author"/></span> &#160; </xsl:if> <xsl:if test="$page/cp != '[Empty]'"> <span class='cp'><xsl:value-of select="$page/cp"/></span> &#160; </xsl:if> <xsl:if test="$page/sauthor != '[Empty]'"> <span class='cp'>Screenshot By: <xsl:value-of select="$page/sauthor"/></span> &#160; </xsl:if> </xsl:template>
@code

<xsl:template name="slideName"> <xsl:param name="myIndex"/> <xsl:text>slide</xsl:text> <xsl:choose> <xsl:when test="$myIndex &lt; 10">0</xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$myIndex"/> <xsl:text>.htm</xsl:text> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> << call-templates >> </xsl:stylesheet>

@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>

@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="keywords" content="{../../keywords}" /> <meta name="description" content="{../../description}"/> <title> <xsl:value-of select="../../title"/> : <xsl:value-of select="title"/> </title> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'/> <script src='../../../../sbook.js'></script> <script>init2()</script> <style type="text/css"> BODY {margin-top:0} </style> </head>
@code

<body topmargin="0" leftmargin="0" rightmargin="0" marginheight="0" marginwidth="0"> <div id='Layer2' class="layer2" style="position:absolute; width:640px; z-index:2; left: 10px; top: 4px"> <table width='660' border='0' align='left' bgcolor='#999999'> <tr> <td class='txt2'>&#160; <span class='txt1'>&#160;<xsl:value-of select="/screenbook/category"/> : <xsl:value-of select="/screenbook/subcategory"/></span> <span class='txt3'>&#160; &#160;<xsl:value-of select="/screenbook/title"/></span> &#160; </td> </tr> </table> </div>

<div id='Layer3' style='position:absolute; width:640px; z-index:2; left: 10px; top: 35px'> <span class='txt4'>Screenbook Thumbnail View: Click on an image to go to the page.</span> <br/> <br/> <xsl:apply-templates select="//pages" />

</div> </body>
@code

<!-- The template for the items to be printed into a table. This is where the <table> tag gets printed. --> <xsl:template match="pages"> <!-- table rows are built with general purpose table routine: "makeRows" "c" is the number of columns "content" is the nodeset of items to be put in cells "counter" is always 1 --> <table border="0" cellspacing="2" cellpadding="6" bgcolor="slate"> <xsl:call-template name="makeRows"> <xsl:with-param name="content" select="page" /> <xsl:with-param name="c" select="4" /> <xsl:with-param name="counter" select="1" /> <xsl:with-param name="myIndex" select="1"/> </xsl:call-template> </table> </xsl:template>

<!-- The template for printing the table rows --> <xsl:template name="makeRows"> <xsl:param name="content" /> <xsl:param name="c" /> <xsl:param name="myIndex" /> <!-- print c cols (one row) --> <tr> <xsl:call-template name="makeCols"> <xsl:with-param name="content" select="$content[position() &lt; ($c + 1)]" /> <xsl:with-param name="c" select="$c" /> <xsl:with-param name="counter" select="1" /> <xsl:with-param name="myIndex" select="$myIndex" /> </xsl:call-template> </tr> <!-- recurse to print the remaining rows --> <xsl:if test="$content[position() > $c]"> <xsl:call-template name="makeRows"> <xsl:with-param name="content" select="$content[position() &gt; $c]" /> <xsl:with-param name="c" select="$c" /> <xsl:with-param name="myIndex" select="$myIndex + $c" /> </xsl:call-template> </xsl:if> </xsl:template>

<!-- The template for printing the table columns --> <xsl:template name="makeCols"> <xsl:param name="content" /> <xsl:param name="c" /> <xsl:param name="counter" /> <xsl:param name="myIndex" /> <!-- print out c (number of) cells --> <xsl:if test="not($counter > $c)"> <td class='cpblack' valign='top' bgcolor="white"> <xsl:if test="$content"> <xsl:call-template name="pageCell"> <xsl:with-param name="myIndex" select="$myIndex"/> <xsl:with-param name="page" select="$content[1]"/> </xsl:call-template> </xsl:if> </td> <!-- if there are any left, recurse --> <xsl:call-template name="makeCols"> <xsl:with-param name="content" select="$content[position() != 1]" /> <xsl:with-param name="c" select="$c" /> <xsl:with-param name="counter" select="$counter + 1" /> <xsl:with-param name="myIndex" select="$myIndex + 1" /> </xsl:call-template> </xsl:if> </xsl:template>

<!-- one page --> <xsl:template name="pageCell"> <xsl:param name="myIndex"/> <xsl:param name="page"/> <b> <a> <xsl:attribute name="href">slide<xsl:if test="$myIndex &lt; 10">0</xsl:if><xsl:value-of select="$myIndex"/>.htm</xsl:attribute> <xsl:value-of select="$myIndex"/> </a> </b>&#160; <xsl:value-of select="$page/title" disable-output-escaping="yes"/> <br/> <xsl:choose> <xsl:when test="$page/picture='[Empty]'"> </xsl:when> <xsl:otherwise> <a> <xsl:attribute name="href">slide<xsl:if test="$myIndex &lt; 10">0</xsl:if><xsl:value-of select="$myIndex"/>.htm</xsl:attribute> <img border="0" src="{$page/picture}" width="{$page/picture/@width div 4}" height="{$page/picture/@height div 4}" vspace="6" /> </a> </xsl:otherwise> </xsl:choose> </xsl:template>

<xsl:template name="pageLink">

</xsl:template>

@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<< html >>

</xsl:template>
@code

<html> <body> <h2> <xsl:value-of select="screenbook/category"/> : <xsl:value-of select="screenbook/subcategory"/> : <xsl:value-of select="screenbook/title"/> </h2> <xsl:for-each select="screenbook/pages/page"> <div> <xsl:value-of select="text" disable-output-escaping="yes"/> <br/> <img src="{picture}" width="{picture/@width}" height="{picture/@height}" /> <br/> <small> Author: <xsl:value-of select="author"/> <xsl:value-of select="copyright"/> </small> <br/> <hr/> <br/> <br/> </div> </xsl:for-each> </body> </html>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >>

</xsl:stylesheet>
@code

<xsl:template match="/"> <html>

<< head >> << body >>

</html> </xsl:template>
@code

<head> <title>Screenbook Title Page</title> <style type="text/css"> td { font-family: Verdana, Arial, Helvetica, sans-serif} .title1 { font-size: 48pt; font-weight: bold; color: #3399CC; font-family: Verdana, Arial, Helvetica, sans-serif} </style> </head>
@code

<body bgcolor="#FFFFFF"> <br/> <br/> <table border="0" cellspacing="0" cellpadding="10" align="center" bgcolor="#33CCCC"> <tr> <td> <table border="0" cellspacing="0" cellpadding="10" align="center" bgcolor="#FFFFFF"> <tr> <td align="center" nowrap="nowrap"><b><span class="title1">Screenbook</span><sup><font size="5">TM</font></sup></b></td> </tr> <tr align="center"> <td><font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="5">Title Page</font></b></font></td> </tr> <tr align="center"> <td><font face="Verdana, Arial, Helvetica, sans-serif"><b></b></font></td> </tr> <tr> <td> << main table of info >> </td> </tr> <tr align="center"> <td> <p>created with Screenbook Maker</p> <p class="td3"><b>www.screenbooks.net</b></p> <p>screenbook library at www.evisa.com</p> </td> </tr> </table> </td> </tr> </table> <p>&#160;</p> </body>
@code

<table border="0" cellspacing="2" cellpadding="5" align="center" width="540"> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Category</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/category" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Subcategory</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/subcategory" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Title</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/title" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Keywords</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/keywords" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Description</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/description" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Author</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/pages/page/author" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF"># of pages</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="count(/screenbook/pages/page)" /></font></b></td> </tr> <tr> <td align="right" bgcolor="#3399CC"><b><font color="#FFFFFF">Last Update</font></b></td> <td align="left" bgcolor="black"><b><font color="white"><xsl:value-of select="/screenbook/ldate" /></font></b></td> </tr> </table>

@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >> << call-templates >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'></link> <script> syncright(); function syncright() { var url, s, ss;

if (window == top) return 0; if (parent.mainFrame.location == location) return 0;

s = parent.location; url = s.toString(); ss = url.split("?"); if (ss.length == 1) return 0; s = ss[1]; ss = s.split("="); s = ss[1]; var folder; if (s[0] = 'f') { folder = ss[1]; } parent.mainFrame.location.href = folder; }

</script> </head>
@code

<body> <p class="head1"><xsl:value-of select="screenbook/title" /></p> <p></p> <table border="0"> <tr><td nowrap='yes' class='txt5'> <xsl:for-each select="screenbook/pages/page"> <a class="toc"> <xsl:attribute name="href"><xsl:call-template name="slideName"><xsl:with-param name="myIndex" select="position()"/></xsl:call-template></xsl:attribute> <xsl:value-of select="title"/> </a> <br/> </xsl:for-each> </td></tr> </table> </body>

@code

<< slide name >>
@code

<xsl:template name="slideName"> <xsl:param name="myIndex"/> <xsl:text>slide</xsl:text> <xsl:choose> <xsl:when test="$myIndex &lt; 10">0</xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$myIndex"/> <xsl:text>.htm</xsl:text> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >> << call-templates >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'></link> <script> //syncright(); function syncright() { var url, s, ss;

if (window == top) return 0; if (parent.mainFrame.location == location) return 0;

s = parent.location; url = s.toString(); ss = url.split("?"); if (ss.length == 1) return 0; s = ss[1]; ss = s.split("="); s = ss[1]; var folder; if (s[0] = 'f') { folder = ss[1]; } parent.mainFrame.location.href = folder; }

</script> </head>
@code

<body> <p class="head1"> <xsl:value-of select="screenbook/title" /> </p> <p> </p> <table border="0"> <tr><td nowrap='yes' class='txt5'> <xsl:for-each select="screenbook/pages/page"> <a class="toc"> <xsl:attribute name="href"><xsl:call-template name="slideName"><xsl:with-param name="myIndex" select="position()"/></xsl:call-template></xsl:attribute> <xsl:attribute name="target">mainFrame</xsl:attribute> <xsl:value-of select="title"/> </a> <br/> </xsl:for-each> </td></tr> </table> </body>

@code

<< slide name >>
@code

<xsl:template name="slideName"> <xsl:param name="myIndex"/> <xsl:text>slide</xsl:text> <xsl:choose> <xsl:when test="$myIndex &lt; 10">0</xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$myIndex"/> <xsl:text>.htm</xsl:text> </xsl:template>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='../../../../sbook1.css'></link> </head>
@code

<body>

<table align="center" width="600"> <tr><td align="center" style="font-size:18pt; font-weight:bold"> Screenbook Table of Contents </td> </tr> <tr> <td align="center" style="background-color:darkgray; color:white; font-size:16pt; font-weight:bold"> <xsl:value-of select="screenbook/title" /> </td></tr> </table> <br/>

<table border="0" align="center" cellpadding="4"> <xsl:for-each select="screenbook/pages/page"> <tr> <td nowrap='yes' align="right" style="font-weight:normal"> Page <xsl:value-of select="position()"/> </td><td align="left" style="font-weight:bold"> <xsl:value-of select="title"/> </td> </tr> </xsl:for-each> </table>

<br/>

<table align="center" width="600"> <tr> <td align="center" style="background-color:darkgray; color:white; font-size:16pt; font-weight:bold"> &#160; </td> </tr> </table>

</body>

These XSLT stylesheets are applied to the bookshelf sbooktoc.xml file, which is automatically generated from all of the screenbooks in a bookshelf.

toc_sbooks.hhc.xsl : creates sbooks.hhc, for use with HTML Help compiler toc_sbooks.hhp.xsl : creates sbooks.hhp, for use with HTML Help compiler

toc_sbooks.rdf.xsl : creates sbooks.rdf, RSS resource file for the bookshelf

toc_sbooktoc.xsl : creates sbook.htm, TOC page not used in a frame toc_sbooktoc_ie.xsl : creates sbook.htm, TOC page used in a frame with Internet Explorer toc_sbooktoc_ns.xsl : creates sbook.htm, TOC page used in a frame with Netscape Navigator toc_sbooktocp.xsl_ : creates sbookp.htm, used when printing

toc_imsmanifest.xml.xsl: creates imsmanifest.xml, SCORP compliant manifest, can be read by LRN viewer.

@first<?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> << html >> </xsl:template> </xsl:stylesheet>
<HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SCREENBOOK MAKER VERSION 1.0"/> </HEAD> <BODY>

<xsl:for-each select="bookshelf/category"> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="{@alias}"/> </OBJECT> </LI> <xsl:for-each select="subcategory"> <UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="{@alias}"/> </OBJECT> </LI> <xsl:for-each select="format"> <xsl:for-each select="sbook">

<UL> <LI> <OBJECT type="text/sitemap"> <param name="Name" value="{alias}"/> <param name="Local"> <xsl:attribute name="value"><xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/sbook.htm</xsl:attribute> </param> </OBJECT> </LI> </UL> </xsl:for-each> </xsl:for-each> </UL> </xsl:for-each> </UL> </xsl:for-each>

</BODY> </HTML>

@first<?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/">[OPTIONS] Compatibility=1.1 or later Compiled file=sbooks.chm Contents file=sbooks.hhc Default topic=titlehh.htm Display compile progress=No Full-text search=Yes Language=0x409 English (United States)

[FILES] <xsl:for-each select="bookshelf/category"> <xsl:for-each select="subcategory"> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/sbook.htm </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

[INFOTYPES]

</xsl:template> </xsl:stylesheet>
@first<?xml version="1.0" encoding="utf-8"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/>

<xsl:variable name="homeURL">http://www.screenbooks.net/e</xsl:variable> <xsl:variable name="bookshelfOptions" select="document('options.xml')"/>

<xsl:template match="/">

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" >

<< channel >> << items >>

</rdf:RDF>

</xsl:template> </xsl:stylesheet>

@code

<channel rdf:about="{$homeURL}/rss.rdf"> <title><xsl:value-of select="$bookshelfOptions/options/bookshelfName" /></title> <description> <xsl:value-of select="$bookshelfOptions/options/description"/> </description> <link><xsl:value-of select="$homeURL"/></link>

<items> <rdf:Seq>

<xsl:for-each select="bookshelf/category"> <xsl:for-each select="subcategory"> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <li> <xsl:attribute name="rdf:resource"><xsl:value-of select="$homeURL"/>/<xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/sbook.htm</xsl:attribute> </li> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

</rdf:Seq> </items>

</channel>
@code

<xsl:for-each select="bookshelf/category"> <xsl:for-each select="subcategory"> <xsl:for-each select="format"> <xsl:for-each select="sbook">

<item rdf:about="{$homeURL}"> <title><xsl:value-of select="alias"/></title> <link><xsl:value-of select="$homeURL"/>/<xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/sbook.htm</link> </item>

</xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>
@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> <style type="text/css"> BODY {margin-left:0} </style> </head>
@code

<body> <table border="0" align="center"><tr><td>

<p class="head1"> Screenbooks Table of Contents </p> <br/> <span class="head1"><div align="center"><a href="sbframetoc_ie.htm">View this bookshelf in a Frame</a></div></span> <br/> <xsl:for-each select="bookshelf/category"> <span class="level1"> <xsl:value-of select="@alias"/> </span> <br/> <xsl:for-each select="subcategory"> <span class="level2"> <xsl:value-of select="@alias"/> </span> <br/> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <span class="level4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href"><xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/slide01.htm</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

<div class="br2"></div> </td></tr></table> </body>

@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>

@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> <style type="text/css"> BODY {margin-left:0} </style> </head>
<body onload='sync_ie()'> <p class="head1">Leo - The Literate Editor with Outlines</p> <form style='margin-bottom:0'> &#160; <select name='pageType'> <option selected="true">Slide View</option> <option>All Slides on one Page</option> <option>Text with Icons</option> <option>Page Titles</option> <option>Titles with Thumbnails</option> </select> </form> <xsl:for-each select="bookshelf/category"> <span class="level1"> <xsl:value-of select="@alias"/> </span> <br/> <xsl:for-each select="subcategory"> <span class="level2"> Leo <xsl:value-of select="@alias"/> </span> <br/> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <span class="level4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href">javascript:select_ie('<xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/slide01.htm')</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

<div class="br2"></div> <br/> </body>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>
@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> </head>
<body onload='sync_ns()'> <table width="300" class="nshead1"> <tr><td class="nshead1"> Leo - The Literate Editor with Outlines </td></tr> </table> <form style='margin-bottom:0'> <select name='pageType'> <option selected="true">Slide View</option> <option>All Slides on one Page</option> <option>Text with Icons</option> <option>Page Titles</option> <option>Titles with Thumbnails</option> </select> <br/> <xsl:for-each select="bookshelf/category"> <table width="300" class="nslevel1"> <tr><td class="nslevel1"> <xsl:value-of select="@alias"/> </td></tr> </table> <xsl:for-each select="subcategory"> <table width="300" class="nslevel2"> <tr><td class="nslevel2"> Leo <xsl:value-of select="@alias"/> </td></tr> </table> <xsl:for-each select="format"> <table width="300"> <tr><td class="nslevel3"> <xsl:value-of select="@alias"/> </td></tr> </table> <table border="0"><tr><td nowrap="true"> <xsl:for-each select="sbook"> <img src="wsquare.gif" border="0" align="left"/> <span class="nslevel4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href">javascript:select_ns('<xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/slide01.htm')</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </td></tr></table> </xsl:for-each> </xsl:for-each> </xsl:for-each> <br/> </form> <hr/> </body>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>
@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> </head>
@code

<body> << main table>> <br/> </body>
@code

<table align="left" width="600" cellpadding="2" style="margin-left:20; border-collapse:collapse;" border="1"> <tr> <td align="center" style="font-size:22pt; font-weight:bold" colspan="2"> Screenbook Bookshelf Table of Contents <br/> </td> </tr> <xsl:for-each select="bookshelf/category"> <tr> <td style="font-size:18pt; color:white; background-color:darkgray; font-weight:bold" colspan="2"> <xsl:value-of select="@alias"/> </td> </tr> <xsl:for-each select="subcategory"> <tr> <td style="font-weight:bold; background-color:thistle" colspan="2" valign="top"> &#160; &#160;<xsl:value-of select="@alias"/> </td> </tr> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <tr> <td valign="top" colspan="2"> <table border="0"> <tr><td valign="bottom" style="font-size:11pt; font-weight:bold"> &#160; &#160; &#160; &#160;<xsl:value-of select="alias"/> &#160;<span style="font-size:8pt; font-weight:normal; font-style:italic"><xsl:value-of select="slidecount"/> pages</span> <xsl:text> &#160;</xsl:text> </td><td valign="bottom" align="left"> <span style="font-size:8pt"> <xsl:value-of select="description"/> </span> </td></tr> </table> </td> </tr> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each> </table>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/>

<< main template >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<<manifest>>

</xsl:template>
@code

<manifest identifier="MANIFEST1" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1p3.xsd http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">

<< metadata >> << organizations >> << resources >>

</manifest>
@code

<metadata> <schema>IMS CONTENT</schema> <schemaversion>1.0</schemaversion> <imsmd:lom> <imsmd:general> <imsmd:title> <imsmd:langstring xml:lang="en">yo wattup ma home boy</imsmd:langstring> </imsmd:title> </imsmd:general> </imsmd:lom> </metadata>
@code

<organizations default="MANIFEST01_ORG1"> <organization identifier="MANIFEST01_ORG1"> <xsl:for-each select="bookshelf/category"> <xsl:variable name="catcount" select="position() * 100"/> <item identifier="{concat('MANIFEST01_ITEM',$catcount)}" identifierref="MANIFEST01_RESOURCE00"> <title><xsl:value-of select="@alias"/></title>

<xsl:for-each select="subcategory"> <xsl:variable name="subcatcount" select="position() * 10"/> <item identifier="{concat('MANIFEST01_ITEM',$subcatcount)}" identifierref="MANIFEST01_RESOURCE00"> <title><xsl:value-of select="@alias"/></title> <xsl:for-each select="format"> <xsl:for-each select="sbook">

<xsl:variable name="rescount" select="$catcount + $subcatcount + position()"/> <item identifier="{concat('MANIFEST01_ITEM',$rescount)}" identifierref="{concat('MANIFEST01_RESOURCE', $rescount)}" isvisible="true" parameters=""> <title><xsl:value-of select="alias"/></title> </item>

</xsl:for-each> </xsl:for-each> </item> </xsl:for-each> </item> </xsl:for-each> </organization> </organizations>

@code

<resources>

<xsl:for-each select="bookshelf/category"> <xsl:variable name="catcount" select="position() * 100"/> <xsl:for-each select="subcategory"> <xsl:variable name="subcatcount" select="position() * 10"/> <xsl:for-each select="format"> <xsl:for-each select="sbook">

<xsl:variable name="rescount" select="$catcount + $subcatcount + position()"/> <resource identifier="{concat('MANIFEST01_RESOURCE', $rescount)}" type="webcontent" > <xsl:attribute name="href"><xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/slide01.htm</xsl:attribute> <file> <xsl:attribute name="href"><xsl:value-of select="../../../@name"/>/<xsl:value-of select="../../@name"/>/<xsl:value-of select="../@name"/>/<xsl:value-of select="title"/>/slide01.htm</xsl:attribute> </file> </resource>

</xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

<resource identifier="MANIFEST01_RESOURCE00" type="webcontent" href="blank.htm"> <file href="blank.htm"/> </resource>

</resources>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >>

</xsl:stylesheet>
<xsl:template match="/">

<html> <head> <LINK REL="stylesheet" TYPE="text/css" HREF="/lrn_viewer/contentviewer/coolmint.css"/> <title>LRN Content Viewer</title> </head> <body topmargin="0" leftmargin="10"> <table class="ShellTitleServicesArea" cellpadding="0" cellspacing="0" width="100%" height="100%" style="overflow-y:auto"> <tr> <td align="left" width="70%"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="3%"></td> <td align="left" width="97%"> <nobr> <span class="ShellTitleText" id="ClassName"><xsl:value-of select="/bookshelf/@name"/></span> </nobr> </td> </tr> </table> </td> </tr> </table> </body> </html>

</xsl:template>
These are versions of the toc stylesheets that are used to generate the Table of Contents pages for bookshelves posted to the web.
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>
@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> </head>
@code

<body> <table border="0" align="center"><tr><td>

<p class="head1"> Screenbooks Table of Contents </p> <br/> <span class="head1"><div align="center"><a href="sbframetoc_ie.htm">View this bookshelf in a Frame</a></div></span> <br/> <xsl:for-each select="bookshelf/category"> <span class="level1"> <xsl:value-of select="@name"/> </span> <br/> <xsl:for-each select="subcategory"> <span class="level2"> <xsl:value-of select="@name"/> </span> <br/> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <span class="level4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href"><xsl:value-of select="title"/>/slide01.htm</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

<div class="br2"></div> </td></tr></table> </body>

@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>

@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> </head>
<body onload='sync_ie()'> <p class="head1"> Leo - The Literate Editor with Outlines </p> <form style='margin-bottom:0'> <select name='pageType'> <option selected="true">Slide View</option> <option>All Slides on one Page</option> <option>Text with Icons</option> <option>Page Titles</option> <option>Titles with Thumbnails</option> </select> </form> <xsl:for-each select="bookshelf/category"> <span class="level1"> <xsl:value-of select="@name"/> </span> <br/> <xsl:for-each select="subcategory"> <span class="level2"> Leo <xsl:value-of select="@name"/> </span> <br/> <xsl:for-each select="format"> <xsl:for-each select="sbook"> <span class="level4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href">javascript:select_ie('<xsl:value-of select="title"/>/slide01.htm')</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each>

<div class="br2"></div> <br/> </body>
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<xsl:variable name="pageCount" select="count(/screenbook/pages/page)"/> << main template >> </xsl:stylesheet>
@code

<xsl:template match="/"> <html> << head >> << body >> </html> </xsl:template>
@code

<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta> <link rel='stylesheet' type='text/css' href='sbook1.css'></link> <script src='sbook.js'></script> </head>
<body onload='sync_ns()'> <table width="300" class="nshead1"> <tr><td class="nshead1"> Leo - The Literate Editor with Outlines </td></tr> </table> <form style='margin-bottom:0'> <select name='pageType'> <option selected="true">Slide View</option> <option>All Slides on one Page</option> <option>Text with Icons</option> <option>Page Titles</option> <option>Titles with Thumbnails</option> </select> <br/> <xsl:for-each select="bookshelf/category"> <table width="300" class="nslevel1"> <tr><td class="nslevel1"> <xsl:value-of select="@name"/> </td></tr> </table> <xsl:for-each select="subcategory"> <table width="300" class="nslevel2"> <tr><td class="nslevel2"> Leo <xsl:value-of select="@name"/> </td></tr> </table> <xsl:for-each select="format"> <!-- <table width="300"> <tr><td class="nslevel3"> <xsl:value-of select="@alias"/> </td></tr> </table> --> <table border="0"><tr><td nowrap="true"> <xsl:for-each select="sbook"> <img src="wsquare.gif" border="0" align="left"/> <span class="nslevel4"> <a> <xsl:attribute name="name">#a<xsl:value-of select="position()"/></xsl:attribute> <xsl:attribute name="href">javascript:select_ns('<xsl:value-of select="title"/>/slide01.htm')</xsl:attribute> <xsl:value-of select="alias"/> </a> </span> <br/> </xsl:for-each> </td></tr></table> </xsl:for-each> </xsl:for-each> </xsl:for-each> <br/> </form> <hr/> </body>
These XSLT stylesheets are applied to the bookshelf options.xml

opt_titlehh.xsl : creates the title page for the HTML Help file
@first <?xml version="1.0"?> @language html <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/>

<< main template >>

</xsl:stylesheet>
@code

<xsl:template match="/">

<html> << head >> << body >> </html>

</xsl:template>
@code

<head> <title>HTML Help Title Page</title> </head>
@code

<body bgcolor="#FFFFFF"> <table align="center"> <tr> <td align="left"><img src="choose.png" border="0"/> </td> </tr> </table> <br/> <br/> <table border="0" cellspacing="2" cellpadding="10" align="center" bgcolor="#33CCCC" width="500"> <tr bgcolor="#FFFFFF"> <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#9999FF"> <b>Bookshelf Name:</b> </font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <xsl:value-of select="//bookshelfName"/> </font> </td> </tr> <tr bgcolor="#FFFFFF"> <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#9999FF"> <b>Bookshelf Description:</b> </font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <xsl:value-of select="/options/description"/> </font> </td> </tr> <tr bgcolor="#FFFFFF"> <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#9999FF"> <b>By: </b> </font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <xsl:value-of select="//ownerAuthor"/> </font> &#160; <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"> <xsl:value-of select="//copyright"/> </font> </td> </tr> <tr bgcolor="#FFFFFF"> <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#9999FF"> <b>This HTML Help File was created with: </b> </font> <br/> <a href="http://www.screenbooks.net"><img src="sbookhh.png" border="0"/></a> </td> </tr> </table> </body>