Mermaid डायग्राम एडिटर - फ़्लोचार्ट और डायग्राम ऑनलाइन बनाएं
Mermaid.js लाइव प्रीव्यू के साथ फ़्लोचार्ट, सीक्वेंस डायग्राम, ER डायग्राम और 20+ डायग्राम प्रकार बनाएं। SVG/PNG के रूप में निर्यात करें — 100% क्लाइंट-साइड, सर्वर पर कोई डेटा नहीं भेजा जाता।
अक्सर पूछे जाने वाले प्रश्न
Mermaid डायग्राम एडिटर क्या है?
Mermaid डायग्राम एडिटर एक ऑनलाइन टूल है जो आपको Mermaid.js, एक टेक्स्ट-आधारित डायग्रामिंग भाषा का उपयोग करके डायग्राम बनाने देता है। आकृतियों को ड्रैग और ड्रॉप करने के बजाय, आप सरल, Markdown जैसी सिंटैक्स (जैसे, graph TD; A-->B) लिखते हैं और एडिटर इसे रियल टाइम में विजुअल डायग्राम के रूप में रेंडर करता है। Mermaid फ्लोचार्ट, सीक्वेंस डायग्राम, क्लास डायग्राम, ER डायग्राम, गैंट चार्ट, माइंडमैप और अन्य सहित 20 से अधिक डायग्राम प्रकारों का समर्थन करता है।
मैं इस Mermaid डायग्राम एडिटर का उपयोग कैसे करूं?
टेम्प्लेट ड्रॉपडाउन से एक डायग्राम टेम्प्लेट चुनें (जैसे, फ्लोचार्ट या सीक्वेंस डायग्राम) या शुरू से Mermaid कोड लिखना शुरू करें। जैसे-जैसे आप टाइप करते हैं, प्रीव्यू पैनल रियल टाइम में अपडेट होता है। यदि कोई सिंटैक्स एरर है, तो लाल 'Invalid' बैज दिखाई देता है। विजुअल स्टाइल बदलने के लिए Mermaid थीम (Default, Dark, Forest, Neutral) चुनें। संतुष्ट होने पर, अपना डायग्राम एक्सपोर्ट करने के लिए SVG डाउनलोड या PNG डाउनलोड पर क्लिक करें।
क्या मेरा डायग्राम डेटा सुरक्षित है? क्या कुछ सर्वर पर भेजा जाता है?
सभी डायग्राम रेंडरिंग mermaid.js JavaScript लाइब्रेरी का उपयोग करके आपके ब्राउज़र में 100% क्लाइंट-साइड पर की जाती है। कोई डायग्राम कोड, कोई रेंडर की गई इमेज, और कोई उपयोगकर्ता डेटा कभी भी किसी सर्वर पर प्रसारित नहीं किया जाता है। आपके डायग्राम केवल आपके ब्राउज़र की मेमोरी और localStorage में मौजूद हैं। यह टूल को प्रोप्राइटरी आर्किटेक्चर डायग्राम, आंतरिक डेटाबेस स्कीमा और गोपनीय दस्तावेज़ीकरण के लिए सुरक्षित बनाता है।
Mermaid किन डायग्राम प्रकारों का समर्थन करता है?
Mermaid.js 20 से अधिक डायग्राम प्रकारों का समर्थन करता है: फ्लोचार्ट (प्रोसेस फ्लो), सीक्वेंस डायग्राम (एक्टर इंटरैक्शन), क्लास डायग्राम (OOP स्ट्रक्चर), स्टेट डायग्राम (स्टेट मशीन), ER डायग्राम (डेटाबेस स्कीमा), गैंट चार्ट (प्रोजेक्ट टाइमलाइन), पाई चार्ट (आनुपातिक डेटा), माइंडमैप (आइडिया हायरार्की), Git ग्राफ (ब्रांचिंग विज़ुअलाइज़ेशन), टाइमलाइन (कालानुक्रमिक घटनाएं), और C4, Sankey, XY चार्ट, कानबान और आर्किटेक्चर डायग्राम सहित कई और।
मैं अपना डायग्राम इमेज के रूप में कैसे एक्सपोर्ट करूं?
SVG डाउनलोड पर क्लिक करें — यह एक स्केलेबल वेक्टर ग्राफ़िक देता है जो किसी भी आकार में स्पष्ट रहता है — दस्तावेज़ीकरण के लिए आदर्श। PNG डाउनलोड पर क्लिक करें रास्टर इमेज के लिए, स्केल (1x, रेटिना के लिए 2x, प्रिंट के लिए 3x) और ट्रांसपेरेंट या सफ़ेद बैकग्राउंड चुनने के विकल्पों के साथ। Figma जैसे डिज़ाइन टूल में पेस्ट करने के लिए SVG मार्कअप को क्लिपबोर्ड पर कॉपी करने के लिए Copy SVG पर भी क्लिक कर सकते हैं।
Mermaid थीम क्या हैं?
Mermaid.js में चार बिल्ट-इन थीम शामिल हैं: Default (नीले/बैंगनी टोन), Dark (प्रेजेंटेशन के लिए डार्क बैकग्राउंड), Forest (हरे टोन, ऑर्गेनिक फील), और Neutral (ग्रेस्केल, प्रोफेशनल)। थीम डायग्राम के भीतर नोड रंग, लाइन स्टाइल और बैकग्राउंड को प्रभावित करता है। ऐप का UI थीम (डार्क/लाइट मोड) Mermaid डायग्राम थीम से स्वतंत्र है।
क्या एडिटर मेरे काम को ऑटो-सेव करता है?
हां। आपका डायग्राम कोड टाइप करते समय स्वचालित रूप से आपके ब्राउज़र के localStorage में सेव हो जाता है। जब आप पेज पर दोबारा आते हैं, तो आपका अंतिम डायग्राम स्वचालित रूप से रिस्टोर हो जाता है। ध्यान दें कि localStorage ब्राउज़र-विशिष्ट है — ब्राउज़र बदलने या ब्राउज़र डेटा साफ़ करने से सेव किया गया डायग्राम हट जाएगा। दीर्घकालिक स्टोरेज के लिए, अपना डायग्राम एक्सपोर्ट करें या शेयर करने योग्य URL कॉपी करें।
कोड उदाहरण
// Mermaid Diagram Rendering and Export in JavaScript (Browser)
/**
* Initialize mermaid.js with configuration
*/
async function initMermaid(theme = 'default') {
const mermaid = await import('https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs');
mermaid.default.initialize({
startOnLoad: false,
theme: theme, // 'default', 'dark', 'forest', 'neutral'
securityLevel: 'strict',
});
return mermaid.default;
}
/**
* Render Mermaid code to SVG string
*/
async function renderMermaid(mermaidInstance, code, elementId = 'mermaid-output') {
try {
const { svg } = await mermaidInstance.render(elementId, code);
return { svg, error: null };
} catch (error) {
return { svg: null, error: error.message };
}
}
/**
* Export SVG string as downloadable .svg file
*/
function downloadSvg(svgContent, filename = 'diagram.svg') {
const blob = new Blob([svgContent], { type: 'image/svg+xml;charset=utf-8' });
const url = URL.createObjectURL(blob);
const anchor = document.createElement('a');
anchor.href = url;
anchor.download = filename;
anchor.click();
URL.revokeObjectURL(url);
}
/**
* Convert SVG to PNG and download
*/
async function downloadPng(svgContent, scale = 2, filename = 'diagram.png') {
return new Promise((resolve, reject) => {
const svgBlob = new Blob([svgContent], { type: 'image/svg+xml;charset=utf-8' });
const url = URL.createObjectURL(svgBlob);
const img = new Image();
img.onload = () => {
const canvas = document.createElement('canvas');
canvas.width = img.naturalWidth * scale;
canvas.height = img.naturalHeight * scale;
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.scale(scale, scale);
ctx.drawImage(img, 0, 0);
canvas.toBlob((blob) => {
const pngUrl = URL.createObjectURL(blob);
const anchor = document.createElement('a');
anchor.href = pngUrl;
anchor.download = filename;
anchor.click();
URL.revokeObjectURL(pngUrl);
URL.revokeObjectURL(url);
resolve();
}, 'image/png');
};
img.onerror = reject;
img.src = url;
});
}
/**
* Encode diagram state for URL sharing
*/
function encodeDiagramState(code, theme) {
const state = JSON.stringify({ code, theme });
return btoa(unescape(encodeURIComponent(state)));
}
function decodeDiagramState(encoded) {
try {
const json = decodeURIComponent(escape(atob(encoded)));
return JSON.parse(json);
} catch {
return null;
}
}
// Example usage
(async () => {
const mermaid = await initMermaid('default');
const code = `
graph TD
A[Start] --> B{Is it working?}
B -->|Yes| C[Great!]
B -->|No| D[Debug]
D --> B
`;
const { svg, error } = await renderMermaid(mermaid, code);
if (error) {
console.error('Render error:', error);
return;
}
console.log('SVG rendered successfully');
// Download as SVG
downloadSvg(svg, 'flowchart.svg');
// Download as PNG at 2x resolution
await downloadPng(svg, 2, 'flowchart.png');
// Create shareable URL
const encoded = encodeDiagramState(code, 'default');
console.log(`Share URL: https://ohmyutils.com/en/mermaid-diagram-editor?state=${encoded}`);
})();