Skip to content

Commit f5b7ca4

Browse files
committed
Fix mobile search bar visibility and suppress search plugin warnings
- Improved mobile search bar CSS with higher z-index and better visibility - Added webpack plugin to suppress search-related warnings during build - Created empty module stub for @easyops-cn/docusaurus-search-local/client/theme/SearchBar - Updated docusaurus.config.ts to use the warning suppression plugin - Added build:quiet script to package.json for cleaner build output - Updated .env.example with documentation for SUPPRESS_SEARCH_WARNINGS - Added plugins directory exception to .gitignore for JavaScript files
1 parent 89bd40f commit f5b7ca4

File tree

10 files changed

+418
-133
lines changed

10 files changed

+418
-133
lines changed

.env.example

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
1-
POSTHOG_API_KEY=your_posthog_api_key
1+
# PostHog Analytics (optional)
2+
# POSTHOG_API_KEY=your_posthog_api_key_here
3+
4+
# Suppress webpack warnings (optional)
5+
# Set this to suppress module resolution warnings during build
6+
# NODE_OPTIONS="--no-warnings"
7+
8+
# Alternative: Suppress specific warning types
9+
# SUPPRESS_SEARCH_WARNINGS=true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
.cache-loader
1010
*.js
1111
!src/**/*.js
12+
!plugins/**/*.js
1213

1314
# Misc
1415
.DS_Store

.roorules

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,67 @@ Never Thank cte, hannesrudolph, jr, roomote, dleffel or mrubens in release notes
1515

1616

1717
## Misc
18-
When moving a section, make sure to add the forwarding link in docusaurus.config.ts
18+
When moving a section, make sure to add the forwarding link in docusaurus.config.ts
19+
20+
# CLAUDE.md
21+
22+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
23+
24+
## Common Development Commands
25+
26+
### Build & Development
27+
- `npm start` - Start local development server with hot reload at http://localhost:3000
28+
- `npm run build` - Build static production site to `/build` directory
29+
- `npm run serve` - Serve production build locally
30+
31+
### Code Quality
32+
- `npm run lint` - Lint TypeScript/JavaScript files in `/src`
33+
- `npm run lint:fix` - Auto-fix linting issues
34+
- `npm run typecheck` - Run TypeScript type checking
35+
- `npm run lint:unused` - Check for unused imports
36+
37+
### Documentation Management
38+
- `npm run clear` - Clear Docusaurus cache (useful if seeing stale content)
39+
- `npm run swizzle` - Customize Docusaurus components
40+
41+
## High-Level Architecture
42+
43+
This is a Docusaurus v3 documentation site for Roo Code, an AI-powered VS Code extension. The architecture follows these patterns:
44+
45+
### Content Structure
46+
- **Documentation** lives in `/docs` with a hierarchical folder structure
47+
- **Components** in `/src/components` provide custom React components used throughout the site
48+
- **Theme customizations** in `/src/theme` override default Docusaurus components for custom behavior
49+
- **Static assets** in `/static` (images, downloads, etc.)
50+
51+
### Key Configuration Files
52+
- `docusaurus.config.ts` - Main site configuration including URLs, metadata, plugins, and theme settings
53+
- `sidebars.ts` - Defines the documentation navigation structure
54+
- `src/constants.ts` - Centralized URLs and links used across the site
55+
56+
### Documentation Organization
57+
The `/docs` folder follows this structure:
58+
- `getting-started/` - New user onboarding
59+
- `basic-usage/` - Core features and concepts
60+
- `features/` - Detailed feature documentation
61+
- `advanced-usage/` - Power user features and tools
62+
- `providers/` - API provider configurations
63+
- `community/` - Community contributions and resources
64+
- `update-notes/` - Version release notes
65+
66+
### Custom Components
67+
The site uses custom React components for:
68+
- Social media icons and links
69+
- Tutorial video grids
70+
- Animated backgrounds
71+
- GitHub installation buttons
72+
- Custom navbar and footer implementations
73+
74+
### Search Implementation
75+
Uses `@easyops-cn/docusaurus-search-local` for local search functionality with highlighting and explicit result paths.
76+
77+
### Analytics
78+
Integrates PostHog analytics when `POSTHOG_API_KEY` environment variable is set.
79+
80+
### Redirects
81+
Extensive redirect configuration handles moved documentation pages to maintain backwards compatibility with existing links.

