mermaid-rendering / README.md
liaoch's picture
Improve error reporting, add dependency version info to status, and update README with local testing instructions
4c91160
---
title: Mermaid Diagram Renderer
emoji: πŸ§œβ€β™€οΈ
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 5.34.2
app_file: app.py
pinned: false
---
# πŸ§œβ€β™€οΈ Mermaid Diagram Renderer
A simple web application for rendering [Mermaid](https://mermaid.js.org/) diagrams using Gradio, designed for deployment on Hugging Face Spaces.
## Features
- Web-based interface for entering Mermaid code
- Multiple output formats: PNG, SVG, PDF
- Theme selection: Default, Forest, Dark, Neutral
- Easy file download of generated diagrams
- Built with Gradio for seamless Hugging Face Spaces deployment
## Deploy to Hugging Face Spaces
1. **Create a new Space** on [Hugging Face Spaces](https://huggingface.co/spaces)
2. **Choose SDK**: Select "Gradio"
3. **Upload files**: Copy these files to your Space:
- `app.py`
- `mermaid_renderer.py`
- `requirements.txt`
4. **Your Space will automatically build and deploy!**
The app will be available at `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME`
## Local Development
```bash
# Install dependencies
pip install -r requirements.txt
# Install Node.js and mermaid-cli
npm install -g @mermaid-js/mermaid-cli
# Run the app
python app.py
```
## Dependencies
- **Python**: Gradio for the web interface
- **Node.js**: Required for @mermaid-js/mermaid-cli
- **mermaid-cli**: Handles the actual diagram rendering
*Note: Hugging Face Spaces handles Node.js and mermaid-cli installation automatically.*
---
## Local Testing
To test this project locally before deploying or pushing to Hugging Face Spaces, follow these steps:
1. **Create and activate a Python virtual environment**
On macOS/Linux:
```bash
python3 -m venv venv
source venv/bin/activate
```
On Windows:
```cmd
python -m venv venv
venv\Scripts\activate
```
2. **Upgrade pip (recommended)**
```bash
pip install --upgrade pip
```
3. **Install Python dependencies**
```bash
pip install -r requirements.txt
```
4. **Ensure Node.js is installed**
```bash
node --version
```
If not installed, download from [nodejs.org](https://nodejs.org/).
5. **Ensure @mermaid-js/mermaid-cli is installed globally**
```bash
npm install -g @mermaid-js/mermaid-cli@9.0.0
```
6. **Run the Gradio app**
```bash
python app.py
```
Gradio will print a local URL (e.g., http://127.0.0.1:7860/) in the terminal.
7. **Open the app in your browser**
Visit the local URL to interact with and test the interface.
When finished, you can deactivate the virtual environment with:
```bash
deactivate
```
**Note:**
If you accidentally added the `venv` folder to git, remove it from tracking with:
```bash
git rm -r --cached venv
git commit -m "Stop tracking venv directory"
```