Initial revision
authorStefanus Du Toit <sjdutoit@csclub.uwaterloo.ca>
Mon, 11 Mar 2002 20:39:54 +0000 (20:39 +0000)
committerStefanus Du Toit <sjdutoit@csclub.uwaterloo.ca>
Mon, 11 Mar 2002 20:39:54 +0000 (20:39 +0000)
43 files changed:
.cvsignore [new file with mode: 0755]
Makefile [new file with mode: 0755]
about/.cvsignore [new file with mode: 0755]
about/Makefile [new file with mode: 0755]
about/directory.xml [new file with mode: 0755]
about/exec.xml [new file with mode: 0755]
about/index.xml [new file with mode: 0755]
about/members.xml [new file with mode: 0755]
buttons/calendar.png [new file with mode: 0755]
buttons/calendar.xcf [new file with mode: 0755]
buttons/csc.png [new file with mode: 0755]
buttons/csc.xcf [new file with mode: 0755]
buttons/docs.png [new file with mode: 0755]
buttons/docs.xcf [new file with mode: 0755]
buttons/home.png [new file with mode: 0755]
buttons/office.png [new file with mode: 0755]
buttons/office.xcf [new file with mode: 0755]
buttons/stats.png [new file with mode: 0755]
buttons/stats.xcf [new file with mode: 0755]
buttons/users.png [new file with mode: 0755]
csc.dtd [new file with mode: 0755]
cscweb.xsl [new file with mode: 0755]
default.css [new file with mode: 0755]
default.mk [new file with mode: 0755]
directory.xml [new file with mode: 0755]
docs/.cvsignore [new file with mode: 0755]
docs/index.xml [new file with mode: 0755]
events.xml [new file with mode: 0755]
events/.cvsignore [new file with mode: 0755]
events/Makefile [new file with mode: 0755]
events/directory.xml [new file with mode: 0755]
events/index.xml [new file with mode: 0755]
index.xml [new file with mode: 0755]
logos/Makefile [new file with mode: 0755]
logos/csc_160_70.png [new file with mode: 0755]
logos/csc_80_35.png [new file with mode: 0755]
logos/csc_bevel.xcf [new file with mode: 0755]
logos/csc_only.png [new file with mode: 0755]
logos/csc_only.ps [new file with mode: 0755]
logos/csc_only.xcf [new file with mode: 0755]
logos/csclogo.ps [new file with mode: 0755]
menu.xml [new file with mode: 0755]
news.xml [new file with mode: 0755]

