feat: Add mermaid diagrams support to documentation

- Added support for rendering mermaid diagrams in documentation.
- Updated Docusaurus configuration to include mermaid theme and enable
  mermaid rendering in markdown files.
- Updated package.json dependencies to use compatible versions.
This commit is contained in:
Mahmoud-Emad
2025-06-16 14:04:10 +03:00
parent fca7c7364a
commit df452ce258
2 changed files with 54 additions and 56 deletions

View File

@@ -1,6 +1,7 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Configuration} from '??docusaurus/types';
import type * as Preset from '??docusaurus/preset-classic';
import { themes as prismThemes } from 'prism-react-renderer';
import type { Configuration } from '@@docusaurus/types';
import type * as Preset from '@@docusaurus/preset-classic';
const config: Configuration = {
title: '@{config.main.title}',
@@ -27,6 +28,11 @@ const config: Configuration = {
// locales: ['en'],
// },
themes: ["@@docusaurus/theme-mermaid"],
markdown: {
mermaid: true,
},
presets: [
[
'classic',
@@ -52,41 +58,41 @@ const config: Configuration = {
items: [
@for item in config.navbar.items
{
label: '@{item.label}',
href: '@{item.href}',
position: '@{item.position}'
},
@end
label: '@{item.label}',
href: '@{item.href}',
position: '@{item.position}'
},
@end
],
},
footer: {
style: '@{config.footer.style}',
links: [
@for link_group in config.footer.links
footer: {
style: '@{config.footer.style}',
links: [
@for link_group in config.footer.links
{
title: '@{link_group.title}',
items: [
@for item in link_group.items
title: '@{link_group.title}',
items: [
@for item in link_group.items
{
label: '@{item.label}',
@if item.href != ''
label: '@{item.label}',
@if item.href != ''
href: '@{item.href}'
@else if item.to != ''
@else if item.to != ''
to: '@{item.to}'
@else
to: '/docs'
@end
},
@end
]
},
@end
],
copyright: '@{config.main.copyright}',
@else
to: '/docs'
@end
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
@end
]
},
@end
],
copyright: '@{config.main.copyright}',
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};

View File

@@ -1,10 +1,10 @@
{
"name": "docs-website",
"version": "0.0.0",
"name": "@{name}",
"version": "0.0.1",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start --no-open",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
@@ -15,27 +15,20 @@
"typecheck": "tsc"
},
"dependencies": {
"@@docusaurus/core": "^3.7.0",
"@@docusaurus/preset-classic": "^3.7.0",
"@@docusaurus/theme-mermaid": "^3.7.0",
"@@docusaurus/core": "^3.1.0",
"@@docusaurus/preset-classic": "^3.1.0",
"@@docusaurus/theme-mermaid": "^3.1.0",
"@@mdx-js/react": "^3.0.0",
"buffer": "^6.0.3",
"chart.js": "^4.4.7",
"clsx": "^2.0.0",
"echarts": "^5.6.0",
"pako": "^2.1.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.2.0",
"react-chartjs-2": "^5.3.0",
"react-dom": "^18.2.0",
"remark-kroki": "^0.3.7",
"zlib": "^1.0.5"
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@@docusaurus/module-type-aliases": "^3.7.0",
"@@docusaurus/tsconfig": "3.5.2",
"@@docusaurus/types": "3.5.2",
"typescript": "~5.5.2"
"@@docusaurus/module-type-aliases": "^3.1.0",
"@@docusaurus/tsconfig": "^3.1.0",
"@@docusaurus/types": "^3.1.0",
"typescript": "^5.2.2"
},
"browserslist": {
"production": [
@@ -44,13 +37,12 @@
"not op_mini all"
],
"development": [
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"engines": {
"bun": ">=1.2.5"
},
"packageManager": "bun@1.2.5"
"node": ">=18.0"
}
}