docs,api-ref: added search filters (#4830)

* initial implementation of search modal

* added hit and search suggestions

* added support for multiple indices

* updated sample env

* added close when click outside dropdown

* test for mobile

* added mobile design

* added shortcut

* dark mode fixes

* added search to docs

* added plugins filter

* added React import

* moved filters to configurations

* handled error on page load

* change suggestion text

* removed hits limit

* handle select all

* open link in current tab

* change highlight colors

* added support for shortcuts + auto focus

* change header and footer

* redesigned search ui
This commit is contained in:
Shahed Nasser
2023-08-24 18:36:06 +03:00
committed by GitHub
parent f4bf9ee169
commit f07dc0384f
109 changed files with 4555 additions and 1648 deletions

View File

@@ -3,9 +3,6 @@ require("dotenv").config()
const fs = require("fs")
const reverseSidebar = require("./src/utils/reverseSidebar")
const algoliaAppId = process.env.ALGOLIA_APP_ID || "temp"
const algoliaApiKey = process.env.ALGOLIA_API_KEY || "temp"
const announcementBar = JSON.parse(fs.readFileSync("./announcement.json"))
/** @type {import('@medusajs/docs').MedusaDocusaurusConfig} */
@@ -46,16 +43,58 @@ const config = {
disableSwitch: false,
respectPrefersColorScheme: true,
},
algolia: {
apiKey: algoliaApiKey,
indexName: "medusa-commerce",
placeholder: "Search docs...",
appId: algoliaAppId,
contextualSearch: false,
externalUrlRegex: "https://medusajs.com,https://docs.medusajs.com/api/",
searchParameters: {
tagFilters: "-reference",
algoliaConfig: {
appId: process.env.ALGOLIA_APP_ID || "temp",
apiKey: process.env.ALGOLIA_API_KEY || "temp",
indexNames: {
docs: process.env.NEXT_PUBLIC_DOCS_ALGOLIA_INDEX_NAME,
api: process.env.NEXT_PUBLIC_API_ALGOLIA_INDEX_NAME,
},
filters: [
{
value: "docs",
label: "Docs",
},
{
value: "user-guide",
label: "User Guide",
},
{
value: "admin",
label: "Admin API",
},
{
value: "store",
label: "Store API",
},
{
value: "plugins",
label: "Plugins",
},
{
value: "reference",
label: "References",
},
{
value: "ui",
label: "UI",
},
],
defaultFiltersByPath: [
{
path: "/user-guide",
filters: ["user-guide"],
},
{
path: "/references",
filters: ["reference"],
},
{
path: "/plugins",
filters: ["plugins"],
},
],
defaultFilters: ["docs"],
},
prism: {
defaultLanguage: "js",