CLAUDE.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Common Development Commands
6+
7+
### Build & Development
8+
- `npm start` - Start local development server with hot reload at http://localhost:3000
9+
- `npm run build` - Build static production site to `/build` directory
10+
- `npm run serve` - Serve production build locally
11+
12+
### Code Quality
13+
- `npm run lint` - Lint TypeScript/JavaScript files in `/src`
14+
- `npm run lint:fix` - Auto-fix linting issues
15+
- `npm run typecheck` - Run TypeScript type checking
16+
- `npm run lint:unused` - Check for unused imports
17+
18+
### Documentation Management
19+
- `npm run clear` - Clear Docusaurus cache (useful if seeing stale content)
20+
- `npm run swizzle` - Customize Docusaurus components
21+
22+
## High-Level Architecture
23+
24+
This is a Docusaurus v3 documentation site for Roo Code, an AI-powered VS Code extension. The architecture follows these patterns:
25+
26+
### Content Structure
27+
- **Documentation** lives in `/docs` with a hierarchical folder structure
28+
- **Components** in `/src/components` provide custom React components used throughout the site
29+
- **Theme customizations** in `/src/theme` override default Docusaurus components for custom behavior
30+
- **Static assets** in `/static` (images, downloads, etc.)
31+
32+
### Key Configuration Files
33+
- `docusaurus.config.ts` - Main site configuration including URLs, metadata, plugins, and theme settings
34+
- `sidebars.ts` - Defines the documentation navigation structure
35+
- `src/constants.ts` - Centralized URLs and links used across the site
36+
37+
### Documentation Organization
38+
The `/docs` folder follows this structure:
39+
- `getting-started/` - New user onboarding
40+
- `basic-usage/` - Core features and concepts
41+
- `features/` - Detailed feature documentation
42+
- `advanced-usage/` - Power user features and tools
43+
- `providers/` - API provider configurations
44+
- `community/` - Community contributions and resources
45+
- `update-notes/` - Version release notes
46+
47+
### Custom Components
48+
The site uses custom React components for:
49+
- Social media icons and links
50+
- Tutorial video grids
51+
- Animated backgrounds
52+
- GitHub installation buttons
53+
- Custom navbar and footer implementations
54+
55+
### Search Implementation
56+
Uses `@easyops-cn/docusaurus-search-local` for local search functionality with highlighting and explicit result paths.
57+
58+
### Analytics
59+
Integrates PostHog analytics when `POSTHOG_API_KEY` environment variable is set.
60+
61+
### Redirects
62+
Extensive redirect configuration handles moved documentation pages to maintain backwards compatibility with existing links.

docusaurus.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ const config: Config = {
8181
],
8282

