mdeck 3.10.0 → 3.11.0

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +13 -2
  3. package/assets/base.css +4 -1
  4. package/docs/reference/authoring.md +66 -5
  5. package/docs/reference/extensions.md +1 -1
  6. package/docs/reference/themes.md +2 -1
  7. package/docs/site/assets/site.css +2 -0
  8. package/docs/site/content/commands.md +3 -1
  9. package/docs/site/content/drawing.md +1 -1
  10. package/docs/site/content/install.md +47 -0
  11. package/docs/site/content/media.md +20 -1
  12. package/docs/site/content/presenting.md +39 -2
  13. package/docs/site/content/sharing.md +1 -0
  14. package/docs/site/content/theme-authoring.md +2 -1
  15. package/docs/site/content/welcome.md +21 -1
  16. package/docs/site/images/features/hotspots.webp +0 -0
  17. package/docs/site/images/features/languages.webp +0 -0
  18. package/docs/site/pages.js +1 -0
  19. package/examples/custom-layouts/slides.md +21 -9
  20. package/examples/showcase/refs.bib +21 -0
  21. package/examples/showcase/slides.ar.drawings.json +11 -0
  22. package/examples/showcase/slides.ar.md +567 -0
  23. package/examples/showcase/slides.de.drawings.json +11 -0
  24. package/examples/showcase/slides.de.md +567 -0
  25. package/examples/showcase/slides.en.drawings.json +11 -0
  26. package/examples/showcase/{slides.md → slides.en.md} +112 -5
  27. package/package.json +1 -1
  28. package/skills/write-slides/SKILL.md +10 -1
  29. package/src/build/check.js +7 -1
  30. package/src/build/config.js +2 -0
  31. package/src/build/slidesPlugin.js +6 -6
  32. package/src/build/svgCheck.js +65 -0
  33. package/src/build/timingPlugin.js +80 -0
  34. package/src/cli/args.js +4 -3
  35. package/src/cli/index.js +34 -11
  36. package/src/components/VideoPlayer.jsx +6 -1
  37. package/src/core/editDeck.js +44 -7
  38. package/src/core/icons.js +3 -0
  39. package/src/core/labels.js +75 -0
  40. package/src/core/parseSlides.js +3 -3
  41. package/src/core/timing.js +83 -0
  42. package/src/core/validateDeck.js +5 -0
  43. package/src/editor/components/DeckSettings.jsx +5 -4
  44. package/src/editor/components/ExtensionForms.jsx +1 -1
  45. package/src/editor/components/MetaFields.jsx +1 -0
  46. package/src/extensions/params.js +28 -1
  47. package/src/home/Home.jsx +1 -0
  48. package/src/layouts/layoutApi.jsx +51 -8
  49. package/src/runtime/RehearsalSummary.jsx +129 -0
  50. package/src/runtime/component.js +27 -0
  51. package/src/runtime/deck-stage.js +49 -20
  52. package/src/runtime/ink/bus.js +13 -5
  53. package/src/runtime/ink/outbox.js +27 -0
  54. package/src/runtime/ink/room.js +31 -6
  55. package/src/runtime/ink/segments.js +21 -0
  56. package/src/runtime/main.jsx +157 -28
  57. package/src/runtime/shared.js +77 -0
  58. package/src/runtime/steps.js +36 -0
  59. package/src/runtime/useTalkTimer.js +65 -0
  60. package/examples/citations/refs.bib +0 -30
  61. package/examples/citations/refs.yml +0 -21
  62. package/examples/citations/slides.md +0 -43
  63. package/examples/citations/slides.pdf +0 -0
  64. package/examples/poll/slides.md +0 -127
  65. package/examples/showcase/slides.drawings.json +0 -11
