! Copyright (C) 2008, 2011 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays assocs debugger fry hashtables help
-help.home help.topics help.vocabs html html.streams
-io.directories io.encodings.binary io.encodings.utf8 io.files
-io.files.temp io.pathnames kernel make math.parser memoize
-namespaces sequences serialize sorting splitting unicode.case
-vocabs vocabs.hierarchy words xml.syntax xml.writer ;
+USING: accessors arrays assocs debugger fry help help.home
+help.topics help.vocabs html html.streams io.directories
+io.encodings.binary io.encodings.utf8 io.files io.files.temp
+io.pathnames kernel make math.parser memoize namespaces
+sequences serialize splitting tools.completion vocabs
+vocabs.hierarchy words xml.syntax xml.writer ;
FROM: io.encodings.ascii => ascii ;
FROM: ascii => ascii? ;
IN: help.html
dup topic>filename utf8 [ help>html write-xml ] with-file-writer ;
: all-vocabs-really ( -- seq )
- all-vocabs-recursive >hashtable no-roots remove-redundant-prefixes
+ all-vocabs-recursive no-roots remove-redundant-prefixes
[ vocab-name "scratchpad" = not ] filter ;
: all-topics ( -- topics )
MEMO: load-index ( name -- index )
binary file-contents bytes>object ;
-TUPLE: result title href ;
-
-: partition-exact ( string results -- results' )
- [ title>> = ] with partition append ;
-
: offline-apropos ( string index -- results )
- load-index over >lower
- '[ [ drop _ ] dip >lower subseq? ] assoc-filter
- [ swap result boa ] { } assoc>map
- [ title>> ] sort-with
- partition-exact ;
+ load-index completions ;
: article-apropos ( string -- results )
"articles.idx" offline-apropos ;
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors db.sqlite furnace.actions furnace.alloy
-furnace.redirection help.html help.topics html.components
-html.forms html.templates.chloe http.server
+USING: accessors assocs furnace.actions furnace.redirection
+help.html help.topics html.components html.forms http.server
http.server.dispatchers http.server.static io.directories
-io.files io.files.temp kernel locals namespaces sequences
+io.files.temp kernel locals namespaces sequences
unicode.categories urls ;
IN: webapps.help
TUPLE: help-webapp < dispatcher ;
-M: result link-title title>> ;
-
-M: result link-href href>> ;
+: links ( seq -- seq' )
+ [ swap <simple-link> ] { } assoc>map ;
:: <search-action> ( help-dir -- action )
<page-action>
[
"search" param [ blank? ] trim [
help-dir [
- [ article-apropos "articles" set-value ]
- [ word-apropos "words" set-value ]
- [ vocab-apropos "vocabs" set-value ] tri
+ [ article-apropos links "articles" set-value ]
+ [ word-apropos links "words" set-value ]
+ [ vocab-apropos links "vocabs" set-value ] tri
] with-directory
] unless-empty
help-navbar "navbar" set-value