diff --git a/.cvsignore b/.cvsignore
new file mode 100755 (executable)
index 0000000..2d19fc7
--- /dev/null
@@ -0,0 +1 @@
+*.html
diff --git a/Makefile b/Makefile
new file mode 100755 (executable)
index 0000000..55a7a5f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+INPUTS = index.xml
+SUBDIRS = about events
+
+include default.mk
+
diff --git a/about/.cvsignore b/about/.cvsignore
new file mode 100755 (executable)
index 0000000..2d19fc7
--- /dev/null
@@ -0,0 +1 @@
+*.html
diff --git a/about/Makefile b/about/Makefile
new file mode 100755 (executable)
index 0000000..bb26eca
--- /dev/null
@@ -0,0 +1,4 @@
+INPUTS = index.xml exec.xml members.xml
+
+include ../default.mk
+
diff --git a/about/directory.xml b/about/directory.xml
new file mode 100755 (executable)
index 0000000..4d400c8
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE directory SYSTEM "../csc.dtd">
+
+<directory title="About">
+ <diritem title="The Executive" href="exec.html" />
+ <diritem title="Membership List" href="members.html" />
+</directory>
diff --git a/about/exec.xml b/about/exec.xml
new file mode 100755 (executable)
index 0000000..76af01f
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE cscpage SYSTEM "../csc.dtd">
+
+<cscpage title="The CSC Executive">
+ <header />
+ <section title="The Winter 2002 Executive">
+  <execlist>
+   <exec position="President"
+         name="Billy Biggs"
+         href="http://www.dumbterm.net/"
+         userid="president" />
+   <exec position="Vice President"
+         name="Stefanus Du Toit"
+         href="http://3.141592.org/"
+         userid="vice-president" />
+
+   <exec position="Treasurer"
+         name="Melissa Basinger"
+        href="http://www.csclub.uwaterloo.ca/u/mlbasing/"
+        userid="treasurer" />
+
+   <exec position="Secretary"
+         name="James Perry"
+         href="http://www.student.math.uwaterloo.ca/~jeperry/"
+        userid="secretary" />
+
+   <exec position="System Administrator"
+         type="appointed"
+         name="Barry Genova"
+        userid="sysadmin" />
+
+   <exec position="Librarian"
+         type="appointed"
+         name="Ryan Golbeck"
+        href="http://www.gowlin.org/"
+        userid="rmgolbec" />
+
+   <exec position="Office Manager"
+         type="appointed"
+         name="Sayan Li"
+        userid="offman" />
+
+   <exec position="Flasher"
+         type="appointed"
+         name="James A. Morrison"
+        userid="ja2morri" />
+
+   <exec position="Popd"
+         type="appointed"
+         name="Karl Zaryski"
+        href="http://www.csclub.uwaterloo.ca/u/knzarysk/"
+        userid="knzarysk" />
+
+   <exec position="World Wide Web Wench"
+         type="appointed"
+         name="Jonathan Beverley"
+        href="http://www.csclub.uwaterloo.ca/u/jmbeverl/"
+        userid="www" />
+  </execlist>
+ </section>
+ <section title="Elections">
+  <p>
+   Each term the CSC holds elections to determine the executive
+   council. To find out when and where the next elections will be
+   held, check the <a href="/">homepage</a> and the <a
+   href="nttp://uw.csc">uw.csc newsgroup</a>. For details on the
+   election rules, see the <a
+   href="/docs/constitution.html">constitution</a>.
+  </p>
+ </section>
+ <footer/>
+</cscpage>
\ No newline at end of file
diff --git a/about/index.xml b/about/index.xml
new file mode 100755 (executable)
index 0000000..5e5f1de
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE cscpage SYSTEM "../csc.dtd">
+
+<cscpage title="About the CSC">
+ <header />
+ <section title="What... is your name?"> 
+  <p>
+    According to our <a href="/docs/constitution">constitution</a> we
+    are officially the &quot;Computer Science Club of the University
+    of Waterloo.&quot; You can contact <a href="exec">our
+    executive</a> by e-mail at <a
+    href="mailto:exec@csclub.uwaterloo.ca">exec@csclub.uwaterloo.ca</a>,
+    come by the <a href="/office/">office</a> in MC3036/3037 or mail
+    us at the following address.
+  </p>
+  <pre>
+Computer Science Club
+Math &amp; Computer 3036/3037
+University of Waterloo
+200 University Avenue West
+Waterloo, Ontario, CANADA
+N2L 3G1    
+  </pre>
+ </section>
+
+ <section title="What... is your quest?">
+  <p>
+    Again our lovely <a href="/docs/constitution">constitution</a> (it
+    really <i>is</i> quite a read, see for yourself!) answers this
+    question. In short, we exist to promote knowledge of and interest
+    in computer science as well as allowing those interested in
+    computer science to talk to each other. We are also a proud
+    <a href="http://www.acm.org/chapters/stu/">ACM student
+    chapter</a>. The <a href="http://www.acm.org/">Association of
+    Computing Machinery (ACM)</a> is the world's first society in
+    computing and brings together many students and professionals from
+    all over the world with an interest in computing. We have an <a
+    href="/office/">office</a> where members get together, a
+    <a href="/office/library/">library</a> of computer science books
+    available to our members, computer accounts on our various
+    machines and much more. Frequently we host <a
+    href="/events/">events</a> related to computing, including talks,
+    tutorials and demonstrations.
+  </p>
+ </section>
+
+ <section
+   title="What... is the air-speed velocity of an unladen swallow?">
+  <p>
+   <a
+   href="http://www.stone-dead.asn.au/movies/holy-grail/scene-23.html">What
+   do you mean? An African or European swallow?</a> <i>(idea
+   shamelessly stolen from the <a
+   href="http://gcc.gnu.org/libstdc++/">GNU libstdc++
+   homepage</a>)</i>
+  </p>
+ </section>
+ <section title="Who is your executive?">
+  <p>
+   Each term a new executive is elected by <a href="members">the
+   membership</a>. See the <a href="exec">Executive</a> page to find
+   out who this term's executive is.
+  </p>
+ </section>
+
+ <section title="Can I join?">
+  <p>
+   If you are (or have been) student, faculty or staff at the
+   <a href="http://www.uwaterloo.ca/">University of Waterloo</a>, you
+   can become a full member of the CSC. Otherwise, you can become an
+   affiliate member, meaning you can't vote or hold executive
+   office. Membership costs a mere $2 (Canadian) a term at the time of
+   this writing, but may change in the future.
+  </p>
+ </section>
+ <footer />
+</cscpage>
diff --git a/about/members.xml b/about/members.xml
new file mode 100755 (executable)
index 0000000..7d64838
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE cscpage SYSTEM "../csc.dtd">
+
+<cscpage title="Membership list">
+  <header />
+  <section title="Not yet available.">
+    The membership list is not yet available. Please check back later.
+  </section>
+  <footer />
+</cscpage>
diff --git a/buttons/calendar.png b/buttons/calendar.png
new file mode 100755 (executable)
index 0000000..9401b3c
Binary files /dev/null and b/buttons/calendar.png differ
diff --git a/buttons/calendar.xcf b/buttons/calendar.xcf
new file mode 100755 (executable)
index 0000000..251b394
Binary files /dev/null and b/buttons/calendar.xcf differ
diff --git a/buttons/csc.png b/buttons/csc.png
new file mode 100755 (executable)
index 0000000..555c0a6
Binary files /dev/null and b/buttons/csc.png differ
diff --git a/buttons/csc.xcf b/buttons/csc.xcf
new file mode 100755 (executable)
index 0000000..d956720
Binary files /dev/null and b/buttons/csc.xcf differ
diff --git a/buttons/docs.png b/buttons/docs.png
new file mode 100755 (executable)
index 0000000..34488c3
Binary files /dev/null and b/buttons/docs.png differ
diff --git a/buttons/docs.xcf b/buttons/docs.xcf
new file mode 100755 (executable)
index 0000000..0bd14bb
Binary files /dev/null and b/buttons/docs.xcf differ
diff --git a/buttons/home.png b/buttons/home.png
new file mode 100755 (executable)
index 0000000..ffa3502
Binary files /dev/null and b/buttons/home.png differ
diff --git a/buttons/office.png b/buttons/office.png
new file mode 100755 (executable)
index 0000000..7a39549
Binary files /dev/null and b/buttons/office.png differ
diff --git a/buttons/office.xcf b/buttons/office.xcf
new file mode 100755 (executable)
index 0000000..65ca0bb
Binary files /dev/null and b/buttons/office.xcf differ
diff --git a/buttons/stats.png b/buttons/stats.png
new file mode 100755 (executable)
index 0000000..c44dda0
Binary files /dev/null and b/buttons/stats.png differ
diff --git a/buttons/stats.xcf b/buttons/stats.xcf
new file mode 100755 (executable)
index 0000000..60a0426
Binary files /dev/null and b/buttons/stats.xcf differ
diff --git a/buttons/users.png b/buttons/users.png
new file mode 100755 (executable)
index 0000000..0c6eff2
Binary files /dev/null and b/buttons/users.png differ
diff --git a/csc.dtd b/csc.dtd
new file mode 100755 (executable)
index 0000000..df27fca
--- /dev/null
+++ b/csc.dtd
@@ -0,0 +1,55 @@
+<!ELEMENT cscpage (biglogo*, menu*, section*, header*, footer*)>
+<!ATTLIST cscpage
+  title CDATA #REQUIRED>
+
+<!ELEMENT biglogo EMPTY>
+<!ELEMENT menu EMPTY>
+<!ELEMENT section (#PCDATA)>
+<!ATTLIST section
+  title CDATA #REQUIRED>
+<!ELEMENT header EMPTY>
+<!ELEMENT footer EMPTY>
+
+<!ELEMENT news-and-events EMPTY>
+<!ELEMENT news EMPTY>
+<!ELEMENT events EMPTY>
+<!ELEMENT events-this-term EMPTY>
+<!ELEMENT generate-event-files EMPTY>
+
+<!ELEMENT newsdefs (newsitem*)>
+<!ELEMENT newsitem (#PCDATA)>
+<!ATTLIST newsitem
+  date CDATA #REQUIRED
+  author CDATA #REQUIRED>
+<!ELEMENT eventdefs (eventitem*)>
+<!ELEMENT eventitem (short)>
+<!ATTLIST eventitem
+  date CDATA #REQUIRED
+  time CDATA #REQUIRED
+  room CDATA #REQUIRED
+  term CDATA #REQUIRED
+  title CDATA #REQUIRED>
+<!ELEMENT short (#PCDATA)>
+
+<!ELEMENT menudefs (menuitem*)>
+<!ELEMENT menuitem EMPTY>
+<!ATTLIST menuitem
+  icon CDATA #REQUIRED
+  href CDATA #REQUIRED
+  title CDATA #REQUIRED>
+
+<!ELEMENT directory (diritem*)>
+<!ATTLIST directory
+  title CDATA #REQUIRED>
+<!ELEMENT diritem EMPTY>
+<!ATTLIST diritem
+  title CDATA #REQUIRED
+  href CDATA #REQUIRED>
+
+<!ELEMENT execlist (exec*)>
+<!ELEMENT exec EMPTY>
+<!ATTLIST exec
+  position CDATA #REQUIRED
+  type CDATA "elected"
+  name CDATA #REQUIRED
+  userid CDATA #REQUIRED>
diff --git a/cscweb.xsl b/cscweb.xsl
new file mode 100755 (executable)
index 0000000..cf8f383
--- /dev/null
@@ -0,0 +1,270 @@
+<?xml version='1.0'?>
+
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="html" />
+
+<xsl:template match="cscpage">
+
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]>
+</xsl:text>
+<html>
+<head>
+ <title><xsl:value-of select="@title"/></title>
+  <style type="text/css">
+   <![CDATA[<!-- @import url('/default.css'); -->]]>
+  </style>
+</head>
+<body>
+<xsl:apply-templates select="biglogo"/>
+<xsl:apply-templates select="header">
+ <xsl:with-param name="title" select="@title"/>
+</xsl:apply-templates>
+<xsl:apply-templates select="section|menu"/>
+<xsl:apply-templates select="footer"/>
+</body>
+</html>
+</xsl:template>
+
+<xsl:template match="section">
+ <h2><xsl:value-of select="@title"/></h2>
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="biglogo" name="menu">
+  <table cellspacing="0" cellpadding="2" border="0" align="center">
+   <tr>
+    <td width="174" rowspan="2"><img src="/logos/csc_160_70.png" alt="CSC" width="165" height="75" /></td>
+    <td>University of Waterloo</td>
+   </tr>
+   <tr>
+    <td>Computer Science Club</td>
+   </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="menuitem">
+    <td class="button">
+     <a href="{@href}"><img border="0" src="/buttons/{@icon}.png"
+     width="40" height="40" alt="" /></a><br />
+     <a href="{@href}"><xsl:value-of select="@title"/></a>
+    </td>
+</xsl:template>
+
+<xsl:template match="menudefs">
+ <table cellspacing="1" cellpadding="3" border="0" bgcolor="black" align="center">
+  <tr>
+   <xsl:apply-templates select="menuitem"/>
+  </tr>
+ </table>
+</xsl:template>
+
+<xsl:template match="menu" name="menu">
+ <xsl:apply-templates select="document('menu.xml')/menudefs"/>
+</xsl:template>
+
+<xsl:template match="header" name="header">
+  <table cellspacing="0" cellpadding="2" border="0" width="100%"
+  bgcolor="#cee6ff">
+   <tr>
+    <td width="84"><a href="/"><img src="/logos/csc_80_35.png"
+    alt="CSC" width="80" height="35" border="0" /></a></td>
+    <td class="pagetitle"><xsl:value-of select="$title"/></td>
+   </tr>
+   <tr>
+    <td colspan="2">
+     <xsl:apply-templates
+      select="document(concat($pwd,'/directory.xml'))/directory"/>
+    </td>
+   </tr>
+ </table>
+</xsl:template>
+
+<xsl:template match="directory">
+ [<a href="index.html"><xsl:value-of select="@title"/></a>]
+ <xsl:apply-templates match="diritem"/>
+</xsl:template>
+
+<xsl:template match="diritem">
+ [<a href="{@href}"><xsl:value-of select="@title"/></a>]
+</xsl:template>
+
+<xsl:template match="footer" name="footer">
+ <hr />
+ <xsl:call-template name="menu"/>
+ <p>
+  This page was generated on <xsl:value-of select="$date"/> at
+  <xsl:value-of select="$time"/>.
+ </p>
+ <p>
+   Copyright 2002 the Computer Science Club of the University of
+   Waterloo. Please direct website comments to the <a
+   href="mailto:www@csclub.uwaterloo.ca">Webmaster</a>. 
+ </p>
+</xsl:template>
+
+<xsl:template match="newsdefs">
+ <xsl:apply-templates select="newsitem"/>
+</xsl:template>
+
+<xsl:template match="newsitem">
+   <tr>
+    <td class="newsdate"><xsl:value-of select="@date"/></td>
+    <td rowspan="2" valign="top" class="newsitem"><xsl:apply-templates/></td>
+   </tr>
+   <tr>
+    <td class="newsauthor"><xsl:value-of select="@author"/></td>
+   </tr>
+</xsl:template>
+
+<xsl:template match="news" name="news">
+ <tr>
+  <th colspan="2" class="news">
+   News
+  </th>
+ </tr>
+ <xsl:apply-templates select="document('news.xml')/newsdefs"/>
+ <tr>
+  <td class="newsitem" colspan="2">
+   <a href="news/">Older news items</a> are available. Make sure you
+   check out the <a href="nntp://uw.csc">uw.csc</a> newsgroup and our
+   announcement boards on the second and third floor of MC for more
+   updates.
+  </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="events" name="events">
+   <tr>
+    <th colspan="2" class="news">
+     Upcoming Events
+    </th>
+   </tr>
+   <xsl:for-each select="document('events.xml')/eventdefs/eventitem">
+    <xsl:sort select="translate(@date, '-', '')"
+              order="ascending"
+              data-type="number"/>
+    <xsl:if test="translate(@date, '-', '') &gt;= translate($date, '-', '')">
+     <tr>
+      <td class="eventdate"><xsl:value-of select="@date"/></td>
+      <td rowspan="2" valign="top" class="eventitem">
+        <a href="{translate(concat('/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
+        <xsl:value-of select="@title"/>
+        </a>.
+       <xsl:value-of select="short"/>
+      </td>
+     </tr>
+     <tr>
+      <td class="eventroom"><xsl:value-of select="@time"/>,
+      <xsl:value-of select="@room"/></td>
+     </tr>
+    </xsl:if>
+   </xsl:for-each>
+   <tr>
+    <td class="eventitem" colspan="2"><a href="events/">Past
+    events</a> are available.</td>
+   </tr>
+</xsl:template>
+
+<xsl:template match="eventdefs">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="eventitem">
+ <xsl:document method="html"
+  href="{translate(concat($root, '/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]>
+</xsl:text>
+<html>
+<head>
+ <title><xsl:value-of select="@title"/></title>
+  <style type="text/css">
+   <![CDATA[<!-- @import url('/default.css'); -->]]>
+  </style>
+</head>
+<body>
+ <xsl:call-template name="header">
+  <xsl:with-param name="title" select="@title"/>
+ </xsl:call-template>
+ <p>
+  Held in <xsl:value-of select="@room"/> at
+  <xsl:value-of select="@date"/>, <xsl:value-of select="@time"/>.
+ </p>
+ <h2>Abstract</h2>
+ <xsl:apply-templates select="abstract"/>
+ <xsl:call-template name="footer"/>
+</body>
+</html>
+ </xsl:document>
+</xsl:template>
+
+<xsl:template match="news-and-events">
+ <table cellspacing="1" cellpadding="2" bgcolor="black">
+  <xsl:call-template name="news"/>
+  <xsl:call-template name="events"/>
+ </table>
+</xsl:template>
+
+<xsl:template match="events-this-term">
+  <p>The events for <xsl:value-of select="$term"/> are listed here.</p>
+   <xsl:for-each select="document('events.xml')/eventdefs/eventitem">
+    <xsl:sort select="translate(@date, '-', '')"
+              order="ascending"
+              data-type="number"/>
+    <xsl:if test="@term = $term">
+     <h3><xsl:value-of select="@title"/></h3>
+     <p>
+      <b><xsl:value-of select="@room"/>,
+      <xsl:value-of select="@date"/>, <xsl:value-of
+      select="@time"/>: </b>
+      <xsl:value-of select="short"/>
+      <a href="{translate(concat('/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
+       More information</a>.
+     </p>
+    </xsl:if>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="generate-event-files">
+ <xsl:apply-templates select="document('events.xml')/eventdefs"/>
+</xsl:template>
+
+<xsl:template match="old-events">
+ <xsl:for-each select="document('events.xml')/eventdefs/eventitem">
+  <xsl:sort select="term"
+            order="descending"
+            data-type="number"/>
+
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="execlist">
+ <h3>Elected positions</h3>
+ <ul>
+  <xsl:apply-templates select="exec[@type='elected']"/>
+ </ul>
+ <h3>Appointed positions</h3>
+ <ul>
+  <xsl:apply-templates select="exec[@type='appointed']"/>
+ </ul>
+</xsl:template>
+
+<xsl:template match="exec">
+ <li><xsl:value-of select="@name"/> is this term's <b><xsl:value-of
+ select="@position"/></b>. You can <a
+ href="mailto:{@userid}@csclub.uwaterloo.ca">e-mail them</a><xsl:if
+ test="not(@href='')"> or <a href="{@href}">visit their
+ homepage</a></xsl:if>.
+ </li>
+</xsl:template>
+
+<xsl:template match="*">
+<xsl:copy>
+<xsl:copy-of select="@*" />
+<xsl:apply-templates />
+</xsl:copy>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/default.css b/default.css
new file mode 100755 (executable)
index 0000000..524e636
--- /dev/null
@@ -0,0 +1,17 @@
+body {background: white; color: black; font-family: times, "times new roman",
+      sans-serif}
+h1 {font-size: x-large; }
+h2 {font-size: large; color: #000055; }
+h3 {font-size: medium; color: #0055aa; }
+a:visited {background: transparent; color: #8888aa; text-decoration: none }
+a:link {background: transparent; color: #0000aa; text-decoration: none }
+a:active {background: #ffcc00; color: #0000cc }
+td.button { background: #eeeeee; text-align: center }
+td.newsdate { background: #eeeeff; font-family: sans-serif; font-size: x-small; text-align: center; font-weight: bold}
+td.newsitem { background: white; text-align: left}
+td.newsauthor { background: #eeeeff; font-family: sans-serif; font-size: x-small; text-align: center}
+td.eventdate { background: #eeffee; font-family: sans-serif; font-size: x-small; text-align: center; font-weight: bold}
+td.eventitem { background: white; text-align: left}
+td.eventroom { background: #eeffee; font-family: sans-serif; font-size: x-small; text-align: center}
+th.news { background: #222255; color: white; font-family: sans-serif; font-size: x-small; text-align: left; }
+td.pagetitle { font-size: large; font-weight: bold; }
diff --git a/default.mk b/default.mk
new file mode 100755 (executable)
index 0000000..e645e71
--- /dev/null
@@ -0,0 +1,22 @@
+ROOT=/home/sdt/csc/web
+#DEBUG = 1
+OUTPUTS=$(INPUTS:.xml=.html)
+TERM=Winter 2002
+XSLTARGS=--param date "'`date -I`'" --param time "'`date +%H:%M:%S`'" --param pwd "'`pwd`'" \
+       --param term "'$(TERM)'" --param root "'$(ROOT)'"
+
+ifdef DEBUG
+  XSLTARGS += -v
+endif
+
+all: $(OUTPUTS)
+       @for i in $(SUBDIRS) ; do (cd $$i && $(MAKE) && cd ..) ; done
+
+clean-recurse: clean
+       @for i in $(SUBDIRS) ; do (cd $$i && $(MAKE) clean && cd ..) ; done
+
+clean:
+       rm -f *.html
+
+%.html: %.xml $(ROOT)/csc.dtd $(ROOT)/cscweb.xsl $(ROOT)/events.xml $(ROOT)/news.xml $(ROOT)/menu.xml $(ROOT)/default.mk directory.xml
+       xsltproc $(XSLTARGS) $(ROOT)/cscweb.xsl $< > $@
diff --git a/directory.xml b/directory.xml
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/docs/.cvsignore b/docs/.cvsignore
new file mode 100755 (executable)
index 0000000..2d19fc7
--- /dev/null
@@ -0,0 +1 @@
+*.html
diff --git a/docs/index.xml b/docs/index.xml
new file mode 100755 (executable)
index 0000000..b716c15
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<!DOCTYPE cscpage SYSTEM "../csc.dtd">
+
+<cscpage title="Documents">
+
+</cscpage>
\ No newline at end of file
diff --git a/events.xml b/events.xml
new file mode 100755 (executable)
index 0000000..fe55734
--- /dev/null
@@ -0,0 +1,148 @@
+<eventdefs>
+ <eventitem date="2002-01-26" time="2:00 PM"
+  room="Comfy Lounge MC3001" term="Winter 2002"
+  title="An Introduction to GNU Hurd">
+  <short>Bored of GNU/Linux? Try this experimental operating
+  system!</short>
+  <abstract>
+<p>GNU Hurd is an operating system kernel based on the microkernel
+architecture design. It was the original GNU kernel, predating Linux,
+and is still being actively developed by many volunteers.</p>
+<p>The Toronto-area Hurd Users Group, in co-operation with the Computer
+Science Club, is hosting an afternoon to show the Hurd to anyone
+interested. Jeff Bailey, a Hurd developer, will give a presentation on
+the Hurd, followed by a GnuPG/PGP keysigning party. To finish it off,
+James Morrison, also a Hurd developer, will be hosting a Debian
+GNU/Hurd installation session.</p>
+<p>All interested are invited to attend. Bring your GnuPG/PGP fingerprint
+and mail your key to sjdutoit@uwaterloo.ca with the subject
+``keysigning'' (see separate announcement).</p>
+<p>Questions? Suggestions? Contact <a
+href="ja2morri@uwaterloo.ca">James Morrison</a>.</p>
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-01-26" time="2:30 PM"
+  room="Comfy Lounge MC3001" term="Winter 2002"
+  title="GnuPG/PGP Keysigning Party">
+  <short>Get more signatures on your key!</short>
+  <abstract>
+  <p>
+   GnuPG and PGP provide public-key based encryption for e-mail and
+   other electronic communication. In addition to preventing others
+   from reading your private e-mail, this allows you to verify that an
+   e-mail or file was indeed written by its perceived author.
+  </p>
+  <p>
+   In order to make sure a GnuPG/PGP key belongs to the respective
+   person, the key must be signed by someone who has checked the
+   user's key fingerprint and verified the user's identification.
+  </p>
+  <p>
+   A keysigning party is an ideal occasion to have your key signed by
+   many people, thus strengthening the authority of your key. Everyone
+   showing up exchanges key signatures after verifying ID and
+   fingerprints. The Computer Science Club will be hosting such a
+   keysigning party together with the Hurd presentation by THUG (see
+   separate announcement). See
+   <a href="http://www.student.math.uwaterloo.ca/~sjdutoit/"> the
+   keysigning party homepage</a> for more information.
+  </p>
+  <p>
+   Before attending it is important that you mail your key to
+   sjdutoit@uwaterloo.ca with the subject ``keysigning.'' Also make
+   sure to bring photo ID and a copy of your GnuPG/PGP fingerprint on
+   a sheet of paper to the event.
+  </p>
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-01-31" time="6:00 PM" room="MC2037"
+ term="Winter 2002" title="UNIX 101: First Steps With UNIX">
+  <abstract>
+    This is the first in a series of seminars that cover the use of
+    the UNIX Operating System. UNIX is used in a variety of
+    applications, both in academia and industy. We will be covering
+    the basics of the UNIX environment, as well as the use of PINE, an
+    electronic mail and news reader.
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-02-13" time="4:00 PM" room="MC4060"
+ term="Winter 2002" title="DVD-Video Under Linux">
+  <short>Billy Biggs will be holding a talk on DVD technology
+  (in particular, CSS and playback issues) under Linux, giving some
+  technical details as well as an overview of the current status of
+  Free Software efforts. All are welcome.</short>
+  <abstract>
+   <p>DVD copy protection: Content Scrambling System (CSS)</p>
+   <ul>
+    <li>A technical introduction to CSS and an overview of the ongoing
+    legal battle to allow distribution of non-commercial DVD
+    players</li>
+    <li>The current Linux software efforts and open issues</li>
+    <li>How applications and Linux distributions are handling the
+    legal issues involved</li>
+   </ul>
+   <p>DVD-Video specifics: Menus and navigation</p>
+   <ul>
+    <li>An overview of the DVD-Video standard</li>
+    <li>Reverse engineering efforts and their implementation status</li>
+    <li>Progress of integration into Linux media players</li>
+   </ul>
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-02-07" time="6:00 PM" room="MC2037"
+ term="Winter 2002" title="Unix 102: Fun With UNIX">
+  <short>This the second in a series of UNIX tutorials. Simon Law and
+  James Perry will be presenting some more advanced UNIX
+  techniques. All are welcome. Accounts will be provided for those
+  needing them.</short>
+  <abstract>
+   <p>
+    This is the second in a series of seminars that cover the use of
+    the UNIX Operating System. UNIX is used in a variety of
+    applications, both in academia and industry. We will provide you
+    with hands-on experience with the Math Faculty's UNIX environment
+    in this tutorial.
+   </p>
+   <p>Topics that will be discussed include:</p>
+   <ul>
+    <li>Interacting with Bourne and C shells</li>
+    <li>Editing text using the vi text editor</li>
+    <li>Editing text using the Emacs display editor</li>
+    <li>Multi-tasking and the screen multiplexer</li>
+   </ul>
+   <p>
+     If you do not have a Math computer account, don't panic; one will
+     be lent to you for the duration of this class.
+   </p>
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-02-28" time="6:00 PM" room="MC2037"
+ term="Winter 2002" title="Unix 103: More Advanced UNIX">
+  <short>This is the third in a series of UNIX tutorials. Simon Law
+  and James Perry will be teaching material following up on UNIX
+  102. All are welcome. Accounts will be provided for those needing
+  them.</short>
+  <abstract>
+   <p>
+    To be announced.
+   </p>
+  </abstract>
+ </eventitem>
+ <eventitem date="2002-03-01" time="5:00 PM" room="MC4060"
+ term="Winter 2002" title="Computer Go, The Ultimate">
+  <short>Thomas Wolf from Brock University will be holding a talk on
+  the asian game of Go. All are welcome.</short>
+  <abstract>
+   <p>
+    The asian game go is unique in a number of ways. It is the oldest
+    board game known. It is a strategy game with very simple
+    rules. Computer programs are very weak despite huge efforts and
+    prizes of US$ &gt; 1.5M for a program beating professional
+    players. The talk will quickly explain the rules of go, compare go
+    and chess, mention various attempts to program go and describe our
+    own efforts in this field. Students will have an opportunity to
+    solve computer generated go problems. Prizes will be available.
+   </p>
+  </abstract>
+ </eventitem>
+</eventdefs>
diff --git a/events/.cvsignore b/events/.cvsignore
new file mode 100755 (executable)
index 0000000..2d19fc7
--- /dev/null
@@ -0,0 +1 @@
+*.html
diff --git a/events/Makefile b/events/Makefile
new file mode 100755 (executable)
index 0000000..ccb4517
--- /dev/null
@@ -0,0 +1,3 @@
+INPUTS = index.xml
+
+include ../default.mk
\ No newline at end of file
diff --git a/events/directory.xml b/events/directory.xml
new file mode 100755 (executable)
index 0000000..2755a0c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE directory SYSTEM "../csc.dtd">
+
+<directory title="Events">
+</directory>
diff --git a/events/index.xml b/events/index.xml
new file mode 100755 (executable)
index 0000000..4b83a0b
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE cscpage SYSTEM "../csc.dtd">
+
+<cscpage title="CSC Events">
+ <header />
+
+ <section title="Events this term">
+  <generate-event-files />
+  <events-this-term />
+ </section>
+
+ <footer />
+</cscpage>
\ No newline at end of file
diff --git a/index.xml b/index.xml
new file mode 100755 (executable)
index 0000000..2be4762
--- /dev/null
+++ b/index.xml
@@ -0,0 +1,49 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE cscpage SYSTEM "csc.dtd">
+
+<cscpage title="Computer Science Club of the University of Waterloo: Home">
+ <biglogo />
+ <menu />
+
+ <section title="Welcome!">
+ <p>
+   Welcome to the University of Waterloo Computer Science Club
+   website. If you're new to the World Wide Web or the Internet, we
+   have some <a href="wwwhelp/">useful pointers</a> on-line. Use the
+   menus at the top and bottom of our pages to navigate around our
+   website. If you're new to the Computer Science Club, be sure to
+   check out our <a href="about/">About section</a>.
+ </p>
+ </section>
+
+ <section title="News and Upcoming Events">
+  <news-and-events />
+ </section>
+
+ <section title="Getting involved">
+  <p>
+   If you are interested in holding, planning, or helping out with an
+   event, don't hesitate to contact the <a
+   href="mailto:veep@csclub.uwaterloo.ca">Vice President</a> right
+   away! We will be more than glad to help you organise and hold your
+   event. If you want to help out with other CSC stuff, drop by <a
+   href="offfice/">the office</a> and we'll give you something to
+   do. You might want to try contacting the <a
+   href="mailto:sysadmin@csclub.uwaterloo.ca">Sysadmin</a> if you're
+   interested in doing system administration tasks or the <a
+   href="mailto:offman@csclub.uwaterloo.ca">Office Manager</a> if you
+   wish to become <a href="office/staff">office staff</a>.
+  </p>
+ </section>
+
+ <section title="Getting your own homepage">
+  <p>
+   Many members of the Computer Science Club host their homepage on
+   our webserver. To see a listing of such pages and find out how to
+   get your own, check out the <a href="users/">Users page</a>.
+  </p>
+ </section>
+
+ <footer /> 
+</cscpage>
\ No newline at end of file
diff --git a/logos/Makefile b/logos/Makefile
new file mode 100755 (executable)
index 0000000..ccba01e
--- /dev/null
@@ -0,0 +1,3 @@
+
+csc_only.png: csc_only.ps Makefile
+       echo | gs -sDEVICE=pngmono -sOutputFile=$@ -dBATCH -dNOWAIT -dDOINTERPOLATE -g3200x1400 $<
\ No newline at end of file
diff --git a/logos/csc_160_70.png b/logos/csc_160_70.png
new file mode 100755 (executable)
index 0000000..623cb9b
Binary files /dev/null and b/logos/csc_160_70.png differ
diff --git a/logos/csc_80_35.png b/logos/csc_80_35.png
new file mode 100755 (executable)
index 0000000..5635def
Binary files /dev/null and b/logos/csc_80_35.png differ
diff --git a/logos/csc_bevel.xcf b/logos/csc_bevel.xcf
new file mode 100755 (executable)
index 0000000..ffb301e
Binary files /dev/null and b/logos/csc_bevel.xcf differ
diff --git a/logos/csc_only.png b/logos/csc_only.png
new file mode 100755 (executable)
index 0000000..4aebdfc
Binary files /dev/null and b/logos/csc_only.png differ
diff --git a/logos/csc_only.ps b/logos/csc_only.ps
new file mode 100755 (executable)
index 0000000..df1047e
--- /dev/null
@@ -0,0 +1,27 @@
+%!PS-Adobe-2.0
+%%Creator:Ian Goldberg
+%%Title:CSC Logo
+%%BoundingBox: 0 0 320 140
+%%EndComments
+gsave %0 setlinecap 0 setlinejoin 1 setlinewidth
+newpath 
+10 %% Half of the line width, where the circles have radius 60
+%% Calculate the magic angles
+dup dup dup 2 mul 30 sub exch 60 sub div dup dup mul 1 exch sub sqrt exch atan
+/csclogomagic1 exch def
+dup 2 mul 30 add exch 60 add div dup dup mul 1 exch sub sqrt exch atan
+/csclogomagic2 exch def
+/csclogowid exch def
+
+10 10 scale 
+130 70 60 csclogowid sub 0 180 csclogomagic1 sub arcn
+70 70 60 csclogowid add csclogomagic2 360 arc
+190 70 60 csclogowid sub 180 csclogomagic1 neg arcn
+250 70 60 csclogowid add 180 csclogomagic2 add 180 qarc
+csclogowid dup add 0 rmoveto
+250 70 60 csclogowid sub 180 csclogomagic1 180 add arcn
+190 70 60 csclogowid add csclogomagic2 neg 180 arc
+70 70 60 csclogowid sub 0 csclogomagic1 arcn
+130 70 60 csclogowid add 180 csclogomagic2 sub 360 arc
+closepath fill
+showpage
diff --git a/logos/csc_only.xcf b/logos/csc_only.xcf
new file mode 100755 (executable)
index 0000000..fd58482
Binary files /dev/null and b/logos/csc_only.xcf differ
diff --git a/logos/csclogo.ps b/logos/csclogo.ps
new file mode 100755 (executable)
index 0000000..6f2c31c
--- /dev/null
@@ -0,0 +1,31 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%Creator:Ian Goldberg
+%%Title:CSC Logo
+%%BoundingBox: 0 0 540 165
+%%EndComments
+gsave %0 setlinecap 0 setlinejoin 1 setlinewidth
+newpath 
+10 %% Half of the line width, where the circles have radius 60
+%% Calculate the magic angles
+dup dup dup 2 mul 30 sub exch 60 sub div dup dup mul 1 exch sub sqrt exch atan
+/csclogomagic1 exch def
+dup 2 mul 30 add exch 60 add div dup dup mul 1 exch sub sqrt exch atan
+/csclogomagic2 exch def
+/csclogowid exch def
+
+130 95 60 csclogowid sub 0 180 csclogomagic1 sub arcn
+70 95 60 csclogowid add csclogomagic2 360 arc
+190 95 60 csclogowid sub 180 csclogomagic1 neg arcn
+250 95 60 csclogowid add 180 csclogomagic2 add 180 arc
+csclogowid dup add 0 rmoveto
+250 95 60 csclogowid sub 180 csclogomagic1 180 add arcn
+190 95 60 csclogowid add csclogomagic2 neg 180 arc
+70 95 60 csclogowid sub 0 csclogomagic1 arcn
+130 95 60 csclogowid add 180 csclogomagic2 sub 360 arc
+closepath fill
+/Helvetica findfont 48 scalefont setfont
+(Computer) 330 115 moveto show
+(Science) 330 75 moveto show
+(Club) 330 35 moveto show
+/Helvetica findfont 18 scalefont setfont
+(A Student Chapter of the ACM) 135 5 moveto show grestore
diff --git a/menu.xml b/menu.xml
new file mode 100755 (executable)
index 0000000..c257f97
--- /dev/null
+++ b/menu.xml
@@ -0,0 +1,9 @@
+<menudefs>
+ <menuitem title="Home" icon="home" href="/"/>
+ <menuitem title="About" icon="csc" href="/about/"/>
+ <menuitem title="Events" icon="calendar" href="/events/"/>
+ <menuitem title="Docs" icon="docs" href="/docs/"/>
+ <menuitem title="Office" icon="office" href="/office/"/>
+ <menuitem title="Users" icon="users" href="/users/"/>
+ <menuitem title="Stats" icon="stats" href="/stats/"/>
+</menudefs>
\ No newline at end of file
diff --git a/news.xml b/news.xml
new file mode 100755 (executable)
index 0000000..243b621
--- /dev/null
+++ b/news.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE newdefs SYSTEM "csc.dtd">
+<newsdefs>
+ <newsitem author="sjdutoit" date="2002-02-04">
+  About/Memberlist stub up. Made the CSC logo gold. Isn't it nifty?
+ </newsitem>
+ <newsitem author="sjdutoit" date="2002-02-03">
+  XML goodness.
+ </newsitem>
+</newsdefs>
\ No newline at end of file