-
Notifications
You must be signed in to change notification settings - Fork 3k
feat(docs): add initial VitePress documentation setup #7588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
- Add VitePress app structure in apps/rxjs.dev-next - Configure VitePress with basic theme settings - Add package.json with VitePress dev dependencies - Include initial homepage content and logo asset
- Convert HTML homepage to VitePress Markdown format - Add hero section with logo and CTA buttons - Include Version 7 release information - Add description and Code of Conduct sections - Remove empty .gitignore file
- Add custom theme with RxJS brand colors - Create home page with hero section - Restructure to use root directory instead of docs subdirectory - Move logo to public directory
- Copy all guide, deprecation, and reference markdown files to docs/ - Convert relative and JSDoc links to VitePress absolute paths - Move public assets to docs/public/ directory structure - Configure VitePress navigation and sidebar from original site structure - Update image references to use /images/ paths
…neration - Move API explorer page to new site with Vue components for search and filtering - Replace custom markdown generation scripts with TypeDoc plugin system - Add typedoc-plugin-rxjs for custom markdown processing and formatting - Simplify generation pipeline to use TypeDoc directly with plugin hooks - Remove legacy generation utilities (markdown-generator, typedoc-to-markdown) - Update marble diagram generation to use SVG format - Generate comprehensive API documentation for all RxJS modules
- Preserve all function overloads in generated documentation - Convert standalone Param sections to labeled Parameters section - Add Returns section from @returns JSDoc tags - Improve description section formatting with proper structure - Fix table formatting consistency across generated docs
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx compile rxjs |
❌ Failed | 28s | View ↗ |
☁️ Nx Cloud last updated this comment at 2026-01-05 17:14:29 UTC

Currently targeting master. Will backport to 7.x and 6.x manually once settled.
PR Summary: VitePress Documentation Migration
Overview
This PR introduces a partial migration of the RxJS documentation site from Angular to VitePress.
The new documentation site is located in
apps/rxjs.dev-next/and includes automated API documentation generation, marble diagram generation, and a fully redesigned user interface.Context for Rewrite
Degeni is no longer maintained and there is no alternative provided by the ecosystem.
Scope
Key Features
Automated API Documentation Generation
typedoc-plugin-rxjs.mjs) for enhanced formatting:Marble Diagram Generation
@swirlyUI Components
ApiSection.vue: Categorized API explorer with icon-based navigationSearch.vue: Local search functionalityVitePress Configuration
Tooling & Build System
Core Technologies
typedoc-plugin-markdown: Markdown outputtypedoc-vitepress-theme: VitePress theme integration (Sidebar generation)typedoc-plugin-rxjs.mjs: RxJS-specific formattingBuild Scripts
{ "marbles:generate": "tsx tools/marbles/generate-diagrams.ts", "preapi:generate": "npm run marbles:generate", "api:generate": "typedoc && tsx tools/api-generator/index.ts", "dev": "npm run api:generate && vitepress dev", "build": "npm run api:generate && vitepress build", "preview": "vitepress preview" }Build Pipeline
Marble Diagram Generation (
tools/marbles/generate-diagrams.ts).txtspecifications fromtools/marbles/diagrams/@swirly/parser@swirly/renderer-nodedocs/public/images/marble-diagrams/API Documentation Generation (
tools/api-generator/index.ts)packages/rxjs/src/packages/observable/src/docs/api/TypeDoc Plugin (
tools/api-generator/typedoc-plugin-rxjs.mjs)Entry Points
TypeDoc processes the following entry points:
packages/rxjs/src/index.ts(main RxJS API)packages/observable/src/index.ts(Observable utilities)packages/rxjs/src/operators/index.ts(operators)packages/rxjs/src/ajax/index.ts(Ajax module)packages/rxjs/src/fetch/index.ts(Fetch module)packages/rxjs/src/webSocket/index.ts(WebSocket module)packages/rxjs/src/testing/index.ts(testing utilities)File Structure
Key Improvements
Developer Experience
Maintainability
User Experience
Documentation Quality
Dependencies
Major Additions
vitepress: ^1.6.4typedoc: ^0.28.15typedoc-vitepress-theme: ^1.1.2typedoc-plugin-markdown: ^4.9.0@swirly/*: ^0.18.x (marble diagram generation)@nuxt/ui: ^4.3.0 (UI components)shiki: ^1.0.0 (syntax highlighting)svgo: ^3.0.0 (SVG optimization)tsx: ^4.7.0 (TypeScript execution)Migration Notes
Screenshots
Home
Guide Pages
Deprecations Section (with dedicated Sidebar nav, defined in VitePress Config)
API Explorer
With filter + search
Generated API Docs (
fromFetch)Handling overloads was a pain (TypeDoc kinda sucks at this)
Local Search
Team Page
Marble Diagrams
Old pngs work
SVGs (generated, dark + light)