This repository is no longer necessary. Vitepress has offline search built in as of alpha 66
.
Vitepress needs better offline search. Let's make it simple and quick.
Thanks to everyone in this thread for offline search for getting the general idea implemented.
- Utilizes front-matter for page titles.
- Auto-strips content of extra tags.
- Auto-reads all markdown documents, and creates search data based on that.
- Ability to change baseURL for doc pathing.
- Ability to change regexp for content stripping and searching content.
- Ability to use quotes for stricter search results in-search.
- Option to change docs path.
- Option to ignore specific files or folders based on partial naming.
Make sure all of your markdown documents have title
in their front matter.
Example:
---
title: 'My Cool Document'
---
# {{ $frontmatter.title }}
Content, and everything else...
npm i vitepress-plugin-simple-search
Create a file in docs
called vite.config.js
or vite.config.ts
.
// docs/vite.config.js
import { SimpleSearch } from "vitepress-plugin-simple-search";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [SimpleSearch()],
});
These can be passed through the SimpleSearch
function.
export interface Options {
/**
* Base URL to use for content link replacement.
*
* @type {string}
* @memberof Options
*/
baseURL?: string;
/**
* Pathway to docs folder.
* Must be an absolute path.
* Defaults to 'docs' folder.
*
* @type {string}
* @memberof Options
*/
docsPath?: string;
/**
* A list of strings of partial file names or folders to ignore and not add to search.
*
* @type {Array<string>}
* @memberof Options
*/
partialsToIgnore?: Array<string>;
/**
* Used as a regex content remover for non-matching characters.
* Setting this to undefined turns off all content stripping.
* May have unintended side effects.
*
* @type {RegExp | undefined}
* @memberof Options
*/
regexForContentStripping?: RegExp | undefined;
}
Example
SimpleSearch({ baseURL: '/my-repo', regexForContentStripping: undefined });