markpdfdown 0.1.3 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +144 -0
- package/README.fa.md +144 -0
- package/README.ja.md +140 -0
- package/README.md +14 -2
- package/README.ru.md +140 -0
- package/README.zh-CN.md +140 -0
- package/bin/cli.js +31 -5
- package/dist/main/index.js +2 -2
- package/dist/preload/index.js +2 -1
- package/dist/renderer/assets/{index-DeDe7lry.js → index-C9Uc3AS4.js} +178 -82
- package/dist/renderer/index.html +1 -1
- package/package.json +7 -4
package/README.ar.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<div dir="rtl">
|
|
2
|
+
|
|
3
|
+
# MarkPDFdown
|
|
4
|
+
|
|
5
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Русский](./README.ru.md) | [العربية](./README.ar.md) | [فارسی](./README.fa.md)
|
|
6
|
+
|
|
7
|
+
تطبيق سطح مكتب يقوم بتحويل مستندات PDF إلى تنسيق Markdown باستخدام التعرف البصري لنماذج اللغة الكبيرة (LLM).
|
|
8
|
+
|
|
9
|
+
## المميزات
|
|
10
|
+
|
|
11
|
+
- **دعم نماذج LLM متعددة**: OpenAI وAnthropic Claude وGoogle Gemini وOllama (نماذج محلية) وOpenAI Responses API
|
|
12
|
+
- **تحويل عالي الجودة**: يستفيد من قدرات الرؤية في LLM لتحويل دقيق من PDF إلى Markdown
|
|
13
|
+
- **معاينة جنبًا إلى جنب**: عرض صفحات PDF الأصلية بجانب Markdown المُنشأ
|
|
14
|
+
- **دعم الرياضيات والأكواد**: دعم كامل لمعادلات LaTeX (KaTeX) وكتل الأكواد مع تمييز بناء الجملة
|
|
15
|
+
- **واجهة متعددة اللغات**: الإنجليزية والصينية واليابانية والروسية والعربية والفارسية
|
|
16
|
+
- **المعالجة المتوازية**: مثيلات عمل قابلة للتكوين لتحويل أسرع
|
|
17
|
+
- **تتبع التقدم**: تحديثات الحالة في الوقت الفعلي ودعم إعادة المحاولة لكل صفحة
|
|
18
|
+
- **التخزين المحلي**: قاعدة بيانات SQLite لحفظ المهام
|
|
19
|
+
|
|
20
|
+
## لقطات الشاشة
|
|
21
|
+
|
|
22
|
+
<img width="1264" height="848" alt="1769311168213_download" src="https://github.com/user-attachments/assets/15b5a801-6729-492a-a979-1fc4dba6853a" />
|
|
23
|
+
|
|
24
|
+
## التثبيت
|
|
25
|
+
|
|
26
|
+
### البدء السريع (موصى به)
|
|
27
|
+
|
|
28
|
+
التشغيل مباشرة باستخدام npx (يتطلب Node.js 18+):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx -y markpdfdown
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### تحميل المثبت
|
|
35
|
+
|
|
36
|
+
قم بتحميل أحدث إصدار لمنصتك من صفحة [Releases](https://github.com/MarkPDFdown/markpdfdown-desktop/releases):
|
|
37
|
+
|
|
38
|
+
- **Windows**: `MarkPDFdown-{version}-x64.exe`
|
|
39
|
+
- **macOS**: `MarkPDFdown-{version}-arm64.dmg` / `MarkPDFdown-{version}-x64.dmg`
|
|
40
|
+
- **Linux**: `MarkPDFdown-{version}-x86_64.AppImage`
|
|
41
|
+
|
|
42
|
+
## الاستخدام
|
|
43
|
+
|
|
44
|
+
1. **تكوين المزود**: انتقل إلى الإعدادات وأضف بيانات اعتماد مزود LLM (مفتاح API، عنوان URL الأساسي)
|
|
45
|
+
2. **إضافة النموذج**: قم بتكوين النموذج الذي تريد استخدامه للتحويل
|
|
46
|
+
3. **رفع PDF**: اسحب وأفلت أو انقر لاختيار ملف PDF
|
|
47
|
+
4. **اختيار النموذج**: اختر نموذج LLM للتحويل
|
|
48
|
+
5. **التحويل**: ابدأ عملية التحويل
|
|
49
|
+
6. **المعاينة**: عرض النتائج صفحة بصفحة مع المقارنة جنبًا إلى جنب
|
|
50
|
+
7. **التحميل**: تصدير ملف Markdown المدمج
|
|
51
|
+
|
|
52
|
+
## التطوير
|
|
53
|
+
|
|
54
|
+
### المتطلبات الأساسية
|
|
55
|
+
|
|
56
|
+
- Node.js 18+
|
|
57
|
+
- npm 8+
|
|
58
|
+
|
|
59
|
+
### الإعداد
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# تثبيت التبعيات
|
|
63
|
+
npm install
|
|
64
|
+
|
|
65
|
+
# إنشاء عميل Prisma
|
|
66
|
+
npm run generate
|
|
67
|
+
|
|
68
|
+
# تشغيل ترحيلات قاعدة البيانات
|
|
69
|
+
npm run migrate:dev
|
|
70
|
+
|
|
71
|
+
# تشغيل خادم التطوير
|
|
72
|
+
npm run dev
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### البناء
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# بناء الإنتاج
|
|
79
|
+
npm run build
|
|
80
|
+
|
|
81
|
+
# مثبتات خاصة بالمنصة
|
|
82
|
+
npm run build:win # مثبت Windows NSIS
|
|
83
|
+
npm run build:mac # macOS DMG
|
|
84
|
+
npm run build:linux # Linux AppImage
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### الاختبار
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm test # تشغيل جميع الاختبارات
|
|
91
|
+
npm run test:unit # اختبارات الوحدة فقط
|
|
92
|
+
npm run test:renderer # اختبارات المكونات فقط
|
|
93
|
+
npm run test:coverage # إنشاء تقرير التغطية
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### هيكل المشروع
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
src/
|
|
100
|
+
├── main/ # العملية الرئيسية لـ Electron
|
|
101
|
+
│ ├── index.ts # نقطة الدخول، إنشاء النافذة، إعداد IPC
|
|
102
|
+
│ └── ipc/ # معالجات IPC
|
|
103
|
+
├── preload/ # سكربتات التحميل المسبق (window.api)
|
|
104
|
+
├── renderer/ # واجهة React الأمامية
|
|
105
|
+
│ ├── components/ # مكونات واجهة المستخدم
|
|
106
|
+
│ ├── pages/ # صفحات المسارات
|
|
107
|
+
│ └── locales/ # ترجمات i18n
|
|
108
|
+
├── core/ # منطق الأعمال (العمارة النظيفة)
|
|
109
|
+
│ ├── infrastructure/ # قاعدة البيانات، الخدمات الخارجية
|
|
110
|
+
│ ├── application/ # العمال، التنسيق
|
|
111
|
+
│ ├── domain/ # الواجهات، أنواع المجال
|
|
112
|
+
│ └── shared/ # ناقل الأحداث، الأدوات المساعدة
|
|
113
|
+
└── shared/ # الأنواع المشتركة بين main/renderer
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## المكدس التقني
|
|
117
|
+
|
|
118
|
+
- **الإطار**: Electron 35 + React 18 + TypeScript
|
|
119
|
+
- **أداة البناء**: Vite 6
|
|
120
|
+
- **واجهة المستخدم**: Ant Design 5
|
|
121
|
+
- **قاعدة البيانات**: Prisma ORM + SQLite
|
|
122
|
+
- **معالجة PDF**: pdf-lib، pdf-to-png-converter، Sharp
|
|
123
|
+
- **Markdown**: react-markdown، remark-gfm، remark-math، rehype-katex، rehype-prism-plus
|
|
124
|
+
- **الاختبار**: Vitest + Testing Library
|
|
125
|
+
|
|
126
|
+
## مزودو LLM المدعومون
|
|
127
|
+
|
|
128
|
+
| المزود | النماذج | ملاحظات |
|
|
129
|
+
|--------|---------|---------|
|
|
130
|
+
| OpenAI | GPT-4o، GPT-4-turbo، إلخ. | يتطلب مفتاح API |
|
|
131
|
+
| Anthropic | Claude 3.5، Claude 3، إلخ. | يتطلب مفتاح API |
|
|
132
|
+
| Google Gemini | Gemini Pro، Gemini Flash، إلخ. | يتطلب مفتاح API |
|
|
133
|
+
| Ollama | LLaVA، Llama 3.2 Vision، إلخ. | محلي، لا يحتاج مفتاح API |
|
|
134
|
+
| OpenAI Responses | أي نموذج متوافق مع OpenAI | دعم نقطة النهاية المخصصة |
|
|
135
|
+
|
|
136
|
+
## الترخيص
|
|
137
|
+
|
|
138
|
+
[Apache-2.0](./LICENSE)
|
|
139
|
+
|
|
140
|
+
## المساهمة
|
|
141
|
+
|
|
142
|
+
المساهمات مرحب بها! يرجى قراءة ملف [AGENTS.md](./AGENTS.md) للاطلاع على إرشادات التطوير.
|
|
143
|
+
|
|
144
|
+
</div>
|
package/README.fa.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<div dir="rtl">
|
|
2
|
+
|
|
3
|
+
# MarkPDFdown
|
|
4
|
+
|
|
5
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Русский](./README.ru.md) | [العربية](./README.ar.md) | [فارسی](./README.fa.md)
|
|
6
|
+
|
|
7
|
+
یک برنامه دسکتاپ که اسناد PDF را با استفاده از تشخیص بصری مدلهای زبانی بزرگ (LLM) به فرمت Markdown تبدیل میکند.
|
|
8
|
+
|
|
9
|
+
## ویژگیها
|
|
10
|
+
|
|
11
|
+
- **پشتیبانی از چندین LLM**: OpenAI، Anthropic Claude، Google Gemini، Ollama (مدلهای محلی) و OpenAI Responses API
|
|
12
|
+
- **تبدیل با کیفیت بالا**: استفاده از قابلیتهای بینایی LLM برای تبدیل دقیق PDF به Markdown
|
|
13
|
+
- **پیشنمایش کنار هم**: مشاهده صفحات اصلی PDF در کنار Markdown تولید شده
|
|
14
|
+
- **پشتیبانی از ریاضیات و کد**: پشتیبانی کامل از معادلات LaTeX (KaTeX) و بلوکهای کد با برجستهسازی نحوی
|
|
15
|
+
- **رابط کاربری چند زبانه**: انگلیسی، چینی، ژاپنی، روسی، عربی و فارسی
|
|
16
|
+
- **پردازش موازی**: نمونههای کارگر قابل تنظیم برای تبدیل سریعتر
|
|
17
|
+
- **پیگیری پیشرفت**: بهروزرسانی وضعیت در زمان واقعی و پشتیبانی از تلاش مجدد برای هر صفحه
|
|
18
|
+
- **ذخیرهسازی محلی**: پایگاه داده SQLite برای ماندگاری وظایف
|
|
19
|
+
|
|
20
|
+
## تصاویر
|
|
21
|
+
|
|
22
|
+
<img width="1264" height="848" alt="1769311168213_download" src="https://github.com/user-attachments/assets/15b5a801-6729-492a-a979-1fc4dba6853a" />
|
|
23
|
+
|
|
24
|
+
## نصب
|
|
25
|
+
|
|
26
|
+
### شروع سریع (پیشنهادی)
|
|
27
|
+
|
|
28
|
+
اجرای مستقیم با npx (نیاز به Node.js 18+):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx -y markpdfdown
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### دانلود نصبکننده
|
|
35
|
+
|
|
36
|
+
آخرین نسخه را برای پلتفرم خود از صفحه [Releases](https://github.com/MarkPDFdown/markpdfdown-desktop/releases) دانلود کنید:
|
|
37
|
+
|
|
38
|
+
- **Windows**: `MarkPDFdown-{version}-x64.exe`
|
|
39
|
+
- **macOS**: `MarkPDFdown-{version}-arm64.dmg` / `MarkPDFdown-{version}-x64.dmg`
|
|
40
|
+
- **Linux**: `MarkPDFdown-{version}-x86_64.AppImage`
|
|
41
|
+
|
|
42
|
+
## نحوه استفاده
|
|
43
|
+
|
|
44
|
+
1. **پیکربندی ارائهدهنده**: به تنظیمات بروید و اعتبارنامههای ارائهدهنده LLM را اضافه کنید (کلید API، آدرس پایه)
|
|
45
|
+
2. **افزودن مدل**: مدلی که میخواهید برای تبدیل استفاده کنید را پیکربندی کنید
|
|
46
|
+
3. **آپلود PDF**: فایل PDF را بکشید و رها کنید یا کلیک کنید تا انتخاب کنید
|
|
47
|
+
4. **انتخاب مدل**: مدل LLM را برای تبدیل انتخاب کنید
|
|
48
|
+
5. **تبدیل**: فرآیند تبدیل را شروع کنید
|
|
49
|
+
6. **پیشنمایش**: نتایج را صفحه به صفحه با مقایسه کنار هم مشاهده کنید
|
|
50
|
+
7. **دانلود**: فایل Markdown ادغام شده را صادر کنید
|
|
51
|
+
|
|
52
|
+
## توسعه
|
|
53
|
+
|
|
54
|
+
### پیشنیازها
|
|
55
|
+
|
|
56
|
+
- Node.js 18+
|
|
57
|
+
- npm 8+
|
|
58
|
+
|
|
59
|
+
### راهاندازی
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# نصب وابستگیها
|
|
63
|
+
npm install
|
|
64
|
+
|
|
65
|
+
# تولید کلاینت Prisma
|
|
66
|
+
npm run generate
|
|
67
|
+
|
|
68
|
+
# اجرای مایگریشنهای پایگاه داده
|
|
69
|
+
npm run migrate:dev
|
|
70
|
+
|
|
71
|
+
# شروع سرور توسعه
|
|
72
|
+
npm run dev
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### ساخت
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# ساخت تولیدی
|
|
79
|
+
npm run build
|
|
80
|
+
|
|
81
|
+
# نصبکنندههای مخصوص پلتفرم
|
|
82
|
+
npm run build:win # نصبکننده Windows NSIS
|
|
83
|
+
npm run build:mac # macOS DMG
|
|
84
|
+
npm run build:linux # Linux AppImage
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### تست
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm test # اجرای تمام تستها
|
|
91
|
+
npm run test:unit # فقط تستهای واحد
|
|
92
|
+
npm run test:renderer # فقط تستهای کامپوننت
|
|
93
|
+
npm run test:coverage # تولید گزارش پوشش
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### ساختار پروژه
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
src/
|
|
100
|
+
├── main/ # فرآیند اصلی Electron
|
|
101
|
+
│ ├── index.ts # نقطه ورود برنامه، ایجاد پنجره، راهاندازی IPC
|
|
102
|
+
│ └── ipc/ # هندلرهای IPC
|
|
103
|
+
├── preload/ # اسکریپتهای پیشبارگذاری (window.api)
|
|
104
|
+
├── renderer/ # فرانتاند React
|
|
105
|
+
│ ├── components/ # کامپوننتهای UI
|
|
106
|
+
│ ├── pages/ # صفحات مسیر
|
|
107
|
+
│ └── locales/ # ترجمههای i18n
|
|
108
|
+
├── core/ # منطق کسبوکار (معماری تمیز)
|
|
109
|
+
│ ├── infrastructure/ # پایگاه داده، سرویسهای خارجی
|
|
110
|
+
│ ├── application/ # کارگرها، هماهنگسازی
|
|
111
|
+
│ ├── domain/ # رابطها، انواع دامنه
|
|
112
|
+
│ └── shared/ # گذرگاه رویداد، ابزارها
|
|
113
|
+
└── shared/ # انواع مشترک بین main/renderer
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## پشته فناوری
|
|
117
|
+
|
|
118
|
+
- **فریمورک**: Electron 35 + React 18 + TypeScript
|
|
119
|
+
- **ابزار ساخت**: Vite 6
|
|
120
|
+
- **رابط کاربری**: Ant Design 5
|
|
121
|
+
- **پایگاه داده**: Prisma ORM + SQLite
|
|
122
|
+
- **پردازش PDF**: pdf-lib، pdf-to-png-converter، Sharp
|
|
123
|
+
- **Markdown**: react-markdown، remark-gfm، remark-math، rehype-katex، rehype-prism-plus
|
|
124
|
+
- **تست**: Vitest + Testing Library
|
|
125
|
+
|
|
126
|
+
## ارائهدهندگان LLM پشتیبانی شده
|
|
127
|
+
|
|
128
|
+
| ارائهدهنده | مدلها | یادداشتها |
|
|
129
|
+
|-------------|--------|------------|
|
|
130
|
+
| OpenAI | GPT-4o، GPT-4-turbo و غیره | نیاز به کلید API |
|
|
131
|
+
| Anthropic | Claude 3.5، Claude 3 و غیره | نیاز به کلید API |
|
|
132
|
+
| Google Gemini | Gemini Pro، Gemini Flash و غیره | نیاز به کلید API |
|
|
133
|
+
| Ollama | LLaVA، Llama 3.2 Vision و غیره | محلی، بدون نیاز به کلید API |
|
|
134
|
+
| OpenAI Responses | هر مدل سازگار با OpenAI | پشتیبانی از endpoint سفارشی |
|
|
135
|
+
|
|
136
|
+
## مجوز
|
|
137
|
+
|
|
138
|
+
[Apache-2.0](./LICENSE)
|
|
139
|
+
|
|
140
|
+
## مشارکت
|
|
141
|
+
|
|
142
|
+
از مشارکتها استقبال میشود! لطفاً فایل [AGENTS.md](./AGENTS.md) را برای راهنمای توسعه مطالعه کنید.
|
|
143
|
+
|
|
144
|
+
</div>
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# MarkPDFdown
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Русский](./README.ru.md) | [العربية](./README.ar.md) | [فارسی](./README.fa.md)
|
|
4
|
+
|
|
5
|
+
大規模言語モデル(LLM)の視覚認識機能を使用して、PDFドキュメントをMarkdown形式に変換するデスクトップアプリケーションです。
|
|
6
|
+
|
|
7
|
+
## 機能
|
|
8
|
+
|
|
9
|
+
- **マルチLLMサポート**:OpenAI、Anthropic Claude、Google Gemini、Ollama(ローカルモデル)、OpenAI Responses API
|
|
10
|
+
- **高品質変換**:LLMのビジョン機能を活用した正確なPDFからMarkdownへの変換
|
|
11
|
+
- **並列プレビュー**:元のPDFページと生成されたMarkdownを並べて表示
|
|
12
|
+
- **数式・コードサポート**:LaTeX数式(KaTeX)とシンタックスハイライト付きコードブロックの完全サポート
|
|
13
|
+
- **多言語UI**:英語、中国語、日本語、ロシア語、アラビア語、ペルシア語
|
|
14
|
+
- **並列処理**:高速変換のための設定可能なワーカーインスタンス
|
|
15
|
+
- **進捗追跡**:リアルタイムのステータス更新とページごとのリトライサポート
|
|
16
|
+
- **ローカルストレージ**:タスク永続化のためのSQLiteデータベース
|
|
17
|
+
|
|
18
|
+
## スクリーンショット
|
|
19
|
+
|
|
20
|
+
<img width="1264" height="848" alt="1769311168213_download" src="https://github.com/user-attachments/assets/15b5a801-6729-492a-a979-1fc4dba6853a" />
|
|
21
|
+
|
|
22
|
+
## インストール
|
|
23
|
+
|
|
24
|
+
### クイックスタート(推奨)
|
|
25
|
+
|
|
26
|
+
npxで直接実行(Node.js 18+が必要):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx -y markpdfdown
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### インストーラーのダウンロード
|
|
33
|
+
|
|
34
|
+
[Releases](https://github.com/MarkPDFdown/markpdfdown-desktop/releases)ページからお使いのプラットフォーム用の最新版をダウンロードしてください:
|
|
35
|
+
|
|
36
|
+
- **Windows**:`MarkPDFdown-{version}-x64.exe`
|
|
37
|
+
- **macOS**:`MarkPDFdown-{version}-arm64.dmg` / `MarkPDFdown-{version}-x64.dmg`
|
|
38
|
+
- **Linux**:`MarkPDFdown-{version}-x86_64.AppImage`
|
|
39
|
+
|
|
40
|
+
## 使い方
|
|
41
|
+
|
|
42
|
+
1. **プロバイダーの設定**:設定画面でLLMプロバイダーの認証情報(APIキー、ベースURL)を追加
|
|
43
|
+
2. **モデルの追加**:変換に使用するモデルを設定
|
|
44
|
+
3. **PDFのアップロード**:ドラッグ&ドロップまたはクリックしてPDFファイルを選択
|
|
45
|
+
4. **モデルの選択**:変換に使用するLLMモデルを選択
|
|
46
|
+
5. **変換**:変換プロセスを開始
|
|
47
|
+
6. **プレビュー**:並列比較で結果をページごとに表示
|
|
48
|
+
7. **ダウンロード**:結合されたMarkdownファイルをエクスポート
|
|
49
|
+
|
|
50
|
+
## 開発
|
|
51
|
+
|
|
52
|
+
### 前提条件
|
|
53
|
+
|
|
54
|
+
- Node.js 18+
|
|
55
|
+
- npm 8+
|
|
56
|
+
|
|
57
|
+
### セットアップ
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# 依存関係のインストール
|
|
61
|
+
npm install
|
|
62
|
+
|
|
63
|
+
# Prismaクライアントの生成
|
|
64
|
+
npm run generate
|
|
65
|
+
|
|
66
|
+
# データベースマイグレーションの実行
|
|
67
|
+
npm run migrate:dev
|
|
68
|
+
|
|
69
|
+
# 開発サーバーの起動
|
|
70
|
+
npm run dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### ビルド
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# プロダクションビルド
|
|
77
|
+
npm run build
|
|
78
|
+
|
|
79
|
+
# プラットフォーム別インストーラー
|
|
80
|
+
npm run build:win # Windows NSISインストーラー
|
|
81
|
+
npm run build:mac # macOS DMG
|
|
82
|
+
npm run build:linux # Linux AppImage
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### テスト
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm test # 全テストを実行
|
|
89
|
+
npm run test:unit # ユニットテストのみ
|
|
90
|
+
npm run test:renderer # コンポーネントテストのみ
|
|
91
|
+
npm run test:coverage # カバレッジレポートを生成
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### プロジェクト構造
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
src/
|
|
98
|
+
├── main/ # Electronメインプロセス
|
|
99
|
+
│ ├── index.ts # アプリエントリー、ウィンドウ作成、IPCセットアップ
|
|
100
|
+
│ └── ipc/ # IPCハンドラー
|
|
101
|
+
├── preload/ # プリロードスクリプト(window.api)
|
|
102
|
+
├── renderer/ # Reactフロントエンド
|
|
103
|
+
│ ├── components/ # UIコンポーネント
|
|
104
|
+
│ ├── pages/ # ルートページ
|
|
105
|
+
│ └── locales/ # i18n翻訳
|
|
106
|
+
├── core/ # ビジネスロジック(クリーンアーキテクチャ)
|
|
107
|
+
│ ├── infrastructure/ # データベース、外部サービス
|
|
108
|
+
│ ├── application/ # ワーカー、オーケストレーション
|
|
109
|
+
│ ├── domain/ # インターフェース、ドメイン型
|
|
110
|
+
│ └── shared/ # イベントバス、ユーティリティ
|
|
111
|
+
└── shared/ # メイン/レンダラー間の共有型
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## 技術スタック
|
|
115
|
+
|
|
116
|
+
- **フレームワーク**:Electron 35 + React 18 + TypeScript
|
|
117
|
+
- **ビルドツール**:Vite 6
|
|
118
|
+
- **UI**:Ant Design 5
|
|
119
|
+
- **データベース**:Prisma ORM + SQLite
|
|
120
|
+
- **PDF処理**:pdf-lib、pdf-to-png-converter、Sharp
|
|
121
|
+
- **Markdown**:react-markdown、remark-gfm、remark-math、rehype-katex、rehype-prism-plus
|
|
122
|
+
- **テスト**:Vitest + Testing Library
|
|
123
|
+
|
|
124
|
+
## 対応LLMプロバイダー
|
|
125
|
+
|
|
126
|
+
| プロバイダー | モデル | 備考 |
|
|
127
|
+
|-------------|--------|------|
|
|
128
|
+
| OpenAI | GPT-4o、GPT-4-turboなど | APIキーが必要 |
|
|
129
|
+
| Anthropic | Claude 3.5、Claude 3など | APIキーが必要 |
|
|
130
|
+
| Google Gemini | Gemini Pro、Gemini Flashなど | APIキーが必要 |
|
|
131
|
+
| Ollama | LLaVA、Llama 3.2 Visionなど | ローカル実行、APIキー不要 |
|
|
132
|
+
| OpenAI Responses | OpenAI互換モデル | カスタムエンドポイントサポート |
|
|
133
|
+
|
|
134
|
+
## ライセンス
|
|
135
|
+
|
|
136
|
+
[Apache-2.0](./LICENSE)
|
|
137
|
+
|
|
138
|
+
## コントリビューション
|
|
139
|
+
|
|
140
|
+
コントリビューションを歓迎します!開発ガイドラインについては[AGENTS.md](./AGENTS.md)ファイルをお読みください。
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# MarkPDFdown
|
|
2
2
|
|
|
3
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Русский](./README.ru.md) | [العربية](./README.ar.md) | [فارسی](./README.fa.md)
|
|
4
|
+
|
|
3
5
|
A desktop application that converts PDF documents to Markdown format using Large Language Model (LLM) visual recognition.
|
|
4
6
|
|
|
5
7
|
## Features
|
|
@@ -15,11 +17,21 @@ A desktop application that converts PDF documents to Markdown format using Large
|
|
|
15
17
|
|
|
16
18
|
## Screenshots
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
<img width="1264" height="848" alt="1769311168213_download" src="https://github.com/user-attachments/assets/15b5a801-6729-492a-a979-1fc4dba6853a" />
|
|
19
21
|
|
|
20
22
|
## Installation
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
### Quick Start (Recommended)
|
|
25
|
+
|
|
26
|
+
Run directly with npx (requires Node.js 18+):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx -y markpdfdown
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Download Installer
|
|
33
|
+
|
|
34
|
+
Download the latest release for your platform from the [Releases](https://github.com/MarkPDFdown/markpdfdown-desktop/releases) page:
|
|
23
35
|
|
|
24
36
|
- **Windows**: `MarkPDFdown-{version}-x64.exe`
|
|
25
37
|
- **macOS**: `MarkPDFdown-{version}-arm64.dmg` / `MarkPDFdown-{version}-x64.dmg`
|
package/README.ru.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# MarkPDFdown
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Русский](./README.ru.md) | [العربية](./README.ar.md) | [فارسی](./README.fa.md)
|
|
4
|
+
|
|
5
|
+
Настольное приложение для конвертации PDF-документов в формат Markdown с использованием визуального распознавания на основе больших языковых моделей (LLM).
|
|
6
|
+
|
|
7
|
+
## Возможности
|
|
8
|
+
|
|
9
|
+
- **Поддержка нескольких LLM**: OpenAI, Anthropic Claude, Google Gemini, Ollama (локальные модели) и OpenAI Responses API
|
|
10
|
+
- **Высококачественная конвертация**: Использование возможностей компьютерного зрения LLM для точного преобразования PDF в Markdown
|
|
11
|
+
- **Параллельный просмотр**: Просмотр оригинальных страниц PDF рядом с сгенерированным Markdown
|
|
12
|
+
- **Поддержка формул и кода**: Полная поддержка LaTeX-уравнений (KaTeX) и блоков кода с подсветкой синтаксиса
|
|
13
|
+
- **Многоязычный интерфейс**: Английский, китайский, японский, русский, арабский и персидский
|
|
14
|
+
- **Параллельная обработка**: Настраиваемое количество рабочих процессов для ускорения конвертации
|
|
15
|
+
- **Отслеживание прогресса**: Обновление статуса в реальном времени и поддержка повторной обработки отдельных страниц
|
|
16
|
+
- **Локальное хранилище**: База данных SQLite для сохранения задач
|
|
17
|
+
|
|
18
|
+
## Скриншоты
|
|
19
|
+
|
|
20
|
+
<img width="1264" height="848" alt="1769311168213_download" src="https://github.com/user-attachments/assets/15b5a801-6729-492a-a979-1fc4dba6853a" />
|
|
21
|
+
|
|
22
|
+
## Установка
|
|
23
|
+
|
|
24
|
+
### Быстрый старт (рекомендуется)
|
|
25
|
+
|
|
26
|
+
Запуск напрямую через npx (требуется Node.js 18+):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx -y markpdfdown
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Скачать установщик
|
|
33
|
+
|
|
34
|
+
Скачайте последнюю версию для вашей платформы со страницы [Releases](https://github.com/MarkPDFdown/markpdfdown-desktop/releases):
|
|
35
|
+
|
|
36
|
+
- **Windows**: `MarkPDFdown-{version}-x64.exe`
|
|
37
|
+
- **macOS**: `MarkPDFdown-{version}-arm64.dmg` / `MarkPDFdown-{version}-x64.dmg`
|
|
38
|
+
- **Linux**: `MarkPDFdown-{version}-x86_64.AppImage`
|
|
39
|
+
|
|
40
|
+
## Использование
|
|
41
|
+
|
|
42
|
+
1. **Настройка провайдера**: Перейдите в Настройки и добавьте учётные данные LLM-провайдера (API-ключ, базовый URL)
|
|
43
|
+
2. **Добавление модели**: Настройте модель, которую хотите использовать для конвертации
|
|
44
|
+
3. **Загрузка PDF**: Перетащите или нажмите для выбора PDF-файла
|
|
45
|
+
4. **Выбор модели**: Выберите LLM-модель для конвертации
|
|
46
|
+
5. **Конвертация**: Запустите процесс конвертации
|
|
47
|
+
6. **Просмотр**: Просматривайте результаты постранично с параллельным сравнением
|
|
48
|
+
7. **Скачивание**: Экспортируйте объединённый Markdown-файл
|
|
49
|
+
|
|
50
|
+
## Разработка
|
|
51
|
+
|
|
52
|
+
### Требования
|
|
53
|
+
|
|
54
|
+
- Node.js 18+
|
|
55
|
+
- npm 8+
|
|
56
|
+
|
|
57
|
+
### Настройка
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Установка зависимостей
|
|
61
|
+
npm install
|
|
62
|
+
|
|
63
|
+
# Генерация Prisma-клиента
|
|
64
|
+
npm run generate
|
|
65
|
+
|
|
66
|
+
# Запуск миграций базы данных
|
|
67
|
+
npm run migrate:dev
|
|
68
|
+
|
|
69
|
+
# Запуск сервера разработки
|
|
70
|
+
npm run dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Сборка
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Продакшн-сборка
|
|
77
|
+
npm run build
|
|
78
|
+
|
|
79
|
+
# Установщики для конкретных платформ
|
|
80
|
+
npm run build:win # Windows NSIS установщик
|
|
81
|
+
npm run build:mac # macOS DMG
|
|
82
|
+
npm run build:linux # Linux AppImage
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Тестирование
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm test # Запуск всех тестов
|
|
89
|
+
npm run test:unit # Только юнит-тесты
|
|
90
|
+
npm run test:renderer # Только тесты компонентов
|
|
91
|
+
npm run test:coverage # Генерация отчёта о покрытии
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Структура проекта
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
src/
|
|
98
|
+
├── main/ # Главный процесс Electron
|
|
99
|
+
│ ├── index.ts # Точка входа, создание окна, настройка IPC
|
|
100
|
+
│ └── ipc/ # Обработчики IPC
|
|
101
|
+
├── preload/ # Preload-скрипты (window.api)
|
|
102
|
+
├── renderer/ # React-фронтенд
|
|
103
|
+
│ ├── components/ # UI-компоненты
|
|
104
|
+
│ ├── pages/ # Страницы маршрутов
|
|
105
|
+
│ └── locales/ # i18n-переводы
|
|
106
|
+
├── core/ # Бизнес-логика (Чистая архитектура)
|
|
107
|
+
│ ├── infrastructure/ # База данных, внешние сервисы
|
|
108
|
+
│ ├── application/ # Воркеры, оркестрация
|
|
109
|
+
│ ├── domain/ # Интерфейсы, доменные типы
|
|
110
|
+
│ └── shared/ # Шина событий, утилиты
|
|
111
|
+
└── shared/ # Общие типы между main/renderer
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Технологический стек
|
|
115
|
+
|
|
116
|
+
- **Фреймворк**: Electron 35 + React 18 + TypeScript
|
|
117
|
+
- **Инструмент сборки**: Vite 6
|
|
118
|
+
- **UI**: Ant Design 5
|
|
119
|
+
- **База данных**: Prisma ORM + SQLite
|
|
120
|
+
- **Обработка PDF**: pdf-lib, pdf-to-png-converter, Sharp
|
|
121
|
+
- **Markdown**: react-markdown, remark-gfm, remark-math, rehype-katex, rehype-prism-plus
|
|
122
|
+
- **Тестирование**: Vitest + Testing Library
|
|
123
|
+
|
|
124
|
+
## Поддерживаемые LLM-провайдеры
|
|
125
|
+
|
|
126
|
+
| Провайдер | Модели | Примечания |
|
|
127
|
+
|-----------|--------|------------|
|
|
128
|
+
| OpenAI | GPT-4o, GPT-4-turbo и др. | Требуется API-ключ |
|
|
129
|
+
| Anthropic | Claude 3.5, Claude 3 и др. | Требуется API-ключ |
|
|
130
|
+
| Google Gemini | Gemini Pro, Gemini Flash и др. | Требуется API-ключ |
|
|
131
|
+
| Ollama | LLaVA, Llama 3.2 Vision и др. | Локально, без API-ключа |
|
|
132
|
+
| OpenAI Responses | Любая OpenAI-совместимая модель | Поддержка пользовательских эндпоинтов |
|
|
133
|
+
|
|
134
|
+
## Лицензия
|
|
135
|
+
|
|
136
|
+
[Apache-2.0](./LICENSE)
|
|
137
|
+
|
|
138
|
+
## Участие в разработке
|
|
139
|
+
|
|
140
|
+
Приветствуются вклады в проект! Пожалуйста, прочитайте файл [AGENTS.md](./AGENTS.md) для ознакомления с руководством по разработке.
|