Annotation of embedaddon/libxml2/doc/site.xsl, revision 1.1.1.2

1.1       misho       1: <?xml version="1.0"?>
                      2: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
                      3:   <xsl:output method="xml" encoding="UTF-8" indent="yes"
                      4:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
                      5:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
                      6: 
                      7:   <xsl:variable name="href_base" select="''"/>
                      8:   <xsl:variable name="menu_name">Main Menu</xsl:variable>
                      9: <!--
                     10:  - returns the filename associated to an ID in the original file
                     11:  -->
                     12:   <xsl:template name="tocfilename">
                     13:     <xsl:param name="name" select="string(@href)"/>
                     14:     <xsl:choose>
                     15:       <xsl:when test="$name = '#Introducti'">
                     16:         <xsl:text>intro.html</xsl:text>
                     17:       </xsl:when>
                     18:       <xsl:when test="$name = '#Documentat'">
                     19:         <xsl:text>docs.html</xsl:text>
                     20:       </xsl:when>
                     21:       <xsl:when test="$name = '#Reporting'">
                     22:         <xsl:text>bugs.html</xsl:text>
                     23:       </xsl:when>
                     24:       <xsl:when test="$name = '#help'">
                     25:         <xsl:text>help.html</xsl:text>
                     26:       </xsl:when>
                     27:       <xsl:when test="$name = '#Help'">
                     28:         <xsl:text>help.html</xsl:text>
                     29:       </xsl:when>
                     30:       <xsl:when test="$name = '#Downloads'">
                     31:         <xsl:text>downloads.html</xsl:text>
                     32:       </xsl:when>
                     33:       <xsl:when test="$name = '#News'">
                     34:         <xsl:text>news.html</xsl:text>
                     35:       </xsl:when>
                     36:       <xsl:when test="$name = '#Contributi'">
                     37:         <xsl:text>contribs.html</xsl:text>
                     38:       </xsl:when>
                     39:       <xsl:when test="$name = '#xsltproc'">
                     40:         <xsl:text>xsltproc2.html</xsl:text>
                     41:       </xsl:when>
                     42:       <xsl:when test="$name = '#API'">
                     43:         <xsl:text></xsl:text>
                     44:       </xsl:when>
                     45:       <xsl:when test="$name = '#XSLT'">
                     46:         <xsl:text>XSLT.html</xsl:text>
                     47:       </xsl:when>
                     48:       <xsl:when test="$name = '#XML'">
                     49:         <xsl:text>XMLinfo.html</xsl:text>
                     50:       </xsl:when>
                     51:       <xsl:when test="$name = '#Validation'">
                     52:         <xsl:text>xmldtd.html</xsl:text>
                     53:       </xsl:when>
                     54:       <xsl:when test="$name = '#tree'">
                     55:         <xsl:text></xsl:text>
                     56:       </xsl:when>
                     57:       <xsl:when test="$name = '#library'">
                     58:         <xsl:text></xsl:text>
                     59:       </xsl:when>
                     60:       <xsl:when test="$name = '#interface'">
                     61:         <xsl:text></xsl:text>
                     62:       </xsl:when>
                     63:       <xsl:when test="$name = '#Example'">
                     64:         <xsl:text></xsl:text>
                     65:       </xsl:when>
                     66:       <xsl:when test="$name = '#Entities'">
                     67:         <xsl:text></xsl:text>
                     68:       </xsl:when>
                     69:       <xsl:when test="$name = '#architecture'">
                     70:         <xsl:text></xsl:text>
                     71:       </xsl:when>
                     72:       <xsl:when test="$name = '#Namespaces'">
                     73:         <xsl:text>namespaces.html</xsl:text>
                     74:       </xsl:when>
                     75:       <xsl:when test="$name = '#DOM'">
                     76:         <xsl:text></xsl:text>
                     77:       </xsl:when>
                     78:       <xsl:when test="$name = '#Catalog'">
                     79:         <xsl:text>catalog.html</xsl:text>
                     80:       </xsl:when>
                     81:       <xsl:when test="$name = '#Upgrading'">
                     82:         <xsl:text></xsl:text>
                     83:       </xsl:when>
                     84:       <xsl:when test="$name = '#Encodings'">
                     85:         <xsl:text>encoding.html</xsl:text>
                     86:       </xsl:when>
                     87:       <xsl:when test="$name = '#IO'">
                     88:         <xsl:text></xsl:text>
                     89:       </xsl:when>
                     90:       <xsl:when test="$name = '#Memory'">
                     91:         <xsl:text></xsl:text>
                     92:       </xsl:when>
                     93:       <xsl:when test="$name = '#Thread'">
                     94:         <xsl:text></xsl:text>
                     95:       </xsl:when>
                     96:       <xsl:when test="$name = '#FAQ'">
                     97:         <xsl:text>FAQ.html</xsl:text>
                     98:       </xsl:when>
                     99:       <xsl:when test="$name = '#Python'">
                    100:         <xsl:text></xsl:text>
                    101:       </xsl:when>
                    102:       <xsl:when test="$name = ''">
                    103:         <xsl:text>unknown.html</xsl:text>
                    104:       </xsl:when>
                    105:       <xsl:otherwise>
                    106:         <xsl:value-of select="$name"/>
                    107:       </xsl:otherwise>
                    108:     </xsl:choose>
                    109:   </xsl:template>
                    110:   <xsl:template name="docfilename">
                    111:     <xsl:param name="name" select="string(@href)"/>
                    112:     <xsl:choose>
                    113:       <xsl:when test="$name = '#Introducti'">
                    114:         <xsl:text></xsl:text>
                    115:       </xsl:when>
                    116:       <xsl:when test="$name = '#Documentat'">
                    117:         <xsl:text></xsl:text>
                    118:       </xsl:when>
                    119:       <xsl:when test="$name = '#Reporting'">
                    120:         <xsl:text></xsl:text>
                    121:       </xsl:when>
                    122:       <xsl:when test="$name = '#help'">
                    123:         <xsl:text></xsl:text>
                    124:       </xsl:when>
                    125:       <xsl:when test="$name = '#Help'">
                    126:         <xsl:text></xsl:text>
                    127:       </xsl:when>
                    128:       <xsl:when test="$name = '#Downloads'">
                    129:         <xsl:text></xsl:text>
                    130:       </xsl:when>
                    131:       <xsl:when test="$name = '#News'">
                    132:         <xsl:text></xsl:text>
                    133:       </xsl:when>
                    134:       <xsl:when test="$name = '#Contributi'">
                    135:         <xsl:text></xsl:text>
                    136:       </xsl:when>
                    137:       <xsl:when test="$name = '#xsltproc'">
                    138:         <xsl:text>xsltproc2.html</xsl:text>
                    139:       </xsl:when>
                    140:       <xsl:when test="$name = '#API'">
                    141:         <xsl:text>API.html</xsl:text>
                    142:       </xsl:when>
                    143:       <xsl:when test="$name = '#XSLT'">
                    144:         <xsl:text>XSLT.html</xsl:text>
                    145:       </xsl:when>
                    146:       <xsl:when test="$name = '#XML'">
                    147:         <xsl:text></xsl:text>
                    148:       </xsl:when>
                    149:       <xsl:when test="$name = '#Validation'">
                    150:         <xsl:text></xsl:text>
                    151:       </xsl:when>
                    152:       <xsl:when test="$name = '#tree'">
                    153:         <xsl:text>tree.html</xsl:text>
                    154:       </xsl:when>
                    155:       <xsl:when test="$name = '#library'">
                    156:         <xsl:text>library.html</xsl:text>
                    157:       </xsl:when>
                    158:       <xsl:when test="$name = '#interface'">
                    159:         <xsl:text>interface.html</xsl:text>
                    160:       </xsl:when>
                    161:       <xsl:when test="$name = '#Example'">
                    162:         <xsl:text>example.html</xsl:text>
                    163:       </xsl:when>
                    164:       <xsl:when test="$name = '#Entities'">
                    165:         <xsl:text>entities.html</xsl:text>
                    166:       </xsl:when>
                    167:       <xsl:when test="$name = '#architecture'">
                    168:         <xsl:text>architecture.html</xsl:text>
                    169:       </xsl:when>
                    170:       <xsl:when test="$name = '#Namespaces'">
                    171:         <xsl:text>namespaces.html</xsl:text>
                    172:       </xsl:when>
                    173:       <xsl:when test="$name = '#DOM'">
                    174:         <xsl:text>DOM.html</xsl:text>
                    175:       </xsl:when>
                    176:       <xsl:when test="$name = '#Catalog'">
                    177:         <xsl:text></xsl:text>
                    178:       </xsl:when>
                    179:       <xsl:when test="$name = '#Upgrading'">
                    180:         <xsl:text>upgrade.html</xsl:text>
                    181:       </xsl:when>
                    182:       <xsl:when test="$name = '#Encodings'">
                    183:         <xsl:text></xsl:text>
                    184:       </xsl:when>
                    185:       <xsl:when test="$name = '#IO'">
                    186:         <xsl:text>xmlio.html</xsl:text>
                    187:       </xsl:when>
                    188:       <xsl:when test="$name = '#Memory'">
                    189:         <xsl:text>xmlmem.html</xsl:text>
                    190:       </xsl:when>
                    191:       <xsl:when test="$name = '#Thread'">
                    192:         <xsl:text>threads.html</xsl:text>
                    193:       </xsl:when>
                    194:       <xsl:when test="$name = '#FAQ'">
                    195:         <xsl:text></xsl:text>
                    196:       </xsl:when>
                    197:       <xsl:when test="$name = '#Python'">
                    198:         <xsl:text>python.html</xsl:text>
                    199:       </xsl:when>
                    200:       <xsl:when test="$name = ''">
                    201:         <xsl:text>unknown.html</xsl:text>
                    202:       </xsl:when>
                    203:       <xsl:otherwise>
                    204:         <xsl:value-of select="$name"/>
                    205:       </xsl:otherwise>
                    206:     </xsl:choose>
                    207:   </xsl:template>
                    208:   <xsl:template name="filename">
                    209:     <xsl:param name="name" select="string(@href)"/>
                    210:     <xsl:choose>
                    211:       <xsl:when test="$name = '#Introducti'">
                    212:         <xsl:text>intro.html</xsl:text>
                    213:       </xsl:when>
                    214:       <xsl:when test="$name = '#Documentat'">
                    215:         <xsl:text>docs.html</xsl:text>
                    216:       </xsl:when>
                    217:       <xsl:when test="$name = '#Reporting'">
                    218:         <xsl:text>bugs.html</xsl:text>
                    219:       </xsl:when>
                    220:       <xsl:when test="$name = '#help'">
                    221:         <xsl:text>help.html</xsl:text>
                    222:       </xsl:when>
                    223:       <xsl:when test="$name = '#Help'">
                    224:         <xsl:text>help.html</xsl:text>
                    225:       </xsl:when>
                    226:       <xsl:when test="$name = '#Downloads'">
                    227:         <xsl:text>downloads.html</xsl:text>
                    228:       </xsl:when>
                    229:       <xsl:when test="$name = '#News'">
                    230:         <xsl:text>news.html</xsl:text>
                    231:       </xsl:when>
                    232:       <xsl:when test="$name = '#Contributi'">
                    233:         <xsl:text>contribs.html</xsl:text>
                    234:       </xsl:when>
                    235:       <xsl:when test="$name = '#xsltproc'">
                    236:         <xsl:text>xsltproc2.html</xsl:text>
                    237:       </xsl:when>
                    238:       <xsl:when test="$name = '#API'">
                    239:         <xsl:text>API.html</xsl:text>
                    240:       </xsl:when>
                    241:       <xsl:when test="$name = '#XSLT'">
                    242:         <xsl:text>XSLT.html</xsl:text>
                    243:       </xsl:when>
                    244:       <xsl:when test="$name = '#XML'">
                    245:         <xsl:text>XMLinfo.html</xsl:text>
                    246:       </xsl:when>
                    247:       <xsl:when test="$name = '#Validation'">
                    248:         <xsl:text>xmldtd.html</xsl:text>
                    249:       </xsl:when>
                    250:       <xsl:when test="$name = '#tree'">
                    251:         <xsl:text>tree.html</xsl:text>
                    252:       </xsl:when>
                    253:       <xsl:when test="$name = '#library'">
                    254:         <xsl:text>library.html</xsl:text>
                    255:       </xsl:when>
                    256:       <xsl:when test="$name = '#interface'">
                    257:         <xsl:text>interface.html</xsl:text>
                    258:       </xsl:when>
                    259:       <xsl:when test="$name = '#Example'">
                    260:         <xsl:text>example.html</xsl:text>
                    261:       </xsl:when>
                    262:       <xsl:when test="$name = '#Entities'">
                    263:         <xsl:text>entities.html</xsl:text>
                    264:       </xsl:when>
                    265:       <xsl:when test="$name = '#architecture'">
                    266:         <xsl:text>architecture.html</xsl:text>
                    267:       </xsl:when>
                    268:       <xsl:when test="$name = '#Namespaces'">
                    269:         <xsl:text>namespaces.html</xsl:text>
                    270:       </xsl:when>
                    271:       <xsl:when test="$name = '#DOM'">
                    272:         <xsl:text>DOM.html</xsl:text>
                    273:       </xsl:when>
                    274:       <xsl:when test="$name = '#Catalog'">
                    275:         <xsl:text>catalog.html</xsl:text>
                    276:       </xsl:when>
                    277:       <xsl:when test="$name = '#Upgrading'">
                    278:         <xsl:text>upgrade.html</xsl:text>
                    279:       </xsl:when>
                    280:       <xsl:when test="$name = '#Encodings'">
                    281:         <xsl:text>encoding.html</xsl:text>
                    282:       </xsl:when>
                    283:       <xsl:when test="$name = '#IO'">
                    284:         <xsl:text>xmlio.html</xsl:text>
                    285:       </xsl:when>
                    286:       <xsl:when test="$name = '#Memory'">
                    287:         <xsl:text>xmlmem.html</xsl:text>
                    288:       </xsl:when>
                    289:       <xsl:when test="$name = '#Thread'">
                    290:         <xsl:text>threads.html</xsl:text>
                    291:       </xsl:when>
                    292:       <xsl:when test="$name = '#FAQ'">
                    293:         <xsl:text>FAQ.html</xsl:text>
                    294:       </xsl:when>
                    295:       <xsl:when test="$name = '#Python'">
                    296:         <xsl:text>python.html</xsl:text>
                    297:       </xsl:when>
                    298:       <xsl:when test="$name = ''">
                    299:         <xsl:text>unknown.html</xsl:text>
                    300:       </xsl:when>
                    301:       <xsl:otherwise>
                    302:         <xsl:value-of select="$name"/>
                    303:       </xsl:otherwise>
                    304:     </xsl:choose>
                    305:   </xsl:template>
                    306: <!--
                    307:  - The global title
                    308:  -->
                    309:   <xsl:variable name="globaltitle" select="string(/html/body/h1[1])"/>
                    310: <!--
                    311:  - The table of content
                    312:  -->
                    313:   <xsl:variable name="toc">
                    314:     <form action="search.php"
                    315:           enctype="application/x-www-form-urlencoded" method="get">
                    316:       <input name="query" type="text" size="20" value=""/>
                    317:       <input name="submit" type="submit" value="Search ..."/>
                    318:     </form>
                    319:     <ul><!-- style="margin-left: -1em" -->
                    320:       <li><a href="index.html">Home</a></li>
                    321:       <!--<li><a href="http://xmlsoft.org/wiki">Wiki</a></li> -->
                    322:       <li><a href="html/index.html">Reference Manual</a></li>
                    323:       <xsl:for-each select="/html/body/h2">
                    324:         <xsl:variable name="filename">
                    325:           <xsl:call-template name="tocfilename">
                    326:             <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
                    327:           </xsl:call-template>
                    328:         </xsl:variable>
                    329:        <xsl:if test="$filename != ''">
                    330:          <li>
                    331:            <xsl:element name="a">
                    332:              <xsl:attribute name="href">
                    333:                <xsl:value-of select="$filename"/>
                    334:              </xsl:attribute>
                    335:              <xsl:if test="$filename = 'docs.html'">
                    336:                  <xsl:attribute name="style">font-weight:bold</xsl:attribute>
                    337:              </xsl:if>
                    338:              <xsl:value-of select="."/>
                    339:            </xsl:element>
                    340:          </li>
                    341:        </xsl:if>
                    342:       </xsl:for-each>
                    343:       <li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li>
                    344:       <li><a href="html/index.html" style="font-weight:bold">API Menu</a></li>
                    345:       <li><a href="guidelines.html">XML Guidelines</a></li>
                    346:       <li><a href="ChangeLog.html">Recent Changes</a></li>
                    347:     </ul>
                    348:   </xsl:variable>
                    349:   <xsl:variable name="develtoc">
                    350:     <form action="search.php"
                    351:           enctype="application/x-www-form-urlencoded" method="get">
                    352:       <input name="query" type="text" size="20" value=""/>
                    353:       <input name="submit" type="submit" value="Search ..."/>
                    354:     </form>
                    355:     <ul><!-- style="margin-left: -1em" -->
                    356:       <li><a href="index.html" style="font-weight:bold">Main Menu</a></li>
                    357:       <li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li>
                    358:       <li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li>
                    359:       <li><a href="guidelines.html">XML Guidelines</a></li>
                    360:       <li><a href="tutorial/index.html">Tutorial</a></li>
                    361:       <li><a href="xmlreader.html">The Reader Interface</a></li>
                    362:       <li><a href="ChangeLog.html">ChangeLog</a></li>
                    363:       <xsl:for-each select="/html/body/h2">
                    364:         <xsl:variable name="filename">
                    365:           <xsl:call-template name="docfilename">
                    366:             <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
                    367:           </xsl:call-template>
                    368:         </xsl:variable>
                    369:        <xsl:if test="$filename != ''">
                    370:          <li>
                    371:            <xsl:element name="a">
                    372:              <xsl:attribute name="href">
                    373:                <xsl:value-of select="$filename"/>
                    374:              </xsl:attribute>
                    375:              <xsl:value-of select="."/>
                    376:            </xsl:element>
                    377:          </li>
                    378:        </xsl:if>
                    379:       </xsl:for-each>
                    380:       <li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a></li>
                    381:     </ul>
                    382:   </xsl:variable>
                    383:   <xsl:variable name="api">
                    384:     <ul><!-- style="margin-left: -1em" -->
                    385:       <li><a href="{$href_base}APIchunk0.html">Alphabetic</a></li>
                    386:       <li><a href="{$href_base}APIconstructors.html">Constructors</a></li>
                    387:       <li><a href="{$href_base}APIfunctions.html">Functions/Types</a></li>
                    388:       <li><a href="{$href_base}APIfiles.html">Modules</a></li>
                    389:       <li><a href="{$href_base}APIsymbols.html">Symbols</a></li>
                    390:     </ul>
                    391:   </xsl:variable>
                    392:   <xsl:variable name="related">
                    393:     <ul><!-- style="margin-left: -1em" -->
                    394:       <li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li>
                    395:       <li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li>
                    396:       <li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li>
                    397:       <li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li>
                    398:       <li><a href="ftp://xmlsoft.org/">FTP</a></li>
                    399:       <li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
                    400:       <li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li>
                    401:       <li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li>
