@ajarallah/matn
v1.3.0
Published
A calm, right-to-left Markdown reader for Arabic: reading themes, embedded Arabic fonts, syntax highlighting, Mermaid diagrams, callouts, wikilinks, search, and live reload. Runs locally in your browser.
Downloads
64
Maintainers
Readme
متن · Matn
قارئ ماركداون للعربية، من اليمين إلى اليسار. سمات للقراءة، خطوط عربية مدمجة، معادلات، مخططات، وتصدير — يعمل في متصفحك دون اتصال.

لماذا متن
كثير من المحرّرات والطرفيات تعرض ماركداون العربي بشكل سيّئ: لا تدعم الاتجاهين، وتقطّع
الحروف، وتخلط أسطر العربي والإنجليزي حتى تنكسر، وإذا بدأ عنوان بكلمة إنجليزية انقلب السطر
كله إلى اليسار. متن يعرض ملف .md في المتصفح مستندا عربيا صحيحا من اليمين إلى اليسار،
مع بقاء الكود والإنجليزية داخله من اليسار إلى اليمين، ضمن تجربة قراءة مريحة للنصوص الطويلة.
المزايا
القراءة
- 🪶 اتجاه عربي صحيح — يتبع المستند لغته الغالبة، فيبقى الملف العربي من اليمين إلى اليسار حتى لو بدأ سطر أو عنوان بكلمة إنجليزية، وتبقى الكلمات الإنجليزية داخل السطر من اليسار إلى اليمين.
- 🎨 أربع سمات — فاتح، وسيبيا، وداكن، وليلي (أسود كامل)؛ يتبع نظامك تلقائيا.
- 🔤 خطوط عربية مدمجة — النظام، ونوتو نسخ، وأميري، وIBM Plex، وتجوّل (كلها برخصة SIL OFL، مدمجة، وتعمل دون اتصال)، وخط ثمانية (Display و Text) اختياري.
- 🔧 تحكّم بالقراءة — الخط، والحجم، وتباعد الأسطر، وعرض العمود، ومحاذاة النص (من اليمين أو ضبط الأسطر)؛ وكل اختيار يُحفظ.
- 🌍 واجهة بلغتين — بدّل الواجهة كاملة بين العربية والإنجليزية.
المحتوى
- 🌈 تلوين الكود حسب السمة (highlight.js).
- 🧮 معادلات —
$…$داخل السطر و$$…$$مستقلة، عبر KaTeX ودون اتصال. - 📊 مخططات Mermaid — داخل النص، وحسب السمة؛ ضع المؤشّر فوقها لتكبيرها.
- 💬 صناديق تنبيه GFM —
> [!NOTE]، و[!TIP]، و[!WARNING]… بشكل مميّز لكل نوع. - 🔗 روابط ويكي وملفات عاملة —
[[صفحة]]والروابط النسبية والأسماء البديلة، مع معاينة وروابط واردة. - ◇ سلامة المستند — تقرير محلي للروابط والصور والعناوين المفقودة، دون فحص الشبكة أو مغادرة مجلد القراءة.
- 📝 حواشٍ، وبطاقة للبيانات الوصفية (YAML)، وقوائم مهام، وجداول، واقتباسات.
- 🖼️ تكبير عند التمرير — كبّر المخططات والصور عند المؤشّر.
التنقّل والملفات
- 🧭 خريطة مستند مصغّرة تتبع العنوان الحالي وتفتح قائمة عناوين كاملة باللمس أو لوحة المفاتيح.
- 🧠 ذاكرة قراءة تستعيد الملف والقسم والموضع، مع مفضلة و«أكمل لاحقًا» وتعليقات لا تغيّر Markdown.
- 🗑️ نقل آمن إلى سلة النظام اختياري، مع تحذير Git والروابط الواردة ودون حذف دائم احتياطي.
- 🗂️ شجرة ملفات — افتح مجلدا لتتصفّح أدلّته متداخلة وقابلة للطي.
- 📖 وضع الكتاب — يقرأ
SUMMARY.mdكترتيب فصول مع السابق والتالي والتقدم الإجمالي، دون بناء أو تعديل الملفات. - 🔎 بحث داخل المستند — اضغط
/للبحث والتنقّل بين النتائج. - ♻️ تحديث فوري — حرّر الملف بأي محرّر، فتتحدّث الصفحة عند الحفظ.
- 🐘 ملفات كبيرة بلا تجميد — تُصيّر الملفات الأكبر من 2MB في Worker وتُحمّل تدريجيًا مع بقاء الواجهة مستجيبة.
- 🖱️ سحب وإفلات لأي
.mdعلى النافذة.
الإخراج
- 📤 تصدير — PDF، أو HTML مستقل، أو Word (
.docx)، أو EPUB 3 (ترتيب صفحات من اليمين)، أو ماركداون. - 🖨️ طباعة بتنسيق نظيف.
الأساس
- 📦 بلا تبعيات تشغيل — Node فقط مع ملفات مدمجة، يعمل دون اتصال ولا يرسل أي بيانات.
- 🔒 محدود النطاق — يرتبط بـ
127.0.0.1، ويعرض فقط من المجلد الذي فتحته، ويعزل HTML الخام، ويمنع الروابط غير الآمنة. - 📄 صيغ Markdown الشائعة — يفتح
.mdو.markdownو.mdownو.mkdnو.mkdو.mdwnو.mdtxtو.mdtextو.rmdو.qmd.
لقطات
| سيبيا · أميري | داكن · تلوين ومعادلات |
|---|---|
|
|
|
| لوحة الإعدادات |
|---|
|
|
التثبيت
npm install -g https://github.com/Ajarallah/matn/archive/refs/heads/main.tar.gz
matn README.mdيحتاج Node.js إصدار 18 فأحدث. لا شيء غيره — بلا تبعيات تشغيل وبلا خطوة بناء.
تشغيل بلا تثبيت:
npx github:Ajarallah/matn README.mdمن المصدر (للتطوير):
git clone https://github.com/Ajarallah/matn.git
cd matn && npm linkاختصار GitHub يجعل npm يستنسخ المستودع بتاريخه كاملا (~35 ميغابايت) ثم يقلّمه إلى ٥ ميغابايت. رابط الأرشيف ينزّل اللقطة وحدها. الاختصار يعمل، لكنه أبطأ بأربعة أضعاف.
إزالة التثبيت:
bash "$(npm root -g)/@ajarallah/matn/scripts/install-macos.sh" --uninstall # على macOS
npm rm -g @ajarallah/matnالاستعمال
matn <file.md> # فتح ملف واحد
matn ./docs # تصفّح مجلد (شجرة ملفات جانبية)
matn # فتح المجلد الحالي
command | matn - # قراءة Markdown من stdin في جلسة مؤقتة
matn PLAN.md -p 5000 # منفذ مختارالخيارات: -p, --port · --host · --no-open · --editor <executable> · --allow-file-actions · --stdin-name <name> · -h, --help · -v, --version.
يفتح متن المتصفح تلقائيا ويعيد استخدام نسخة قائمة، فـmatn a.md ثم matn b.md يفتحان في النافذة نفسها.
داخل المتصفح
- ⚙ لأنماط القراءة المشروحة، واللغة، والسمة، والخط، والحجم، والتباعد، والعرض، والمحاذاة — وكلها محفوظة.
- حدّد أي نص مرة واحدة لتظهر أدوات التمييز، وإضافة الملاحظة، وحفظ المقتطف في المفضلة، ونسخه بصيغة غنية تحافظ على RTL والبنية مع نص احتياطي ورابط المصدر.
- مرّر المؤشر فوق خريطة المستند لرؤية عنوان القسم، وانقر خطه للانتقال إليه، أو افتح زر القائمة لرؤية جميع العناوين.
- بدّل بين العرض المصيّر والمصدر والتقسيم من زر
</>؛ زر¶بجانب العنوان يصل إلى سطر Markdown المقابل. - اسحب أي
.mdإلى النافذة لفتحه. - حفظ ▾ يصدّر PDF أو HTML أو Word أو EPUB أو ماركداون، و🖨️ للطباعة.
- اضغط / للبحث. مفاتيح:
+/−للحجم ·g/Gللأعلى / الأسفل ·Escلإغلاق اللوحة.
فتح .md بنقرة مزدوجة
macOS — اجعل متن القارئ الافتراضي لماركداون بخطوة واحدة:
bash "$(npm root -g)/@ajarallah/matn/scripts/install-macos.sh" --defaultومن مستودع مستنسخ: bash scripts/install-macos.sh --default.
يبني تطبيق Finder صغيرا، ويسجّل الصيغ العشر كلها، ويطالب بنوع Markdown عبر
LaunchServices — بلا حاجة إلى Homebrew أو duti. وإن تعذّر ذلك أرشدك إلى
Get Info ← Open with ← Change All. وللتراجع: --uninstall ينقل التطبيق إلى سلة
النظام ويعيد .md إلى تطبيقك السابق.
Linux — الأمر bash scripts/install-linux.sh --default يضيف مدخل .desktop ويجعل متن معالج text/markdown.
Windows — الأمر matn file.md يعمل من أي طرفية؛ واربط .md من
Open with ← Choose another app بالإشارة إلى matn.
كيف يعمل
متن خادم HTTP محلي صغير (src/server.mjs، بلا تبعيات). يعرض الماركداون عبر
marked، ويعطي كل كتلة نص اتجاه المستند الغالب لضبط
الاتجاهين، ويلوّن الكود عبر highlight.js،
ويعرض المعادلات عبر KaTeX والمخططات عبر Mermaid
(كلاهما يُحمّل عند الحاجة)، ويحدّث الصفحة فوريا عبر SSE. الخطوط والمكتبات مدمجة، فيعمل دون
اتصال ولا يرسل أي بيانات.
الأمان
يرتبط متن تلقائيا بـ 127.0.0.1، ولا يعرض ملفات ماركداون والصور المشار إليها إلا من الملف
أو المجلد الذي فتحته. ويعزل HTML الخام داخل الماركداون، ويمنع الروابط غير الآمنة مثل
javascript:. تجنّب --host 0.0.0.0 إلا إذا أردت عمدا إتاحة القارئ لأجهزة أخرى على شبكتك.
راجع SECURITY.md.
الرخص والاعتمادات
- الكود: MIT — LICENSE.
- الخطوط: SIL OFL 1.1 — أميري، ونوتو نسخ، وIBM Plex، وتجوّل.
- المكتبات: marked (MIT)، وhighlight.js (BSD-3)، وKaTeX (MIT)، وMermaid (MIT)، وmarked-footnote (MIT)، وhtml-docx-js (MIT)، وJSZip (MIT).
الإشعارات الكاملة في NOTICE.
المساهمة
المسائل وطلبات الدمج مرحّب بها. خارطة الطريق: وضع عرض تقديمي، وسمات وأزواج خطوط أكثر. راجع CHANGELOG.
صنعه علي الجار الله. متن — نصّ الكتاب الأساسي.
