@markprompt/docusaurus-theme-search v0.23.2
Markprompt Docusaurus Plugin
A Markprompt plugin for Docusaurus.
Installation
npm install @markprompt/docusaurus-theme-search
Usage
Basic Usage
In your docusaurus.config.js
, add @markprompt/docusaurus-theme-search
to
themes
. Configure markprompt
in the themeConfig
.
const config = {
// …
themes: [
// …
'@markprompt/docusaurus-theme-search',
],
themeConfig:
/** @type {import('@markprompt/docusaurus-theme-search').ThemeConfig} */ ({
markprompt: {
projectKey: 'YOUR-PROJECT-KEY',
trigger: { floating: true },
},
}),
};
Now a search button will appear on your Docusaurus page.
Usage with another search plugin
If your Docusaurus project already has a search plugin, such as theme-search-algolia, you need to swizzle the current search plugin, and add Markprompt as a standalone component.
To swizzle your current search plugin, run:
npx docusaurus swizzle
Choose Wrap
, and confirm. This will create a SearchBar
wrapper component in
/src/theme/SearchBar
. Next, install the standalone Markprompt component and
CSS:
npm install @markprompt/react @markprompt/css
Edit /src/theme/SearchBar/index.tsx
to include Markprompt next to your
existing search bar. Here is an example:
import type { WrapperProps } from '@docusaurus/types';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import { type MarkpromptConfig } from '@markprompt/docusaurus-theme-search';
import type SearchBarType from '@theme/SearchBar';
import SearchBar from '@theme-original/SearchBar';
import { lazy, Suspense } from 'react';
// import Markprompt lazily as Docusaurus does not currently support ESM
const Markprompt = lazy(() =>
import('@markprompt/react').then((mod) => ({ default: mod.Markprompt })),
);
import '@markprompt/css';
type Props = WrapperProps<typeof SearchBarType>;
export default function SearchBarWrapper(props: Props): JSX.Element {
const { siteConfig } = useDocusaurusContext();
const { projectKey, ...config } = siteConfig.themeConfig
.markprompt as MarkpromptConfig;
return (
<div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
{/* Docusaurus' version of `ReactDOMServer` doesn't support Suspense yet, so we can only render the component on the client. */}
{typeof window !== 'undefined' && (
<Suspense fallback={null}>
<Markprompt projectKey={projectKey} {...config} />
</Suspense>
)}
<SearchBar {...props} />
</div>
);
}
Documentation
The full documentation for the package can be found on the Markprompt docs.
Examples
Community
Authors
This library is created by the team behind Markprompt (@markprompt).
License
1 day ago
6 days ago
16 days ago
17 days ago
22 days ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
11 months ago
11 months ago
10 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
9 months ago
10 months ago
11 months ago
10 months ago
11 months ago
6 months ago
10 months ago
11 months ago
7 months ago
10 months ago
11 months ago
10 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
10 months ago
11 months ago
8 months ago
8 months ago
8 months ago
8 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago