Author: dylan
Date: 2004-08-07 15:30:38 -0400 (Sat, 07 Aug 2004)
New Revision: 335
Added:
branches/protocol-v4/web/
branches/protocol-v4/web/Makefile
branches/protocol-v4/web/clients/
branches/protocol-v4/web/clients/haver-gtk/
branches/protocol-v4/web/clients/haver-gtk/haver-gtk-1.png
branches/protocol-v4/web/clients/haver-gtk/haver-gtk-2.png
branches/protocol-v4/web/clients/haver-gtk/imginfo.yml
branches/protocol-v4/web/clients/haver-gtk/index.thtml
branches/protocol-v4/web/clients/haver-net/
branches/protocol-v4/web/clients/haver-net/index.thtml
branches/protocol-v4/web/clients/index.thtml
branches/protocol-v4/web/contact.thtml
branches/protocol-v4/web/docs/
branches/protocol-v4/web/download.thtml
branches/protocol-v4/web/haver.tcss
branches/protocol-v4/web/images/
branches/protocol-v4/web/inc/
branches/protocol-v4/web/inc/bottom
branches/protocol-v4/web/inc/config
branches/protocol-v4/web/inc/init
branches/protocol-v4/web/inc/macros/
branches/protocol-v4/web/inc/macros/html
branches/protocol-v4/web/inc/menu
branches/protocol-v4/web/inc/page
branches/protocol-v4/web/inc/sidebar
branches/protocol-v4/web/inc/thanks
branches/protocol-v4/web/index.thtml
branches/protocol-v4/web/js/
branches/protocol-v4/web/js/fixlinks.js
branches/protocol-v4/web/lib/
branches/protocol-v4/web/lib/Template/
branches/protocol-v4/web/lib/Template/Plugin/
branches/protocol-v4/web/lib/Template/Plugin/Page.pm
branches/protocol-v4/web/lib/Template/Plugin/Tools.pm
branches/protocol-v4/web/lib/Template/Plugin/VMethods.pm
branches/protocol-v4/web/not-found.thtml
branches/protocol-v4/web/why-not-xml.thtml
Log:
We're keeping the webpage in the same repo
as everything else.
We'll merge this back into /trunk rather soon.
Added: branches/protocol-v4/web/Makefile
===================================================================
--- branches/protocol-v4/web/Makefile 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/Makefile 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,74 @@
+
+GDEPENDS = inc/init inc/config
+PERL5LIB = ./lib
+
+
+TTFLAGS = -I inc -P init -P config
+
+TT = tt
+FIX = fixhtml
+TIDY = tidy
+VALIDATE = validate
+
+ifdef FAST
+TT_PATH := $(shell which $(TT))
+FIX_PATH := $(shell which $(FIX))
+TT = pperl $(TT_PATH)
+FIX = pperl $(FIX_PATH)
+endif
+
+
+export PERL5LIB
+src = $(patsubst ./%,%,$(shell find -name '*.thtml' -or -name '*.tcss'))
+html_src = $(patsubst %.thtml,%.html,$(filter %.thtml,$(src)))
+css_src = $(patsubst %.tcss,%.css,$(filter %.tcss,$(src)))
+files = $(html_src) $(css_src)
+
+
+
+
+build: $(files)
+ @find -name Makefile -mindepth 2 -exec sh -c 'make -C $$(dirname {})' \;
+
+upload:
+ echo "TODO"
+
+test:
+ rsync --exclude=.svn/ --delete -az ./ /home/dylan/pub/haver/
+
+
+clean:
+ rm -vf $(files)
+
+validate: $(html_src)
+ validate $(html_src)
+
+#inc/config inc/init inc/page inc/topmenu inc/sidebar inc/bottom
+#inc/config inc/init
+%.tmp: %.thtml $(DEPENDS) $(GDEPENDS)
+ @echo "TT $<"
+ @$(TT) $(TTFLAGS) $< > $@
+
+
+%.html: %.tmp
+ @echo "TIDY $<"
+ @$(TIDY) -q $< > $@
+ @echo "FIX $@"
+ @$(FIX) -R $@
+
+
+%.css: %.tcss $(GDEPENDS)
+ @echo "TT $<"
+ @$(TT) $(TTFLAGS) $< > $@
+
+
+ifdef FAST
+stop:
+ pperl -k $(TT_PATH)
+ pperl -k $(FIX_PATH)
+endif
+
+
+.SUFFIXES:
+.INTERMEDIATE: %.tmp
+.PHONY: build upload clean realclean check fullcheck dist stop validate
Added: branches/protocol-v4/web/clients/haver-gtk/haver-gtk-1.png
===================================================================
(Binary files differ)
Property changes on: branches/protocol-v4/web/clients/haver-gtk/haver-gtk-1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/protocol-v4/web/clients/haver-gtk/haver-gtk-2.png
===================================================================
(Binary files differ)
Property changes on: branches/protocol-v4/web/clients/haver-gtk/haver-gtk-2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/protocol-v4/web/clients/haver-gtk/imginfo.yml
===================================================================
--- branches/protocol-v4/web/clients/haver-gtk/imginfo.yml 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/clients/haver-gtk/imginfo.yml 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,6 @@
+'haver-gtk-1.png':
+ caption: Login screen
+ alt: "logging on to a haver server"
+'haver-gtk-2.png':
+ caption: Talking in the basement
+ alt: Talking in the basement
Added: branches/protocol-v4/web/clients/haver-gtk/index.thtml
===================================================================
--- branches/protocol-v4/web/clients/haver-gtk/index.thtml 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/clients/haver-gtk/index.thtml 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,34 @@
+[% META
+ title = 'Haver Tk'
+ author = 'Dylan Hardison'
+ date = '2004-05-31'
+%]
+[% WRAPPER "page" %]
+
+<h2>About</h2>
+<p>
+ Haver-Gtk is the main client for Unix-like (Linux, *BSD) systems.
+ It features a multiple channel, tabbed interface, irssi-style aliases,
+ and a fresh minty scent.
+</p>
+
+<h2>Screenshots</h2>
+<dl>
+[%
+ here = 'clients/haver-gtk';
+ USE dir = Directory("$here/");
+ USE YAML;
+ info = YAML.undumpfile("$here/imginfo.yml");
+FOREACH image IN dir.files;
+NEXT UNLESS image.name.match('\.(png|jpg)$');
+image = image.name;
+i = info.item(image);
+caption = i.caption || "No caption";
+alt = i.alt || "$image";
+%]
+<dt>[% caption %]</dt>
+<dd><a href="$image">$alt</a></dd>
+[% END %]
+</dl>
+
+[% END %]
Added: branches/protocol-v4/web/clients/haver-net/index.thtml
===================================================================
--- branches/protocol-v4/web/clients/haver-net/index.thtml 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/clients/haver-net/index.thtml 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,19 @@
+[% META
+ title = 'HaverNet'
+ author = 'Dylan Hardison'
+ date = '2004-05-11'
+%]
+[% WRAPPER "page" %]
+
+<p>
+ HaverNet is a windows client written in Visual Basic .NET for the new
Perl chat system
+ <a href="http://haver.penguin-thumper.net">Haver</a>, by Dylan Hardison
and Bryan Donlan.
+ It currently supports one channel with a variety of features.
+ Current version download: <strong>
+ <a
href="http://prdownloads.sourceforge.net/havernet/HaverNet-0.2.3.zip?download">v.0.2.3</a>
+ - May 11, 2004</strong>
+</p>
+<p>
+ <a href="http://havernet.sourceforge.net/">Offcial HaverNet Site</a>
+</p>
+[% END %]
Added: branches/protocol-v4/web/clients/index.thtml
===================================================================
--- branches/protocol-v4/web/clients/index.thtml 2004-08-04 05:50:46 UTC
(rev 334)
+++ branches/protocol-v4/web/clients/index.thtml 2004-08-07 19:30:38 UTC
(rev 335)
@@ -0,0 +1,15 @@
+[% META
+ title = 'Haver Clients'
+ author = 'Dylan Hardison'
+ date = '2004-05-31'
+%]
+[% WRAPPER "page" %]
+
+<p>
+ There are a two clients available currently,
+ <a href="haver-gtk">Haver::Gtk</a>, developed by
+ <a href="https://gna.org/users/bdonlan/">Bryan Donlan</a>
+ and <a href="havernet/">HaverNet</a>, developed by <a
href="https://gna.org/users/elasticmuffin/">Muffin</a>.
+</p>
+
+[% END %]
Added: branches/protocol-v4/web/contact.thtml
===================================================================
--- branches/protocol-v4/web/contact.thtml 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/contact.thtml 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,21 @@
+[% META
+ title = "Contact Information"
+ author = 'Dylan Hardison'
+ date = '2004-04-17'
+%]
+[% WRAPPER "page" %]
+
+<ul>
+ <li>There are several <a
href="https://gna.org/mail/?group=haver">mailing kists</a></li>
+ <li>One may file a
+ <a href="https://gna.org/support/?func=additem&group=haver">support
request</a>
+ </li>
+ <li>Or <a href="https://gna.org/bugs/?group=haver">report a bug</a></li>
+ <li>Are you a coder? Maybe <a
href="https://gna.org/patch/?group=haver">Submit a patch?</a></li>
+ <li>Really want to talk to the devs?
+ Then you should talk to <a
href="https://gna.org/users/dylanwh/">Dylan</a> or
+ <a href="https://gna.org/users/bdonlan/">bdonlan</a>.</li>
+</ul>
+
+[% END %]
+
Added: branches/protocol-v4/web/download.thtml
===================================================================
--- branches/protocol-v4/web/download.thtml 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/download.thtml 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,52 @@
+[% META
+ title = 'Download'
+ author = 'Dylan Hardison'
+ date = '2004-05-11'
+%]
+[% WRAPPER "page" %]
+
+<h2>Stable</h2>
+
+<p>the haver server, associated support perl modules, and the haver-tk
+client can all be downloaded from the <a
href="http://search.cpan.org/">CPAN</a>
+or from our <a href="http://download.gna.org/haver/releases/">download
area</a>.
+</p>
+
+<p><em class="notice">Debian Users</em>:
+there are packages for Sarge (debian testing) here:
+<a
href="http://download.gna.org/haver/debs">http://download.gna.org/haver/debs/sarge</a>.
+If you add<br />
+<tt>deb http://download.gna.org/haver/debs sarge/</tt><br />
+to your <tt>/etc/apt/sources.list</tt>, you may just apt-get install haver-tk
+or apt-get install libhaver-server-perl.
+</p>
+
+<h2>Snapshots</h2>
+<p>
+You can get development snapshots <a
href="http://download.gna.org/haver/snapshots/">from here</a>.
+</p>
+
+<h2>Public mirror of subversion repository</h2>
+
+<p>
+A live mirror of the subversion repository is available at
+<a
href="https://uvmonkey.no-ip.org/svn/haver">https://uvmonkey.no-ip.org/svn/haver</a>.
+You can get a copy with:
+</p>
+
+
+<blockquote class="code">
+<div>
+ \$svn co https://uvmonkey.no-ip.org/svn/haver/trunk
+</div>
+</blockquote>
+
+<p>
+The subversion client is available <a
href="http://subversion.tigris.org/">here</a>.
+</p>
+
+<h2>ViewSVN</h2>
+<p>
+A CGI interface to the subversion repository is available <a
href="https://uvmonkey.no-ip.org/viewsvn/viewsvn.php?project=haver&path=/">here</a>.
+</p>
+[% END %]
Added: branches/protocol-v4/web/haver.tcss
===================================================================
--- branches/protocol-v4/web/haver.tcss 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/haver.tcss 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,144 @@
+/* vim: set syn=css: */
+
+body {
+ background-color: #CCCCFF;
+ font-family: Verdana, sans-serif;
+}
+
+img {
+ border-style: none;
+}
+
+#title {
+ background-color: #BBBBFF;
+ text-align: left;
+ color: #606090;
+ border: 1px solid #404060;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ margin-left: 0px;
+ margin-right: 0px;
+ font-size: 14pt;
+ font-weight: bold;
+}
+
+h1,h2,h3,h4,h5,h6 {
+ color: #606090;
+}
+
+#menu {
+ background-color: #BBBBFF;
+ text-align: center;
+ color: #606090;
+ border: 1px solid #404060;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ margin-left: 0px;
+ margin-right: 0px;
+ font-size: 10pt;
+}
+
+#sidebar {
+ background-color: #ABABEE;
+ color: #606090;
+ border: 1px solid #2A2A5B;
+ margin-top: 0px;
+ margin-bottom: 2px;
+ margin-left: -1px;
+ margin-right: 5px;
+/* Illegal CSS: padding-left: -1px; */
+ padding-right: 5px;
+
+ font-size: 10pt;
+/* float: left;*/
+ text-align: left !important;
+
+ min-width: 80px;
+ width: 80px;
+ max-width: 80px;
+ height: 100%;
+ vertical-align: top !important;
+}
+
+#content {
+ background-color: #CCCCFF;
+ padding-left: 10px;
+ padding-right: 1px;
+/* margin-left: 90px;*/
+ text-align: left !important;
+ font-size: 8pt;
+ width: 45em;
+ vertical-align: top;
+ /*border-width: 2px;
+ border-color: red;
+ border-style: solid;*/
+}
+
+
+#main {
+ border-collapse: separate;
+}
+
+/*p {
+ padding-top: 1px;
+}*/
+
+#bottom {
+ clear: both;
+ font-size: 7pt;
+ margin-top: 2px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ margin-right: 0px;
+
+ background-color: #BBBBFF;
+ border: 1px solid #404060;
+ text-align: center;
+}
+
+#thanks {
+ text-align: right;
+}
+
+a:link {
+ text-decoration: none;
+ color: #3010d5;
+}
+a:visited {
+ text-decoration: none;
+/* color: #701080;*/
+ color: #5010d5;
+}
+
+a:hover {
+ text-decoration: underline;
+ color: #0000FF;
+}
+
+.logo {
+ padding-left: 5px;
+ padding-right: 0px;
+ border-style: none;
+}
+
+.nonlink {
+
+}
+
+.credits, .logos {
+ padding-top: 0;
+ margin-top: 0;
+}
+
+em.notice {
+ color: red;
+}
+
+.code {
+ border-style: dashed;
+ padding: 1px .5em;
+ border-width: 1px;
+ background-color: #ffc;
+ font-family: tt, courier, monospace;
+ /*font-size: 1.1em;*/
+}
Added: branches/protocol-v4/web/inc/bottom
===================================================================
--- branches/protocol-v4/web/inc/bottom 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/bottom 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,17 @@
+[% # vim: set syn=template:
+ USE date;
+ year = date.format(date.now, "%Y")
+%]
+[% SWITCH page.copyright; %]
+[% CASE 'FREE' %]
+ <a href="copyright">Copyright</a> © 2001-$year [% page.author
%].<br/>
+ Verbatim copying and redistribution of this entire page is permitted
+ in any medium provided this notice is preserved.
+[% CASE 'LICENSE' %]
+ [% INCLUDE $page.licence %]
+[% CASE 'NONFREE' %]
+ Copyright © 2003-$year [% page.author %]. All rights reserved.
+[% CASE %]
+ [% THROW "Unknown copyright type: $page.copyright" %]
+[% END %]
+
Added: branches/protocol-v4/web/inc/config
===================================================================
--- branches/protocol-v4/web/inc/config 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/config 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,20 @@
+[%# vim: set syn=template: %]
+[%
+# $Revision: 1.11 $
+# $Date: 2004/03/11 18:52:56 $
+
+USE page = Page;
+
+DEFAULT
+ page.title = 'Untitled Page'
+ page.copyright = 'FREE'
+ page.author = 'Dylan William Hardison'
+ page.email = '[EMAIL PROTECTED]'
+;
+
+
+USE Env = EnvHash;
+
+config.title = "The Haver Project";
+
+%]
Added: branches/protocol-v4/web/inc/init
===================================================================
--- branches/protocol-v4/web/inc/init 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/init 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,12 @@
+[%# vim: set syn=template: %]
+
+[%
+
+IF template.name.match('\.t?html?$');
+
+PROCESS "macros/html";
+USE VMethods;
+USE Tools;
+
+END;
+%]
Added: branches/protocol-v4/web/inc/macros/html
===================================================================
--- branches/protocol-v4/web/inc/macros/html 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/inc/macros/html 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,29 @@
+[%# vim: set ft=template: %]
+[%
+USE Wrap;
+
+MACRO link(href, name) BLOCK;
+ IF size;
+ name = Wrap(name, size);
+ END;
+
+ SET out = "<a href=\"$href\">$name</a>";
+ SET url = href.replace('^/', Env.SITE_ROOT);
+
+ path = Env.SITE_ROOT _ page.path;
+
+
+ UNLESS url.match('^(https?|ftps?|mailto|):');
+ IF url == path or url _ "index" == path or url _ '/' == path;
+ out = "<span class=\"nonlink\">$name</span>";
+ END;
+ END;
+
+ GET out;
+END;
+
+
+
+
+
+%]
Added: branches/protocol-v4/web/inc/menu
===================================================================
--- branches/protocol-v4/web/inc/menu 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/menu 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,24 @@
+[%# vim: set ft=template: %]
+
+[%# vim: set ft=template: %]
+[%
+
+# Main menu.
+menu = [
+ [ 'Home', '/' ],
+ [ 'News', 'https://gna.org/news/index.php?group=haver' ],
+ [ 'Wiki', 'http://wiki.chani3.com/wiki/ProjectHaver' ],
+ [ 'Docs', '/docs' ],
+ [ 'Download', '/download' ],
+ [ 'Clients', '/clients' ],
+ [ 'Contact', '/contact' ],
+];
+
+FOREACH item IN menu;
+ link(item.1, item.0);
+ " - " UNLESS loop.last;
+END;
+
+
+%]
+
Added: branches/protocol-v4/web/inc/page
===================================================================
--- branches/protocol-v4/web/inc/page 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/page 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+[%# vim: set syntax=template: %]
+<html xmlns="http://www.w3.org/1999/xhtml" lang="EN">
+ <head>
+ <title>$config.title: $page.title</title>
+ <meta name="author" content="$page.author" />
+ <link type="text/css" rel="stylesheet" href="/haver" />
+ </head>
+ <body>
+ <div id="body">
+ <!-- Title -->
+ <h1 id="title">$config.title - $page.title</h1>
+ <!-- The menu at the top -->
+ <div id="menu">
+ [% INCLUDE "menu" %]
+ </div>
+
+
+ <table id="main" summary="the sidebar and the content">
+ <tr>
+ <!-- The Sidebar -->
+ <td id="sidebar">
+ [% INCLUDE "sidebar" %]
+ <img src="/images/dot.png"
style="vertical-align: bottom;" alt="foo" />
+ </td>
+
+ <!-- The main body -->
+ <td id="content">
+ [% content %]
+ </td>
+ </tr>
+ </table>
+ <!-- The bottom bar -->
+ <div id="bottom">
+ [% INCLUDE "bottom" %]
+ </div>
+ <div id="thanks">
+ [% INCLUDE "thanks" %]
+ </div>
+ </div>
+ </body>
+</html>
Added: branches/protocol-v4/web/inc/sidebar
===================================================================
--- branches/protocol-v4/web/inc/sidebar 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/inc/sidebar 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,8 @@
+[%# vim: set ft=template: %]
+
+<a href="https://gna.org/projects/haver/">Project</a>
+<br />
+<a href="/clients">Clients</a>
+<br />
+<a href="/download">Download</a>
+<br />
Added: branches/protocol-v4/web/inc/thanks
===================================================================
--- branches/protocol-v4/web/inc/thanks 2004-08-04 05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/inc/thanks 2004-08-07 19:30:38 UTC (rev 335)
@@ -0,0 +1,33 @@
+[%# vim: set syn=template: %]
+
+<p class="logos">
+[%# Valid XHTML %]
+<a href="http://validator.w3.org/check/referer">
+<img class='logo' src="http://www.w3.org/Icons/valid-xhtml10"
+ alt="Valid XHTML 1.0!" height="31" width="88" /></a>
+
+[%# Valid CSS %]
+<a
href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fhaver.penguin-thumper.net%2Fhaver.css&warning=1&profile=css2&usermedium=all">
+<img class='logo' style="border:0;width:88px;height:31px"
+ src="http://jigsaw.w3.org/css-validator/images/vcss"
+ alt="Valid CSS!" />
+</a>
+
+[%# Debian %]
+<a href="http://www.debian.org/">
+<img class='logo' src='/images/debian-powered' alt="Powered by Debian!" /></a>
+
+[%# Template Toolkit %]
+<a href="http://www.template-toolkit.org/">
+<img class='logo' src='/images/tt2-powered' alt="Powered by Template Toolkit"
/></a>
+
+[%# Vim %]
+<a href="http://www.vim.org/">
+<img class='logo' src='/images/vim-created' alt="Created in Vim!" /></a>
+</p>
+
+<p class="credits" style="text-align: right; font-size: 8pt;">
+Design by <a href="mailto:[% people.nornagon.email %]">Jeremy "nornagon"
Apthorp</a>,
+Build system by <a href="mailto:[% people.dylan.email %]">Dylan Hardison</a>.
+</p>
+
Added: branches/protocol-v4/web/index.thtml
===================================================================
--- branches/protocol-v4/web/index.thtml 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/index.thtml 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,39 @@
+[% META
+ title = "Home",
+ date = '2004-04-25',
+%]
+[% WRAPPER "page" %]
+
+<h2>Welcome</h2>
+
+<p>Welcome to the strange and irrational world of Haver,
+the completely uninteresting chat client that sucks less than other chat
+systems.</p>
+
+<h2>What?</h2>
+<p>What is haver? It is three things:</p>
+
+<ol>
+ <li>It is a protocol that is:<ol>
+ <li>Fairly well <a href="/docs/protocol/">documented</a> </li>
+ <li>Easy to parse because it <a href="/why-not-xml">is not
XML</a> </li>
+ </ol></li>
+ <li>It is a server written in perl using <a
href="http://poe.perl.org/">POE</a></li>
+ <li>More than one client written in perl, most of which also use
POE.</li>
+</ol>
+
+
+<h2>Why?</h2>
+
+<p>Why are we re-inventing the wheel?
+Because the other wheels had small problems,
+and inventing new wheels is fun.</p>
+
+<p>Haver tries really hard to be simple <strong>and</strong>
+elegant. Most things which are special cases in IRC
+are generalized in haver. For example,
+both an away message and nickname are the same
+type of thing in Haver. </p>
+
+
+[% END %]
Added: branches/protocol-v4/web/js/fixlinks.js
===================================================================
--- branches/protocol-v4/web/js/fixlinks.js 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/js/fixlinks.js 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,14 @@
+var tags = document.getElementsByTagName('a');
+
+for (i = tags.length - 1; 0 <= i; i--) {
+ var tag = tags[i];
+ var parent = tag.parentNode;
+ var span = document.createElement('span');
+ var text = tag.firstChild;
+
+ if (tag.href == document.location.href) {
+ span.setAttribute('class', 'nonlink');
+ span.appendChild(text);
+ parent.replaceChild(span, tag);
+ }
+}
Added: branches/protocol-v4/web/lib/Template/Plugin/Page.pm
===================================================================
--- branches/protocol-v4/web/lib/Template/Plugin/Page.pm 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/lib/Template/Plugin/Page.pm 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,51 @@
+package Template::Plugin::Page;
+use strict;
+use warnings;
+use Time::Piece ();
+use Time::Seconds;
+
+use base qw(Template::Plugin);
+
+use Template::Plugin::File;
+our $VERSION = '0.02';
+
+sub new {
+ my ($this, $context, $opts) = @_;
+ my $template = $context->stash->get('template');
+ my $file = new Template::Plugin::File($context,
+ $template->{name}, { nostat => 0 });
+
+ my $name = $file->{name};
+ my $path = $file->{path};
+
+ $name =~ s/\.\w+$//;
+ $path =~ s/\.\w+$//;
+ $path =~ s/index$//;
+
+
+ my $page = {
+ title => $template->{title},
+ name => $name,
+ path => $path || '',
+ file => $file,
+ here => $file->{dir},
+ };
+
+
+ foreach my $key (keys %$template) {
+ if (not(exists $page->{$key}) and not($key =~ /^_/)) {
+ $page->{$key} = $template->{$key};
+ }
+ }
+
+
+
+
+ bless $page, ref($this) || $this;
+
+
+
+ return $page;
+}
+
+1;
Added: branches/protocol-v4/web/lib/Template/Plugin/Tools.pm
===================================================================
--- branches/protocol-v4/web/lib/Template/Plugin/Tools.pm 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/lib/Template/Plugin/Tools.pm 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,43 @@
+package Template::Plugin::Tools;
+use strict;
+use warnings;
+use Template::Plugin;
+use base qw( Template::Plugin );
+
+
+sub new {
+ my ($class, $context) = @_;
+ my $me = bless {
+ _context => $context,
+ }, $class;
+
+
+ return $me;
+}
+
+sub find_file {
+ my ($me, $dir, $file) = @_;
+
+ unless ($dir) {
+ return $file;
+ }
+ if (-e "$dir/$file") {
+ return "$dir/$file";
+ }
+
+ my @path = split(/\//, $dir);
+ pop @path;
+
+ while (@path) {
+ my $f = join('/', @path) . "/$file";
+ if (-e $f) {
+ return $f;
+ } else {
+ pop @path;
+ }
+ }
+
+ return $file;
+}
+
+1;
Added: branches/protocol-v4/web/lib/Template/Plugin/VMethods.pm
===================================================================
--- branches/protocol-v4/web/lib/Template/Plugin/VMethods.pm 2004-08-04
05:50:46 UTC (rev 334)
+++ branches/protocol-v4/web/lib/Template/Plugin/VMethods.pm 2004-08-07
19:30:38 UTC (rev 335)
@@ -0,0 +1,31 @@
+package Template::Plugin::VMethods;
+use strict;
+use warnings;
+use Template::Plugin;
+use base qw( Template::Plugin );
+
+
+sub new {
+ my ($class, $context) = @_;
+ my $me = bless {}, $class;
+
+ $context->stash->define_vmethod('LIST', 'clone', sub {
+ my $list = shift;
+ return [ @$list ];
+ }
+ );
+ $context->stash->define_vmethod('SCALAR', 'ucfirst', sub {
+ my $s = shift;
+ return ucfirst($s);
+ }
+ );
+ $context->stash->define_vmethod('HASH', 'clone', sub {
+ my $hash = shift;
+ return { %$hash };
+ }
+ );
+
+ return 1;
+}
+
+1;
Added: branches/protocol-v4/web/not-found.thtml
===================================================================
--- branches/protocol-v4/web/not-found.thtml 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/not-found.thtml 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,14 @@
+[% META
+ title = "File Not Found"
+ author = 'Dylan Hardison'
+ date = '2004-04-16'
+%]
+
+[% WRAPPER "page" %]
+<script type="text/javascript" src="/js/fixlinks.js"></script>
+<p>The file you requested was not found.</p>
+<p>
+If you feel you have reached this page in error,
+contact <a href="contact">an admin</a> and complain about it,
+but do try to be polite...</p>
+[% END %]
Added: branches/protocol-v4/web/why-not-xml.thtml
===================================================================
--- branches/protocol-v4/web/why-not-xml.thtml 2004-08-04 05:50:46 UTC (rev
334)
+++ branches/protocol-v4/web/why-not-xml.thtml 2004-08-07 19:30:38 UTC (rev
335)
@@ -0,0 +1,20 @@
+[% META
+ title = 'Why not use XML?'
+ author = 'Dylan Hardison'
+ date = '2004-05-08'
+%]
+[% WRAPPER "page" %]
+
+<p>I am sure <strong>everyone</strong>
+is going to ask why haver doesn't use XML.
+XML is quite good as a Markup Language,
+heck this very page is marked up in a dialect
+of XML. However, I have not been convinced
+that it makes a good network protocol.
+</p>
+<p>
+Further more, the haver protocol is much, much easier
+to parse.
+</p>
+
+[% END %]