[Gd-chatter] r11609 - in trunk/libraries/network/koala: sources/examples/koala-basics sources/koala www/demo www/koala

cgay at gwydiondylan.org cgay at gwydiondylan.org
Mon Jan 7 03:30:32 CET 2008


Author: cgay
Date: Mon Jan  7 03:30:31 2008
New Revision: 11609

Removed:
   trunk/libraries/network/koala/www/koala/koala.html
   trunk/libraries/network/koala/www/koala/styles.css
Modified:
   trunk/libraries/network/koala/sources/examples/koala-basics/main.dylan
   trunk/libraries/network/koala/sources/koala/dsp.dylan
   trunk/libraries/network/koala/sources/koala/utils.dylan
   trunk/libraries/network/koala/www/demo/args.dsp
   trunk/libraries/network/koala/www/demo/footer.dsp
   trunk/libraries/network/koala/www/demo/hello.dsp
   trunk/libraries/network/koala/www/demo/home.dsp
   trunk/libraries/network/koala/www/demo/iterator.dsp
   trunk/libraries/network/koala/www/demo/login.dsp
   trunk/libraries/network/koala/www/demo/logout.dsp
   trunk/libraries/network/koala/www/demo/table.dsp
   trunk/libraries/network/koala/www/demo/welcome.dsp
   trunk/libraries/network/koala/www/koala/dsp.html
   trunk/libraries/network/koala/www/koala/index.html
Log:
Job: koala
cleanups

Modified: trunk/libraries/network/koala/sources/examples/koala-basics/main.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/koala-basics/main.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/koala-basics/main.dylan	Mon Jan  7 03:30:31 2008
@@ -29,11 +29,28 @@
 
 */
 
+//// URLs
+
+// Using relative URLs in a web application strikes me as asking for trouble
+// in general.  For example, if you register an alias URL "/demo" for a page
+// "/demo/home.dsp" then URLs that appear in the home.dsp template would be
+// relative to / when the page is processed, rather than relative to /demo/.
+// So always use absolute URLs.
+
+define constant $demo-base-url :: <byte-string> = "/demo";
+
+// This is used throughout this file to create absolute URLs.
+define function demo-url
+    (url :: <byte-string>) => (absolute-url :: <byte-string>)
+  concatenate($demo-base-url, url)
+end;
+
+
 
 //// Responders -- the lowest level API for responding to a URL
 
 // Responds to a single URL.
