webapps.wiki.example: new vocab to show how the wiki webapp should be
run it's a little tricky to figure out so a vocab demonstrating it is usefuldb4
parent
28c179cf59
commit
cc4bb991b2
|
@ -17,11 +17,14 @@ TUPLE: recaptcha-app < dispatcher recaptcha ;
|
|||
[ "?good" >url <redirect> ] >>submit
|
||||
{ recaptcha-app "example" } >>template ;
|
||||
|
||||
: <test-recaptcha> ( responder -- recaptcha )
|
||||
<recaptcha>
|
||||
"concatenative.org" >>domain
|
||||
"6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key
|
||||
"6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key ;
|
||||
|
||||
: <recaptcha-app> ( -- obj )
|
||||
\ recaptcha-app new-dispatcher
|
||||
<recaptcha-challenge> "" add-responder
|
||||
<recaptcha>
|
||||
"concatenative.org" >>domain
|
||||
"6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key
|
||||
"6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key
|
||||
<test-recaptcha>
|
||||
recaptcha-db <alloy> ;
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
USING: accessors calendar db db.sqlite db.tuples furnace.alloy
|
||||
furnace.recaptcha.example http.server io.directories
|
||||
io.encodings.ascii io.files io.files.temp io.servers
|
||||
io.sockets.secure.debug kernel namespaces sequences splitting
|
||||
webapps.wiki websites.concatenative ;
|
||||
IN: webapps.wiki.example
|
||||
|
||||
: wiki-db ( -- db )
|
||||
"wiki.db" temp-file <sqlite-db> ;
|
||||
|
||||
: insert-page ( file-name -- )
|
||||
dup ".txt" ?tail [
|
||||
swap ascii file-contents
|
||||
f <revision>
|
||||
swap >>content
|
||||
swap >>title
|
||||
"slava" >>author
|
||||
now >>date
|
||||
add-revision
|
||||
] [ 2drop ] if ;
|
||||
|
||||
: insert-pages ( -- )
|
||||
"resource:extra/webapps/wiki/initial-content" [
|
||||
[ insert-page ] each
|
||||
] with-directory-files ;
|
||||
|
||||
: init-wiki-db ( -- )
|
||||
wiki-db [
|
||||
init-furnace-tables
|
||||
article ensure-table
|
||||
revision ensure-table
|
||||
insert-pages
|
||||
] with-db ;
|
||||
|
||||
: <wiki-app> ( -- dispatcher )
|
||||
<wiki>
|
||||
<test-recaptcha>
|
||||
<login-config>
|
||||
<factor-boilerplate>
|
||||
wiki-db <alloy> ;
|
||||
|
||||
: <wiki-website-server> ( -- threaded-server )
|
||||
<http-server>
|
||||
<test-secure-config> >>secure-config
|
||||
8080 >>insecure
|
||||
8431 >>secure ;
|
||||
|
||||
: run-wiki ( -- )
|
||||
init-wiki-db
|
||||
<wiki-app> main-responder set-global
|
||||
wiki-db start-expiring
|
||||
<wiki-website-server> start-server drop ;
|
||||
|
||||
MAIN: run-wiki
|
|
@ -370,18 +370,3 @@ M: revision feed-entry-url id>> revision-url ;
|
|||
<boilerplate>
|
||||
[ init-sidebars init-relative-link-prefix ] >>init
|
||||
{ wiki "wiki-common" } >>template ;
|
||||
|
||||
: init-wiki ( -- )
|
||||
"resource:extra/webapps/wiki/initial-content" [
|
||||
[
|
||||
dup ".txt" ?tail [
|
||||
swap ascii file-contents
|
||||
f <revision>
|
||||
swap >>content
|
||||
swap >>title
|
||||
"slava" >>author
|
||||
now >>date
|
||||
add-revision
|
||||
] [ 2drop ] if
|
||||
] each
|
||||
] with-directory-files ;
|
||||
|
|
Loading…
Reference in New Issue