📄 contents.xsl~
字号:
$output(disable-output-escaping=>true);<!-- $param(xtp:path_info); --><#@ page import='com.caucho.util.*' #><#@ page import='javax.servlet.*' #><#@ page import='javax.servlet.http.*' #><#@ page import='javax.servlet.jsp.*' #><#@ page import='org.xml.sax.*' #><#!String href(String name){ if (name == null) return null; CharBuffer cb = CharBuffer.allocate(); for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); if (Character.isWhitespace(ch)) cb.append("_"); else cb.append(ch); } return cb.close();}String eltHref(Node node){ Element elt = (Element) node; String name = elt.getAttribute("name"); if (name.equals("")) name = elt.getAttribute("title"); return href(name);}#>$template(name=>aname) << <# String name = eltHref(node); if (name != null) { #> <a>$attribute(name) <#= name #></a> <# } #>>>resin <<Resin>>resintm <<Resin<sup>tm</sup>>>resinscript <<JavaScript>><xsl:template match='ed'> <!-- <p><div class=ed><b>Ed:</b> <xsl:apply-templates/> </div> --></xsl:template>eg <<<span class=example> <xsl:apply-templates/></span>>>eg-em <<<span class='eg-em'> <xsl:apply-templates/></span>>><xsl:template match='*' mode=pre><xsl:apply-templates select='.'/></xsl:template><xsl:template match='eg-em' mode=pre><span class='eg-em'><xsl:apply-templates mode=pre/></span></xsl:template>warn <<<span class=warn> <xsl:apply-templates/></span>>>var <<<span class=meta><xsl:apply-templates/></span>>>note <<<br/><b>Note: </b><xsl:apply-templates/>>>href <<<a href='{.}'><xsl:apply-templates/></a>>>ct:img <# String name = ((Element) node).getAttribute("src"); PageContext page = (PageContext) out.getProperty("caucho.page.context"); ServletContext cxt = page.getServletContext(); String realPath = cxt.getRealPath("/images/" + name); com.caucho.graphics.Images img; img = com.caucho.graphics.Images.getImage(realPath); out.pushElement("img"); out.setAttribute("src", top + "images/" + name); if (img != null) { out.setAttribute("width", String.valueOf(img.getWidth())); out.setAttribute("height", String.valueOf(img.getHeight())); } out.popElement();#>ct:anchor <<<a href='#{.}'><{.}></a>>>callout <<<div class=callout> <xsl:apply-templates/></div>>>sidebar <<<div class=side><table cellspacing=0 border=0 width='100%'>$if (@title) << <tr><th class=sidetitle>$(@title)</th></tr>>><tr><td class=sidebody> $apply-templates();</td></tr></table></div>>><!-- Examples and other boxed things --><xsl:template name=box> <xsl:if test='not(@title)'> <p/> </xsl:if> <center> <table class='egpad' cellspacing='0' width='80%'> <xsl:if test='@title'> <caption><font size="+1"><{@title}></font></caption> </xsl:if> <xsl:copy-of select='$contents'/> </table> </center></xsl:template><xsl:template match='text()' mode=pre><# String str = node.getNodeValue(); if (node.getPreviousSibling() == null && str.charAt(0) == '\n') str = str.substring(1); CharBuffer cb = CharBuffer.allocate(); for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (ch == '\n') cb.append("<br>"); else if (ch == ' ') cb.append(" "); else cb.append(ch); } out.print(cb); cb.free(); #></xsl:template><xsl:template match='example' mode=egtable> <tr><td class="example" bgcolor="#ffeecc" width='50%'> <xsl:apply-templates mode='pre'/> </td></tr></xsl:template><xsl:template match='results' mode=egtable> <td class="result" bgcolor="#ffccdd"> <xsl:apply-templates mode='pre'/> </td></tr></xsl:template><xsl:template match='def' mode=egtable> <td class="def" bgcolor="#cccccc"> <xsl:apply-templates mode='pre'/> </td></tr></xsl:template><xsl:template match='egtable'> <xsl:call-template name=box> <xsl:with-param name='contents'> <xsl:apply-templates select='example|results|def' mode=egtable/> </xsl:with-param> </xsl:call-template></xsl:template>example|ct:example <<$if (@name) << <a name='{@name}'/>>>$call-template(box) << $with-param(contents) << <tr><td class="example" bgcolor="#ffeecc"> <xsl:apply-templates mode='pre'/> </td></tr> >>>>>>badexample<< <xsl:call-template name=box> <xsl:with-param name='contents'> <tr><td class="badexample" color=red> <xsl:apply-templates mode='pre'/> </td></tr> </xsl:with-param> </xsl:call-template>>>box << <xsl:call-template name=box> <xsl:with-param name='contents'> <tr><td class="{@class}"> <xsl:apply-templates/> </td></tr> </xsl:with-param> </xsl:call-template>>>results <<<xsl:call-template name=box> <xsl:with-param name='contents'> <tr><td class="result" bgcolor="#ffccdd"> <xsl:apply-templates mode='pre'/> </td></tr> </xsl:with-param></xsl:call-template>>><xsl:template match='example[example|results|def]'> <xsl:call-template name=box> <xsl:with-param name='contents'> <xsl:for-each select='example|results|def'> <tr><td> <xsl:if test='name(.)="results"'> <xsl:attribute name='class'>result</xsl:attribute> <xsl:attribute name='bgcolor'>#ffeecc</xsl:attribute> </xsl:if> <xsl:if test='not(name(.)="results")'> <xsl:attribute name='class'><{name()}></xsl:attribute> <xsl:attribute name='bgcolor'>#ffcccc</xsl:attribute> </xsl:if> <xsl:apply-templates mode=pre/> </td></tr> </xsl:for-each> </xsl:with-param> </xsl:call-template></xsl:template><xsl:template match='deftable'> <p/><center> <table width='80%' cellpadding=2 cellspacing=0 class=deftable border> <xsl:if test='@title'> <caption><font size="+1"><{@title}></font></caption> </xsl:if> <xsl:apply-templates/> </table> </center></xsl:template><xsl:template match='def'> <xsl:call-template name=box> <xsl:with-param name='contents'> <tr><td class=def bgcolor='#ffeecc'> <xsl:apply-templates mode='pre'/> </td></tr> </xsl:with-param> </xsl:call-template></xsl:template><!-- table of contents -->toc|navigation <<<center><table width='80%' class=toc><tr><td><ul><xsl:apply-templates/></ul></td></tr></table></center>>>page<<<li><a href='{@href}'><{@name}></a></li>>>page[page]<<<li><a href='{@href}'><{@name}></a><ul> <xsl:apply-templates select='page'/></ul></li>>><!-- columns -->columns<<<table cellpadding=0 width='100%'><tr> <xsl:apply-templates select='column'/></tr></table>>>columns[@class]<<<table cellpadding=0 class='{@class}' width='100%'><tr> <xsl:apply-templates select='column'/></tr></table>>>column <<<td width='50%' valign=top> <xsl:apply-templates/></td>>><!-- news stuff -->newsitem <<<p/><xsl:if test='@date'> <em><{@date}></em> -</xsl:if><xsl:apply-templates/>>>newsitem[1] <<<xsl:if test='@date'> <em><{@date}></em> -</xsl:if><xsl:apply-templates/>>><!-- sections --><#!String getVersion(String version){ if (version == null) return null; else if (version.equals("ecma")) return null; else if (version.equals("js1.2")) return "JavaScript 1.2"; else if (version.equals("js1.3")) return "JavaScript 1.3"; else if (version.equals("resin1.0")) return "Resin 1.0"; else if (version.equals("resin1.1")) return "Resin 1.1"; else if (version.equals("resin1.2")) return "Resin 1.2"; else return version;}#><xsl:template match='sum'> <xsl:apply-templates/></xsl:template><xsl:template match='teaser'> <p/> <xsl:if test='@title'> <h3><{@title}></h3> <font size=3> <xsl:apply-templates/> </font> </xsl:if></xsl:template><xsl:template match='border-box'> <table border=0 cellpadding=1 cellspacing=0 width='100%'> <tr class=section> <td> <table border=0 cellpadding=3 cellspacing=0 width='100%'> $if(@title) << <tr><td><font size="+1"><b>$(@title)</b></font></td></tr> >> $else $if (title) << <tr><td><font size="+1"><b>$apply-templates(title/node());</b></font></td></tr> >> <tr><td bgcolor="white"> $apply-templates(); </td></tr> </table> </td></tr> </table></xsl:template><xsl:template match='section'> <xsl:call-template name=aname/> <xsl:if test='@title'> <p/> <table border=0 cellpadding=5 cellspacing=0 width='100%'> <tr class=section> <td><font size="+2"><b><{@title}></b></font></td> <# String version = getVersion(((Element) node).getAttribute("version")); if (! version.equals("")) { out.pushElement("td"); out.setAttribute("align", "right"); out.println(version); out.popElement(); } #> </tr> </table> <p/> </xsl:if> <xsl:apply-templates/></xsl:template><xsl:template match='subsection'> <xsl:call-template name=aname/> <xsl:if test='@title'> <h3><{@title}></h3> </xsl:if> <xsl:apply-templates/></xsl:template>defun << $call-template(aname); $if (@name|@title) << <p/> <table cellspacing=0 border=0 width="100%"> <tr><td><h3 class=code>$(if(@title,@title,@name))</h3></td> <# String version = getVersion(((Element) node).getAttribute("version")); if (version != null) out.println("<td align=right><h3>" + version + "</h3></td>"); #></tr></table> >> <div class=desc> <xsl:apply-templates/> </div>>>defun[$xtp:path_info and ($xtp:path_info!=concat("/", @name))] <<>>decl << <table class=def><tr><td> $apply-templates(); </td></tr></table>>><!-- objsummary --><#!void writeSummaryName(XslWriter out, Node node) throws IOException, SAXException{ Element elt = (Element) node; String name = elt.getAttribute("name"); String title = elt.getAttribute("title"); if (name.equals("")) name = title; if (title.equals("")) title = name; int p1 = title.indexOf('('); int p2 = title.lastIndexOf(')'); String head = null; String tail = null; if (p1 < 0 || p1 < 0) { if (name.equals("")) name = elt.getAttribute("title"); out.pushElement("a"); out.setAttribute("href", "#" + href(name)); out.print(title); out.popElement(); } else if (p1 == 0) { out.pushElement("a"); out.setAttribute("href", "#" + href(name)); out.print(title.substring(p1 + 1, p2)); out.popElement(); } else { out.pushElement("a"); out.setAttribute("href", "#" + href(name)); out.print(title.substring(0, p1)); out.popElement(); out.print(title.substring(p1)); }}#><xsl:template match='text()|er()' mode=objsummary/><xsl:template match='text()|er()' mode=defunsummary/><xsl:template match='defun' mode=defunsummary> <tr><td class=code width="40%"> <# writeSummaryName(out, node); #> </td><td> <xsl:apply-templates/> </td></tr></xsl:template><xsl:template match='defun[sum]' mode=defunsummary> <tr><td class=code width="40%"> <# writeSummaryName(out, node); #> </td><td> <xsl:apply-templates select='sum'/> </td></tr></xsl:template><xsl:template match='section' mode=defunsummary></xsl:template><xsl:template match='section' mode=objsummary> <xsl:if test='.//defun'> <p/> <table border="1" cellpadding="3" cellspacing="0" width="100%"> <tr class=section><td colspan="2"> <font size="+2"><b><{@title}></b></font> </td></tr> <xsl:apply-templates mode=defunsummary/> </table> <xsl:apply-templates mode=objsummary/> </xsl:if></xsl:template><xsl:template match='objsummary'> <xsl:apply-templates select='../section' mode=objsummary/></xsl:template><!-- summary list --><xsl:template match='text()|er()' mode=summarylist/><xsl:template match='section|subsection' mode=summarylist> <li><a> <xsl:attribute name='href'>#<#= eltHref(node) #></xsl:attribute> <{@title}></a> <xsl:if test='section|subsection'> <ol> <xsl:apply-templates mode=summarylist/> </ol> </xsl:if></li></xsl:template><xsl:template match='summarylist'> <center> <table width="90%" class=toc border=3> <tr><td> <ol> <xsl:apply-templates select='..' mode=summarylist/> </ol></td> </tr> </table> </center></xsl:template><!-- rss -->rss <<<xsl:apply-templates/>>>channel <<<a href='{href}'><{title}></a> <{description}><br/>>>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -