Skip to content

ENG-1590 Migrate existing docs content into Nextra content directories#930

Merged
mdroidian merged 20 commits intomainfrom
eng-1590-migrate-existing-docs-content-into-nextra-content
Apr 7, 2026
Merged

ENG-1590 Migrate existing docs content into Nextra content directories#930
mdroidian merged 20 commits intomainfrom
eng-1590-migrate-existing-docs-content-into-nextra-content

Conversation

@mdroidian
Copy link
Copy Markdown
Member

@mdroidian mdroidian commented Mar 30, 2026


Open with Devin

Summary by CodeRabbit

New Features

  • Added comprehensive Obsidian plugin documentation covering installation, configuration, core features, advanced features, and use cases.
  • Expanded Roam extension documentation with reorganized guides and fundamentals.
  • Enhanced documentation landing page with improved platform selection and navigation.
  • Implemented enhanced search functionality across documentation.

- Introduced a new `docsRouteMap.ts` file to manage documentation sections and redirects for Roam and Obsidian platforms.
- Updated `next.config.ts` to include dynamic redirects based on the new route map.
- Refactored the layout components for documentation pages to utilize a consistent theme layout.
- Removed outdated `page.tsx` files for Roam and Obsidian, replacing them with new landing pages that leverage Nextra for content rendering.
- Added new metadata and content files for various documentation sections, enhancing the overall documentation structure and accessibility.
@linear
Copy link
Copy Markdown

linear bot commented Mar 30, 2026

@mdroidian mdroidian marked this pull request as draft March 30, 2026 21:38
@supabase
Copy link
Copy Markdown

supabase bot commented Mar 30, 2026

This pull request has been ignored for the connected project zytfjzqyijgagqxrzbmz because there are no changes detected in packages/database/supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 5 additional findings.

Open in Devin Review

…ndexing script

- Modified ESLint configuration to include new file patterns and global variables.
- Updated package.json to change the postbuild script to a new documentation indexing script.
- Added a new script for building a search index from documentation markdown files.
- Introduced tests for the new indexing script to ensure correct functionality.
- Replaced the Image component with a span that utilizes an SVG mask for the logo rendering.
- Added a new SVG file for the logo to enhance scalability and styling flexibility.
- Introduced a new `.nextra-reset` class in `nextra-css.css` to set the content width to 90rem, enhancing layout consistency across the website.
- Introduced a new `DocsPageTemplate` component to standardize the layout for documentation pages.
- Updated the Obsidian and Roam documentation page files to utilize the new `DocsPageTemplate`, improving code consistency and maintainability.
- Removed direct usage of `useMDXComponents` in favor of the new template for better structure.
…ncing clarity in node and relation descriptions

- Removed the "Overview" section from multiple documentation files to streamline content.
- Improved formatting and clarity in the node and relation documentation across various files.
- Ensured consistency in the presentation of tag rules and examples in the node-tags documentation.
- Renamed "Relations and patterns" to "Legacy relations patterns" for clarity.
- Removed outdated sections and improved links to the new stored relations documentation.
- Added new files for grammar components, including base grammar, nodes, and operators-relations.
- Introduced a migration guide for transitioning to stored relations, enhancing user experience and clarity.
- Added new custom redirects for Roam documentation to improve navigation.
- Simplified the fundamentals section by removing outdated entries.
- Introduced a utility function for creating redirects, enhancing code maintainability.
…elated documentation for clarity. The "Installation from Roam Depot" entry has been deleted, and the main installation page has been revised for improved readability.
- Removed unnecessary sections and improved formatting across multiple files.
- Standardized headings and titles for better readability.
- Updated related links and streamlined content to enhance user navigation.
- Replaced Next.js Link components with anchor tags for hard navigation to prevent CSS conflicts between marketing and documentation sections.
- Updated global styles to apply marketing-specific styles, enhancing the overall design consistency across the site.
- Removed unused CSS variables related to theming for a cleaner stylesheet.
@mdroidian mdroidian marked this pull request as ready for review April 7, 2026 05:39
devin-ai-integration[bot]

This comment was marked as resolved.

mdroidian and others added 2 commits April 7, 2026 00:10
- Updated CSS to ensure search result links and highlighted text have consistent color in light mode.
- Applied !important to maintain visibility against the background.
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@mdroidian
Copy link
Copy Markdown
Member Author

@coderabbitai full review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 7, 2026

✅ Actions performed

Full review triggered.

devin-ai-integration[bot]

This comment was marked as resolved.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 7, 2026

📝 Walkthrough

Walkthrough

This PR comprehensively migrates the website's documentation system from a custom layout to Nextra, a Next.js documentation framework. It replaces old docs routing with dynamic Nextra-based routes for both Roam and Obsidian, adds extensive organized documentation content across both platforms, introduces custom layout and theme components, updates the Logo component for flexibility, implements custom search indexing, scopes global styling, and restructures the homepage navigation to integrate with the new documentation structure.

Changes

