Add an event section to the website.
This is meant both as a way to get an overview of upcoming FreeBSD related events, and as a way to structure links to pages with information / pictures / etc. from past events. The page automatically determines which events are upcoming and which are past, by comparing the event dates with the current date. Discussed on: -www Inspired by PR: www/53674 Which was submitted by: Josef El-Rayes <j.el-rayes@daemon.li>
This commit is contained in:
parent
beb0b54012
commit
bf545fc198
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=18407
6 changed files with 648 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
# $FreeBSD: www/en/events/Makefile,v 1.2 2002/03/26 08:11:53 murray Exp $
|
||||
# $FreeBSD: www/en/events/Makefile,v 1.3 2003/09/22 07:44:39 murray Exp $
|
||||
|
||||
.if exists(../Makefile.conf)
|
||||
.include "../Makefile.conf"
|
||||
|
@ -11,4 +11,37 @@ SUBDIR= 2002 2003
|
|||
|
||||
DATA= events.css
|
||||
|
||||
DATA= events.html
|
||||
CLEANFILES+= events.html curdate.xml
|
||||
|
||||
DATE?= /bin/date
|
||||
TR?= /usr/bin/tr
|
||||
XMLLINT?= /usr/local/bin/xmllint # Part of textproc/libxml2.
|
||||
|
||||
events.html: events.xsl events.xml ../includes.xsl curdate.xml
|
||||
${XSLTPROC} ${XSLTPROCOPTS} -o ${.TARGET} \
|
||||
${.CURDIR}/events.xsl ${.CURDIR}/events.xml
|
||||
.if !defined(NO_TIDY)
|
||||
-${TIDY} ${TIDYOPTS} ${.TARGET}
|
||||
.endif
|
||||
|
||||
lint:
|
||||
${XMLLINT} --valid -o /dev/null ${.CURDIR}/events.xml
|
||||
|
||||
# XXX TODO: Handle this better, so curdate.xml isn't rebuild on install.
|
||||
curdate.xml!
|
||||
@${ECHO} "Generating ${.TARGET}"
|
||||
@${ECHO_CMD} '<?xml version="1.0"?>' > ${.TARGET}
|
||||
@${ECHO_CMD} '<curdate>' >> ${.TARGET}
|
||||
@${ECHO_CMD} -n ' <year>' >> ${.TARGET}
|
||||
@${DATE} +%Y | ${TR} -d "\n" >> ${.TARGET}
|
||||
@${ECHO_CMD} '</year>' >> ${.TARGET}
|
||||
@${ECHO_CMD} -n ' <month>' >> ${.TARGET}
|
||||
@${DATE} +%m | ${TR} -d "\n" >> ${.TARGET}
|
||||
@${ECHO_CMD} '</month>' >> ${.TARGET}
|
||||
@${ECHO_CMD} -n ' <day>' >> ${.TARGET}
|
||||
@${DATE} +%d | ${TR} -d "\n" >> ${.TARGET}
|
||||
@${ECHO_CMD} '</day>' >> ${.TARGET}
|
||||
@${ECHO_CMD} '</curdate>' >> ${.TARGET}
|
||||
|
||||
.include "${WEB_PREFIX}/share/mk/web.site.mk"
|
||||
|
|
83
en/events/events.dtd
Normal file
83
en/events/events.dtd
Normal file
|
@ -0,0 +1,83 @@
|
|||
<!-- Copyright (c) 2003 Simon L. Nielsen <simon@FreeBSD.org>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<!-- DTD for events.xml on the FreeBSD website. -->
|
||||
|
||||
<!ELEMENT events (cvs:keywords?, event+)>
|
||||
|
||||
<!ELEMENT event (name?, url?, startdate, enddate, location, description?, link*)>
|
||||
<!ATTLIST event id ID #REQUIRED>
|
||||
|
||||
<!ELEMENT name (#PCDATA)>
|
||||
<!ELEMENT url (#PCDATA)>
|
||||
<!--
|
||||
Meaning of type attribute:
|
||||
freebsd-website:
|
||||
The URL is relative to the FreeBSD website root.
|
||||
The URL should start with a single "/".
|
||||
absolute:
|
||||
Normal absolute URL.
|
||||
-->
|
||||
<!ATTLIST url type (absolute|freebsd-website) "absolute">
|
||||
|
||||
<!ELEMENT startdate (year,month,day)>
|
||||
<!ELEMENT enddate (year,month,day)>
|
||||
<!ELEMENT year (#PCDATA)>
|
||||
<!ELEMENT month (#PCDATA)>
|
||||
<!ELEMENT day (#PCDATA)>
|
||||
|
||||
<!ELEMENT location (country?,state?,city?,site?,address?)>
|
||||
<!ELEMENT country (#PCDATA)>
|
||||
<!ELEMENT state (#PCDATA)>
|
||||
<!ELEMENT city (#PCDATA)>
|
||||
<!ELEMENT site (#PCDATA)>
|
||||
<!ELEMENT address (#PCDATA)>
|
||||
|
||||
<!ELEMENT description (#PCDATA|a|tt|i|b)*>
|
||||
|
||||
<!-- Misc HTML entities which might be used; just add more as needed -->
|
||||
<!ELEMENT a (#PCDATA)>
|
||||
<!ATTLIST a href CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT b (#PCDATA|a)*>
|
||||
<!ELEMENT i (#PCDATA|a)*>
|
||||
<!ELEMENT tt (#PCDATA|a)*>
|
||||
|
||||
<!--
|
||||
Link to a web page (local or remote) with additional information
|
||||
about the event. Can also be used for post-event comments/notes.
|
||||
-->
|
||||
<!ELEMENT link (name, url)>
|
||||
<!ATTLIST link type (photos|notes|other) "other">
|
||||
|
||||
<!-- Common CVS tags -->
|
||||
<!ELEMENT cvs:keywords (cvs:keyword+)>
|
||||
<!ATTLIST cvs:keywords xmlns:cvs CDATA #FIXED 'http://www.FreeBSD.org/XML/CVS'>
|
||||
<!ATTLIST cvs:keywords version CDATA #FIXED '1.0'>
|
||||
|
||||
<!ELEMENT cvs:keyword (#PCDATA)>
|
||||
<!ATTLIST cvs:keyword name CDATA #REQUIRED>
|
192
en/events/events.xml
Normal file
192
en/events/events.xml
Normal file
|
@ -0,0 +1,192 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE events SYSTEM "events.dtd">
|
||||
<!--
|
||||
Events which might be interesting for FreeBSD users.
|
||||
|
||||
Please sort the events by start date.
|
||||
-->
|
||||
|
||||
<events>
|
||||
<cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
|
||||
<cvs:keyword name="freebsd">
|
||||
$FreeBSD$
|
||||
</cvs:keyword>
|
||||
</cvs:keywords>
|
||||
|
||||
<event id="usenix-2004">
|
||||
<name>2004 USENIX Annual Technical Conference</name>
|
||||
<url>http://www.usenix.org/events/usenix04/</url>
|
||||
<startdate>
|
||||
<year>2004</year>
|
||||
<month>6</month>
|
||||
<day>27</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2004</year>
|
||||
<month>7</month>
|
||||
<day>2</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>USA</country>
|
||||
<state>Massachusetts</state>
|
||||
<city>Boston</city>
|
||||
</location>
|
||||
</event>
|
||||
|
||||
<event id="bsdcan-2004">
|
||||
<name>BSDCan</name>
|
||||
<url>http://www.bsdcan.org/</url>
|
||||
<startdate>
|
||||
<year>2004</year>
|
||||
<month>5</month>
|
||||
<day>13</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2004</year>
|
||||
<month>5</month>
|
||||
<day>15</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>Canada</country>
|
||||
<city>Ottawa</city>
|
||||
<site>University of Ottawa</site>
|
||||
</location>
|
||||
<description>BSDCan is a developers conference with a strong focus
|
||||
on emerging technologies, research projects, and works in
|
||||
progress. It also features Userland infrastructure projects and
|
||||
invite contribution from both free software developers and those
|
||||
from commercial vendors.</description>
|
||||
</event>
|
||||
|
||||
<event id="asia-bsdcon-2004">
|
||||
<name>Asia BSDCon 2004</name>
|
||||
<url>http://www.asiabsdcon.org/</url>
|
||||
<startdate>
|
||||
<year>2004</year>
|
||||
<month>3</month>
|
||||
<day>12</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2004</year>
|
||||
<month>3</month>
|
||||
<day>15</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>Taiwan</country>
|
||||
<city>Taipei</city>
|
||||
<site>Academica Sinica</site>
|
||||
</location>
|
||||
<description>The first BSDCon held in Asia, and sponsored by <a
|
||||
href="http://www.usenix.org/">USENIX Association</a>. Two days
|
||||
of tutorials will precede two days of technical sessions and a
|
||||
vendor exhibit.</description>
|
||||
</event>
|
||||
|
||||
<event id="linuxforum-2004">
|
||||
<name>LinuxForum 2004</name>
|
||||
<url>http://www.linuxforum.dk/</url>
|
||||
<startdate>
|
||||
<year>2004</year>
|
||||
<month>3</month>
|
||||
<day>5</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2004</year>
|
||||
<month>3</month>
|
||||
<day>6</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>Denmark</country>
|
||||
<city>Copenhagen</city>
|
||||
<site>Symbion</site>
|
||||
<address>Fruebjergvej 3</address>
|
||||
</location>
|
||||
<description>Annual Danish Open Source conference. The Danish BSD
|
||||
user group <a href="http://www.bsd-dk.dk">BSD-DK</a> will present
|
||||
the BSD's.</description>
|
||||
</event>
|
||||
|
||||
<event id="nordu-2004">
|
||||
<name>NordU2004</name>
|
||||
<url>http://www.nordu.org/NordU2004/</url>
|
||||
<startdate>
|
||||
<year>2004</year>
|
||||
<month>1</month>
|
||||
<day>31</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2004</year>
|
||||
<month>2</month>
|
||||
<day>1</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>Denmark</country>
|
||||
<city>Copenhagen</city>
|
||||
<site>Symbion</site>
|
||||
<address>Fruebjergvej 3</address>
|
||||
</location>
|
||||
<description>The NordU conference brings together researchers,
|
||||
practitioners, system administrators, system programmers,
|
||||
developers and other interested in the latest advances in
|
||||
operating systems, Open/Free software, Linux, BSD, Solaris,
|
||||
security and interoperability.</description>
|
||||
</event>
|
||||
|
||||
<event id="ccc-20">
|
||||
<name>20. Chaos Communication Congress</name>
|
||||
<url>http://www.ccc.de/congress/2003/</url>
|
||||
<startdate>
|
||||
<year>2003</year>
|
||||
<month>12</month>
|
||||
<day>27</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2003</year>
|
||||
<month>12</month>
|
||||
<day>29</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>Germany</country>
|
||||
<city>Berlin</city>
|
||||
<site>Berliner Congress Center</site>
|
||||
<address>Alexanderplatz 2</address>
|
||||
</location>
|
||||
</event>
|
||||
|
||||
<event id="bsdcon-03">
|
||||
<name>BSDCon '03</name>
|
||||
<url>http://www.usenix.org/events/bsdcon03/</url>
|
||||
<startdate>
|
||||
<year>2003</year>
|
||||
<month>9</month>
|
||||
<day>8</day>
|
||||
</startdate>
|
||||
<enddate>
|
||||
<year>2003</year>
|
||||
<month>9</month>
|
||||
<day>12</day>
|
||||
</enddate>
|
||||
<location>
|
||||
<country>USA</country>
|
||||
<state>California</state>
|
||||
<city>San Mateo</city>
|
||||
</location>
|
||||
<description>For the fourth time, the main BSD Event, BSDCon is
|
||||
happening. Two days of tutorials will precede two and a half
|
||||
days of technical sessions. An opportunity for people of all
|
||||
experience levels to learn from BSD experts, professionals with
|
||||
real world experience, and industry leaders.</description>
|
||||
<link type="notes">
|
||||
<name>FreeBSD Developer Summit notes</name>
|
||||
<url type="freebsd-website">/events/2003/bsdcon-devsummit.html</url>
|
||||
</link>
|
||||
<link type="other">
|
||||
<name>Unofficial BSDCon US 2003 Wiki</name>
|
||||
<url>http://bsdcon.kwiki.org/</url>
|
||||
</link>
|
||||
<link type="photos">
|
||||
<name>BSDCon 2003 Photos by Matt Dillon</name>
|
||||
<url>http://apollo.backplane.com/BSDCON2003/</url>
|
||||
</link>
|
||||
</event>
|
||||
</events>
|
234
en/events/events.xsl
Normal file
234
en/events/events.xsl
Normal file
|
@ -0,0 +1,234 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<!-- Copyright (c) 2003 Simon L. Nielsen <simon@FreeBSD.org>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:cvs="http://www.FreeBSD.org/XML/CVS"
|
||||
exclude-result-prefixes="cvs">
|
||||
|
||||
<xsl:import href="../includes.xsl"/>
|
||||
<xsl:import href="includes.xsl"/>
|
||||
|
||||
<xsl:variable name="curdate" select="document('curdate.xml')//curdate"/>
|
||||
|
||||
<xsl:variable name="base" select="'..'"/>
|
||||
<xsl:variable name="date">
|
||||
<xsl:value-of select="//cvs:keyword[@name='freebsd']"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="email" select="'freebsd-www'"/>
|
||||
<xsl:variable name="title" select="'FreeBSD Events'"/>
|
||||
|
||||
<xsl:output method="xml" encoding="iso-8859-1"
|
||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
|
||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>
|
||||
|
||||
<xsl:key name="event-by-month" match="event"
|
||||
use="concat(startdate/year, format-number(startdate/month, '00'))"/>
|
||||
|
||||
<!-- Template: events -->
|
||||
<xsl:template match="events">
|
||||
<html>
|
||||
<xsl:copy-of select="$header1"/>
|
||||
|
||||
<body xsl:use-attribute-sets="att.body">
|
||||
|
||||
<xsl:copy-of select="$header2"/>
|
||||
|
||||
<!--
|
||||
Note the current date to have a reference, if the
|
||||
upcoming/past events are split incorrectly.
|
||||
-->
|
||||
<xsl:comment>
|
||||
<xsl:text>Generated on: </xsl:text>
|
||||
<xsl:value-of select="concat($curdate/year,
|
||||
format-number($curdate/month, '00'),
|
||||
format-number($curdate/day, '00'))"/>
|
||||
</xsl:comment>
|
||||
|
||||
<p>If you know of any FreeBSD related events, or events that
|
||||
are of interest for FreeBSD users, which are not listed
|
||||
here, please send details to <a
|
||||
href="mailto:www@freebsd.org">www@FreeBSD.org</a>, so they
|
||||
can be included.</p>
|
||||
|
||||
<h2 id="upcoming">
|
||||
<xsl:text>Current/upcoming events:</xsl:text>
|
||||
</h2>
|
||||
|
||||
<xsl:for-each select="event[generate-id() =
|
||||
generate-id(key('event-by-month',
|
||||
concat(startdate/year, format-number(startdate/month, '00')))[1])
|
||||
and ((number(enddate/year) > number($curdate/year)) or
|
||||
(number(enddate/year) = number($curdate/year) and
|
||||
number(enddate/month) > number($curdate/month)) or
|
||||
(number(enddate/year) = number($curdate/year) and
|
||||
number(enddate/month) = number($curdate/month) and
|
||||
enddate/day >= $curdate/day))]">
|
||||
|
||||
<xsl:sort select="startdate/year" order="ascending"/>
|
||||
<xsl:sort select="format-number(startdate/month, '00')" order="ascending"/>
|
||||
<xsl:sort select="format-number(startdate/day, '00')" order="ascending"/>
|
||||
|
||||
<h3>
|
||||
<xsl:attribute name="id">
|
||||
<xsl:text>month:</xsl:text>
|
||||
<xsl:value-of select="concat(startdate/year,
|
||||
format-number(startdate/month, '00'))"/>
|
||||
</xsl:attribute>
|
||||
<xsl:call-template name="gen-long-en-month">
|
||||
<xsl:with-param name="nummonth" select="startdate/month"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="startdate/year"/>
|
||||
</h3>
|
||||
|
||||
<ul>
|
||||
<xsl:for-each select="key('event-by-month',
|
||||
concat(startdate/year, format-number(startdate/month, '00')))">
|
||||
|
||||
<xsl:sort select="format-number(startdate/day, '00')" order="ascending"/>
|
||||
<xsl:apply-templates select="."/>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:for-each>
|
||||
|
||||
<h2 id="past">
|
||||
<xsl:text>Past events:</xsl:text>
|
||||
</h2>
|
||||
|
||||
<xsl:for-each select="event[generate-id() =
|
||||
generate-id(key('event-by-month', concat(startdate/year,
|
||||
format-number(startdate/month, '00')))[1])
|
||||
and ((number(enddate/year) < number($curdate/year)) or
|
||||
(number(enddate/year) = number($curdate/year) and
|
||||
number(enddate/month) < number($curdate/month)) or
|
||||
(number(enddate/year) = number($curdate/year) and
|
||||
number(enddate/month) = number($curdate/month) and
|
||||
number(enddate/day) < number($curdate/day)))]">
|
||||
|
||||
<xsl:sort select="number(startdate/year)" order="descending"/>
|
||||
<xsl:sort select="format-number(startdate/month, '00')" order="descending"/>
|
||||
<xsl:sort select="format-number(startdate/day, '00')" order="descending"/>
|
||||
|
||||
<h3>
|
||||
<xsl:attribute name="id">
|
||||
<xsl:text>month:</xsl:text>
|
||||
<xsl:value-of select="concat(startdate/year,
|
||||
format-number(startdate/month, '00'))"/>
|
||||
</xsl:attribute>
|
||||
<xsl:call-template name="gen-long-en-month">
|
||||
<xsl:with-param name="nummonth" select="startdate/month"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="startdate/year"/>
|
||||
</h3>
|
||||
|
||||
<ul>
|
||||
<xsl:for-each select="key('event-by-month',
|
||||
concat(startdate/year, format-number(startdate/month, '00')))">
|
||||
|
||||
<xsl:sort select="format-number(startdate/day, '00')" order="descending"/>
|
||||
<xsl:apply-templates select="."/>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:for-each>
|
||||
<xsl:copy-of select="$footer"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template: event -->
|
||||
<xsl:template match="event">
|
||||
<li>
|
||||
<xsl:attribute name="id">
|
||||
<xsl:call-template name="generate-event-anchor"/>
|
||||
</xsl:attribute>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
<xsl:if test="url">
|
||||
<xsl:apply-templates select="url"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(url)">
|
||||
<xsl:value-of select="name"/>
|
||||
</xsl:if>
|
||||
</b>
|
||||
<xsl:if test="location/site!=''">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="location/site"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="location/city!=''">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="location/city"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="location/state!=''">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="location/state"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="location/country!=''">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="location/country"/>
|
||||
</xsl:if>
|
||||
<br/>
|
||||
<em>
|
||||
<xsl:call-template name="gen-date-interval">
|
||||
<xsl:with-param name="startdate" select="startdate" />
|
||||
<xsl:with-param name="enddate" select="enddate" />
|
||||
</xsl:call-template>
|
||||
</em><br/>
|
||||
<xsl:copy-of select="description/child::node()"/>
|
||||
</p>
|
||||
<xsl:if test="link">
|
||||
<p><xsl:apply-templates select="link"/></p>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template: link -->
|
||||
<xsl:template match="link">
|
||||
<xsl:apply-templates select="url"/>
|
||||
<xsl:if test="not(position()=last())">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template: url -->
|
||||
<xsl:template match="url">
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@type='freebsd-website'">
|
||||
<xsl:value-of select="$base"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="../name"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
102
en/events/includes.xsl
Normal file
102
en/events/includes.xsl
Normal file
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
|
||||
<!-- Copyright (c) 2003 Simon L. Nielsen <simon@FreeBSD.org>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
|
||||
<!-- Generate a unique anchor for this event. -->
|
||||
<xsl:template name="generate-event-anchor">
|
||||
<xsl:text>event:</xsl:text>
|
||||
<xsl:value-of select="@id"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Generic templates: -->
|
||||
|
||||
<!-- Convert a month number to the corresponding long English name. -->
|
||||
<xsl:template name="gen-long-en-month">
|
||||
<xsl:param name="nummonth"/>
|
||||
<xsl:variable name="month" select="number($nummonth)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$month=1">January</xsl:when>
|
||||
<xsl:when test="$month=2">February</xsl:when>
|
||||
<xsl:when test="$month=3">March</xsl:when>
|
||||
<xsl:when test="$month=4">April</xsl:when>
|
||||
<xsl:when test="$month=5">May</xsl:when>
|
||||
<xsl:when test="$month=6">June</xsl:when>
|
||||
<xsl:when test="$month=7">July</xsl:when>
|
||||
<xsl:when test="$month=8">August</xsl:when>
|
||||
<xsl:when test="$month=9">September</xsl:when>
|
||||
<xsl:when test="$month=10">October</xsl:when>
|
||||
<xsl:when test="$month=11">November</xsl:when>
|
||||
<xsl:when test="$month=12">December</xsl:when>
|
||||
<xsl:otherwise>Invalid month</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Generate a date interval. -->
|
||||
<!-- Sample: 27 November, 2002 - 29 December, 2003 -->
|
||||
<xsl:template name="gen-date-interval">
|
||||
<xsl:param name="startdate"/>
|
||||
<xsl:param name="enddate"/>
|
||||
|
||||
<xsl:value-of select="startdate/day"/>
|
||||
|
||||
<xsl:if test="number(startdate/month) != number(enddate/month) or
|
||||
number(startdate/day) != number(enddate/day) or
|
||||
number(startdate/year) != number(enddate/year)">
|
||||
|
||||
<xsl:if test="number(startdate/month) != number(enddate/month) or
|
||||
number(startdate/year) != number(enddate/year)">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="gen-long-en-month">
|
||||
<xsl:with-param name="nummonth" select="startdate/month"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="number(startdate/year) != number(enddate/year)">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="startdate/year"/>
|
||||
</xsl:if>
|
||||
<xsl:text> - </xsl:text>
|
||||
|
||||
<xsl:if test="number(startdate/day) != number(enddate/day) or
|
||||
number(startdate/month) != number(enddate/month) or
|
||||
number(startdate/year) != number(enddate/year)">
|
||||
<xsl:value-of select="enddate/day"/>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="gen-long-en-month">
|
||||
<xsl:with-param name="nummonth" select="enddate/month"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="enddate/year"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
|
@ -1,4 +1,4 @@
|
|||
<!-- $FreeBSD: www/en/index.xsl,v 1.76 2003/09/01 18:54:27 kensmith Exp $ -->
|
||||
<!-- $FreeBSD: www/en/index.xsl,v 1.77 2003/09/18 21:43:28 brueffer Exp $ -->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
|||
<xsl:import href="news/includes.xsl"/>
|
||||
|
||||
<xsl:variable name="base" select="'.'"/>
|
||||
<xsl:variable name="date" select="'$FreeBSD: www/en/index.xsl,v 1.76 2003/09/01 18:54:27 kensmith Exp $'"/>
|
||||
<xsl:variable name="date" select="'$FreeBSD: www/en/index.xsl,v 1.77 2003/09/18 21:43:28 brueffer Exp $'"/>
|
||||
<xsl:variable name="title" select="'The FreeBSD Project'"/>
|
||||
|
||||
<xsl:output type="html" encoding="iso-8859-1"
|
||||
|
@ -218,6 +218,7 @@
|
|||
· <a href="{$base}/support.html#user">User Groups</a><br/>
|
||||
· <a href="{$base}/support.html#web">Web Resources</a><br/>
|
||||
· <a href="security/index.html">Security</a><br/>
|
||||
· <a href="{$base}/events/events.html">Events</a><br/>
|
||||
· <a href="{$base}/support.html">More...</a>
|
||||
</small></p>
|
||||
|
||||
|
|
Loading…
Reference in a new issue