1.1.1.2 ! misho     402:       <li><a href="http://lxml.de/">lxml Python bindings</a></li>
1.1       misho     403:       <li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li>
                    404:       <li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li>
                    405:       <li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li>
                    406:       <li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
                    407:       <li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li>
                    408:       <li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li>
                    409:       <li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li>
                    410:     </ul>
                    411:   </xsl:variable>
                    412:   <xsl:template name="toc">
                    413:     <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
                    414:       <tr>
                    415:         <td>
                    416:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                    417:             <tr>
                    418:               <td colspan="1" bgcolor="#eecfa1" align="center">
                    419:                 <center>
                    420:                   <b><xsl:value-of select="$menu_name"/></b>
                    421:                 </center>
                    422:               </td>
                    423:             </tr>
                    424:             <tr>
                    425:               <td bgcolor="#fffacd">
                    426:                 <xsl:copy-of select="$toc"/>
                    427:               </td>
                    428:             </tr>
                    429:           </table>
                    430:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                    431:             <tr>
                    432:               <td colspan="1" bgcolor="#eecfa1" align="center">
                    433:                 <center>
                    434:                   <b>Related links</b>
                    435:                 </center>
                    436:               </td>
                    437:             </tr>
                    438:             <tr>
                    439:               <td bgcolor="#fffacd">
                    440:                 <xsl:copy-of select="$related"/>
                    441:               </td>
                    442:             </tr>
                    443:           </table>
                    444:         </td>
                    445:       </tr>
                    446:     </table>
                    447:   </xsl:template>
                    448:   <xsl:template name="develtoc">
                    449:     <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
                    450:       <tr>
                    451:         <td>
                    452:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                    453:             <tr>
                    454:               <td colspan="1" bgcolor="#eecfa1" align="center">
                    455:                 <center>
                    456:                   <b>Developer Menu</b>
                    457:                 </center>
                    458:               </td>
                    459:             </tr>
                    460:             <tr>
                    461:               <td bgcolor="#fffacd">
                    462:                 <xsl:copy-of select="$develtoc"/>
                    463:               </td>
                    464:             </tr>
                    465:           </table>
                    466:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                    467:             <tr>
                    468:               <td colspan="1" bgcolor="#eecfa1" align="center">
                    469:                 <center>
                    470:                   <b>API Indexes</b>
                    471:                 </center>
                    472:               </td>
                    473:             </tr>
                    474:             <tr>
                    475:               <td bgcolor="#fffacd">
                    476:                 <xsl:copy-of select="$api"/>
                    477:               </td>
                    478:             </tr>
                    479:           </table>
                    480:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
                    481:             <tr>
                    482:               <td colspan="1" bgcolor="#eecfa1" align="center">
                    483:                 <center>
                    484:                   <b>Related links</b>
                    485:                 </center>
                    486:               </td>
                    487:             </tr>
                    488:             <tr>
                    489:               <td bgcolor="#fffacd">
                    490:                 <xsl:copy-of select="$related"/>
                    491:               </td>
                    492:             </tr>
                    493:           </table>
                    494:         </td>
                    495:       </tr>
                    496:     </table>
                    497:   </xsl:template>
                    498:   <xsl:template mode="head" match="title">
                    499:     <title>
                    500:       <xsl:apply-templates/>
                    501:     </title>
                    502:   </xsl:template>
                    503:   <xsl:template mode="head" match="meta">
                    504: </xsl:template>
                    505: <!--
                    506:  - Write the styles in the head
                    507:  -->
                    508:   <xsl:template name="style">
                    509:     <link rel="SHORTCUT ICON" href="/favicon.ico"/> 
                    510:     <style type="text/css">
                    511: TD {font-family: Verdana,Arial,Helvetica}
                    512: BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
                    513: H1 {font-family: Verdana,Arial,Helvetica}
                    514: H2 {font-family: Verdana,Arial,Helvetica}
                    515: H3 {font-family: Verdana,Arial,Helvetica}
                    516: A:link, A:visited, A:active { text-decoration: underline }
                    517: </style>
                    518:   </xsl:template>
                    519: <!--
                    520:  - Write the title box on top
                    521:  -->
                    522:   <xsl:template name="titlebox">
                    523:     <xsl:param name="title" select="'Main Page'"/>
                    524:     <table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
                    525:     <tr>
                    526:     <td width="120">
                    527:     <a href="http://swpat.ffii.org/"><img src="{$href_base}epatents.png" alt="Action against software patents"/></a>
                    528:     </td>
                    529:     <td width="180">
                    530:     <a href="http://www.gnome.org/"><img src="{$href_base}gnome2.png" alt="Gnome2 Logo"/></a>
                    531:     <a href="http://www.w3.org/Status"><img src="{$href_base}w3c.png" alt="W3C Logo"/></a>
                    532:     <a href="http://www.redhat.com/"><img src="{$href_base}redhat.gif" alt="Red Hat Logo"/></a>
                    533:     <div align="left">
                    534:     <a href="http://xmlsoft.org/"><img src="{$href_base}Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo"/></a>
                    535:     </div>
                    536:     </td>
                    537:     <td>
                    538:     <table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000">
                    539:       <tr>
                    540:         <td>
                    541:           <table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd">
                    542:             <tr>
                    543:               <td align="center">
                    544:                 <xsl:element name="h1">
                    545:                   <xsl:value-of select="$globaltitle"/>
                    546:                 </xsl:element>
                    547:                 <xsl:element name="h2">
                    548:                   <xsl:value-of select="$title"/>
                    549:                 </xsl:element>
                    550:               </td>
                    551:             </tr>
                    552:           </table>
                    553:         </td>
                    554:       </tr>
                    555:     </table>
                    556:     </td>
                    557:     </tr>
                    558:     </table>
                    559:   </xsl:template>
                    560: <!--
                    561:  - Handling of nodes in the body before the first H2, table of content
                    562:  - Everything is just copied over, except href which may get rewritten
                    563:  - and h1/h2/a at the top level
                    564:  -->
                    565:   <xsl:template priority="2" mode="subcontent" match="a">
                    566:     <xsl:variable name="filename">
                    567:       <xsl:call-template name="filename">
                    568:         <xsl:with-param name="name" select="string(@href)"/>
                    569:       </xsl:call-template>
                    570:     </xsl:variable>
                    571:     <xsl:copy>
                    572:       <xsl:attribute name="href">
                    573:         <xsl:value-of select="$filename"/>
                    574:       </xsl:attribute>
                    575:       <xsl:apply-templates mode="subcontent" select="node()"/>
                    576:     </xsl:copy>
                    577:   </xsl:template>
                    578:   <xsl:template mode="subcontent" match="@*|node()">
                    579:     <xsl:copy>
                    580:       <xsl:apply-templates mode="subcontent" select="@*|node()"/>
                    581:     </xsl:copy>
                    582:   </xsl:template>
                    583:   <xsl:template mode="content" match="@*|node()">
                    584:     <xsl:if test="name() != 'h1' and name() != 'h2'">
                    585:       <xsl:copy>
                    586:         <xsl:apply-templates mode="subcontent" select="@*|node()"/>
                    587:       </xsl:copy>
                    588:     </xsl:if>
                    589:   </xsl:template>
                    590: <!--
                    591:  - Handling of nodes in the body after an H2
                    592:  - Open a new file and dump all the siblings up to the next H2
                    593:  -->
                    594:   <xsl:template name="subfile">
                    595:     <xsl:param name="header" select="following-sibling::h2[1]"/>
                    596:     <xsl:variable name="filename">
                    597:       <xsl:call-template name="filename">
                    598:         <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
                    599:       </xsl:call-template>
                    600:     </xsl:variable>
                    601:     <xsl:variable name="tocfilename">
                    602:       <xsl:call-template name="tocfilename">
                    603:         <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
                    604:       </xsl:call-template>
                    605:     </xsl:variable>
                    606:     <xsl:variable name="title">
                    607:       <xsl:value-of select="$header"/>
                    608:     </xsl:variable>
                    609:     <xsl:document href="{$filename}" method="xml" encoding="UTF-8"
                    610:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
                    611:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                    612:       <html>
                    613:         <head>
                    614:           <xsl:call-template name="style"/>
                    615:           <xsl:element name="title">
                    616:             <xsl:value-of select="$title"/>
                    617:           </xsl:element>
                    618:         </head>
                    619:         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
                    620:           <xsl:call-template name="titlebox">
                    621:             <xsl:with-param name="title" select="$title"/>
                    622:           </xsl:call-template>
                    623:           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
                    624:             <tr>
                    625:               <td bgcolor="#8b7765">
                    626:                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
                    627:                   <tr>
                    628:                     <td valign="top" width="200" bgcolor="#8b7765">
                    629:                      <xsl:choose>
                    630:                        <xsl:when test="$filename = 'docs.html'">
                    631:                           <xsl:call-template name="develtoc"/>
                    632:                        </xsl:when>
                    633:                        <xsl:when test="$tocfilename = ''">
                    634:                           <xsl:call-template name="develtoc"/>
                    635:                        </xsl:when>
                    636:                        <xsl:otherwise>
                    637:                           <xsl:call-template name="toc"/>
                    638:                        </xsl:otherwise>
                    639:                      </xsl:choose>
                    640:                     </td>
                    641:                     <td valign="top" bgcolor="#8b7765">
                    642:                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
                    643:                         <tr>
                    644:                           <td>
                    645:                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
                    646:                               <tr>
                    647:                                 <td>
                    648:                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
                    649:                                     <tr>
                    650:                                       <td bgcolor="#fffacd">
                    651:                                         <xsl:apply-templates mode="subfile" select="$header/following-sibling::*[preceding-sibling::h2[1] = $header         and name() != 'h2' ]"/>
                    652:                                        <p><a href="bugs.html">Daniel Veillard</a></p>
                    653:                                       </td>
                    654:                                     </tr>
                    655:                                   </table>
                    656:                                 </td>
                    657:                               </tr>
                    658:                             </table>
                    659:                           </td>
                    660:                         </tr>
                    661:                       </table>
                    662:                     </td>
                    663:                   </tr>
                    664:                 </table>
                    665:               </td>
                    666:             </tr>
                    667:           </table>
                    668:         </body>
                    669:       </html>
                    670:     </xsl:document>
                    671:   </xsl:template>
                    672:   <xsl:template mode="subfile" match="@*|node()">
                    673:     <xsl:copy>
                    674:       <xsl:apply-templates mode="content" select="@*|node()"/>
                    675:     </xsl:copy>
                    676:   </xsl:template>
                    677: <!--
                    678:  - Handling of the initial body and head HTML document
                    679:  -->
                    680:   <xsl:template match="body">
                    681:     <xsl:variable name="firsth2" select="./h2[1]"/>
                    682:     <xsl:variable name="rest2" select="./h2[position()&gt;1]"/>
                    683:     <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
                    684:       <xsl:call-template name="titlebox">
                    685:         <xsl:with-param name="title" select="'libxml'"/>
                    686:       </xsl:call-template>
                    687:       <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
                    688:         <tr>
                    689:           <td bgcolor="#8b7765">
                    690:             <table border="0" cellspacing="0" cellpadding="2" width="100%">
                    691:               <tr>
                    692:                 <td valign="top" width="200" bgcolor="#8b7765">
                    693:                   <xsl:call-template name="toc"/>
                    694:                 </td>
                    695:                 <td valign="top" bgcolor="#8b7765">
                    696:                   <table border="0" cellspacing="0" cellpadding="1" width="100%">
                    697:                     <tr>
                    698:                       <td>
                    699:                         <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
                    700:                           <tr>
                    701:                             <td>
                    702:                               <table border="0" cellpadding="3" cellspacing="1" width="100%">
                    703:                                 <tr>
                    704:                                   <td bgcolor="#fffacd">
                    705:                                     <xsl:apply-templates mode="content" select="($firsth2/preceding-sibling::*)"/>
                    706:                                     <xsl:for-each select="./h2">
                    707:                                       <xsl:call-template name="subfile">
                    708:                                         <xsl:with-param name="header" select="."/>
                    709:                                       </xsl:call-template>
                    710:                                     </xsl:for-each>
                    711:                                    <p><a href="bugs.html">Daniel Veillard</a></p>
                    712:                                   </td>
                    713:                                 </tr>
                    714:                               </table>
                    715:                             </td>
                    716:                           </tr>
                    717:                         </table>
                    718:                       </td>
                    719:                     </tr>
                    720:                   </table>
                    721:                 </td>
                    722:               </tr>
                    723:             </table>
                    724:           </td>
                    725:         </tr>
                    726:       </table>
                    727:     </body>
                    728:   </xsl:template>
                    729:   <xsl:template match="head">
                    730:     <head>
                    731:       <xsl:call-template name="style"/>
                    732:       <xsl:apply-templates mode="head"/>
                    733:     </head>
                    734:   </xsl:template>
                    735:   <xsl:template match="html">
                    736:     <xsl:message>Generating the Web pages</xsl:message>
                    737:     <html>
                    738:       <xsl:apply-templates/>
                    739:     </html>
                    740:   </xsl:template>
                    741: </xsl:stylesheet>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>