spinss

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 ਆਦਿ) ਬੇਨਤੀ ਭੇਜਦੀ ਹੈ, ਅਤੇ ਉਹ ਵੀ ਸਿਰਫ਼ ਜਦੋਂ ਤੁਸੀਂ ਇਸਨੂੰ ਸੈੱਟ ਕਰਕੇ ਚਲਾਉਂਦੇ ਹੋ।


🌐 Languages

ਇੰਟਰਫੇਸ 17 ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਆਉਂਦਾ ਹੈ: English, 简体中文, Français, Deutsch, Español, Português, Italiano, Русский, 日本語, 한국어, العربية, हिन्दी, ਪੰਜਾਬੀ, Tiếng Việt, Bahasa Indonesia, اردو, Монгол (Кирилл)।


✨ Features


⌨️ Shortcuts

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 + drag ਆਇਤਾਕਾਰ (ਕਾਲਮ) ਚੋਣ
Alt/Option + Shift + ←↑↓→ ਕਾਲਮ ਚੋਣ ਵਧਾਓ
Esc ਕਾਲਮ ਚੋਣ ਰੱਦ ਕਰੋ
⌘/Ctrl + =/−/0 ਆਖਰੀ-ਕਲਿੱਕ ਕੀਤੇ ਪੇਨ (ਐਡੀਟਰ ਜਾਂ ਪ੍ਰੀਵਿਊ) ਨੂੰ ਜ਼ੂਮ ਕਰੋ: ਵੱਡਾ / ਛੋਟਾ / ਰੀਸੈਟ
⌘/Ctrl + J AI ਸਹਾਇਤਾ ਸੰਪਾਦਨ

ਕਈ ਵਿੰਡੋਜ਼ ਖੁੱਲ੍ਹੀਆਂ ਹੋਣ 'ਤੇ, ਸ਼ਾਰਟਕੱਟ ਸਿਰਫ਼ ਫੋਕਸਡ ਵਿੰਡੋ 'ਤੇ ਅਸਰ ਕਰਦੇ ਹਨ। ਜਦੋਂ ਚਿੱਤ੍ਰ ਵਿਊਅਰ ਵਿੰਡੋ ਖੁੱਲ੍ਹੀ ਹੋਵੇ, ਤਾਂ ⌘/Ctrl + =/−/0 ਚਿੱਤ੍ਰ ਨੂੰ ਜ਼ੂਮ ਕਰਦਾ ਹੈ।


📝 Cheat sheet

Markdown: ਸਿਰਲੇਖ # / ## / ###, ਬੋਲਡ **text**, ਇਟੈਲਿਕ *text*, ਸਟ੍ਰਾਈਕਥ੍ਰੂ ~~text~~, ਇਨਲਾਈਨ ਕੋਡ `code`, ਕੋਡ ਬਲਾਕ (ਤਿੰਨ backticks, ਵਿਕਲਪਿਕ ਭਾਸ਼ਾ ਸਹਿਤ), ਹਵਾਲਾ > text, ਸੂਚੀਆਂ - / 1., ਟਾਸਕ ਸੂਚੀ - [ ] / - [x], ਲਿੰਕ [text](url), ਚਿੱਤ੍ਰ ![alt](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] ਕਲਿੱਕ-ਯੋਗ ਹੈ।


📤 Export (Save As)

"Save As" 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਫਾਰਮੈਟ ਚੁਣੋ:


🔒 Offline & security


📦 Installation

Prebuilt downloads

ਆਪਣੇ ਪਲੇਟਫਾਰਮ ਲਈ ਇੰਸਟਾਲਰ ਕਿਸੇ ਵੀ ਸਰੋਤ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ:

macOS (.dmg, universal arm64 + x86_64), Windows (.exe, NSIS installer), Linux (.deb / .rpm / .AppImage).

Opening the unsigned app on macOS (bypass Gatekeeper)

