Skip to content

Commit

Permalink
[gem-book] Support local search
Browse files Browse the repository at this point in the history
Closed #114
  • Loading branch information
mantou132 committed Jan 12, 2024
1 parent 6096128 commit 797e5a0
Show file tree
Hide file tree
Showing 12 changed files with 392 additions and 139 deletions.
2 changes: 0 additions & 2 deletions packages/gem-book/docs/zh/003-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,6 @@ yarn add gem-book
> [!WARNING]
>
> - DocSearch Crawler [配置](https://crawler.algolia.com/admin/crawlers)中必须启用 `renderJavaScript`
> - 全文搜索需要等待 DocSearch [支持](https://github.com/algolia/renderscript/pull/555) ShadowDOM,
> 可以使用 [`--site`](./002-cli.md#--site-url) 暂时为网站添加标题搜索(DocSearch Crawler 配置修改 `sitemaps` 字段)
## `<gbp-comment>`

Expand Down
6 changes: 5 additions & 1 deletion packages/gem-book/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@
],
"scripts": {
"schema": "npx ts-json-schema-generator -p src/common/config.ts -t CliConfig -o schema.json",
"build:cli": "esbuild ./src/bin/index.ts --outdir=./bin --platform=node --sourcemap --bundle --external:anymatch --external:cheerio --external:chokidar --external:jimp --external:marked --external:yaml --external:front-matter --external:commander --external:webpack --external:ts-loader --external:typescript --external:webpack-dev-server --external:html-webpack-plugin --external:copy-webpack-plugin --external:workbox-webpack-plugin",
"build:cli": "esbuild ./src/bin/index.ts --outdir=./bin --platform=node --sourcemap --bundle --external:anymatch --external:minisearch --external:cheerio --external:chokidar --external:jimp --external:marked --external:yaml --external:front-matter --external:commander --external:webpack --external:ts-loader --external:typescript --external:webpack-dev-server --external:html-webpack-plugin --external:copy-webpack-plugin --external:workbox-webpack-plugin",
"start:cli": "yarn build:cli --watch",
"docs": "node ./bin docs",
"serve:docs": "node ./bin serve docs",
"start:docs": "cross-env PORT=8090 GEM_BOOK_DEV=true nodemon --watch bin --exec \"yarn docs\"",
"start": "concurrently npm:start:cli npm:start:docs",
"build:website": "yarn build:cli && yarn docs --build --ga G-7X2Z4B2KV0",
"serve:website": "yarn build:cli && yarn serve:docs --ga G-7X2Z4B2KV0",
"build": "yarn build:cli && tsc -p ./tsconfig.build.json",
"test": "cross-env NODE_OPTIONS=--no-experimental-fetch wtr",
"prepublishOnly": "yarn build"
Expand All @@ -45,12 +47,14 @@
"chokidar": "^3.5.3",
"commander": "^7.2.0",
"copy-webpack-plugin": "^11.0.0",
"express": "^4.17.3",
"front-matter": "^4.0.2",
"git-remote-origin-url": "^3.1.0",
"git-repo-info": "^2.1.1",
"html-webpack-plugin": "^5.5.3",
"jimp": "^0.16.1",
"marked": "^10.0.0",
"minisearch": "^6.3.0",
"chalk": "^2.4.2",
"mkdirp": "^1.0.4",
"parse-github-url": "^1.0.2",
Expand Down
5 changes: 5 additions & 0 deletions packages/gem-book/src/bin/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { STATS_FILE } from '../common/constant';
import { getLinkPath } from '../common/utils';

import { resolveLocalPlugin, resolveTheme, isURL, importObject, print } from './utils';
import { initMiniSearch, search } from './search';

const publicDir = path.resolve(__dirname, '../public');
const entryDir = path.resolve(__dirname, process.env.GEM_BOOK_DEV ? '../src/website' : '../website');
Expand Down Expand Up @@ -184,6 +185,10 @@ export async function build(dir: string, options: Required<CliUniqueConfig>, boo
historyApiFallback: true,
setupMiddlewares: (middlewares, devServer) => {
devServer.app!.use('/_assets/', serveStatic(process.cwd()));
devServer.app!.use('/api/search/', (req, res) => {
initMiniSearch(docsDir, bookConfig);
res.json(search(String(req.query.query), String(req.query.lang || '')));
});
return middlewares;
},
port: Number(process.env.PORT) || 8091,
Expand Down
Loading

0 comments on commit 797e5a0

Please sign in to comment.