
Product
Announcing Precomputed Reachability Analysis in Socket
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
A command-line interface and Python library for mermaid, which allows you to generate diagrams and flowcharts from text.
This code has been ported to Python from the following library: https://github.com/mermaid-js/mermaid-cli
pip install mermaid-cli
After installation, you need to install the Playwright browsers:
playwright install chromium
# Simple diagram rendering
mmdc -i input.mmd -o output.svg
# Markdown file with mermaid diagrams
mmdc -i input.md -o output.md
# Customize output
mmdc -i input.mmd -o output.png -t dark -b transparent -w 1024 -H 768
import asyncio
from mermaid_cli import render_mermaid, render_mermaid_file
# Render a diagram directly
async def render_diagram():
definition = """
graph TD
A[Start] --> B{Is it?}
B -->|Yes| C[OK]
C --> D[Rethink]
D --> B
B ---->|No| E[End]
"""
title, desc, svg_data = await render_mermaid(
definition,
output_format="svg",
background_color="white",
mermaid_config={"theme": "forest"}
)
with open("output.svg", "wb") as f:
f.write(svg_data)
# Render from a file
async def render_file():
await render_mermaid_file(
input_file="input.mmd",
output_file="output.svg",
output_format="svg",
mermaid_config={"theme": "dark"}
)
# Run the async functions
asyncio.run(render_diagram())
asyncio.run(render_file())
# Or use the synchronous wrapper
from mermaid_cli import render_mermaid_file_sync
render_mermaid_file_sync(
input_file="input.mmd",
output_file="output.png",
output_format="png"
)
Option | Description |
---|---|
-t, --theme [theme] | Theme of the chart (default, forest, dark, neutral) |
-w, --width [width] | Width of the page |
-H, --height [height] | Height of the page |
-i, --input <input> | Input mermaid file or markdown with mermaid code blocks |
-o, --output [output] | Output file (svg, png, pdf, or md) |
-e, --output-format [format] | Output format (svg, png, pdf) |
-b, --background-color [color] | Background color (e.g., transparent, white, #F0F0F0) |
-c, --config-file [file] | JSON configuration file for mermaid |
-C, --css-file [file] | CSS file for styling the output |
-I, --svg-id [id] | ID attribute for the SVG element |
-s, --scale [scale] | Browser scale factor |
-f, --pdf-fit | Scale PDF to fit chart |
-q, --quiet | Suppress log output |
-p, --puppeteer-config-file [file] | JSON configuration file for browser options |
--icon-packs <icons...> | Icon packs to use (e.g., @iconify-json/logos) |
async def render_mermaid(
definition: str,
output_format: str = "svg",
viewport: Dict[str, int] = None,
background_color: str = "white",
mermaid_config: Dict[str, Any] = None,
css: str = None,
pdf_fit: bool = False,
svg_id: str = None,
icon_packs: List[str] = None,
puppeteer_config: Dict[str, Any] = None,
) -> Tuple[Optional[str], Optional[str], bytes]
Renders a Mermaid diagram definition to the specified format.
Parameters:
definition
: Mermaid diagram definition stringoutput_format
: Output format (svg, png, pdf)viewport
: Viewport dimensions (width, height, deviceScaleFactor)background_color
: Background colormermaid_config
: Mermaid configuration dictionarycss
: Custom CSS stringpdf_fit
: Scale PDF to fit chartsvg_id
: ID attribute for the SVG elementicon_packs
: List of icon packages to usepuppeteer_config
: Browser configuration dictionaryReturns: A tuple of (title, description, data) where data is the binary content of the rendered diagram.
async def render_mermaid_file(
input_file: Optional[str],
output_file: str,
output_format: Optional[str] = None,
puppeteer_config: Dict[str, Any] = None,
quiet: bool = False,
**kwargs
) -> None
Renders a Mermaid diagram from a file or processes a Markdown file with embedded Mermaid diagrams.
Parameters:
input_file
: Path to input file or None for stdinoutput_file
: Path to output fileoutput_format
: Output format (svg, png, pdf)puppeteer_config
: Browser configuration dictionaryquiet
: Suppress log output**kwargs
: Additional options for render_mermaiddef render_mermaid_file_sync(
input_file: Optional[str],
output_file: str,
output_format: Optional[str] = None,
**kwargs
) -> None
Synchronous wrapper for render_mermaid_file.
graph TD
A[Start] --> B{Is it?}
B -->|Yes| C[OK]
C --> D[Rethink]
D --> B
B ---->|No| E[End]
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts prevail!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
MIT
FAQs
Command-line interface and Python library for mermaid diagrams
We found that mermaid-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.