Cohort / File(s) Summary
Nextra Layout & Theme Components
apps/website/app/(docs)/docs/(landing)/layout.tsx, apps/website/app/(docs)/docs/(landing)/page.tsx, apps/website/app/(docs)/docs/_components/DocsPageTemplate.tsx, apps/website/app/(docs)/docs/_components/DocsThemeLayout.tsx, apps/website/app/(docs)/layout.tsx
New landing page and layout structure for docs, with DocsPageTemplate handling MDX rendering and DocsThemeLayout wrapping Nextra theme with platform-specific search scope and navigation configuration.
Documentation Routing — Obsidian
apps/website/app/(docs)/docs/obsidian/[[...mdxPath]]/page.tsx, apps/website/app/(docs)/docs/obsidian/layout.tsx, apps/website/app/(docs)/docs/obsidian/[slug]/page.tsx (removed), apps/website/app/(docs)/docs/obsidian/page.tsx (removed)
Replaced single-slug routing with dynamic catch-all [[...mdxPath]] route for Nextra integration; removed old redirect-based page component; updated layout to async Nextra-driven setup with pageMap fetching and theme styling imports.
Documentation Routing — Roam
apps/website/app/(docs)/docs/roam/[[...mdxPath]]/page.tsx, apps/website/app/(docs)/docs/roam/layout.tsx, apps/website/app/(docs)/docs/roam/[slug]/page.tsx (removed), apps/website/app/(docs)/docs/roam/page.tsx (removed)
Parallel restructuring to Obsidian: dynamic catch-all routing for Nextra, removed old slug-based routes and redirect logic, converted layout to async Nextra pageMap integration.
Documentation Landing & Index
apps/website/app/(docs)/docs/page.tsx (removed), apps/website/content/index.mdx, apps/website/content/_meta.ts
Removed old centralized docs landing page; added new Nextra-based MDX landing with Callout and Cards components; added root content metadata for navigation structure.
Roam Documentation Content
apps/website/content/roam/*, apps/website/content/roam/fundamentals/*, apps/website/content/roam/guides/*, apps/website/content/roam/use-cases/*, apps/website/content/roam/welcome/*
Extensive new Roam documentation section organized by welcome, guides, fundamentals (including grammar subsection), and use cases; includes 50+ new markdown pages and Nextra metadata files defining navigation structure.
Obsidian Documentation Content
apps/website/content/obsidian/*, apps/website/content/obsidian/advanced-features/*, apps/website/content/obsidian/configuration/*, apps/website/content/obsidian/core-features/*, apps/website/content/obsidian/fundamentals/*, apps/website/content/obsidian/use-cases/*, apps/website/content/obsidian/welcome/*
Comprehensive new Obsidian documentation section with welcome, core features (canvas, discourse context, node creation, relationships, tags), configuration, advanced features (sync/import, command palette), fundamentals, and use cases; includes 40+ markdown pages and Nextra metadata files.
Existing Docs Content Updates
apps/website/app/(docs)/docs/obsidian/pages/node-tags.md, apps/website/app/(docs)/docs/roam/pages/...
Minor formatting and content adjustments to existing Roam docs: removed overview sections, adjusted markdown formatting, updated frontmatter title for "Relations and patterns" to "Legacy relations patterns", removed navigation sections.
Component Updates
apps/website/app/components/Logo.tsx
Logo component refactored to accept optional linked and textClassName props; switched from raster image to SVG-based inline markup; added conditional wrapping in next/link based on linked prop.
Styling & CSS
apps/website/app/globals.css, apps/website/app/(home)/layout.tsx, apps/website/app/(nextra)/nextra-css.css
Scoped global anchor styling to .marketing-site class only; removed global CSS variables and body styling; removed stylesheet imports from docs layout; added new Nextra custom CSS with .nextra-reset content-width and light-mode search results styling; added marketing-site class to home layout.
Build & Configuration
apps/website/next.config.ts, apps/website/package.json, apps/website/docsRouteMap.ts, apps/website/scripts/build-docs-search-index.mjs, apps/website/scripts/build-docs-search-index.test.mjs, apps/website/eslint.config.mjs, apps/website/tsconfig.json
Added Nextra contentDirBasePath config; replaced pagefind post-build with custom search indexing script; added DOCS_REDIRECTS configuration from platform-specific route maps; updated ESLint config with .mjs script globals; updated TypeScript include pattern for scripts.
Homepage Updates
apps/website/app/(home)/page.tsx
Replaced Next.js Link components with plain <a> elements for docs navigation (with eslint-disable comments) to enforce hard navigation transitions between marketing and docs sections.
Root Configuration
package.json (root)
Extended Prettier and lint-staged glob patterns to include *.js and *.mjs files alongside existing TypeScript and markdown patterns.

Sequence Diagram(s)

No sequence diagrams generated. The changes are primarily content additions, routing restructuring, and component creation without complex multi-component interactions that would benefit from visualization.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~70 minutes

Possibly related PRs

  • discourse-graph#251 — Directly overlaps with changes to Obsidian docs routing, layout, and page component structure that the main PR now replaces/extends.
  • discourse-graph#73 — Related docs-site foundational work covering similar docs pages, layouts, Roam routing, and component modifications.
  • discourse-graph#241 — Overlaps with ESLint flat config migration and per-app eslint.config.mjs setup changes.

Suggested labels

codex

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main objective: migrating existing docs content into Nextra content directories, which is the primary and most substantive change across the entire changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]

This comment was marked as resolved.

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@mdroidian mdroidian merged commit 813072d into main Apr 7, 2026
6 checks passed
@mdroidian mdroidian deleted the eng-1590-migrate-existing-docs-content-into-nextra-content branch April 7, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant