Add some simple markup inheritance
parent
2b413f1eb7
commit
52297bcfeb
|
@ -1,19 +1,26 @@
|
||||||
! Copyright (c) 2008 Slava Pestov
|
! Copyright (c) 2008 Slava Pestov
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors kernel namespaces
|
USING: accessors kernel namespaces
|
||||||
html.templates html.templates.chloe
|
html.forms
|
||||||
|
html.templates
|
||||||
|
html.templates.chloe
|
||||||
locals
|
locals
|
||||||
http.server
|
http.server
|
||||||
http.server.filters
|
http.server.filters
|
||||||
furnace ;
|
furnace ;
|
||||||
IN: furnace.boilerplate
|
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 -- )
|
M:: boilerplate call-responder* ( path responder -- )
|
||||||
|
begin-form
|
||||||
path responder call-next-method
|
path responder call-next-method
|
||||||
|
responder init>> call
|
||||||
dup content-type>> "text/html" = [
|
dup content-type>> "text/html" = [
|
||||||
clone [| body |
|
clone [| body |
|
||||||
[
|
[
|
||||||
|
|
|
@ -28,6 +28,23 @@
|
||||||
|
|
||||||
<h1><t:write-title /></h1>
|
<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>
|
</t:chloe>
|
||||||
|
|
|
@ -78,6 +78,10 @@ M: revision feed-entry-url id>> revision-url ;
|
||||||
<action>
|
<action>
|
||||||
[ "Front Page" view-url <redirect> ] >>display ;
|
[ "Front Page" view-url <redirect> ] >>display ;
|
||||||
|
|
||||||
|
: latest-revision ( title -- revision/f )
|
||||||
|
<article> select-tuple
|
||||||
|
dup [ revision>> <revision> select-tuple ] when ;
|
||||||
|
|
||||||
: <view-article-action> ( -- action )
|
: <view-article-action> ( -- action )
|
||||||
<action>
|
<action>
|
||||||
|
|
||||||
|
@ -88,8 +92,8 @@ M: revision feed-entry-url id>> revision-url ;
|
||||||
] >>init
|
] >>init
|
||||||
|
|
||||||
[
|
[
|
||||||
"title" value dup <article> select-tuple [
|
"title" value dup latest-revision [
|
||||||
revision>> <revision> select-tuple from-object
|
from-object
|
||||||
{ wiki "view" } <chloe-content>
|
{ wiki "view" } <chloe-content>
|
||||||
] [
|
] [
|
||||||
edit-url <redirect>
|
edit-url <redirect>
|
||||||
|
@ -297,4 +301,5 @@ M: revision feed-entry-url id>> revision-url ;
|
||||||
<list-changes-feed-action> "changes.atom" add-responder
|
<list-changes-feed-action> "changes.atom" add-responder
|
||||||
<delete-action> "delete" add-responder
|
<delete-action> "delete" add-responder
|
||||||
<boilerplate>
|
<boilerplate>
|
||||||
|
[ "sidebar" [ "Sidebar" latest-revision from-object ] nest-form ] >>init
|
||||||
{ wiki "wiki-common" } >>template ;
|
{ wiki "wiki-common" } >>template ;
|
||||||
|
|
Loading…
Reference in New Issue