URL Utilities
SvelteKit의 정적 어댑터가 생성하는 .html 확장자와 다양한 배포 환경의 base 경로를 처리하는 유틸리티.
검색 결과에서 사용자를 해당 문서의 정확한 위치로 안내하기 위해
텍스트 프래그먼트와 검색 URL 생성 기능을 제공한다.
페이지 href 정규화
SvelteKit의 정적 빌드는 Foo.html 형태의 파일을 생성하지만,
사용자에게는 /pages/Foo 같은 깨끗한 URL을 제공해야 한다.
normalizePageHref는 .html 확장자를 제거하고 배포 환경의 base 경로를 추가한다.
| url | base | expected |
|---|---|---|
/pages/Foo.html | / | /pages/Foo |
pages/Foo.html | /wiki | /wiki/pages/Foo |
텍스트 프래그먼트 부착
검색 결과를 클릭하면 해당 문서에서 검색어가 포함된 위치로 바로 스크롤되어야 한다.
appendTextFragment는 Text Fragments 표준을 활용하여
URL에 :~:text= 형식의 프래그먼트를 추가한다.
| url | query | excerpt | base | expected |
|---|---|---|---|---|
/pages/Foo.html | hello | <mark>hello</mark> world | / | /pages/Foo#:~:text=hello |
검색 URL 생성
검색 페이지 링크를 생성한다. base 경로를 고려하여 어떤 배포 환경에서도 동작한다.
| query | base | expected |
|---|---|---|
hello world | / | /search?q=hello%20world |
test | /wiki | /wiki/search?q=test |