From: John Benediktsson Date: Wed, 10 Aug 2022 22:54:22 +0000 (-0700) Subject: webapps.wiki: adding search bar X-Git-Tag: 0.99~1141 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=d1b6d30ca5c6521fa3116aa0e20dcf7ecce7509a webapps.wiki: adding search bar --- diff --git a/extra/webapps/wiki/search.xml b/extra/webapps/wiki/search.xml new file mode 100644 index 0000000000..ffb43101e3 --- /dev/null +++ b/extra/webapps/wiki/search.xml @@ -0,0 +1,21 @@ + + + + + Search results for '' + +
+
    + +
  • + +
  • +
    +
+
+ + +

No results found!

+
+ +
diff --git a/extra/webapps/wiki/wiki-common.xml b/extra/webapps/wiki/wiki-common.xml index 2c572e852b..1a04c9bc53 100644 --- a/extra/webapps/wiki/wiki-common.xml +++ b/extra/webapps/wiki/wiki-common.xml @@ -2,11 +2,11 @@ - - Recent Changes - + + Recent Changes + - +
diff --git a/extra/webapps/wiki/wiki.css b/extra/webapps/wiki/wiki.css index ff23e2907a..4b88a427c2 100644 --- a/extra/webapps/wiki/wiki.css +++ b/extra/webapps/wiki/wiki.css @@ -130,6 +130,11 @@ nav img { display: none; } +nav input { + border-radius: 3px; + padding: 3px; +} + .page nav { width: calc(100vw - 200px); max-width: 800px; @@ -184,6 +189,10 @@ nav img { filter: invert(80%); } + nav input { + font-size: smaller; + } + #left { border: none; border-left: 1px dashed #666; diff --git a/extra/webapps/wiki/wiki.factor b/extra/webapps/wiki/wiki.factor index ef7ce8dafd..3074915bb0 100644 --- a/extra/webapps/wiki/wiki.factor +++ b/extra/webapps/wiki/wiki.factor @@ -3,9 +3,10 @@ USING: accessors calendar db.tuples db.types farkup furnace.actions furnace.auth furnace.boilerplate furnace.recaptcha furnace.redirection furnace.syndication -furnace.utilities html.forms http.server.dispatchers +furnace.utilities html.forms http.server http.server.dispatchers http.server.static kernel lcs make namespaces present random -sequences sorting splitting urls validators ; +regexp sequences simple-tokenizer sorting splitting unicode urls +validators ; IN: webapps.wiki : wiki-url ( rest path -- url ) @@ -305,6 +306,33 @@ M: revision feed-entry-url id>> revision-url ; { wiki "articles" } >>template ; +: ( -- action ) + + + [ + "search" param [ unicode:blank? ] trim + dup "search" set-value + + [ f ] [ + tokenize [ + " " "\s+" replace "\\b" dup surround + "i" + ] map + ] if-empty + + [ f ] [ + f
select-tuples + [ title>> ] sort-with + [ revision>> select-tuple ] map + swap '[ content>> _ [ first-match ] with all? ] filter + ] if-empty + + [ "results" set-value ] + [ not "empty" set-value ] bi + ] >>init + + { wiki "search" } >>template ; + : list-user-edits ( -- seq ) f "author" value >>author select-tuples reverse-chronological-order ; @@ -352,6 +380,7 @@ M: revision feed-entry-url id>> revision-url ; "rollback" add-responder "user-edits" add-responder "articles" add-responder + "search" add-responder "changes" add-responder "user-edits.atom" add-responder "changes.atom" add-responder