-define responder responder1 ("/responder1")
+define responder responder1 (demo-url("/responder1"))
   select (request-method(current-request()))
     #"get", #"post"
       => format(output-stream(current-response()),
@@ -74,8 +91,8 @@
 // *hello-world-page* instance.
 //
 define page hello-world-page (<page>)
-    (url: "/hello-world",
-     alias: "/hello")
+    (url: demo-url("/hello-world"),
+     alias: demo-url("/hello"))
 end;
 
 // Respond to a GET for <hello-world-page>.  Note the use of do-query-values to
@@ -102,7 +119,7 @@
 end;
 
 
-/// Dylan Server Pages
+//// Dylan Server Pages
 
 // Dylan Server Pages are also defined with the "define page" macro, but you
 // also specify the source: argument which is a file that contains normal
@@ -129,13 +146,20 @@
 define taglib demo ()
 end;
 
+define tag base-url in demo
+    (page :: <demo-page>)
+    ()
+  format(output-stream(current-response()), $demo-base-url);
+end;
+
 define page home-page (<demo-page>)
-    (url: "/demo/home.dsp",
+    (url: demo-url("/home.dsp"),
+     alias: "/demo/",
      source: "demo/home.dsp")
 end;
 
 define page hello-page (<demo-page>)
-    (url: "/demo/hello.dsp",
+    (url: demo-url("/hello.dsp"),
      source: "demo/hello.dsp")
 end;
 
@@ -148,7 +172,7 @@
 end;
 
 define page args-page (<demo-page>)
-    (url: "/demo/args.dsp",
+    (url: demo-url("/args.dsp"),
      source: "demo/args.dsp")
 end;
 
@@ -174,12 +198,12 @@
 end;
 
 define page example-login-page (<demo-page>)
-    (url: "/demo/login.dsp",
+    (url: demo-url("/login.dsp"),
      source: "demo/login.dsp")
 end;
 
 define page example-logout-page (<demo-page>)
-    (url: "/demo/logout.dsp",
+    (url: demo-url("/logout.dsp"),
      source: "demo/logout.dsp")
 end;
 
@@ -193,7 +217,7 @@
 
 // The login page POSTs to the welcome page...
 define page example-welcome-page (<demo-page>)
-    (url: "/demo/welcome.dsp",
+    (url: demo-url("/welcome.dsp"),
      source: "demo/welcome.dsp")
 end;
 
@@ -235,7 +259,7 @@
 //// iterator
 
 define page iterator-page (<demo-page>)
-    (url: "/demo/iterator.dsp",
+    (url: demo-url("/iterator.dsp"),
      source: "demo/iterator.dsp")
 end;
 
@@ -272,7 +296,7 @@
 //// table generation
 
 define page table-page (<demo-page>)
-    (url: "/demo/table.dsp",
+    (url: demo-url("/table.dsp"),
      source: "demo/table.dsp")
 end;
 
@@ -320,7 +344,8 @@
 end;
 
 
-/// XML-RPC (use any XML-RPC client to call these)
+
+//// XML-RPC (use any XML-RPC client to call these)
 
 begin
   register-xml-rpc-method("test.zero",

Modified: trunk/libraries/network/koala/sources/koala/dsp.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/koala/dsp.dylan	(original)
+++ trunk/libraries/network/koala/sources/koala/dsp.dylan	Mon Jan  7 03:30:31 2008
@@ -636,14 +636,18 @@
         ?slot-specs:*
       end }
  => { page-aux(?name; ?superclasses; ?make-args; ?slot-specs);
-      has-url?(?make-args) & register-page-urls("*" ## ?name ## "*", ?make-args)
+      if (has-url?(?make-args))
+        register-page-urls("*" ## ?name ## "*", ?make-args)
+      end
     }
 
     { define directory page ?:name (?superclasses:*) (?make-args:*)
         ?slot-specs:*
       end }
  => { page-aux(?name; ?superclasses; ?make-args; ?slot-specs);
-      has-url?(?make-args) & register-page-urls("*" ## ?name ## "*", ?make-args, prefix?: #t)
+      if (has-url?(?make-args))
+        register-page-urls("*" ## ?name ## "*", ?make-args, prefix?: #t)
+      end
     }
 
 end;
@@ -653,6 +657,7 @@
    => { define class "<" ## ?name ## ">" (?superclasses) ?slot-specs end;
         define variable "*" ## ?name ## "*" = make("<" ## ?name ## ">", ?make-args) }
 end;
+
 define function has-url? (#key url :: false-or(<string>), #all-keys)
  => (url-provided? :: <boolean>);
   if (url)
@@ -900,9 +905,13 @@
                 as(<string>, call), as(<string>, page.source-location), tag-start);
     log-warning("The include directive doesn't allow a body; it should end in '/>'.");
   end;
-  let url = get-arg(call, #"url") | get-arg(call, #"uri") | get-arg(call, #"location");
+  // #"location" is preferred here because URL and URI can be misleading.  This
+  // is relative to the source location of the page template, not relative to the
+  // requested URL
+  let url = get-arg(call, #"location") | get-arg(call, #"uri") | get-arg(call, #"url");
   if (~url)
-    parse-error("In template %=, '%%dsp:include' directive must have a 'url' attribute.",
+    parse-error("In template %=, '%%dsp:include' directive must have a "
+                  "'location' attribute.",
                 as(<string>, page.source-location));
   end;
   let source = document-location(url, context: page-directory(page));

Modified: trunk/libraries/network/koala/sources/koala/utils.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/koala/utils.dylan	(original)
+++ trunk/libraries/network/koala/sources/koala/utils.dylan	Mon Jan  7 03:30:31 2008
@@ -252,14 +252,14 @@
 define method find-object
     (trie :: <string-trie>, path :: <sequence>)
   local method fob (trie :: <string-trie>, path :: <list>, obj, rest)
-          if (path = #())
+          if (empty?(path))
             values(obj, rest)
           else
             let child = element(trie.trie-children, head(path), default: #f);
             if (child)
               fob(child, tail(path), child.trie-object | obj,
                   if (child.trie-object)
-                    if (tail(path) == #()) #f else tail(path) end
+                    if (empty?(tail(path))) #f else tail(path) end
                   else
                     rest
                   end)

Modified: trunk/libraries/network/koala/www/demo/args.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/args.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/args.dsp	Mon Jan  7 03:30:31 2008
@@ -7,15 +7,15 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <p>This page demonstrates a tag call with arguments.
 
   <p><demo:show-keys arg1="100" arg2="foo"/>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/footer.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/footer.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/footer.dsp	Mon Jan  7 03:30:31 2008
@@ -1,4 +1,4 @@
-<%dsp:taglib name="demo" prefix="demo"/>
+<%dsp:taglib name="demo"/>
 
 <hr noshade width="90%" align="center">
 <table width="90%" align="center">
@@ -13,7 +13,7 @@
       </dsp:if>
     </td>
     <td width="50%" align="right">
-      <a href="home.dsp">Go back to demo home</a>
+      <a href="<demo:base-url/>/home.dsp">Go back to demo home</a>
     </td>
   </tr>
 </table>

Modified: trunk/libraries/network/koala/www/demo/hello.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/hello.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/hello.dsp	Mon Jan  7 03:30:31 2008
@@ -7,15 +7,15 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <p>This page demonstrates a simple tag call that displays &quot;hello world&quot;.
 
   <p><demo:hello/>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/home.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/home.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/home.dsp	Mon Jan  7 03:30:31 2008
@@ -5,39 +5,43 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
+  <%dsp:taglib name="demo"/>
 
   <h2>Home</h2>
 
-  Each page of this demo demonstrates at least one different feature of
-  Dylan Server Pages.  There's no preset order to the pages; just click
-  on one to see what happens and then look at the Dylan source (koala-basics.dylan)
-  to see how it's implemented.  There are comments in the source that
-  should be helpful.
+  Each page of this demo demonstrates at least one different feature
+  of Dylan Server Pages.  There's no preset order to the pages; just
+  click on one to see what happens and then look at the Dylan source
+  code to see how it's implemented.  There are comments in the source
+  that should be helpful.
 
   <p>
   <h3>Contents</h3>
 
   <ol>
-    <li><a href="hello.dsp">Hello World</a></li>
-    <li><a href="args.dsp">A tag with arguments</a></li>
-    <li><a href="login.dsp">Login (demonstrates sessions)</a></li>
-    <li><a href="logout.dsp">Logout (demonstrates sessions)</a></li>
-    <li><a href="iterator.dsp?n=3">Iterator (demonstrates query values and body tags)</a></li>
-    <li><a href="table.dsp">Table Generation</a></li>
+    <li><a href="<demo:base-url/>/hello.dsp">Hello World</a></li>
+    <li><a href="<demo:base-url/>/args.dsp">A tag with arguments</a></li>
+    <li><a href="<demo:base-url/>/login.dsp">Login (demonstrates sessions)</a></li>
+    <li><a href="<demo:base-url/>/logout.dsp">Logout (demonstrates sessions)</a></li>
+    <li><a href="<demo:base-url/>/iterator.dsp?n=3">Iterator (demonstrates query
+             values and body tags)</a></li>
+    <li><a href="<demo:base-url/>/table.dsp">Table Generation</a></li>
   </ol>
 
   <p>
   <h3>Low-level Koala API</h3>
   
   <ol>
-    <li><a href="/responder1">A responder (the most basic way to respond to a URL)</a></li>
-    <li><a href="/hello?a=1&b=2">Hello World (a non-DSP page)</a></li>
+    <li><a href="<demo:base-url/>/responder1">
+	  A responder (the most basic way to respond to a URL)
+	</a></li>
+    <li><a href="<demo:base-url/>/hello?a=1&b=2">Hello World (a non-DSP page)</a></li>
   </ol>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/iterator.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/iterator.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/iterator.dsp	Mon Jan  7 03:30:31 2008
@@ -7,8 +7,8 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <demo:show-errors/>
 
@@ -24,8 +24,8 @@
   </demo:repeat>
 
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/login.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/login.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/login.dsp	Mon Jan  7 03:30:31 2008
@@ -7,20 +7,24 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <dsp:show-form-notes/>
 
-  <form action="welcome.dsp" method="post" enctype="application/x-www-form-urlencoded">
+  <form action="<demo:base-url/>/welcome.dsp"
+        method="post"
+        enctype="application/x-www-form-urlencoded">
+
     <h2>Please Login</h2>
 
-    <p>This page demonstrates posting to a Dylan Server Page (see the respond-to-post
-    method), using the DSP session, and use of simple tags.
+    <p>This page demonstrates posting to a Dylan Server Page (see the
+       respond-to method), using the DSP session, and use of simple tags.
 
     <p>Any username and password will do.
 
-    <p>Try logging in without specifying both username and password to see the error mechanism.
+    <p>Try logging in without specifying both username and password to
+       see the error mechanism.
 
     <p>
     <table border="0" align="center" cellspacing="2">
@@ -33,13 +37,15 @@
         <td nowrap><input name="password" value="" type="password"></td>
       </tr>
       <tr>
-        <td nowrap align="right" colspan="2"><input name="submit" value="Login" type="submit"></td>
+        <td nowrap align="right" colspan="2">
+          <input name="submit" value="Login" type="submit">
+        </td>
       </tr>
     </table>
   </form>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/logout.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/logout.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/logout.dsp	Mon Jan  7 03:30:31 2008
@@ -5,11 +5,11 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
+  <%dsp:include location="header.dsp"/>
 
   <h2 align="center">ok, you're logged out.</h2>
 
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/table.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/table.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/table.dsp	Mon Jan  7 03:30:31 2008
@@ -7,8 +7,8 @@
 
 <body>
 
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <dsp:show-form-notes/>
 
@@ -63,8 +63,8 @@
     </dsp:no-rows>
   </dsp:table>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/demo/welcome.dsp
==============================================================================
--- trunk/libraries/network/koala/www/demo/welcome.dsp	(original)
+++ trunk/libraries/network/koala/www/demo/welcome.dsp	Mon Jan  7 03:30:31 2008
@@ -6,13 +6,13 @@
 </head>
 
 <body>
-  <%dsp:include url="header.dsp"/>
-  <%dsp:include url="body-wrapper-start.dsp"/>
+  <%dsp:include location="header.dsp"/>
+  <%dsp:include location="body-wrapper-start.dsp"/>
 
   <h2>Welcome, <demo:current-username/>!</h2>
 
-  <%dsp:include url="body-wrapper-end.dsp"/>
-  <%dsp:include url="footer.dsp"/>
+  <%dsp:include location="body-wrapper-end.dsp"/>
+  <%dsp:include location="footer.dsp"/>
 
 </body>
 </html>

Modified: trunk/libraries/network/koala/www/koala/dsp.html
==============================================================================
--- trunk/libraries/network/koala/www/koala/dsp.html	(original)
+++ trunk/libraries/network/koala/www/koala/dsp.html	Mon Jan  7 03:30:31 2008
@@ -62,7 +62,7 @@
 projects.  This isn't necessary in DSP because with Dylan's powerful
 language features writing custom tags is trivial and concise compared
 to JSP.  And with <a
-href="http://www.functionalobjects.com/">Functional Developer</a>, you
+href="http://www.opendylan.com/">Open Dylan</a>, you
 often don't even need to restart your application to compile new
 custom tags and try them out.)</font>
 
@@ -70,8 +70,7 @@
 uses the Koala HTTP server library.  This effectively means that each
 DSP application has to run on a different Koala server and therefore on
 a different HTTP port.  (The plan is to eventually fix Koala to load DSP
-application libraries at runtime, based on configuration files, or
-better, to implement mod_dylan for Apache.)
+application libraries at runtime, based on configuration files.)
 
 
 <a name="content-authoring"></a>
@@ -92,7 +91,7 @@
 user.  DSP directives use the same syntax as other tags, but they use
 the special tag library name <strong>%dsp</strong>.  For example, the <a
 href="#include"><strong>include</strong></a> directive might look like
-this: &lt;%dsp:include url=&quot;foo.dsp&quot;/&gt;.
+this: &lt;%dsp:include location=&quot;foo.dsp&quot;/&gt;.
 
 <p> Each top-level template file must have a corresponding instance
 of &lt;dylan-server-page&gt; associated with it.  This is accomplished
@@ -117,11 +116,13 @@
   <dt><a name="include"></a><strong>%dsp:include</strong></dt>
   <dd>Includes another DSP template (or plain HTML file) in the current page.
     Example usage:
-      <pre>&lt;%dsp:include url="header.dsp"/&gt;</pre>
+      <pre>&lt;%dsp:include location="header.dsp"/&gt;</pre>
+
+    Note that if the location given is absolute (i.e., begins with a slash)
+    then the document is looked up relative to the document root directory.
+    Otherwise it is looked up relative to the directory containing the current
+    document.
 
-    Note that if the url given is absolute (i.e., begins with a slash) then the document
-    is looked up relative to the document root directory.  Otherwise it is looked up
-    relative to the directory containing the current document.
     <p>
   </dd>
 
@@ -250,9 +251,9 @@
 The following example tag should clear things up a bit:
   <pre>
     define tag current-time in demo
-        (page :: &lt;dylan-server-page&gt;, response :: &lt;response&gt;)
+        (page :: &lt;dylan-server-page&gt;)
         (style)
-      write(output-stream(response), current-time(style));
+      write(output-stream(current-response()), current-time(style));
     end;
   </pre>
 
@@ -271,10 +272,8 @@
 such that the <code>style</code> variable is bound to the value of
 that parameter in the body of the tag definition.
 
-<p>The tag functon must always accept two arguments, <code>page</code>
-and <code>response</code>.  The first argument will be an instance of
-<code>&lt;dylan-server-page&gt;</code> and the second will be an
-instance of <code>&lt;response&gt;</code>.
+<p>The tag functon must always accept one argument: <code>page</code>, an
+instance of <code>&lt;dylan-server-page&gt;</code>.
 
 
 <a name="techref"></a>
@@ -360,15 +359,17 @@
   <tr>
     <td width="2%">&nbsp;</td>
     <td width="98%">
-      Each tag definition creates a method that will be called when the tag is invoked.
-      This is the parameter list for that method.  The basic form of the parameter list is
-      (<span class="param">page</span>, <span class="param">response</span> [, <span
-      class="param">process-body</span>]).  <span class="param">page</span> is an instance
-      of <code>&lt;dylan-server-page&gt;</code>.  <span class="param">response</span> is
-      an instance of <code>&lt;response&gt;</code>.  <span
-      class="param">process-body</span> is an instance of <code>&lt;function&gt;</code>.
-      The <span class="param">process-body</span> argument should be specified if and 
+
+      Each tag definition creates a method that will be called when the tag is
+      invoked.  This is the parameter list for that method.  The basic form of
+      the parameter list is (<span class="param">page</span>[, <span
+      class="param">process-body</span>]).  <span class="param">page</span> is
+      an instance of <code>&lt;dylan-server-page&gt;</code>.  <span
+      class="param">process-body</span> is an instance of
+      <code>&lt;function&gt;</code>.  The <span
+      class="param">process-body</span> argument should be specified if and
       only if the <code>body</code> modifier is supplied.
+
       <p>
     </td>
   </tr>
@@ -436,9 +437,9 @@
 
   <code><pre>
     define tag hello in demo
-        (page :: &lt;dylan-server-page&gt;, response :: &lt;response&gt;)
+        (page :: &lt;dylan-server-page&gt;)
         ()
-      format(output-stream(response), "Hello, world!");
+      format(output-stream(current-response()), "Hello, world!");
     end;
   </pre></code>
 
@@ -448,7 +449,6 @@
   <code><pre>
     define body tag three-times in demo
         (page :: &lt;dylan-server-page&gt;,
-         response :: &lt;response&gt;,
          do-body :: &lt;function&gt;)
         ()
       for (i from 1 to 3)

Modified: trunk/libraries/network/koala/www/koala/index.html
==============================================================================
--- trunk/libraries/network/koala/www/koala/index.html	(original)
+++ trunk/libraries/network/koala/www/koala/index.html	Mon Jan  7 03:30:31 2008
@@ -9,18 +9,9 @@
 
 <body bgcolor="#DEEEFE">
 
-<table border="0" width="96%" cellpadding="4" cellspacing="0" align="center">
-  <tr>
-    <td width="20%" valign="top">
-      <img src="koala.jpg" width="155" height="200">
-      <br><br><br>
-      <h3>Quick Links</h3>
-      <br><a href="koala.html">Documentation</a>
-      <br><a href="http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi/trunk/libraries/network/koala/change-log.txt?view=markup">change-log.txt</a>
-      <br><a href="http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi/trunk/libraries/network/koala/">Browse Sources</a>
-    </td>
-    <td width="80%" valign="top">
-      <h2>Koala HTTP Server and Template Engine</h2>
+<img src="koala.jpg" width="155" height="200">
+
+<h2>Koala HTTP Server and Template Engine</h2>
 
 <b>What?</b>
 
@@ -37,18 +28,17 @@
 in FunDev/Linux yet but some success was reported with linux-odbc.
 There is no support for secure sockets on either platform.
 
-Check bugzilla for a list of <a href="https://www.gwydiondylan.org/bugs/buglist.cgi?query_format=advanced&product=Koala&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED">known Koala bugs</a>.
+Check bugzilla for a list of <a href="http://www.opendylan.org/cgi-bin/bugzilla/buglist.cgi?query_format=advanced&product=Koala&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED">known Koala bugs</a>.
 
 <p>
 <b>How?</b>
 
 <br>There is a small demo application included, which shows how to use
-the features of Koala and DSP.  There is some rudimentary <a
-href="koala.html">documentation</a> included.  See <b>Contact?</b>,
-below, if you have questions!  Any and all feedback appreciated.
+the features of Koala and DSP.  See <b>Contact?</b>, below, if you
+have questions!  Any and all feedback appreciated.
 
 <p>A heavily commented Koala configuration file can be found <a
-href="http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi/trunk/libraries/network/koala/config/koala-config.xml?view=markup">here</a>.
+href="http://www.opendylan.org/cgi-bin/viewcvs.cgi/trunk/libraries/network/koala/config/koala-config.xml?view=markup">here</a>.
 
 <p>
 <b>Who?</b>
@@ -67,16 +57,12 @@
   <li>Post to comp.lang.dylan and we'll see it!</li>
   <li>Send mail to <a href="mailto:gd-hackers at gwydiondylan.org">gd-hackers at gwydiondylan.org</a>.</li>
   <li>Come ask questions on IRC: irc.freenode.net #dylan</li>
-  <li>Report bugs <a href="https://www.gwydiondylan.org/bugs/enter_bug.cgi?product=Koala">here</a>.
+  <li>Report bugs <a href="https://www.opendylan.org/cgi-bin/bugzilla/enter_bug.cgi?product=Koala">here</a>.
 </ul>
 
 <p>
 <table border="0" width="100%">
-  <tr><td align="right"><font size="-1"><i>Last modified: September, 2004</i></font></td></tr>
-</table>
-
-    </td>
-  </tr>
+  <tr><td align="right"><font size="-1"><i>Last modified: January, 2007</i></font></td></tr>
 </table>
 
 </body>



More information about the chatter mailing list