0.32.7 • Published 7 months ago

@markprompt/docusaurus-theme-search v0.32.7

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

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

MIT © Markprompt

0.32.7

7 months ago

0.32.6

8 months ago

0.32.5

8 months ago

0.32.4

10 months ago

0.32.3

11 months ago

0.32.2

11 months ago

0.32.1

11 months ago

0.32.0

11 months ago

0.29.0

1 year ago

0.27.22

1 year ago

0.27.24

1 year ago

0.27.23

1 year ago

0.29.2

1 year ago

0.29.1

1 year ago

0.30.0

1 year ago

0.31.1

1 year ago

0.31.0

1 year ago

0.28.0

1 year ago

0.27.21

1 year ago

0.27.20

1 year ago

0.27.19

1 year ago

0.27.18

1 year ago

0.27.17

1 year ago

0.27.16

1 year ago

0.27.15

1 year ago

0.27.14

1 year ago

0.27.13

1 year ago

0.27.11

1 year ago

0.27.12

1 year ago

0.27.10

1 year ago

0.27.9

1 year ago

0.27.8

1 year ago

0.27.7

1 year ago

0.27.6

1 year ago

0.27.5

1 year ago

0.27.4

1 year ago

0.27.3

1 year ago

0.25.4

2 years ago

0.25.3

2 years ago

0.25.2

2 years ago

0.25.1

2 years ago

0.25.0

2 years ago

0.25.9

2 years ago

0.25.8

2 years ago

0.25.7

2 years ago

0.25.6

2 years ago

0.25.5

2 years ago

0.26.1

1 year ago

0.26.0

2 years ago

0.27.2

1 year ago

0.27.1

1 year ago

0.27.0

1 year ago

0.23.3

2 years ago

0.24.1

2 years ago

0.24.0

2 years ago

0.23.2

2 years ago

0.23.1

2 years ago

0.23.0

2 years ago

0.22.0

2 years ago

0.21.0

2 years ago

0.20.7

2 years ago

0.20.6

2 years ago

0.20.5

2 years ago

0.20.4

2 years ago

0.20.3

2 years ago

0.20.1

2 years ago

0.20.2

2 years ago

0.20.0

2 years ago

0.19.0

2 years ago

0.18.4

2 years ago

0.18.3

2 years ago

0.18.2

2 years ago

0.18.1

2 years ago

0.17.0

2 years ago

0.18.0

2 years ago

0.16.4

2 years ago

0.16.5

2 years ago

0.16.6

2 years ago

0.16.3

2 years ago

0.16.1

2 years ago

0.16.2

2 years ago

0.16.0

2 years ago

0.15.0

2 years ago

0.14.6

2 years ago

0.14.5

2 years ago

0.14.4

2 years ago

0.14.3

2 years ago

0.14.1

2 years ago

0.14.2

2 years ago

0.14.0

2 years ago

0.13.15

2 years ago

0.5.10

3 years ago

0.5.11

3 years ago

0.5.12

2 years ago

0.13.6

2 years ago

0.13.7

2 years ago

0.13.8

2 years ago

0.13.9

2 years ago

0.11.0

2 years ago

0.13.0

2 years ago

0.13.1

2 years ago

0.13.2

2 years ago

0.13.3

2 years ago

0.13.4

2 years ago

0.13.5

2 years ago

0.13.12

2 years ago

0.13.11

2 years ago

0.13.10

2 years ago

0.9.0

2 years ago

0.7.2

2 years ago

0.5.4

3 years ago

0.7.1

2 years ago

0.5.3

3 years ago

0.13.14

2 years ago

0.7.4

2 years ago

0.5.6

3 years ago

0.13.13

2 years ago

0.7.3

2 years ago

0.5.5

3 years ago

0.7.0

2 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.7.11

2 years ago

0.7.10

2 years ago

0.7.9

2 years ago

0.7.6

2 years ago

0.5.8

3 years ago

0.7.5

2 years ago

0.5.7

3 years ago

0.7.8

2 years ago

0.7.7

2 years ago

0.5.9

3 years ago

0.12.0

2 years ago

0.12.1

2 years ago

0.12.2

2 years ago

0.10.0

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.6.0

2 years ago

0.5.0

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago