Psyche是靈感來自Algolia的DocSearch的啟發,是用於搜索文檔的介紹解決方案。
查看現場演示的概念增強器文檔。

警告: Psyche是專門用於搜索文檔的。它不是用於在其他接口(例如電子商務)中實現的,也不是與自定義數據方案一起使用。
心理客戶需要預先生成的結果索引才能搜索。這應該是Result記錄的數組(請參閱type.d.ts)。索引以編程方式提供給客戶端,但應採用未施加/縮小的.json文件的形式。
索引是在構建過程中,或者在網站動態提供的情況下,可以在構建過程中或直接生成索引的插件/中間件,並生成索引。
下面提供了某些文檔生成器的索引器。如果您選擇的生成器尚未得到支持,請打開功能請求或編寫您自己的功能並打開拉動請求。
將以下內容添加到您的_config.ts文件:
import psyche from 'https://deno.land/x/psyche/indexers/lume.ts' ;
site . use ( psyche ( ) ) ;可以通過將LumeConfig對像作為psyche()呼叫的第一個參數(請參閱type.d.ts)來配置索引器。
默認情況下:
/search.json 。data.section頁面。節或data.draft = true將被忽略。data.section_order和data.order分類。data.title訪問。data.section訪問。<article></article>元素中的標題,代碼塊,段落和列表根據語義HTML索引。其他元素(例如<blockquote></blockquote> )被視為段落。這與降級輸出最有效。閱讀Lume文檔的頁面數據和/或共享數據頁面,以查看如何設置這些屬性。
心理客戶端用打字稿編寫。如果您的網站的資產將被EG Esbuild捆綁在一起,或者可以將其直接導入它,或者導入預先轉移和縮小的JavaScript構建。
import psyche from 'https://deno.land/x/psyche/client/mod.ts' ;
// or
import psyche from 'https://deno.land/x/psyche/client/psyche.min.mjs' ; psyche默認導出是一個函數,並在提供ClientConfig對象(請參閱type.d.ts)時將返回ClientInstance (請參閱type.d.ts)。
在客戶端實例上呼叫.register()將插入組件中的文檔並收聽Hotkey Presses。然後可以通過調用.open()或按CTRL/⌘ + K來打開組件。
例如
const searchInstance = psyche ( {
theme : { scrollbarStyle : 'square' } ,
index : await fetch ( '/search.json' ) . then ( ( res ) => res . json ( ) ) ,
} ) ;
searchInstance . register ( ) ;
searchInstance . open ( ) ; 要將熱鍵添加到搜索模式中的列表中,請將其添加到Psyche ClientConfig對象的hotkeys數組(請參閱type.d.ts)。
對於依賴平台的熱鍵,命名的導出platformModifier將等於MACOS上的⌘鍵或其他平台上的CTRL密鑰。
要處理Hotkeys,請向命名的導出registerHotkey提供ClientHotkey對象(請參閱type.d.ts)。這是一個KeyboardEvent的部分,並具有一些其他屬性:
platformModifier屬性等效於MacOS上的metaKey或其他平台上的ctrlKey 。KeyboardEvent作為其第一個參數時,將調用onkeydown屬性。KeyboardEvent作為其第一個參數時,將調用onkeyup屬性。例如
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 ( ) ;該項目的更改記錄在ChangElog中。
該項目已根據MIT許可獲得許可。
為了支持該項目的未來發展,請考慮贊助作者。