- provide some (incomplete yet) magick to automagically fetch attach news from the main GNOME project right below FreeBSD-specific news; - add another example entry to the news page.
		
			
				
	
	
		
			105 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="ISO-8859-1" ?>
 | |
| 
 | |
| <!-- $FreeBSD$ -->
 | |
| 
 | |
| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
 | |
|   xmlns:cvs="http://www.FreeBSD.org/XML/CVS">
 | |
| 
 | |
|   <xsl:import href="../includes.xsl"/>
 | |
|   <xsl:import href="includes.xsl"/>
 | |
| 
 | |
| 
 | |
|   <xsl:variable name="base" select="'..'"/>
 | |
|   <xsl:variable name="title" select="'FreeBSD GNOME News Flash'"/>
 | |
|   <xsl:variable name="date">
 | |
|     <xsl:value-of select="//cvs:keyword[@name='freebsd']"/>
 | |
|   </xsl:variable>
 | |
|   
 | |
|   <xsl:output type="html" encoding="iso-8859-1"/>
 | |
| 
 | |
|   <xsl:template match="news">
 | |
|     <html>
 | |
|       
 | |
|       <xsl:copy-of select="$header1"/>
 | |
| 
 | |
|       <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"
 | |
| 	    alink="#0000FF">
 | |
| 
 | |
| 	<xsl:copy-of select="$header2"/>
 | |
| 
 | |
| 	<!-- Notice how entity references in SGML become variable references
 | |
| 	     in the stylesheet, and that the syntax for referring to variables
 | |
| 	     inside an attribute is "{$variable}".
 | |
| 
 | |
| 	     This is just dis-similar enough to Perl and the shell that you
 | |
| 	     end up writing ${variable} all the time, and then scratch your 
 | |
| 	     head wondering why the stylesheet isn't working.-->
 | |
| 
 | |
| 	<!-- Also notice that because this is now XML and not SGML, empty
 | |
|              elements, like IMG, must have a trailing "/" just inside the 
 | |
|    	     closing angle bracket, like this " ... />" -->
 | |
| 	<img src="{$base}/gifs/news.jpg" align="right" border="0" width="193"
 | |
| 	     height="144" alt="FreeBSD GNOME News"/>
 | |
| 
 | |
| 	<xsl:apply-templates select="descendant::month"/>
 | |
| 	
 | |
| 	<xsl:copy-of select="$newshome"/>
 | |
| 	<xsl:copy-of select="$footer"/>
 | |
|       </body>
 | |
|     </html>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <!-- Everything that follows are templates for the rest of the content -->
 | |
|   
 | |
|   <xsl:template match="month">
 | |
|     <h1><xsl:value-of select="name"/>
 | |
|       <xsl:text> </xsl:text>
 | |
|       <xsl:value-of select="ancestor::year/name"/></h1>
 | |
| 
 | |
|     <ul>
 | |
|       <xsl:apply-templates select="descendant::day"/>
 | |
|     </ul>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="day">
 | |
|     <xsl:apply-templates select="event"/>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="event">
 | |
|     <li><p><a>
 | |
| 	  <xsl:attribute name="name">
 | |
| 	    <xsl:call-template name="generate-event-anchor"/>
 | |
| 	  </xsl:attribute>
 | |
| 	</a>
 | |
| 
 | |
| 	<b><xsl:value-of select="ancestor::day/name"/>
 | |
| 	  <xsl:text> </xsl:text>
 | |
| 	  <xsl:value-of select="ancestor::month/name"/>, 
 | |
| 	  <xsl:value-of select="ancestor::year/name"/>:</b><xsl:text> </xsl:text>
 | |
| 	<xsl:apply-templates select="p"/>
 | |
| 	</p>
 | |
| 
 | |
|     </li>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="date"/>    <!-- Deliberately left blank -->
 | |
| 
 | |
|   <!-- When the href attribute contains a '$base', expand it to the current
 | |
|        value of the $base variable. -->
 | |
| 
 | |
|   <!-- All your $base are belong to us.  Ho ho ho -->
 | |
|   <xsl:template match="a">
 | |
|     <a><xsl:attribute name="href">
 | |
| 	<xsl:choose>
 | |
| 	  <xsl:when test="contains(@href, '$base')">
 | |
| 	    <xsl:value-of select="concat(substring-before(@href, '$base'), $base, substring-after(@href, '$base'))"/>
 | |
| 	  </xsl:when>
 | |
| 	  <xsl:otherwise>
 | |
| 	    <xsl:value-of select="@href"/>
 | |
| 	  </xsl:otherwise>
 | |
| 	</xsl:choose>
 | |
|       </xsl:attribute>
 | |
|       <xsl:apply-templates/>
 | |
|     </a>
 | |
|   </xsl:template>
 | |
| </xsl:stylesheet>
 |