]> gitweb.factorcode.org Git - factor.git/commitdiff
Add some simple markup inheritance
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 15 Jun 2008 09:56:35 +0000 (04:56 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 15 Jun 2008 09:56:35 +0000 (04:56 -0500)
extra/furnace/boilerplate/boilerplate.factor
extra/webapps/wiki/wiki-common.xml
extra/webapps/wiki/wiki.factor

index 7c5b7a0c810750b15b0e9c28cd70053093e406b9..a97619966126e70030e84b56835f651ce2cc118f 100644 (file)
@@ -1,19 +1,26 @@
 ! Copyright (c) 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel namespaces
-html.templates html.templates.chloe
+html.forms
+html.templates
+html.templates.chloe
 locals
 http.server
 http.server.filters
 furnace ;
 IN: furnace.boilerplate
 
-TUPLE: boilerplate < filter-responder template ;
+TUPLE: boilerplate < filter-responder template init ;
 
-: <boilerplate> ( responder -- boilerplate ) f boilerplate boa ;
+: <boilerplate> ( responder -- boilerplate )
+    boilerplate new
+        swap >>responder
+        [ ] >>init ;
 
 M:: boilerplate call-responder* ( path responder -- )
+    begin-form
     path responder call-next-method
+    responder init>> call
     dup content-type>> "text/html" = [
         clone [| body |
             [
index 4c6d1a5b5c63ddcab18e4d20e66d877fc712d662..1d08d3832defa22d2b23dce3902ce854cd613265 100644 (file)
 
        <h1><t:write-title /></h1>
 
-        <t:call-next-template />
+       <table width="100%">
+               <tr>
+                       <td> <t:call-next-template /> </td>
+                       <t:if t:value="sidebar">
+                               <td valign="top">
+                                       <t:bind t:name="sidebar">
+                                               <h2>
+                                                       <t:a t:href="$wiki/view" t:query="title">
+                                                               <t:label t:name="title" />
+                                                       </t:a>
+                                               </h2>
+               
+                                               <t:farkup t:name="content" />
+                                       </t:bind>
+                               </td>
+                       </t:if>
+               </tr>
+       </table>
 
 </t:chloe>
index 3183b48da90b7aba2ba3f004aee8d1383ee1ae53..ebaa60777fa5ca8f4c9e53674cad6c62882207e2 100644 (file)
@@ -78,6 +78,10 @@ M: revision feed-entry-url id>> revision-url ;
     <action>
         [ "Front Page" view-url <redirect> ] >>display ;
 
+: latest-revision ( title -- revision/f )
+    <article> select-tuple
+    dup [ revision>> <revision> select-tuple ] when ;
+
 : <view-article-action> ( -- action )
     <action>
 
@@ -88,8 +92,8 @@ M: revision feed-entry-url id>> revision-url ;
         ] >>init
 
         [
-            "title" value dup <article> select-tuple [
-                revision>> <revision> select-tuple from-object
+            "title" value dup latest-revision [
+                from-object
                 { wiki "view" } <chloe-content>
             ] [
                 edit-url <redirect>
@@ -297,4 +301,5 @@ M: revision feed-entry-url id>> revision-url ;
         <list-changes-feed-action> "changes.atom" add-responder
         <delete-action> "delete" add-responder
     <boilerplate>
+        [ "sidebar" [ "Sidebar" latest-revision from-object ] nest-form ] >>init
         { wiki "wiki-common" } >>template ;