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&amp;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&amp;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> &copy; 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 &copy; 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&amp;warning=1&amp;profile=css2&amp;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 %]


Reply via email to