Psyche ist eine Drop-In-Lösung für die Suchdokumentation, inspiriert von Algolia's DocSearch.
Schauen Sie sich die Dokumentation der Begriffe-Enhancer für eine Live-Demo an.

WARNUNG: Psyche ist speziell für die Suchdokumentation aufgebaut. Es ist nicht für die Implementierung in andere Schnittstellen (z. B. E -Commerce) oder die Verwendung mit benutzerdefinierten Datenschemata erstellt.
Der Psyche-Klient benötigt einen vorgenerierten Ergebnisindex für die Suche. Dies sollte eine Reihe von Result sein (siehe Typen.D.TS). Die Indizes werden dem Client programmgesteuert zur Verfügung gestellt, sollten jedoch in Form einer unformatierten/minifiedes .json -Datei angenommen werden.
Indexer sind Plugins/Middleware, die eine Site kriechen und einen Index erstellen, entweder während eines Build-Prozesses oder im Fliege, wenn die Site dynamisch bedient wird.
Indexer für einige Dokumentationsgeneratoren finden Sie unten. Wenn Ihr Generator der Wahl noch nicht unterstützt wird, öffnen Sie entweder eine Funktionsanforderung oder schreiben Sie Ihre eigene und öffnen Sie eine Pull -Anfrage.
Fügen Sie Folgendes zu Ihrer Datei _config.ts hinzu:
import psyche from 'https://deno.land/x/psyche/indexers/lume.ts' ;
site . use ( psyche ( ) ) ; Der Indexer kann konfiguriert werden, indem ein LumeConfig -Objekt als erstes Argument des psyche() -Anrufs bereitgestellt wird (siehe Typen.d.ts).
Standardmäßig:
/search.json ausgegeben.data.section oder wo data.draft = true ignoriert werden.data.section_order gruppiert data.orderdata.title zugegriffen.data.section zugegriffen.<article></article> -Element in einer Seite werden gemäß semantischem HTML indiziert. Andere Elemente (z. <blockquote></blockquote> ) werden als Absätze behandelt. Dies funktioniert am besten mit Markdown -Ausgabe.Lesen Sie die Seitendaten und/oder gemeinsam genutzten Datenseiten der Dokumentation von Lume, um zu sehen, wie diese Eigenschaften festgelegt werden.
Der Psyche -Kunde ist in TypeScript geschrieben. Sie können es entweder direkt importieren, wenn die Vermögenswerte Ihrer Website von z. B. eSbuild gebündelt werden, oder den vorübertrageten und minifizierten JavaScript-Build importieren.
import psyche from 'https://deno.land/x/psyche/client/mod.ts' ;
// or
import psyche from 'https://deno.land/x/psyche/client/psyche.min.mjs' ; Der psyche -Standard -Export ist eine Funktion, die bei der Lieferung eines ClientConfig -Objekts (siehe Typen.d.ts) eine ClientInstance zurückgibt (siehe Typen.D.TS).
Das Aufrufen von .register() In einer Client -Instanz fügt die Komponente in das Dokument ein und hört auf Hotkey -Pressen an. Die Komponente kann dann entweder durch Aufrufen von .open() oder durch Drücken von CTRL/⌘ + K geöffnet werden.
Z.B
const searchInstance = psyche ( {
theme : { scrollbarStyle : 'square' } ,
index : await fetch ( '/search.json' ) . then ( ( res ) => res . json ( ) ) ,
} ) ;
searchInstance . register ( ) ;
searchInstance . open ( ) ; Um der Liste im Suchmodal einen Hotkey hinzuzufügen, fügen Sie ihn dem hotkeys -Array des ClientConfig -Objekts von Psyche hinzu (siehe Typen.d.ts).
Für plattformabhängige Hotkeys entspricht der benannte platformModifier der ⌘- Taste auf MacOS oder der Strg- Taste auf anderen Plattformen.
Um Hotkeys zu verarbeiten, geben Sie dem benannten Export registerHotkey ein ClientHotkey -Objekt (siehe Typen.D.Ts) an. Dies ist ein KeyboardEvent -Teil mit einigen zusätzlichen Eigenschaften:
platformModifier -Eigenschaft entspricht metaKey auf MacOS oder ctrlKey auf anderen Plattformen.onkeydown -Eigenschaft wird aufgerufen, wenn die Schlüsselkombination nach unten gedrückt wird und das ausgelöste KeyboardEvent als erstes Argument übergeben wird.onkeyup -Eigenschaft wird aufgerufen, wenn die Schlüsselkombination veröffentlicht wird und das ausgelöste KeyboardEvent als erstes Argument übergeben wird.Z.B
import psyche , {
registerHotkey ,
platformModifier ,
} from 'https://deno.land/x/psyche/client/psyche.min.mjs' ;
registerHotkey ( {
key : 'l' ,
platformModifier : true ,
shiftKey : true ,
onkeydown : ( event ) => {
event . preventDefault ( ) ;
toggleTheme ( ) ;
} ,
} ) ;
const searchInstance = psyche ( {
hotkeys : [ { kbd : ` ${ platformModifier } + SHIFT + L` , label : 'to toggle theme' } ] ,
} ) ;
searchInstance . register ( ) ;Änderungen an diesem Projekt werden im Changelog aufgezeichnet.
Dieses Projekt ist unter der MIT -Lizenz lizenziert.
Um die zukünftige Entwicklung dieses Projekts zu unterstützen, sollten Sie den Autor gesponsert.