8383
plugins: [
84+
// Custom plugin to suppress search plugin warnings
85+
'./plugins/suppress-search-warnings.js',
8486
...(process.env.POSTHOG_API_KEY ? [
8587
[
8688
"posthog-docusaurus",

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"docusaurus": "docusaurus",
77
"start": "node -r dotenv/config node_modules/.bin/docusaurus start",
88
"build": "node -r dotenv/config node_modules/.bin/docusaurus build",
9+
"build:quiet": "NODE_OPTIONS='--no-warnings' node -r dotenv/config node_modules/.bin/docusaurus build",
910
"swizzle": "docusaurus swizzle",
1011
"deploy": "docusaurus deploy",
1112
"clear": "docusaurus clear",

plugins/README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Docusaurus Plugins
2+
3+
This directory contains custom Docusaurus plugins for the Roo Code documentation site.
4+
5+
## suppress-search-warnings.js
6+
7+
This plugin suppresses webpack module resolution warnings that occur with the `@easyops-cn/docusaurus-search-local` plugin in Docusaurus v3.
8+
9+
### Background
10+
11+
The search plugin tries to import modules that don't exist in Docusaurus v3:
12+
- `../../utils/proxiedGenerated`
13+
- `../../utils/proxiedGeneratedConstants`
14+
- `./proxiedGenerated`
15+
16+
These imports were valid in Docusaurus v2 but have been removed in v3, causing harmless but noisy warnings during the build process.
17+
18+
### How it works
19+
20+
The plugin uses multiple strategies to suppress these warnings:
21+
22+
1. **Module aliases**: Sets problematic imports to `false` to prevent resolution
23+
2. **Module replacement**: Uses webpack's `NormalModuleReplacementPlugin` to replace missing modules with an empty module
24+
3. **Warning filters**: Filters out specific warning patterns from webpack's output
25+
4. **Stats configuration**: Configures webpack stats to ignore these warnings
26+
27+
### Usage
28+
29+
The plugin is automatically loaded via `docusaurus.config.ts`. No additional configuration is needed.
30+
31+
### Alternative approaches
32+
33+
If you prefer not to use the plugin, you can:
34+
35+
1. Use the `build:quiet` npm script: `npm run build:quiet`
36+
2. Set NODE_OPTIONS environment variable: `NODE_OPTIONS='--no-warnings' npm run build`
37+
38+
## empty-module.js
39+
40+
A simple empty module used by `suppress-search-warnings.js` as a replacement for missing imports.
41+
42+
## webpack-warning-filter.js (deprecated)
43+
44+
An earlier attempt at filtering warnings. Kept for reference but not currently used.

plugins/empty-module.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Empty module to replace missing proxiedGenerated imports
2+
// This prevents webpack warnings from @easyops-cn/docusaurus-search-local
3+
module.exports = {};
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
module.exports = function (context, options) {
2+
return {
3+
name: 'suppress-search-warnings',
4+
configureWebpack(config, isServer, utils) {
5+
// Override webpack's module resolution to handle missing exports gracefully
6+
const originalResolve = config.resolve || {};
7+
8+
// Create a custom NormalModuleReplacementPlugin to handle the missing modules
9+
const webpack = require('webpack');
10+
11+
return {
12+
resolve: {
13+
...originalResolve,
14+
alias: {
15+
...originalResolve.alias,
16+
// Create aliases for the problematic imports
17+
'../../utils/proxiedGenerated': false,
18+
'../../utils/proxiedGeneratedConstants': false,
19+
'./proxiedGenerated': false,
20+
},
21+
fallback: {
22+
...originalResolve.fallback,
23+
// Provide empty modules for missing imports
24+
'../../utils/proxiedGenerated': false,
25+
'../../utils/proxiedGeneratedConstants': false,
26+
'./proxiedGenerated': false,
27+
},
28+
},
29+
plugins: [
30+
...(config.plugins || []),
31+
// Replace problematic modules with empty modules
32+
new webpack.NormalModuleReplacementPlugin(
33+
/proxiedGenerated/,
34+
(resource) => {
35+
if (resource.context.includes('@easyops-cn/docusaurus-search-local')) {
36+
resource.request = require.resolve('./empty-module.js');
37+
}
38+
}
39+
),
40+
],
41+
ignoreWarnings: [
42+
// Ignore specific warning patterns
43+
/export .* was not found in.*proxiedGenerated/,
44+
/Module not found.*proxiedGenerated/,
45+
/Can't resolve.*proxiedGenerated/,
46+
// Also ignore any warnings from the search plugin
47+
(warning) => {
48+
return warning.message &&
49+
warning.message.includes('proxiedGenerated') &&
50+
warning.message.includes('@easyops-cn/docusaurus-search-local');
51+
},
52+
],
53+
stats: {
54+
warningsFilter: [
55+
/proxiedGenerated/,
56+
/@easyops-cn\/docusaurus-search-local/,
57+
],
58+
},
59+
};
60+
},
61+
};
62+
};

0 commit comments

Comments
 (0)