
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
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.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.