Improve docusaurus and mermaid diagrams working

This commit is contained in:
Madhavan Sridharan 2025-10-25 19:31:46 -04:00 committed by Madhavan
parent eefba928fe
commit 052547cac1
6 changed files with 4118 additions and 1150 deletions

View file

@ -17,4 +17,74 @@ OpenRAG builds on Langflow's familiar interface while adding OpenSearch for vect
What's more, every part of the stack is swappable. Write your own custom components in Python, try different language models, and customize your flows to build an agentic RAG system.
Ready to get started? [Install OpenRAG](/install) and then run the [Quickstart](/quickstart) to create a powerful RAG pipeline.
Ready to get started? [Install OpenRAG](/install) and then run the [Quickstart](/quickstart) to create a powerful RAG pipeline.
## OpenRAG architecture
OpenRAG deploys and orchestrates a lightweight, container-based architecture that combines **Langflow**, **OpenSearch**, and **Docling** into a cohesive RAG platform.
```mermaid
%%{init: {'theme': 'dark', 'flowchart': {'useMaxWidth': false, 'width': '100%'}}}%%
flowchart LR
%% Encapsulate the entire diagram in a rectangle with black background
subgraph DiagramContainer["OpenRAG Architecture"]
style DiagramContainer fill:#000000,stroke:#ffffff,color:white,stroke-width:2px
%% Define subgraphs for the different sections
subgraph LocalService["Local Service"]
DoclingSrv[Docling Serve]
style DoclingSrv fill:#a8d1ff,stroke:#0066cc,color:black,stroke-width:2px
end
subgraph Containers
Backend["OpenRAG Backend"]
style Backend fill:#e6ffe6,stroke:#006600,color:black,stroke-width:2px
Langflow
style Langflow fill:#e6ffe6,stroke:#006600,color:black,stroke-width:2px
OpenSearch
style OpenSearch fill:#e6ffe6,stroke:#006600,color:black,stroke-width:2px
Frontend["OpenRAG Frontend"]
style Frontend fill:#ffcc99,stroke:#ff6600,color:black,stroke-width:2px
end
subgraph ThirdParty["Third Party Services"]
OneDrive
style OneDrive fill:#f2e6ff,stroke:#6600cc,color:black,stroke-width:2px
GoogleDrive["Google Drive"]
style GoogleDrive fill:#f2e6ff,stroke:#6600cc,color:black,stroke-width:2px
SharePoint["SharePoint"]
style SharePoint fill:#f2e6ff,stroke:#6600cc,color:black,stroke-width:2px
More[...]
style More fill:#f2e6ff,stroke:#6600cc,color:black,stroke-width:2px
end
%% Define connections
DoclingSrv --> Backend
OneDrive --> Backend
GoogleDrive --> Backend
SharePoint --> Backend
More --> Backend
Backend --> Langflow
Langflow <--> OpenSearch
Backend <--> Frontend
%% Style subgraphs
style LocalService fill:#333333,stroke:#666666,color:white,stroke-width:2px
style Containers fill:#444444,stroke:#666666,color:white,stroke-width:2px
style ThirdParty fill:#333333,stroke:#666666,color:white,stroke-width:2px
end
%% Ensure Backend and Frontend are on the same level and have enough width for text
classDef sameLevel width:180px
class Backend,Frontend sameLevel
```
The **OpenRAG Backend** is the central orchestration service that coordinates all other components.
**Langflow** provides a visual workflow engine for building AI agents, and connects to **OpenSearch** for vector storage and retrieval.
**Docling Serve** is a local document processing service managed by the **OpenRAG Backend**.
**Third Party Services** like **Google Drive** connect to the **OpenRAG Backend** through OAuth authentication, allowing synchronication of cloud storage with the OpenSearch knowledge base.
The **OpenRAG Frontend** provides the user interface for interacting with the system.

View file

@ -34,7 +34,12 @@ const config = {
projectName: 'openrag', // Usually your repo name.
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
markdown: {
mermaid: true,
hooks: {
onBrokenMarkdownLinks: 'warn',
},
},
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
@ -76,6 +81,8 @@ const config = {
plugins: [require.resolve('docusaurus-plugin-image-zoom')],
themes: ['@docusaurus/theme-mermaid'],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
@ -118,6 +125,17 @@ const config = {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
mermaid: {
theme: {light: 'neutral', dark: 'forest'},
options: {
maxTextSize: 50000,
fontSize: 18,
fontFamily: 'Arial, sans-serif',
useMaxWidth: false,
width: '100%',
height: 'auto',
},
},
zoom: {
selector: '.markdown img',
background: {

2889
docs/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -16,8 +16,9 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "3.8.1",
"@docusaurus/preset-classic": "3.8.1",
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
"@docusaurus/theme-mermaid": "3.9.2",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"docusaurus-plugin-image-zoom": "^3.0.1",
@ -27,9 +28,9 @@
"react-dom": "^19.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.8.1",
"@docusaurus/tsconfig": "3.8.1",
"@docusaurus/types": "3.8.1",
"@docusaurus/module-type-aliases": "3.9.2",
"@docusaurus/tsconfig": "3.9.2",
"@docusaurus/types": "3.9.2",
"typescript": "~5.6.2"
},
"browserslist": {

View file

@ -142,3 +142,70 @@
display: inline-block;
vertical-align: middle;
}
/* Mermaid Diagram Styling - Force proper sizing */
.mermaid {
text-align: center;
margin: 2rem 0;
width: 100% !important;
min-height: 400px !important;
display: block !important;
}
.mermaid svg {
width: 100% !important;
min-width: 800px !important;
min-height: 400px !important;
height: auto !important;
display: block !important;
margin: 0 auto !important;
transform: scale(1) !important;
}
/* Override any potential conflicts */
.markdown .mermaid {
width: 100% !important;
min-height: 400px !important;
}
.markdown .mermaid svg {
width: 100% !important;
min-width: 800px !important;
min-height: 400px !important;
transform: none !important;
}
/* Target the specific Mermaid container */
div[class*="mermaid"] {
width: 100% !important;
min-height: 400px !important;
}
div[class*="mermaid"] svg {
width: 100% !important;
min-width: 800px !important;
min-height: 400px !important;
}
/* Additional aggressive targeting for Mermaid sizing */
.mermaid,
.mermaid > *,
.mermaid svg,
.mermaid div,
.mermaid div svg {
width: 100% !important;
min-width: 800px !important;
min-height: 400px !important;
max-width: none !important;
display: block !important;
transform: none !important;
scale: 1 !important;
}
/* Force Mermaid to not be constrained */
.mermaid svg {
viewBox: unset !important;
width: 100% !important;
min-width: 800px !important;
min-height: 400px !important;
}

File diff suppressed because it is too large Load diff