<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<head>
<style>.content {
padding: 20px;
height: 100%;
width: 944px;
margin-left: auto;
margin-right: auto;
}
.fold {
width: 20px;
float: left;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.number {
width: 45px;
float: left;
margin-right: 10px;
text-align: right;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line {
}
.content {
font-family: "Monospace";
font-size: 1em;
background: #3f3f3f;
color: White;
width: 944px;
padding: 20px;
height: 100%;
margin-left: auto;
margin-right: auto;
}
font.Alert {
color: Yellow;
font-weight: bold;
}
font.Annotation {
color: Yellow;
font-style: italic;
}
font.Attribute {
color: LightPink;
}
font.BaseN {
color: Gold;
}
font.BuiltIn {
color: Coral;
}
font.Char {
color: Cyan;
}
font.Comment {
color: Beige;
font-style: italic;
}
font.CommentVar {
color: LightBlue;
font-style: italic;
}
font.Constant {
color: White;
font-weight: bold;
}
font.ControlFlow {
color: DeepPink;
}
font.DataType {
color: CadetBlue;
}
font.DecVal {
color: MediumPurple;
font-weight: bold;
}
font.Documentation {
color: Gold;
font-style: italic;
}
font.Error {
color: Red;
font-weight: bold;
}
font.Extension {
color: DarkGray;
font-weight: bold;
}
font.Float {
color: DarkViolet;
font-weight: bold;
}
font.Function {
color: RosyBrown;
}
font.Import {
color: PaleVioletRed;
}
font.Information {
color: LightGreen;
font-style: italic;
}
font.Keyword {
color: LightGreen;
font-weight: bold;
}
font.Normal {
color: White;
}
font.Operator {
color: Magenta;
}
font.Others {
color: GreenYellow;
}
font.Preprocessor {
color: DarkSeaGreen ;
font-weight: bold;
}
font.RegionMarker {
color: Plum;
}
font.SpecialChar {
color: Plum;
font-weight: bold;
}
font.SpecialString {
color: LightBlue;
}
font.String {
color: MediumAquaMarine;
}
font.Variable {
color: Turquoise;
font-weight: bold;
}
font.VerbatimString {
color: LightSkyBlue;
}
font.Warning {
color: Brown;
font-weight: bold;
}
</style>
<title>Kamelon output</title>
</head>
<body>
<div class="content">
<div id="1" class="line"><font class="Keyword"><?xml</font><font class="Normal"> version="1.0" encoding="iso-8859-15"</font><font class="Keyword">?></font></br></div>
<div id="2" class="line"></br></div>
<div id="3" class="line"><font class="Comment"><!--</font></br></div>
<div id="4" class="line"><font class="Comment"> This file is freely distributable, created by Wilbert Berendsen (wbsoft@xs4all.nl)</font></br></div>
<div id="5" class="line"></br></div>
<div id="6" class="line"><font class="Comment"> This is just a simple XSLT file that converts some HTML pages to a XBEL bookmarklist.</font></br></div>
<div id="7" class="line"><font class="Comment"> It is included here to test the new XSLT highlighting by Peter Lammich.</font></br></div>
<div id="8" class="line"><font class="Comment"> </font></br></div>
<div id="9" class="line"><font class="Comment"> </font><font class="Alert">TODO</font><font class="Comment">: add better test file.</font></br></div>
<div id="10" class="line"><font class="Comment">--></font></br></div>
<div id="11" class="line"></br></div>
<div id="12" class="line"><font class="Keyword"><xsl:stylesheet</font><font class="Others"> xmlns:xsl</font><font class="Normal">=</font><font class="String">"http://www.w3.org/1999/XSL/Transform"</font><font class="Others"> version</font><font class="Normal">=</font><font class="String">"1.0"</font></br></div>
<div id="13" class="line"><font class="Others">xmlns:h</font><font class="Normal">=</font><font class="String">"http://www.w3.org/1999/xhtml"</font><font class="Keyword">></font></br></div>
<div id="14" class="line"><font class="Keyword"><xsl:output</font><font class="Others"> method</font><font class="Normal">=</font><font class="String">"xml"</font><font class="Others"> encoding</font><font class="Normal">=</font><font class="String">"iso-8859-15"</font><font class="Others"> indent</font><font class="Normal">=</font><font class="String">"yes"</font></br></div>
<div id="15" class="line"><font class="Others"> doctype-public</font><font class="Normal">=</font><font class="String">"+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML"</font></br></div>
<div id="16" class="line"><font class="Others"> doctype-system</font><font class="Normal">=</font><font class="String">"http://www.python.org/topics/xml/dtds/xbel-1.0.dtd"</font></br></div>
<div id="17" class="line"><font class="Keyword">/></font></br></div>
<div id="18" class="line"></br></div>
<div id="19" class="line"><font class="Comment"><!-- main --></font></br></div>
<div id="20" class="line"><font class="Keyword"><xsl:template</font><font class="Others"> match</font><font class="Normal">=</font><font class="String">"/"</font><font class="Keyword">></font></br></div>
<div id="21" class="line"><font class="Keyword"><xbel><folder><title></font><font class="Normal">Linux at Home Links</font><font class="Keyword"></title></font></br></div>
<div id="22" class="line"><font class="Keyword"><xsl:for-each</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"//*[@id='maincontents']//h:li"</font><font class="Keyword">></font></br></div>
<div id="23" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:variable</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"f"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"document(h:a/@href)/h:html"</font><font class="Keyword">/></font></br></div>
<div id="24" class="line"><font class="Normal"> </font><font class="Keyword"><folder></font></br></div>
<div id="25" class="line"><font class="Normal"> </font><font class="Keyword"><title><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"h:a/h:strong"</font><font class="Keyword">/></title></font></br></div>
<div id="26" class="line"><font class="Normal"> </font><font class="Keyword"><desc><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"normalize-space(h:a/text())"</font><font class="Keyword">/></desc></font></br></div>
<div id="27" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:for-each</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"$f//h:div[@id='maincontents']"</font><font class="Keyword">></font></br></div>
<div id="28" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:call-template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"getbookmarks"</font><font class="Keyword">/></font></br></div>
<div id="29" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:for-each></font></br></div>
<div id="30" class="line"><font class="Normal"> </font></br></div>
<div id="31" class="line"><font class="Normal"> </font><font class="Keyword"></folder></font></br></div>
<div id="32" class="line"><font class="Keyword"></xsl:for-each></font></br></div>
<div id="33" class="line"><font class="Keyword"></folder></xbel></font></br></div>
<div id="34" class="line"><font class="Keyword"></xsl:template></font></br></div>
<div id="35" class="line"><font class="Comment"><!-- end of main --></font></br></div>
<div id="36" class="line"></br></div>
<div id="37" class="line"><font class="Comment"><!-- get bookmarks from a page --></font></br></div>
<div id="38" class="line"><font class="Keyword"><xsl:template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"getbookmarks"</font><font class="Keyword">></font></br></div>
<div id="39" class="line"></br></div>
<div id="40" class="line"><font class="Keyword"><xsl:choose></font></br></div>
<div id="41" class="line"><font class="Normal"> </font><font class="Comment"><!-- harvest links from p or li elements --></font></br></div>
<div id="42" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:when</font><font class="Others"> test</font><font class="Normal">=</font><font class="String">"self::h:li or self::h:p"</font><font class="Keyword">></font></br></div>
<div id="43" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:variable</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"t"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"normalize-space()"</font><font class="Keyword">/></font></br></div>
<div id="44" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:for-each</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">".//h:a[1]"</font><font class="Keyword">></font></br></div>
<div id="45" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:call-template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"bookmark"</font><font class="Keyword">></font></br></div>
<div id="46" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:with-param</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"desc"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"$t"</font><font class="Keyword">/></font></br></div>
<div id="47" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:call-template></font></br></div>
<div id="48" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:for-each></font></br></div>
<div id="49" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:for-each</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">".//h:a[position()!=1]"</font><font class="Keyword">></font></br></div>
<div id="50" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:call-template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"bookmark"</font><font class="Keyword">/></font></br></div>
<div id="51" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:for-each></font></br></div>
<div id="52" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:when></font></br></div>
<div id="53" class="line"></br></div>
<div id="54" class="line"></br></div>
<div id="55" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:otherwise></font></br></div>
<div id="56" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:for-each</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"*"</font><font class="Keyword">></font></br></div>
<div id="57" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:call-template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"getbookmarks"</font><font class="Keyword">/></font></br></div>
<div id="58" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:for-each></font></br></div>
<div id="59" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:otherwise></font></br></div>
<div id="60" class="line"></br></div>
<div id="61" class="line"><font class="Keyword"></xsl:choose></font></br></div>
<div id="62" class="line"></br></div>
<div id="63" class="line"><font class="Keyword"></xsl:template></font></br></div>
<div id="64" class="line"></br></div>
<div id="65" class="line"></br></div>
<div id="66" class="line"><font class="Keyword"><xsl:template</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"bookmark"</font><font class="Keyword">></font></br></div>
<div id="67" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:param</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"href"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"@href"</font><font class="Keyword">/></font></br></div>
<div id="68" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:param</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"desc"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"''"</font><font class="Keyword">/></font></br></div>
<div id="69" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:param</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"title"</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"normalize-space()"</font><font class="Keyword">/></font></br></div>
<div id="70" class="line"></br></div>
<div id="71" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:variable</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"realdesc"</font><font class="Keyword">></font></br></div>
<div id="72" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:choose></font></br></div>
<div id="73" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:when</font><font class="Others"> test</font><font class="Normal">=</font><font class="String">"starts-with($desc,$title)"</font><font class="Keyword">></font></br></div>
<div id="74" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:choose></font></br></div>
<div id="75" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:when</font><font class="Others"> test</font><font class="Normal">=</font><font class="String">"starts-with(translate(substring-after($desc,$title),',.;','...'),'.')"</font><font class="Keyword">></font></br></div>
<div id="76" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"substring($desc,string-length($title) + 2)"</font><font class="Keyword">/></font></br></div>
<div id="77" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:when></font></br></div>
<div id="78" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:otherwise></font></br></div>
<div id="79" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"substring-after($desc,$title)"</font><font class="Keyword">/></font></br></div>
<div id="80" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:otherwise></font></br></div>
<div id="81" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:choose></font></br></div>
<div id="82" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:when></font></br></div>
<div id="83" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:otherwise></font></br></div>
<div id="84" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"$desc"</font><font class="Keyword">/></font></br></div>
<div id="85" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:otherwise></font></br></div>
<div id="86" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:choose></font></br></div>
<div id="87" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:variable></font></br></div>
<div id="88" class="line"><font class="Normal"> </font></br></div>
<div id="89" class="line"><font class="Normal"> </font><font class="Keyword"><bookmark></font></br></div>
<div id="90" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:attribute</font><font class="Others"> name</font><font class="Normal">=</font><font class="String">"href"</font><font class="Keyword">></font></br></div>
<div id="91" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:choose></font></br></div>
<div id="92" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:when</font><font class="Others"> test</font><font class="Normal">=</font><font class="String">"starts-with($href,'http://') or starts-with($href,'ftp://') or starts-with($href,'mailto:')"</font><font class="Keyword">></font></br></div>
<div id="93" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"$href"</font><font class="Keyword">/></font></br></div>
<div id="94" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:when></font></br></div>
<div id="95" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:otherwise></font></br></div>
<div id="96" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"concat('http://www.xs4all.nl/~wbsoft/linux/links/',$href)"</font><font class="Keyword">/></font></br></div>
<div id="97" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:otherwise></font></br></div>
<div id="98" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:choose></font></br></div>
<div id="99" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:attribute></font></br></div>
<div id="100" class="line"><font class="Normal"> </font><font class="Keyword"><title><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"normalize-space($title)"</font><font class="Keyword">/></title></font></br></div>
<div id="101" class="line"><font class="Normal"> </font><font class="Keyword"><xsl:if</font><font class="Others"> test</font><font class="Normal">=</font><font class="String">"normalize-space($realdesc) != ''"</font><font class="Keyword">></font></br></div>
<div id="102" class="line"><font class="Normal"> </font><font class="Keyword"><desc><xsl:value-of</font><font class="Others"> select</font><font class="Normal">=</font><font class="String">"normalize-space($realdesc)"</font><font class="Keyword">/></desc></font></br></div>
<div id="103" class="line"><font class="Normal"> </font><font class="Keyword"></xsl:if></font></br></div>
<div id="104" class="line"><font class="Normal"> </font><font class="Keyword"></bookmark></font></br></div>
<div id="105" class="line"><font class="Keyword"></xsl:template></font></br></div>
<div id="106" class="line"></br></div>
<div id="107" class="line"></br></div>
<div id="108" class="line"></br></div>
<div id="109" class="line"><font class="Keyword"></xsl:stylesheet></font></br></div>
</div>
</body>
</html>