@@ -0,0 +1,567 @@
1
+ ---
2
+ theme: neue
3
+ meta:
4
+ title: "جولة في mdeck"
5
+ author: "Tilman Schieber"
6
+ organization: "FHNW"
7
+ date: "2026-10-06"
8
+ bibliography: refs.bib
9
+ ---
10
+
11
+ ---
12
+ :::meta
13
+ layout: title
14
+ image: ./img/mdeck.svg
15
+ fit: contain
16
+ alt: "ملف Markdown يتحوّل إلى مجموعة من الشرائح"
17
+ id: a-talk-in-a-text-file
18
+ time: 1m
19
+ :::
20
+ # محاضرة في ملف نصي.
21
+ ## جولة في mdeck: كل شريحة تعرض *ما هو مكتوب* وما يصير إليه.
22
+
23
+ :::notes
24
+ يعلّمك هذا العرض mdeck بالأمثلة. معظم الشرائح تعرض نص Markdown بجانب ما يصير إليه. افتح `slides.ar.md` إلى جانبه: كل شريحة هنا مكتوبة تمامًا كما تظهر.
25
+
26
+ تنقّل فيه بمفاتيح الأسهم أو بمفتاح المسافة. هذه الملاحظات لك وحدك؛ افتح عرض المقدِّم من صفحة الإطلاق لتراها بجانب الشريحة.
27
+
28
+ الجولة متوفرة أيضًا بالإنجليزية (`slides.en.md`) وبالألمانية (`slides.de.md`). شغّلها بالأمر `mdeck run slides.ar.md`، والمفتاح **L** في عرض المقدِّم ينقل كل النوافذ إلى اللغة التالية.
29
+ :::
30
+
31
+ ---
32
+ :::meta
33
+ layout: chapter
34
+ number: 1
35
+ part: الكتابة
36
+ description: Markdown عادي، الصيغة التي يكتبها مساعدو الذكاء الاصطناعي أصلًا. يمكنك قراءة كل كلمة وتغييرها.
37
+ time: 15s
38
+ :::
39
+ # اكتبها.
40
+
41
+ :::notes
42
+ في الواقع يكتب مساعد ذكاء اصطناعي هذا الملف عادةً من موادك أنت: شرائح قديمة، أو مستند، أو ملاحظاتك. مهارة `write-slides` تعلّمه mdeck. تعرض الشرائح التالية ما يكتبه، لتتمكن من قراءته وتعديله.
43
+ :::
44
+
45
+ ---
46
+ :::meta
47
+ layout: split
48
+ time: 1m
49
+ :::
50
+ # الكلمات تصير شرائح
51
+ :::slot left
52
+ ```markdown
53
+ # مغامرتنا القادمة
54
+
55
+ فقرة من نص عادي.
56
+
57
+ ---
58
+
59
+ # الفكرة التالية
60
+ ```
61
+ :::
62
+ :::slot right
63
+ ## مغامرتنا القادمة
64
+
65
+ فقرة من نص عادي.
66
+
67
+ ثلاث شرطات في سطر مستقل تبدأ الشريحة التالية.
68
+ :::
69
+
70
+ :::notes
71
+ `#` هو عنوان الشريحة. السطر الفارغ يفصل بين الفقرات.
72
+
73
+ جرّب: غيّر عنوانًا في `slides.ar.md` واحفظ الملف. تتحدّث الشريحة وهي مفتوحة.
74
+ :::
75
+
76
+ ---
77
+ :::meta
78
+ layout: split
79
+ time: 45s
80
+ :::
81
+ # القوائم والتوكيد
82
+ :::slot left
83
+ ```markdown
84
+ - أحضر دفترًا.
85
+ - اطرح **سؤالًا واحدًا جيدًا**.
86
+ - شارك ما تتعلّمه *أنت*.
87
+
88
+ 1. استمع
89
+ 2. لخّص
90
+ ```
91
+ :::
92
+ :::slot right
93
+ - أحضر دفترًا.
94
+ - اطرح **سؤالًا واحدًا جيدًا**.
95
+ - شارك ما تتعلّمه *أنت*.
96
+
97
+ 1. استمع
98
+ 2. لخّص
99
+ :::
100
+
101
+ :::notes
102
+ `**bold**` و`*emphasis*`؛ والقالب يحدّد شكل التوكيد. في هذا القالب يأخذ لون التمييز.
103
+ :::
104
+
105
+ ---
106
+ :::meta
107
+ time: 1m
108
+ :::
109
+ # اكشف النقاط واحدة تلو الأخرى
110
+
111
+ :::columns
112
+ ```markdown
113
+ :::steps
114
+ - أولًا، سؤال.
115
+ - ثم، وقفة.
116
+ - ثم، الجواب.
117
+ :::
118
+ ```
119
+ +++
120
+ :::steps
121
+ - أولًا، سؤال.
122
+ - ثم، وقفة.
123
+ - ثم، الجواب.
124
+ :::
125
+ :::
126
+
127
+ :::notes
128
+ اضغط مفتاح التقدّم: كل ضغطة تكشف نقطة واحدة، ثم تنتقل إلى الشريحة التالية. الشرائح المطبوعة وملف PDF تعرض كل النقاط.
129
+
130
+ ليس لهذه الشريحة تخطيط: `:::columns` يضع المصدر والنتيجة جنبًا إلى جنب، و`+++` يبدأ العمود الثاني.
131
+ :::
132
+
133
+ ---
134
+ :::meta
135
+ layout: chapter
136
+ number: 2
137
+ part: التخطيطات والمحتوى
138
+ description: التخطيطات والصور والشيفرة والجداول والتنبيهات. اختر تخطيطًا لكل شريحة، والقالب يتكفّل بالباقي.
139
+ time: 15s
140
+ :::
141
+ # رتّبها.
142
+
143
+ ---
144
+ :::meta
145
+ layout: split
146
+ props:
147
+ ratio: [3, 2]
148
+ time: 1m
149
+ :::
150
+ # اختر تخطيطًا
151
+ :::slot left
152
+ ```markdown
153
+ :::meta
154
+ layout: focus
155
+ attribution: "معلّم"
156
+ :::
157
+ # الأسئلة الجيدة تصنع
158
+ # حوارات أفضل.
159
+ ```
160
+ :::
161
+ :::slot right
162
+ كتلة `:::meta` في أعلى الشريحة تحمل إعداداتها.
163
+
164
+ `layout: focus` يصنع عبارة واحدة كبيرة. الشريحة التالية هي هذه بالضبط.
165
+ :::
166
+
167
+ :::notes
168
+ من دون تخطيط تكون الشريحة عنوانًا عاديًا مع محتوى. هذه الشريحة `layout: split`، وجانباها مكتوبان كـ`:::slot left` و`:::slot right`؛ و`ratio: [3, 2]` يعطي الشيفرة مساحة أكبر.
169
+
170
+ التخطيطات المدمجة هي `title` و`chapter` و`focus` و`split` و`image-text` و`full-bleed-image`.
171
+ :::
172
+
173
+ ---
174
+ :::meta
175
+ layout: focus
176
+ attribution: "معلّم"
177
+ time: 30s
178
+ :::
179
+ # الأسئلة الجيدة تصنع حوارات أفضل.
180
+
181
+ ---
182
+ :::meta
183
+ layout: image-text
184
+ image: ./img/image.jpg
185
+ alt: "خطوط كنتورية مثل تلك التي على الخرائط"
186
+ time: 45s
187
+ :::
188
+ # صورة بجانب كلماتك
189
+
190
+ ```markdown
191
+ :::meta
192
+ layout: image-text
193
+ image: ./img/image.jpg
194
+ alt: "خطوط كنتورية"
195
+ :::
196
+ ```
197
+
198
+ `alt` يصف الصورة لمن لا يستطيع رؤيتها.
199
+
200
+ :::notes
201
+ احفظ الصور في مجلد بجانب الشرائح، وهو هنا `img/`. الشريحة التالية تستخدم الصورة نفسها مع `layout: full-bleed-image`.
202
+ :::
203
+
204
+ ---
205
+ :::meta
206
+ layout: full-bleed-image
207
+ image: ./img/image.jpg
208
+ alt: "خطوط كنتورية مثل تلك التي على الخرائط"
209
+ overlay: true
210
+ time: 30s
211
+ :::
212
+ # أو دع الصورة تملأ الشريحة.
213
+
214
+ :::notes
215
+ هذه الشريحة مكتوبة هكذا:
216
+
217
+ ```markdown
218
+ :::meta
219
+ layout: full-bleed-image
220
+ image: ./img/image.jpg
221
+ overlay: true
222
+ :::
223
+ # أو دع الصورة تملأ الشريحة.
224
+ ```
225
+
226
+ `overlay: true` يعتّم الصورة كي يبقى العنوان مقروءًا.
227
+ :::
228
+
229
+ ---
230
+ :::meta
231
+ layout: split
232
+ time: 1m30s
233
+ :::
234
+ # شيفرة يمكنك تشغيلها
235
+ :::slot left
236
+ ````markdown
237
+ ```python live editable
238
+ squares = [x**2 for x in range(1, 6)]
239
+ print(squares)
240
+ ```
241
+ ````
242
+ :::
243
+ :::slot right
244
+ ```python live editable
245
+ squares = [x**2 for x in range(1, 6)]
246
+ print(squares)
247
+ ```
248
+ :::
249
+
250
+ :::notes
251
+ اضغط Run. `live` يضيف الزر، و`editable` يتيح لك تغيير الشيفرة أثناء العرض، و`copy` يضيف زر نسخ. وتعمل JavaScript بالطريقة نفسها.
252
+
253
+ تنزّل Python الحيّة بيئة تشغيلها في المرة الأولى، لذا تحتاج إلى اتصال بالإنترنت.
254
+ :::
255
+
256
+ ---
257
+ :::meta
258
+ layout: split
259
+ time: 45s
260
+ :::
261
+ # الجداول والمعادلات
262
+ :::slot left
263
+ ```markdown
264
+ | الطبقة | من يملكها |
265
+ |---|---|
266
+ | الكلمات | أنت |
267
+ | المظهر | القالب |
268
+
269
+ $$
270
+ A = \pi r^2
271
+ $$
272
+ ```
273
+ :::
274
+ :::slot right
275
+ | الطبقة | من يملكها |
276
+ |---|---|
277
+ | الكلمات | أنت |
278
+ | المظهر | القالب |
279
+
280
+ $$
281
+ A = \pi r^2
282
+ $$
283
+ :::
284
+
285
+ :::notes
286
+ تُكتب المعادلات بـLaTeX. علامة دولار واحدة تضع المعادلة داخل الجملة؛ وعلامتا دولار فوقها وتحتها تضعانها في سطر مستقل.
287
+ :::
288
+
289
+ ---
290
+ :::meta
291
+ layout: split
292
+ time: 45s
293
+ :::
294
+ # نصائح وتحذيرات
295
+ :::slot left
296
+ ```markdown
297
+ :::tip
298
+ نصيحة واحدة لكل شريحة تكفي.
299
+ :::
300
+
301
+ :::warning
302
+ افحص جهاز العرض في القاعة.
303
+ :::
304
+ ```
305
+ :::
306
+ :::slot right
307
+ :::tip
308
+ نصيحة واحدة لكل شريحة تكفي.
309
+ :::
310
+
311
+ :::warning
312
+ افحص جهاز العرض في القاعة.
313
+ :::
314
+ :::
315
+
316
+ :::notes
317
+ التنبيهات الأخرى هي `note` و`important` و`caution`. أضف تسميتك الخاصة بعد النوع، مثلًا `:::tip قبل المحاضرة`.
318
+ :::
319
+
320
+ ---
321
+ :::meta
322
+ layout: split
323
+ time: 1m
324
+ :::
325
+ # اذكر مصادرك
326
+ :::slot left
327
+ ```markdown
328
+ ---
329
+ bibliography: refs.bib
330
+ ---
331
+
332
+ الاستذكار يتفوّق على إعادة القراءة
333
+ [@roediger2006].
334
+ ```
335
+ :::
336
+ :::slot right
337
+ الاستذكار يتفوّق على إعادة القراءة [@roediger2006].
338
+
339
+ المحاضرات التي تتضمن تعلّمًا نشطًا تخفض معدلات الرسوب بمقدار الثلث [@freeman2014].
340
+ :::
341
+
342
+ :::notes
343
+ `refs.bib` ملف BibTeX كما يصدّره Zotero؛ وتعمل أيضًا CSL-JSON وHayagriva. تسرد كل شريحة مراجعها فوق التذييل، و`<bibliography />` على شريحة ما يسردها كلها. و`csl: vancouver` يحوّل الإحالات إلى أرقام.
344
+ :::
345
+
346
+ ---
347
+ :::meta
348
+ layout: chapter
349
+ number: 3
350
+ part: التقديم
351
+ description: ملاحظات لك، والرسم على الشرائح، وأسئلة للحضور.
352
+ id: give-the-talk
353
+ time: 15s
354
+ :::
355
+ # ألقِ المحاضرة.
356
+
357
+ ---
358
+ :::meta
359
+ layout: split
360
+ time: 1m
361
+ :::
362
+ # ملاحظات لا يراها سواك
363
+ :::slot left
364
+ ```markdown
365
+ :::notes
366
+ توقّف هنا. اسأل من جرّب
367
+ هذا من قبل.
368
+ :::
369
+ ```
370
+ :::
371
+ :::slot right
372
+ توضع الملاحظات تحت محتوى الشريحة. تظهر في **عرض المقدِّم**، ولا تظهر أبدًا على جهاز العرض.
373
+
374
+ افتحه من صفحة الإطلاق، وانقل **نافذة الحضور** إلى جهاز العرض. وتتبع النافذتان إحداهما الأخرى.
375
+ :::
376
+
377
+ :::notes
378
+ توقّف هنا. اسأل من جرّب هذا من قبل.
379
+
380
+ هذا ما يعرضه عرض المقدِّم لهذه الشريحة. ويعرض رأسه أيضًا ما هو متصل: عروض مقدِّم أخرى، ونوافذ الحضور، والهواتف.
381
+ :::
382
+
383
+ ---
384
+ :::meta
385
+ id: draw-on-any-slide
386
+ time: 1m
387
+ :::
388
+ # ارسم على أي شريحة
389
+
390
+ اضغط **D** الآن، أو زر القلم. ارسم بقلم، أو بقلم تظليل، أو بقلم تأشير يتلاشى بعد لحظة. **Escape** يوقف الرسم.
391
+
392
+ تُحفظ الرسوم في ملف `.drawings.json` بجانب الشرائح، وتظهر في ملف PDF.
393
+
394
+ :::notes
395
+ الخط تحت النص والدائرة على هذه الشريحة رُسما بالقلم وحُفظا؛ ويظهران في كل العروض وفي ملف PDF.
396
+
397
+ على جهاز iPad، اقرنه من صفحة الإطلاق: ترسم وتتحكّم من هناك بينما يشغّل الحاسوب المحمول جهاز العرض.
398
+ :::
399
+
400
+ ---
401
+ :::meta
402
+ layout: split
403
+ hotspots: auto
404
+ id: zoom-in-on-a-part
405
+ time: 1m30s
406
+ :::
407
+ # كبّر جزءًا
408
+ :::slot left
409
+ ```markdown
410
+ :::meta
411
+ hotspots: auto
412
+ :::
413
+ ```
414
+
415
+ في عرض المقدِّم، اضغط **رقمًا** لتكبير ذلك الجزء. الرقم نفسه، أو **0** أو **Escape** يعيدك.
416
+ :::
417
+ :::slot right
418
+ | الطبقة | من يملكها |
419
+ |---|---|
420
+ | الكلمات | أنت |
421
+ | المظهر | القالب |
422
+
423
+ $$
424
+ A = \pi r^2
425
+ $$
426
+ :::
427
+
428
+ :::notes
429
+ تظهر المفاتيح المرقّمة على هذه الشريحة هنا في عرض المقدِّم فقط، ولا تظهر أبدًا على جهاز العرض. اضغط 2 للجدول، و3 للمعادلة؛ ونافذة الحضور تتبعك. ومفاتيح الأسهم تخرج من التكبير وتنتقل إلى ما بعده بضغطة واحدة.
430
+
431
+ `hotspots: auto` يجد الصور والشيفرة والجداول والمعادلات والتنبيهات. ضعه في إعدادات العرض في الأعلى لتظهر المفاتيح على كل شريحة، أو اكتب `marked` لتُعطى المفاتيح فقط للأجزاء الموسومة بـ`data-hotspot`. والمفتاح H يطفئ المفاتيح ويشغّلها أثناء المحاضرة.
432
+ :::
433
+
434
+ ---
435
+ :::meta
436
+ layout: split
437
+ time: 1m
438
+ :::
439
+ # وقّت محاضرتك
440
+ :::slot left
441
+ ```markdown
442
+ :::meta
443
+ time: 1m
444
+ :::
445
+ ```
446
+ :::
447
+ :::slot right
448
+ أعطِ كل شريحة **مدة**. يعدّها عرض المقدِّم تنازليًا، ويخبرك إن كنت متقدّمًا أم متأخرًا.
449
+
450
+ شغّل `mdeck rehearse slides.md` لتوقيت الشرائح أثناء التمرين، ثم احفظ الأوقات في الملف.
451
+ :::
452
+
453
+ :::notes
454
+ لكل شريحة في هذه الجولة مدة، والمجموع 21 دقيقة. اضغط T في عرض المقدِّم لتشغيل المؤقّت: تحته ترى ما تبقّى من هذه الشريحة وأين وصلت المحاضرة.
455
+
456
+ التمرين يقيس الأوقات عنك. في النهاية يقترحها مقرّبة إلى 15 ثانية؛ غيّر أيًّا منها قبل الحفظ.
457
+ :::
458
+
459
+ ---
460
+ :::meta
461
+ time: 1m30s
462
+ :::
463
+ # أي جزء ستجرّبه أولًا؟
464
+
465
+ <poll room="tour" options="الكتابة|التخطيطات|الرسم|الاستطلاعات" />
466
+
467
+ :::notes
468
+ سطر واحد يصنع استطلاعًا؛ والعنوان هو السؤال:
469
+
470
+ `<poll room="tour" options="الكتابة|التخطيطات|الرسم|الاستطلاعات" />`
471
+
472
+ تنضمّ الهواتف عبر رمز QR. ويمكنها الوصول إلى هذا الحاسوب حين تشغّل `mdeck run slides.md --network`.
473
+ :::
474
+
475
+ ---
476
+ :::meta
477
+ layout: split
478
+ time: 1m
479
+ :::
480
+ # كلمة واحدة من كل شخص
481
+ :::slot left
482
+ ```markdown
483
+ <wordcloud room="mood"
484
+ qr="false" />
485
+
486
+ <scale room="pace" min="1" max="5"
487
+ low="بطيء جدًا" high="سريع جدًا" />
488
+
489
+ <question room="ask" />
490
+ ```
491
+ :::
492
+ :::slot right
493
+ <wordcloud room="mood" placeholder="كلمة واحدة" qr="false" />
494
+ :::
495
+
496
+ :::notes
497
+ الهواتف التي انضمّت عبر رمز الاستطلاع تبقى متصلة: `qr="false"` يُخفي الرمز هنا. تظهر الإجابات فور وصولها.
498
+
499
+ إلى جانب الاستطلاعات وسحب الكلمات هناك التقييمات (`<scale>`)، والأرقام ذات الإجابة الصحيحة (`<numeric>`)، والأسئلة المفتوحة (`<question>`). وإذا كان لديك عدد منها، فإن `<qrcode join />` على شريحة مبكرة يعرض الرمز مرة واحدة. ويحفظ `mdeck run` الإجابات في `slides.results.json` بجانب العرض.
500
+ :::
501
+
502
+ ---
503
+ :::meta
504
+ layout: chapter
505
+ number: 4
506
+ part: المشاركة
507
+ description: ملف واحد للإرسال، أو PDF، أو مجلد لموقع ويب.
508
+ time: 15s
509
+ :::
510
+ # شاركها.
511
+
512
+ ---
513
+ :::meta
514
+ layout: split
515
+ time: 45s
516
+ :::
517
+ # غيّر المظهر كله
518
+ :::slot left
519
+ ```markdown
520
+ ---
521
+ theme: work
522
+ palette: lagoon
523
+ ---
524
+ ```
525
+ :::
526
+ :::slot right
527
+ سطران في أعلى الملف يختاران القالب والألوان لكل الشرائح دفعة واحدة.
528
+
529
+ لتجربتها دون تغيير الملف، افتح **عرض القارئ** واختر **Look**.
530
+ :::
531
+
532
+ :::notes
533
+ في mdeck أربعة قوالب مدمجة وخمس لوحات ألوان، كلٌّ منها فاتح أو داكن. يعرضها `mdeck list` كلها، بما فيها المحفوظة في مجلد `extensions` بجانب العرض. ويجد `mdeck themes search` المزيد في مستودع القوالب.
534
+ :::
535
+
536
+ ---
537
+ :::meta
538
+ layout: split
539
+ time: 45s
540
+ :::
541
+ # أرسلها، اطبعها، انشرها
542
+ :::slot left
543
+ ```sh
544
+ mdeck send slides.md
545
+ mdeck pdf slides.md
546
+ mdeck build slides.md
547
+ ```
548
+ :::
549
+ :::slot right
550
+ `send` يصنع ملف HTML واحدًا بلا ملاحظاتك، وفي داخله PDF. يفتحه الناس في المتصفح.
551
+
552
+ `pdf` يصنع صفحة لكل شريحة. و`build` يصنع مجلدًا لخادم ويب.
553
+ :::
554
+
555
+ ---
556
+ :::meta
557
+ layout: title
558
+ time: 1m
559
+ :::
560
+ # والآن اصنع عرضك.
561
+ ## سلّم شرائحك أو مستنداتك أو ملاحظاتك إلى *مساعد ذكاء اصطناعي*.
562
+
563
+ :::notes
564
+ `mdeck skill --install claude` (أو codex أو cursor أو copilot أو gemini) يثبّت مهارة `write-slides`، التي تعلّم المساعد mdeck. ثم وجّهه إلى موادك: «أعد بناء lecture-03.pptx كمحاضرة مدتها 20 دقيقة.»
565
+
566
+ من دون مساعد، يطرح `mdeck new` بضعة أسئلة ثم يبدأ عرضًا جديدًا.
567
+ :::
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 1,
3
+ "width": 1920,
4
+ "height": 1080,
5
+ "slides": {
6
+ "draw-on-any-slide": [
7
+ {"id":"tour:underline","tool":"pen","color":"#e11d48","size":7,"points":[[135,464,0.45],[155,466,0.48],[175,468,0.52],[196,469,0.55],[216,470,0.58],[236,471,0.61],[257,471,0.64],[277,470,0.66],[298,469,0.68],[318,467,0.7],[338,466,0.72],[359,464,0.73],[379,462,0.74],[399,461,0.75],[420,460,0.75],[440,460,0.75],[460,461,0.74],[481,462,0.73],[501,463,0.72],[522,465,0.71],[542,467,0.69],[562,469,0.67],[583,471,0.64],[603,472,0.62],[623,473,0.59],[644,474,0.56],[664,474,0.53],[685,473,0.49],[705,472,0.46],[725,470,0.43],[746,469,0.39],[766,467,0.36],[786,466,0.33],[807,464,0.3],[827,464,0.27],[848,463,0.25],[868,464,0.22],[888,464,0.2],[909,466,0.19],[929,468,0.17],[949,470,0.16]]},
8
+ {"id":"tour:circle","tool":"pen","color":"#e11d48","size":6,"points":[[337,495,0.5],[341,495,0.54],[346,495,0.57],[350,496,0.6],[354,498,0.64],[358,501,0.66],[361,504,0.69],[363,508,0.71],[365,512,0.73],[366,516,0.74],[367,520,0.75],[366,524,0.75],[365,528,0.75],[363,532,0.74],[361,536,0.73],[358,538,0.71],[355,541,0.69],[351,543,0.66],[348,545,0.63],[344,546,0.6],[340,547,0.57],[336,547,0.54],[332,547,0.5],[328,547,0.46],[324,545,0.43],[320,544,0.4],[317,542,0.36],[314,539,0.34],[311,535,0.31],[309,532,0.29],[307,527,0.27],[307,523,0.26],[307,519,0.25],[308,514,0.25],[310,510,0.25],[312,507,0.26],[315,504,0.27],[318,501,0.29],[322,499,0.31],[326,498,0.34],[330,497,0.37],[334,497,0.4],[338,497,0.43],[342,497,0.47],[346,499,0.5],[350,500,0.54]]}
9
+ ]
10
+ }
11
+ }