ਇਹ ਐਪ ਡਿਵੈਲਪਰ-ਸਾਈਨ / ਨੋਟਰਾਈਜ਼ਡ ਨਹੀਂ ਹੈ (ਆਫਲਾਈਨ ਦ੍ਰਿਸ਼ ਆਮ ਤੌਰ 'ਤੇ ਆਨਲਾਈਨ ਨੋਟਰਾਈਜ਼ ਨਹੀਂ ਕਰ ਸਕਦੇ)। macOS 12+ 'ਤੇ, ਖਾਸ ਕਰਕੇ macOS 26 (Tahoe), ਇਸਨੂੰ ਸਿੱਧਾ .dmg ਤੋਂ — ਜਾਂ ਤਾਜ਼ੀ ਕਾਪੀ ਕੀਤੇ ਬਿਲਡ ਤੋਂ — ਲਾਂਚ ਕਰਨ 'ਤੇ "MDeX.app is damaged and can't be opened." ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ। ਇਹ Gatekeeper ਹੈ, ਅਸਲ ਨੁਕਸਾਨ ਨਹੀਂ। Terminal ਵਿੱਚ ਠੀਕ ਕਰੋ:

  1. ਪਹਿਲਾਂ MDeX.app ਨੂੰ .dmg ਤੋਂ ਬਾਹਰ ਕੱਢ ਕੇ /Applications ਵਿੱਚ ਖਿੱਚੋ — ਇਸਨੂੰ dmg ਤੋਂ ਸਿੱਧਾ ਕਦੇ ਨਾ ਚਲਾਓ (ਇਹ App Translocation ਤੇ com.apple.provenance ਐਟ੍ਰੀਬਿਊਟ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ, macOS 26 'ਤੇ "damaged" ਦਾ ਅਸਲ ਕਾਰਨ)।
  2. ਐਟ੍ਰੀਬਿਊਟ ਸਾਫ਼ ਕਰੋ ਤੇ ਮੁੜ-ਸਾਈਨ:
    xattr -cr /Applications/MDeX.app
    codesign --force --deep --sign - /Applications/MDeX.app

    com.apple.provenance SIP-ਸੁਰੱਖਿਅਤ ਹੈ ਤੇ sudo ਨਾਲ ਵੀ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ; ਮੁੜ-ਸਾਈਨਿੰਗ ਦਸਤਖ਼ਤ ਰੀਸੈਟ ਕਰਦੀ ਹੈ ਤਾਂ ਜੋ Gatekeeper ਇਸਨੂੰ ਚੱਲਣ ਦੇਵੇ। spctl ਅਜੇ ਵੀ ad-hoc ਸਾਈਨਿੰਗ ਲਈ rejected ਦੱਸਦਾ ਹੈ — ਉਮੀਦ-ਮੁਤਾਬਕ, ਤੇ ਇਹ open ਨੂੰ ਰੋਕਦਾ ਨਹੀਂ

  3. open /Applications/MDeX.app ਨਾਲ ਲਾਂਚ ਕਰੋ (ਜਾਂ ਡਬਲ-ਕਲਿੱਕ)। ਪਹਿਲੀ ਲਾਂਚ ਇੱਕ ਵਾਰ ਪੁੱਛ ਸਕਦੀ ਹੈ — System Settings → Privacy & Security → Open Anyway ਰਾਹੀਂ ਤਸਦੀਕ ਕਰੋ, ਜਾਂ ਐਪ 'ਤੇ ਸੱਜਾ-ਕਲਿੱਕ → Open

🛠️ ਸਰੋਤ ਤੋਂ ਬਿਲਡ

ਸਰੋਤ ਕੋਡ: https://github.com/fwzheng/mdex. ਬਿਲਡ ਹਦਾਇਤਾਂ ਲਈ ਰਿਪੋਜ਼ਟਰੀ ਵੇਖੋ (ਸੈਟਅੱਪ, ਨਿਰਭਰਤਾ ਤੇ ਕਮਾਂਡਾਂ ਉੱਥੇ ਦਸਤਾਵੇਜ਼ਿਤ ਹਨ)।


📁 Project structure

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

🎨 Customization

ਬਦਲਣ ਲਈ ਕਿੱਥੇ
ਐਪ ਨਾਮ / Bundle ID src-tauri/tauri.conf.jsonproductName / identifier
ਵਿੰਡੋ ਸਾਈਜ਼ tauri.conf.jsonapp.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)

📄 License

ਇਸ ਪ੍ਰੋਜੈਕਟ ਦਾ ਆਪਣਾ ਕੋਡ 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 ਫ਼ਾਈਲਾਂ ਬਰਕਰਾਰ ਰੱਖਣੀਆਂ ਲਾਜ਼ਮੀ ਹਨ; ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਸ੍ਰੋਤ ਫ਼ਾਈਲ ਨੂੰ ਸੋਧਦੇ ਹੋ ਤਾਂ ਸੰਬੰਧਿਤ ਫ਼ਾਈਲ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਸਪੱਸ਼ਟ ਦਰਸਾਓ।


📬 Contact

ਸਮੱਸਿਆਵਾਂ ਜਾਂ ਸੁਝਾਅ ਲਈ: 郑法伟 (Fawei Zheng) fwzheng@bit.edu.cn