Date: Wed, 17 Aug 2005 12:23:41 +0100 From: Ceri Davies <ceri@submonkey.net> To: Hiroki Sato <hrs@FreeBSD.org> Cc: doc@FreeBSD.org Subject: Re: Events in iCalendar format Message-ID: <20050817112341.GF55885@submonkey.net> In-Reply-To: <20050817.194220.51508710.hrs@allbsd.org> References: <20050816213442.GN55885@submonkey.net> <20050817.070143.78009116.hrs@allbsd.org> <20050817094746.GR55885@submonkey.net> <20050817.194220.51508710.hrs@allbsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Z5Iw6G/4V9lVaptU Content-Type: multipart/mixed; boundary="p19/OaUkOQckSefz" Content-Disposition: inline --p19/OaUkOQckSefz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 17, 2005 at 07:42:20PM +0900, Hiroki Sato wrote: > Ceri Davies <ceri@submonkey.net> wrote > in <20050817094746.GR55885@submonkey.net>: >=20 > ce> On Wed, Aug 17, 2005 at 07:01:43AM +0900, Hiroki Sato wrote: > ce> > Hmm, could you please put the XSLT stylesheet into the language-in= dependent > ce> > directory? > ce> > ce> Along this line, I don't see why we have a copy of events.dtd in every > ce> language-dependent directory. >=20 > Yes, it is pointless, too. I am planning to clean up this sort of > duplicate files when I import doc.xml.mk. So when you add a new > language-independent file, putting it into the LI directory > from the beginning would be nice. OK, here's the new diff. Ceri --=20 Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. -- Einstein (attrib.) --p19/OaUkOQckSefz Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="events.ical.diff" Content-Transfer-Encoding: quoted-printable Index: share/sgml/events2ics.xsl =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: share/sgml/events2ics.xsl diff -N share/sgml/events2ics.xsl --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ share/sgml/events2ics.xsl 17 Aug 2005 11:23:06 -0000 @@ -0,0 +1,115 @@ +<?xml version=3D"1.0" encoding=3D"ISO-8859-1" ?> + +<!-- Copyright (c) 2005 Ceri Davies <ceri@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 PU= RPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIAB= LE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUE= NTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOO= DS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, S= TRICT + 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$ +--> + +<!-- Generate an iCalendar file from a www/en/events/events.dtd + compliant events.xml --> + +<xsl:stylesheet xmlns:xsl=3D"http://www.w3.org/1999/XSL/Transform" version= =3D"1.0" + xmlns:cvs=3D"http://www.FreeBSD.org/XML/CVS" + exclude-result-prefixes=3D"cvs"> + + <xsl:variable name=3D"freebsd-web-base" select=3D"'http://www.FreeBSD.or= g'"/> + + <xsl:output method=3D"text" encoding=3D"iso-8859-1"/> + <xsl:strip-space elements=3D"*"/> + + <!-- Template: events --> + <xsl:template match=3D"events">BEGIN:VCALENDAR +VERSION:2.0 +PRODID:$FreeBSD$ + <xsl:apply-templates select=3D"event"/> +END:VCALENDAR</xsl:template> + + <!-- Template: event --> + <xsl:template match=3D"event"> +BEGIN:VEVENT +SEQUENCE:<xsl:value-of select=3D"position()" /> +SUMMARY:<xsl:value-of select=3D"name"/> + <xsl:if test=3D"url"> + <xsl:apply-templates select=3D"url"/> + </xsl:if> +LOCATION:<xsl:if test=3D"location/site!=3D''"> + <xsl:value-of select=3D"location/site"/> + </xsl:if> + <xsl:if test=3D"location/city!=3D''"> + <xsl:text>, </xsl:text> + <xsl:value-of select=3D"location/city"/> + </xsl:if> + <xsl:if test=3D"location/state!=3D''"> + <xsl:text>, </xsl:text> + <xsl:value-of select=3D"location/state"/> + </xsl:if> + <xsl:if test=3D"location/country!=3D''"> + <xsl:text>, </xsl:text> + <xsl:value-of select=3D"location/country"/> + </xsl:if> + <xsl:call-template name=3D"gen-ical-date-interval"> + <xsl:with-param name=3D"startdate" select=3D"startdate" /> + <xsl:with-param name=3D"enddate" select=3D"enddate" /> + </xsl:call-template> +DESCRIPTION:<xsl:copy-of select=3D"description/child::node()"/> + <xsl:if test=3D"link"> + <xsl:apply-templates select=3D"link"/> + </xsl:if> +END:VEVENT</xsl:template> + + <!-- Template: link --> + <xsl:template match=3D"link"> + <xsl:apply-templates select=3D"url"/> + </xsl:template> + + <!-- Template: url --> + <xsl:template match=3D"url"> +URL;VALUE=3DURI:<xsl:choose> + <xsl:when test=3D"@type=3D'freebsd-website'"> + <xsl:value-of select=3D"$freebsd-web-base"/> + </xsl:when> + </xsl:choose> + <xsl:value-of select=3D"."/> + </xsl:template> + + <!-- Generate iCalendar DTSTART and DTEND entries --> + <xsl:template name=3D"gen-ical-date-interval"> + <xsl:param name=3D"startdate"/> + <xsl:param name=3D"enddate"/> + +DTSTART;VALUE=3DDATE:<xsl:value-of select=3D"concat(startdate/year, + format-number(startdate/month, '00'), + format-number(startdate/day, '00'))"/> + + <xsl:if test=3D"number(startdate/month) !=3D number(enddate/month) or + number(startdate/day) !=3D number(enddate/day) or + number(startdate/year) !=3D number(enddate/year)"> +DTEND;VALUE=3DDATE:<xsl:value-of select=3D"concat(enddate/year, + format-number(enddate/month, '00'), + format-number(enddate/day, '00'))"/> + + </xsl:if> + </xsl:template> +</xsl:stylesheet> Index: en/events/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /home/dcvs/www/en/events/Makefile,v retrieving revision 1.7 diff -u -r1.7 Makefile --- en/events/Makefile 6 Apr 2004 11:36:12 -0000 1.7 +++ en/events/Makefile 17 Aug 2005 11:23:06 -0000 @@ -12,8 +12,10 @@ =20 DATA=3D events.css DATA+=3D events.html +DATA+=3D events.ics =20 CLEANFILES+=3D events.html +CLEANFILES+=3D events.ics CLEANFILES+=3D curdate.xml =20 INDEXLINK=3D events.html @@ -29,6 +31,10 @@ -${TIDY} ${TIDYOPTS} ${.TARGET} .endif =20 +events.ics: events.xml + ${XSLTPROC} ${XSLTPROCOPTS} -o ${.TARGET} \ + ${WEB_PREFIX}/share/sgml/events2ics.xsl ${.CURDIR}/events.xml + lint: ${XMLLINT} --valid -o /dev/null ${.CURDIR}/events.xml =20 --p19/OaUkOQckSefz-- --Z5Iw6G/4V9lVaptU Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQFDAx49ocfcwTS3JF8RAqbjAKCRgtPKAf3taoIw7QekzJS99h9X9wCgwj8U oHPAGEnyGz09tw2L8BV2Fb4= =qGwq -----END PGP SIGNATURE----- --Z5Iw6G/4V9lVaptU--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050817112341.GF55885>