MDeX v2.2.1 (macOS · Windows · Linux · Tauri v2)
MDeX · उच्चारण "em-dex" (/ˌemˈdɛks/) — अक्षर M के बाद "dex", दो अक्षर।
गोपनीयता और AI सहायता पर केंद्रित एक बहुभाषी Markdown रीडर और एडिटर। हर फ़ाइल स्थानीय रूप से प्रोसेस होती है — डिफ़ॉल्ट रूप से कोई नेटवर्क नहीं, कोई अपलोड नहीं, कोई क्लाउड सिंक नहीं, बिना विज्ञापन, बिना टेलीमेट्री; एटॉमिक (क्रैश-प्रूफ) सेविंग से क्रैश या पावर आउटेज पर डेटा नहीं खोता। v2.0 से, MDeX एक वैकल्पिक AI सहायित संपादन सुविधा भी देता है — और यह पूरी तरह ऑफ़लाइन रह सकता है: कोई स्थानीय मॉडल (जैसे Ollama) इंटरनेट की आवश्यकता नहीं रखता; केवल एक ऑनलाइन AI सेवा (OpenAI / DeepSeek / Anthropic / GLM / Gemini / Kimi आदि) ही अनुरोध भेजती है, वह भी केवल तब जब आप उसे कॉन्फ़िगर कर ट्रिगर करें।
- एक सिंगल सेल्फ़-कंटेन्ड HTML फ्रंटएंड (Vue / React नहीं); Tauri v2 केवल नेटिव शेल (विंडोज़, मेन्यू, फ़ाइल डायलॉग) प्रदान करता है।
- ज़ीरो रनटाइम नेटवर्क रिक्वेस्ट:
marked/KaTeX/highlight.js/DOMPurify/mermaid/jsPDF/html2canvas-pro/turndown/@retorquere/bibtex-parserतथा सभी KaTeX woff2 फ़ॉन्ट एक हीindex.htmlमें इनलाइन / base64-एम्बेड किए गए हैं। .md/.markdown/.htmlसमर्थित; इसे डिफ़ॉल्ट.mdहैंडलर के रूप में सेट किया जा सकता है — खोलने के लिए डबल-क्लिक करें।
🌐 भाषाएँ
इंटरफ़ेस 17 भाषाओं में उपलब्ध है: English, 简体中文, Français, Deutsch, Español, Português, Italiano, Русский, 日本語, 한국어, العربية, हिन्दी, ਪੰਜਾਬੀ, Tiếng Việt, Bahasa Indonesia, اردو, Монгол (Кирилл).
- किसी भी समय टूलबार के भाषा मेन्यू से बदलें; आपकी पसंद सत्रों में याद रखी जाती है।
- अरबी और उर्दू स्वतः दाएं-से-बाएं (RTL) रेंडर होती हैं — बॉडी टेक्स्ट, शीर्षक, सूची मार्कर और पूरा टूलबार दाईं ओर मिरर हो जाता है; एम्बेडेड कोड ब्लॉक, LaTeX गणित, अंग्रेज़ी शब्द और वर्श़न नंबर बाएं-से-दाएं ही रहते हैं, कभी मिरर नहीं होते।
- यह README स्वयं सभी 17 भाषाओं में अनुवादित है — इस पेज के बिल्कुल शीर्ष पर सिलेक्टर का उपयोग करें।
✨ विशेषताएँ
- मल्टी-टैब + मल्टी-विंडो: एक साथ कई फ़ाइलें खोलें; असहेज़े बदलाव
एक बिंदु से चिह्नित होते हैं, और बंद करने से पहले आपसे पूछा जाता है; टैब बंद करने के लिए
मिडिल-क्लिक करें। किसी
.mdको डबल-क्लिक करने से उसकी अपनी विंडो खुलती है (प्रति फ़ाइल एक विंडो); पहले से खुली फ़ाइल को डबल-क्लिक करने पर उसे दोबारा खोलने के बजाय उसी विंडो पर फ़ोकस होता है। - लाइव स्प्लिट प्रीव्यू: रीसाइज़ के लिए डिवाइडर खींचें; टूलबार बटन Split / Editor / Preview के बीच चक्रित होता है।
- क्लिक-टू-पोज़िशन: प्रीव्यू स्क्रॉल करने के लिए एडिटर में क्लिक करें; एडिटर में कर्सर ले जाने के लिए प्रीव्यू में क्लिक करें।
- खोजें और बदलें: ढूंढें, एक या सभी बदलें, मैच काउंट के साथ।
- गणित: इनलाइन
$…$और ब्लॉक$$…$$(साथ ही\(...\),\[...\]), KaTeX द्वारा रेंडर; लंबे समीकरण ऑपरेटरों पर रैप या ऑटो-श्रिंक होते हैं। - कोड हाइलाइटिंग: भाषा ऑटो-डिटेक्ट; बड़े डॉक्स स्मूथ रहने के लिए व्यूपोर्ट द्वारा लेज़ी-हाइलाइट होते हैं।
- Mermaid डायग्राम: एक
```mermaidब्लॉक फ़्लोचार्ट / सीक्वेंस / क्लास / स्टेट / गैंट / पाई आदि के रूप में रेंडर होता है; डायग्राम पर क्लिक करें तो एक स्टैंडअलोन ज़ूम/पैन/फ़ुलस्क्रीन व्यूअर विंडो खुलती है जो संपादन के साथ लाइव अपडेट होती है। - छवियाँ: पेस्ट / ड्रॉप / पिक — दस्तावेज़ के बगल के
<फ़ाइलनाम>_images/फ़ोल्डर में सहेजी जाती हैं, स्वच्छ सापेक्ष संदर्भ के साथ (कोई इनलाइन base64 नहीं); ड्राफ़्ट अस्थायी फ़ोल्डर का उपयोग करते हैं जो सहेजने पर माइग्रेट होता है; «इस रूप में सहेजें» छवियों को लक्ष्य में फ़्लैट करता है; डिफ़ॉल्ट रूप से केंद्रित। - फ़ॉन्ट ज़ूम: एडिटर और प्रीव्यू फ़ॉन्ट को स्वतंत्र रूप से ज़ूम करें
(−/प्रतिशत/+ नियंत्रण, या
⌘/Ctrl + =/−/0); रीस्टार्ट पर बना रहता है। - टेबल: GFM टेबल; संकरी टेबल कंटेंट के अनुसार केंद्रित होती हैं, चौड़ी टेबल बिना क्लिपिंग के क्षैतिज रूप से स्क्रॉल होती हैं।
- उद्धरण (BibTeX):
[@key]/\cite{key}सिंटैक्स, संख्यात्मक शैली; अंत में एक संदर्भ सूची जनरेट की जाती है, इन-टेक्स्ट[n]और एंट्री के बीच द्वि-दिशात्मक जंप के साथ; एक एम्बेडेड```bibtexब्लॉक या अलग से लोड की गई.bibको समर्थन। - HTML समर्थन: रेंडर के लिए
.htmlफ़ाइलें खोलें; HTML और Markdown के बीच कन्वर्ट करें। - थीम / भाषा: डार्क / लाइट, 17 UI भाषाएँ (English, 简体中文, Français, Deutsch, Русский, Italiano, 日本語, 한국어, Español, Português, العربية, हिन्दी, ਪੰਜਾਬੀ, Tiếng Việt, Bahasa Indonesia, اردو, Монгол (Кирилл) — अरबी और उर्दू स्वतः दाएं-से-बाएं)।
- ऑटो-ड्राफ़्ट: कंटेंट समय-समय पर सहेजा जाता है और अप्रत्याशित बंद / क्रैश के बाद रिस्टोर किया जाता है।
- शब्द गणना: स्टेटस बार लाइव अक्षर / पंक्तियाँ / शब्द दिखाता है, साथ ही वर्तमान पंक्ति और कॉलम।
- ड्रैग-एंड-ड्रॉप: खोलने के लिए विंडो पर कोई
.mdफ़ाइल ड्रॉप करें; इंसर्ट करने के लिए कोई छवि ड्रॉप करें। - एक्सपोर्ट: Markdown / HTML / PDF (वेक्टर) / LaTeX के रूप में सहेजें।
- पाठ रंग: टूलबार पैलेट चयन को
<span style="color:…">में लपेटता है। - AI सहायित संपादन: कुछ टेक्स्ट चुनें और
⌘/Ctrl + J(या टूलबार बटन) दबाएं ताकि AI उसे निखारे, विस्तार दे या पुनर्सुर करे; यह ऑनलाइन सेवाओं (OpenAI / DeepSeek / Anthropic / GLM / Gemini / Kimi आदि) और Ollama जैसे स्थानीय मॉडल के साथ पूरी तरह ऑफ़लाइन उपयोग के लिए काम करता है; परिणाम मूल को प्रतिस्थापित करने से पहले पूर्वावलोकन में दिखाया जाता है, और API कुंजी केवल स्थानीय रूप से संग्रहीत होती है। - पीछे / आगे: दस्तावेज़ों व कर्सर स्थितियों का एकीकृत इतिहास; ◀
▶ बटन,
Alt+←/→। - लिंक खोलें: पूर्वावलोकन में लिंक पर क्लिक करने पर लक्ष्य नई टैब में खुलता है (http सिस्टम ब्राउज़र में); मौजूदा दस्तावेज़ नहीं बदलता।
⌨️ शॉर्टकट
macOS पर ⌘, Windows / Linux पर Ctrl का
उपयोग करें।
| शॉर्टकट | क्रिया |
|---|---|
⌘/Ctrl + N |
नया |
⌘/Ctrl + O |
फ़ाइल खोलें |
⌘/Ctrl + S |
सहेजें |
⌘/Ctrl + Shift + S |
इस रूप में सहेजें |
⌘/Ctrl + W |
टैब बंद करें |
⌘/Ctrl + Shift + W |
विंडो बंद करें |
⌘/Ctrl + F |
ढूंढें |
⌘/Ctrl + H |
बदलें |
⌘/Ctrl + B / I / E |
बोल्ड / इटैलिक / इनलाइन कोड |
⌘/Ctrl + K |
लिंक इंसर्ट करें |
Tab |
2 स्पेस इंडेंट |
Alt/Option + ड्रैग |
आयताकार (कॉलम) चयन |
Alt/Option + Shift + ←↑↓→ |
कॉलम चयन विस्तार |
Esc |
कॉलम चयन रद्द करें |
⌘/Ctrl + =/−/0 |
अंतिम-क्लिक किए गए पैन (एडिटर या प्रीव्यू) को ज़ूम करें: बड़ा / छोटा / रीसेट |
⌘/Ctrl + J |
AI सहायित संपादन |
कई विंडो खुली होने पर, शॉर्टकट केवल फ़ोकस्ड विंडो को प्रभावित करते हैं। जब इमेज व्यूअर विंडो खुली हो, तो
⌘/Ctrl + =/−/0इमेज को ज़ूम करता है।
📝 चीट शीट
Markdown: शीर्षक # / ## / ###, बोल्ड
**text**, इटैलिक *text*, स्ट्राइकथ्रू
~~text~~, इनलाइन कोड `code`, कोड ब्लॉक (ट्रिपल
बैकटिक, वैकल्पिक भाषा के साथ), उद्धरण > text, सूचियाँ
- / 1., टास्क सूची - [ ] / - [x], लिंक
[text](url), छवि , डिवाइडर
---, टेबल | A | B |।
गणित: इनलाइन $E = mc^2$; ब्लॉक
$$\int_0^1 x\,dx$$ (कई पंक्तियों में फैल सकता है)। LaTeX सिंटैक्स का
उपयोग, KaTeX द्वारा रेंडर; कोड ब्लॉक के अंदर $ गणित डिलीमीटर के रूप
में नहीं माना जाता। align / aligned, मैट्रिसेस,
cases तथा अन्य सामान्य एनवायरनमेंट को समर्थन।
उद्धरण: टेक्स्ट में [@key] या
[@a; @b] लिखें (LaTeX-संगत \cite{key}), लाइब्रेरी
को एक ```bibtex ब्लॉक के माध्यम से एम्बेड करें या "Refs" बटन से कोई
.bib लोड करें। अंत में एक संदर्भ सूची जनरेट की जाती है; इन-टेक्स्ट
[n] क्लिक करने योग्य है।
📤 एक्सपोर्ट (इस रूप में सहेजें)
"Save As" पर क्लिक करें और कोई फ़ॉर्मैट चुनें:
- Markdown (.md): स्रोत सहेजें और वर्तमान टैब का नाम / पथ अपडेट करें।
- HTML (.html): इनलाइन CSS + कोड हाइलाइटिंग के साथ
सेल्फ़-कंटेन्ड HTML; गणित
$…$लिटरल के रूप में रखा गया, इनलाइन KaTeX द्वारा ऑटो-रेंडर। - PDF वेक्टर: सिस्टम प्रिंट डायलॉग, वेक्टर आउटपुट, किसी भी ज़ूम पर क्रिस्प। "Save as PDF" चुनें।
- LaTeX (.tex): कम्पाइल करने योग्य
.texस्रोत में कन्वर्ट (documentclass और पैकेज के साथ; गणित जैसा-है-वैसा रखा गया)। एक कॉपी एक्सपोर्ट करता है।
🔒 ऑफ़लाइन और सुरक्षा
- ज़ीरो रनटाइम नेटवर्क रिक्वेस्ट। बिल्ड आउटपुट
dist/index.htmlसेल्फ़-चेक किया गया: कोईsrc=/href=/url()/@importएक्सटर्नल लिंक नहीं। - सख्त CSP (केवल स्थानीय IPC, कोई WAN नहीं); सभी फ़ाइलें स्थानीय रूप से पढ़ी/लिखी जाती हैं, कुछ भी अपलोड नहीं होता।
- सत्यापित करें: Wi-Fi बंद करें / केबल निकालें और लॉन्च करें — गणित, छवियाँ, कोड हाइलाइटिंग और Mermaid सभी काम करते हैं।
dist/index.htmlमें अभी भी ~एक दर्जनhttps://github.com/…स्ट्रिंग दिखते हैं; ये सभीmarked/highlight.jsआदि के लाइसेंस / स्रोत टिप्पणियों के अंदर हैं — सादा टेक्स्ट जो कभी रिक्वेस्ट ट्रिगर नहीं करता; ओपन-सोर्स लाइसेंस का सम्मान करने के लिए ज्यों-का-त्यों छोड़ा गया।
📦 इंस्टॉलेशन
प्रीबिल्ट डाउनलोड
अपने प्लेटफ़ॉर्म के लिए इंस्टॉलर किसी भी स्रोत से डाउनलोड करें:
- GitHub Releases: https://github.com/fwzheng/mdex/releases
- मिरर साइट: https://www.spinss.cn/
macOS (.dmg, universal arm64 + x86_64), Windows
(.exe, NSIS installer), Linux (.deb /
.rpm / .AppImage).
macOS पर अनसाइन्ड ऐप खोलना (Gatekeeper बायपास)
यह ऐप डेवलपर-साइन्ड / नोटराइज़्ड नहीं है (ऑफ़लाइन परिदृश्य
आमतौर पर ऑनलाइन नोटराइज़ नहीं कर सकते)। macOS 12+ पर, विशेष रूप से
macOS 26 (Tahoe) पर, इसे सीधे .dmg से — या एक नई कॉपी
किए गए बिल्ड से — लॉन्च करना "MDeX.app is damaged and can't be
opened." के साथ विफल हो जाता है। वह Gatekeeper है, वास्तविक क्षति
नहीं। Terminal में ठीक करें:
- पहले
MDeX.appको.dmgसे बाहर/Applicationsमें खींचें — इसे dmg से सीधे कभी न चलाएं (यह App Translocation औरcom.apple.provenanceएट्रिब्यूट को ट्रिगर करता है, macOS 26 पर "damaged" का वास्तविक कारण)। - एट्रिब्यूट साफ़ करें और पुनः साइन करें:
xattr -cr /Applications/MDeX.app codesign --force --deep --sign - /Applications/MDeX.appcom.apple.provenanceSIP-संरक्षित है औरsudoसे भी हटाया नहीं जा सकता; पुनः साइनिंग सिग्नेचर रीसेट करती है इसलिए Gatekeeper इसे चलने देता है।spctlतब भी एड-हॉक साइनिंग के लिएrejectedरिपोर्ट करता है — अपेक्षित, और यहopenको ब्लॉक नहीं करता। open /Applications/MDeX.appसे लॉन्च करें (या डबल-क्लिक)। पहली बार लॉन्च पर अभी भी एक बार प्रॉम्प्ट हो सकता है — System Settings → Privacy & Security → Open Anyway से पुष्टि करें, या ऐप पर राइट-क्लिक → Open।
🛠️ स्रोत से बिल्ड करें
स्रोत कोड: https://github.com/fwzheng/mdex. बिल्ड निर्देशों के लिए रिपॉजिटरी देखें (सेटअप, निर्भरताएँ और कमांड वहाँ दस्तावेज़ित हैं)।
📁 प्रोजेक्ट संरचना
markdown/
├── app-shell.html # frontend shell (HTML+CSS); app logic lives in src/app.js
├── src/
│ ├── app.js # application logic (// @ts-check; inlined into dist by build-html.mjs)
│ ├── i18n.js # 17-language UI strings (pure data; window.I18N, split from app.js)
│ ├── help.js # help-document data (HELP_STRINGS + SK/sc/CITE_HELP_*, window.HELP_DATA)
│ └── globals.d.ts # vendor / Window type declarations for type-checking
├── tsconfig.json # type-check config (tsc --noEmit; no bundler)
├── tools/
│ ├── fetch-vendor.mjs # one-time: download deps into vendor/ + integrity lock (online only here)
│ ├── build-html.mjs # inline vendor + src/app.js + i18n.js + help.js into dist/index.html (KaTeX fonts → base64)
│ └── test-pure.mjs # frontend pure-function tests (npm test)
├── dist/index.html # build output: self-contained single file (Tauri frontendDist)
├── vendor/ # download cache + integrity.json (.gitignore)
├── package.json # @tauri-apps/cli + typescript(dev) + scripts
└── src-tauri/
├── Cargo.toml # tauri 2 + dialog / single-instance + encoding_rs
├── build.rs # tauri_build::build()
├── tauri.conf.json # 1200×750 window, strict CSP, icons, .md association, menu hooks
├── capabilities/default.json
├── icons/ # full icon set from `cargo tauri icon`
└── src/{main.rs, lib.rs} # menus + file IO + multi-window routing + atomic write / file ownership
🎨 कस्टमाइज़ेशन
| बदलने के लिए | कहाँ |
|---|---|
| ऐप नाम / Bundle ID | src-tauri/tauri.conf.json → productName /
identifier |
| विंडो आकार | tauri.conf.json → app.windows[0] (डिफ़ॉल्ट
1200×750) |
| आइकन | स्रोत छवि बदलें, फिर npm run icon |
| थीम रंग / फ़ॉन्ट | app-shell.html के शीर्ष पर :root CSS
वेरिएबल |
| मेन्यू आइटम | src-tauri/src/lib.rs में build_menu() |
| UI स्ट्रिंग्स / हेल्प डॉक | src/app.js में I18N /
HELP_STRINGS |
| डिपेंडेंसी वर्श़न | tools/fetch-vendor.mjs के शीर्ष पर VERSIONS
(फिर npm run fetch -- --force) |
📄 लाइसेंस
इस प्रोजेक्ट का अपना कोड Apache License 2.0 के अंतर्गत ओपन-सोर्स है।
तृतीय-पक्ष घटक: यह प्रोजेक्ट कुछ तृतीय-पक्ष घटकों (marked, KaTeX, highlight.js, DOMPurify, jsPDF, html2canvas-pro, turndown, mermaid, @retorquere/bibtex-parser तथा Tauri आदि सहित, परंतु इन्हीं तक सीमित नहीं) का उपयोग करता है; इनके कॉपीराइट व लाइसेंस सूचनाएँ संबंधित स्रोत फ़ाइलों में दी गई हैं। ये घटक क्रमशः MIT, BSD-3-Clause, Apache-2.0, MPL-2.0 आदि ओपन-सोर्स लाइसेंस के अंतर्गत हैं।
वितरण आवश्यकताएँ: Apache-2.0 लाइसेंस के अनुसार, इस प्रोजेक्ट को पुनर्वितरित करते समय LICENSE तथा NOTICE फ़ाइलेँ बनाए रखना आवश्यक है; यदि आप किसी स्रोत फ़ाइल को संशोधित करते हैं तो संबंधित फ़ाइल में परिवर्तन स्पष्ट रूप से अंकित करें।
📬 संपर्क
समस्याओं या सुझावों के लिए: 郑法伟 (Fawei Zheng) fwzheng@bit.edu.cn