90 lines
2.1 KiB
Factor
90 lines
2.1 KiB
Factor
! Copyright (C) 2005, 2007 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: kernel furnace furnace.validator http.server.responders
|
|
help help.topics html splitting sequences words strings
|
|
quotations macros vocabs tools.browser combinators
|
|
arrays io.files ;
|
|
IN: webapps.help
|
|
|
|
! : string>topic ( string -- topic )
|
|
! " " split dup length 1 = [ first ] when ;
|
|
|
|
: show-help ( topic -- )
|
|
serving-html
|
|
dup article-title [
|
|
[ help ] with-html-stream
|
|
] simple-html-document ;
|
|
|
|
\ show-help {
|
|
{ "topic" }
|
|
} define-action
|
|
\ show-help { { "topic" "handbook" } } default-values
|
|
|
|
M: link browser-link-href
|
|
link-name
|
|
dup word? over f eq? or [
|
|
browser-link-href
|
|
] [
|
|
dup array? [ " " join ] when
|
|
[ show-help ] curry quot-link
|
|
] if ;
|
|
|
|
: show-word ( word vocab -- )
|
|
lookup show-help ;
|
|
|
|
\ show-word {
|
|
{ "word" }
|
|
{ "vocab" }
|
|
} define-action
|
|
\ show-word { { "word" "call" } { "vocab" "kernel" } } default-values
|
|
|
|
M: f browser-link-href
|
|
drop \ f browser-link-href ;
|
|
|
|
M: word browser-link-href
|
|
dup word-name swap word-vocabulary
|
|
[ show-word ] 2curry quot-link ;
|
|
|
|
: show-vocab ( vocab -- )
|
|
f >vocab-link show-help ;
|
|
|
|
\ show-vocab {
|
|
{ "vocab" }
|
|
} define-action
|
|
|
|
\ show-vocab { { "vocab" "kernel" } } default-values
|
|
|
|
M: vocab-spec browser-link-href
|
|
vocab-name [ show-vocab ] curry quot-link ;
|
|
|
|
: show-vocabs-tagged ( tag -- )
|
|
<vocab-tag> show-help ;
|
|
|
|
\ show-vocabs-tagged {
|
|
{ "tag" }
|
|
} define-action
|
|
|
|
M: vocab-tag browser-link-href
|
|
vocab-tag-name [ show-vocabs-tagged ] curry quot-link ;
|
|
|
|
: show-vocabs-by ( author -- )
|
|
<vocab-author> show-help ;
|
|
|
|
\ show-vocabs-by {
|
|
{ "author" }
|
|
} define-action
|
|
|
|
M: vocab-author browser-link-href
|
|
vocab-author-name [ show-vocabs-by ] curry quot-link ;
|
|
|
|
"help" "show-help" "extra/webapps/help" web-app
|
|
|
|
! Hard-coding for factorcode.org
|
|
PREDICATE: pathname resource-pathname
|
|
pathname-string "resource:" head? ;
|
|
|
|
M: resource-pathname browser-link-href
|
|
pathname-string
|
|
"resource:" ?head drop
|
|
"/responder/source/" swap append ;
|