Psyche는 Algolia의 DocSearch에서 영감을 얻은 문서 검색을위한 드롭 인 솔루션입니다.
라이브 데모에 대한 개념-진한 문서를 확인하십시오.

경고 : Psyche는 문서 검색을 위해 특별히 구축되었습니다. 다른 인터페이스 (예 : 전자 상거래)로 구현하거나 사용자 정의 데이터 체계와 함께 사용하기 위해 구축되지 않았습니다.
Psyche Client는 미리 생성 된 결과 색인 검색이 필요합니다. Result 레코드의 배열이어야합니다 (Type.d.ts 참조). 인덱스는 프로그래밍 방식으로 클라이언트에게 제공되지만, 형식화되지 않은/미니 화 된 .json 파일의 형태를 취해야합니다.
인덱서는 빌드 프로세스 중에 또는 사이트가 동적으로 제공되는 경우 현장을 크롤링하고 인덱스를 생성하는 플러그인/미들웨어입니다.
일부 문서 생성기의 인덱서는 다음과 같습니다. 선택한 생성기가 아직 지원되지 않은 경우 기능 요청을 열거나 직접 작성하고 풀 요청을 열십시오.
_config.ts 파일에 다음을 추가하십시오.
import psyche from 'https://deno.land/x/psyche/indexers/lume.ts' ;
site . use ( psyche ( ) ) ; 인덱서는 LumeConfig 객체를 psyche() 호출의 첫 번째 인수로 제공하여 구성 할 수 있습니다 (types.d.ts 참조).
기본적으로 :
/search.json 으로 출력됩니다.data.section 없는 페이지 또는 data.draft = true 무시됩니다.data.section_order 로 그룹화하고 data.order 로 정렬됩니다.data.title 에서 액세스합니다.data.section 에서 액세스됩니다.<article></article> 요소 내의 제목, 코드 블록, 단락 및 목록은 Semantic HTML에 따라 색인됩니다. 다른 요소 (예 : <blockquote></blockquote> )는 단락으로 취급됩니다. 이것은 Markdown 출력에서 가장 잘 작동합니다.Lume 문서의 페이지 데이터 및/또는 공유 데이터 페이지를 읽고 이러한 속성을 설정하는 방법을 확인하십시오.
Psyche Client는 TypeScript로 작성되었습니다. 예를 들어 Esbuild에 의해 사이트 자산이 번들로 연결되면 직접 가져 오거나 사전 트랜스 플랜트 및 미니스트 자바 스크립트 빌드를 가져 오면 직접 가져올 수 있습니다.
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 Default Export는 ClientConfig 객체 (Type.d.ts 참조)가 제공 될 때 ClientInstance (Type.d.ts 참조)를 반환하는 기능입니다.
클라이언트 인스턴스에서 .register() 호출하면 구성 요소를 문서에 삽입하고 핫키 프레스를 듣습니다. 그런 다음 .open() 호출하거나 CTRL/⌘ + K 눌러 구성 요소를 열 수 있습니다.
예를 들어
const searchInstance = psyche ( {
theme : { scrollbarStyle : 'square' } ,
index : await fetch ( '/search.json' ) . then ( ( res ) => res . json ( ) ) ,
} ) ;
searchInstance . register ( ) ;
searchInstance . open ( ) ; Search Modal의 목록에 핫키를 추가하려면 Psyche의 ClientConfig 객체의 hotkeys 배열에 추가하십시오 (Type.d.ts 참조).
플랫폼 의존 핫키의 경우, 명명 된 Export platformModifier 는 MACOS의 ⌘ 키 또는 다른 플랫폼의 CTRL 키에 해당합니다.
핫키를 처리하려면 ClientHotkey 객체 (Type.d.ts 참조)를 지명 된 내보내기 registerHotkey 에 제공하십시오. 이것은 몇 가지 추가 속성이있는 KeyboardEvent 전기입니다.
platformModifier 속성은 다른 플랫폼의 MacOS 또는 ctrlKey metaKey 와 동일합니다.onkeydown 속성이 호출되어 첫 번째 인수로 트리거 된 KeyboardEvent 통과시킵니다.onkeyup 속성은 키 조합이 릴리스되면 호출되고, 첫 번째 인수로 트리거 된 KeyboardEvent 통과시킵니다.예를 들어
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 라이센스에 따라 라이센스가 부여됩니다.
이 프로젝트의 향후 개발을 지원하려면 저자를 후원하는 것을 고려하십시오.