mdeck 3.10.1 → 3.12.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 (91) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +15 -4
  3. package/assets/base.css +6 -1
  4. package/docs/reference/authoring.md +111 -9
  5. package/docs/site/assets/site.css +2 -0
  6. package/docs/site/content/appearance.md +1 -1
  7. package/docs/site/content/audience.md +36 -8
  8. package/docs/site/content/commands.md +6 -3
  9. package/docs/site/content/drawing.md +5 -5
  10. package/docs/site/content/getting-started.md +2 -32
  11. package/docs/site/content/install.md +49 -0
  12. package/docs/site/content/media.md +20 -1
  13. package/docs/site/content/presenting.md +67 -9
  14. package/docs/site/content/sharing.md +1 -0
  15. package/docs/site/content/welcome.md +21 -1
  16. package/docs/site/content/writing.md +27 -0
  17. package/docs/site/images/features/hotspots.webp +0 -0
  18. package/docs/site/images/features/languages.webp +0 -0
  19. package/docs/site/pages.js +1 -0
  20. package/examples/custom-layouts/slides.md +21 -9
  21. package/examples/showcase/refs.bib +21 -0
  22. package/examples/showcase/slides.ar.drawings.json +11 -0
  23. package/examples/showcase/slides.ar.md +567 -0
  24. package/examples/showcase/slides.de.drawings.json +11 -0
  25. package/examples/showcase/slides.de.md +567 -0
  26. package/examples/showcase/slides.de.results.json +57 -0
  27. package/examples/showcase/slides.en.drawings.json +11 -0
  28. package/examples/showcase/{slides.md → slides.en.md} +112 -5
  29. package/package.json +1 -1
  30. package/skills/write-slides/SKILL.md +14 -2
  31. package/src/build/check.js +34 -7
  32. package/src/build/components.js +5 -3
  33. package/src/build/config.js +2 -0
  34. package/src/build/homePlugin.js +64 -14
  35. package/src/build/include.js +249 -0
  36. package/src/build/inkPlugin.js +12 -2
  37. package/src/build/relayAccess.js +3 -1
  38. package/src/build/renderCheck.js +23 -3
  39. package/src/build/slidesPlugin.js +70 -22
  40. package/src/build/svgCheck.js +65 -0
  41. package/src/build/timingPlugin.js +96 -0
  42. package/src/cli/args.js +6 -5
  43. package/src/cli/index.js +77 -21
  44. package/src/components/Bibliography.jsx +7 -2
  45. package/src/components/Poll.jsx +2 -2
  46. package/src/components/QrCodeTag.jsx +2 -2
  47. package/src/components/VideoPlayer.jsx +6 -1
  48. package/src/components/WordCloud.jsx +7 -6
  49. package/src/components/activity.jsx +11 -8
  50. package/src/components/poll.css +2 -0
  51. package/src/core/editDeck.js +44 -7
  52. package/src/core/icons.js +9 -1
  53. package/src/core/labels.js +78 -0
  54. package/src/core/parseSlides.js +16 -6
  55. package/src/core/reactions.js +27 -0
  56. package/src/core/resultsReport.js +153 -0
  57. package/src/core/source.js +8 -1
  58. package/src/core/timing.js +83 -0
  59. package/src/core/validateDeck.js +11 -2
  60. package/src/editor/components/DeckSettings.jsx +1 -0
  61. package/src/editor/components/MetaFields.jsx +1 -0
  62. package/src/home/Home.jsx +39 -93
  63. package/src/home/home.css +5 -17
  64. package/src/layouts/layoutApi.jsx +51 -8
  65. package/src/layouts/renderSlide.jsx +13 -1
  66. package/src/live/answer/answer.css +9 -0
  67. package/src/live/answer/answer.js +32 -4
  68. package/src/live/client.js +23 -4
  69. package/src/live/rooms.js +18 -6
  70. package/src/runtime/KeyHelp.jsx +115 -0
  71. package/src/runtime/PresenterChrome.jsx +168 -0
  72. package/src/runtime/Reactions.jsx +56 -0
  73. package/src/runtime/RehearsalSummary.jsx +129 -0
  74. package/src/runtime/component.js +27 -0
  75. package/src/runtime/deck-stage.js +371 -37
  76. package/src/runtime/helpKeys.js +75 -0
  77. package/src/runtime/ink/bus.js +13 -5
  78. package/src/runtime/ink/outbox.js +27 -0
  79. package/src/runtime/ink/room.js +37 -12
  80. package/src/runtime/ink/segments.js +21 -0
  81. package/src/runtime/main.jsx +508 -286
  82. package/src/runtime/shared.js +77 -0
  83. package/src/runtime/slideControls.js +60 -0
  84. package/src/runtime/steps.js +36 -0
  85. package/src/runtime/useTalkTimer.js +67 -0
  86. package/examples/citations/refs.bib +0 -30
  87. package/examples/citations/refs.yml +0 -21
  88. package/examples/citations/slides.md +0 -43
  89. package/examples/citations/slides.pdf +0 -0
  90. package/examples/poll/slides.md +0 -127
  91. package/examples/showcase/slides.drawings.json +0 -11
@@ -0,0 +1,567 @@
1
+ ---
2
+ theme: neue
3
+ meta:
4
+ title: "Eine Tour durch mdeck"
5
+ author: "Tilman Schieber"
6
+ organization: "FHNW"
7
+ date: "2026-10-06"
8
+ bibliography: refs.bib
9
+ reactions: true
10
+ ---
11
+
12
+ ---
13
+ :::meta
14
+ layout: title
15
+ image: ./img/mdeck.svg
16
+ fit: contain
17
+ alt: "Eine Markdown-Datei wird zu einem Stapel Folien"
18
+ id: a-talk-in-a-text-file
19
+ time: 1m
20
+ :::
21
+ # Ein Vortrag in einer Textdatei.
22
+ ## Eine Tour durch mdeck: Jede Folie zeigt, *was geschrieben steht* und was daraus wird.
23
+
24
+ :::notes
25
+ Dieses Deck erklärt mdeck an Beispielen. Die meisten Folien zeigen das Markdown neben dem, was daraus wird. Öffne `slides.de.md` daneben: Jede Folie hier ist genau so geschrieben, wie sie gezeigt wird.
26
+
27
+ Blättere mit den Pfeiltasten oder der Leertaste. Diese Notizen sind nur für dich; öffne die Referentenansicht über die Startseite, um sie neben der Folie zu sehen.
28
+
29
+ Die Tour gibt es auch auf Englisch (`slides.en.md`) und Arabisch (`slides.ar.md`). Starte sie mit `mdeck run slides.en.md`; **L** in der Referentenansicht schaltet alle Fenster auf die nächste Sprache.
30
+ :::
31
+
32
+ ---
33
+ :::meta
34
+ layout: chapter
35
+ number: 1
36
+ part: Schreiben
37
+ description: Einfaches Markdown, das Format, das KI-Assistenten ohnehin schreiben. Du kannst jedes Wort lesen und ändern.
38
+ time: 15s
39
+ :::
40
+ # Schreiben.
41
+
42
+ :::notes
43
+ In der Praxis schreibt meist ein KI-Assistent diese Datei aus deinem eigenen Material: alten Folien, einem Dokument, deinen Notizen. Der Skill `write-slides` bringt ihm mdeck bei. Die nächsten Folien zeigen, was er schreibt, damit du es lesen und anpassen kannst.
44
+ :::
45
+
46
+ ---
47
+ :::meta
48
+ layout: split
49
+ time: 1m
50
+ :::
51
+ # Aus Worten werden Folien
52
+ :::slot left
53
+ ```markdown
54
+ # Unser nächstes Abenteuer
55
+
56
+ Ein Absatz ganz normaler Text.
57
+
58
+ ---
59
+
60
+ # Die nächste Idee
61
+ ```
62
+ :::
63
+ :::slot right
64
+ ## Unser nächstes Abenteuer
65
+
66
+ Ein Absatz ganz normaler Text.
67
+
68
+ Drei Striche auf einer eigenen Zeile beginnen die nächste Folie.
69
+ :::
70
+
71
+ :::notes
72
+ `#` ist die Überschrift der Folie. Eine Leerzeile trennt Absätze.
73
+
74
+ Probier es aus: Ändere eine Überschrift in `slides.de.md` und speichere. Die Folie aktualisiert sich, während sie offen ist.
75
+ :::
76
+
77
+ ---
78
+ :::meta
79
+ layout: split
80
+ time: 45s
81
+ :::
82
+ # Listen und Hervorhebung
83
+ :::slot left
84
+ ```markdown
85
+ - Bring ein Notizbuch mit.
86
+ - Stell **eine gute Frage**.
87
+ - Teile, was *du* lernst.
88
+
89
+ 1. Zuhören
90
+ 2. Zusammenfassen
91
+ ```
92
+ :::
93
+ :::slot right
94
+ - Bring ein Notizbuch mit.
95
+ - Stell **eine gute Frage**.
96
+ - Teile, was *du* lernst.
97
+
98
+ 1. Zuhören
99
+ 2. Zusammenfassen
100
+ :::
101
+
102
+ :::notes
103
+ `**fett**` und `*hervorgehoben*`; wie Hervorhebung aussieht, entscheidet das Theme. Hier bekommt sie die Akzentfarbe.
104
+ :::
105
+
106
+ ---
107
+ :::meta
108
+ time: 1m
109
+ :::
110
+ # Punkte einzeln aufdecken
111
+
112
+ :::columns
113
+ ```markdown
114
+ :::steps
115
+ - Zuerst eine Frage.
116
+ - Dann eine Pause.
117
+ - Dann die Antwort.
118
+ :::
119
+ ```
120
+ +++
121
+ :::steps
122
+ - Zuerst eine Frage.
123
+ - Dann eine Pause.
124
+ - Dann die Antwort.
125
+ :::
126
+ :::
127
+
128
+ :::notes
129
+ Drück die Weiter-Taste: Jeder Druck deckt einen Punkt auf, danach geht es weiter. Gedruckte Folien und das PDF zeigen alle Punkte.
130
+
131
+ Diese Folie hat kein Layout: `:::columns` stellt Quelltext und Ergebnis nebeneinander, `+++` beginnt die zweite Spalte.
132
+ :::
133
+
134
+ ---
135
+ :::meta
136
+ layout: chapter
137
+ number: 2
138
+ part: Layouts und Inhalte
139
+ description: Layouts, Bilder, Code, Tabellen und Hinweiskästen. Wähle pro Folie ein Layout; den Rest erledigt das Theme.
140
+ time: 15s
141
+ :::
142
+ # Gestalten.
143
+
144
+ ---
145
+ :::meta
146
+ layout: split
147
+ props:
148
+ ratio: [3, 2]
149
+ time: 1m
150
+ :::
151
+ # Ein Layout wählen
152
+ :::slot left
153
+ ```markdown
154
+ :::meta
155
+ layout: focus
156
+ attribution: "Eine Lehrerin"
157
+ :::
158
+ # Gute Fragen führen
159
+ # zu besseren Gesprächen.
160
+ ```
161
+ :::
162
+ :::slot right
163
+ Ein `:::meta`-Block oben auf der Folie enthält ihre Einstellungen.
164
+
165
+ `layout: focus` macht eine grosse Aussage. Die nächste Folie ist genau diese.
166
+ :::
167
+
168
+ :::notes
169
+ Ohne Layout ist eine Folie eine gewöhnliche Überschrift mit Inhalt. Diese Folie ist `layout: split`, die beiden Seiten stehen in `:::slot left` und `:::slot right`; `ratio: [3, 2]` gibt dem Code mehr Platz.
170
+
171
+ Die eingebauten Layouts sind `title`, `chapter`, `focus`, `split`, `image-text` und `full-bleed-image`.
172
+ :::
173
+
174
+ ---
175
+ :::meta
176
+ layout: focus
177
+ attribution: "Eine Lehrerin"
178
+ time: 30s
179
+ :::
180
+ # Gute Fragen führen zu besseren Gesprächen.
181
+
182
+ ---
183
+ :::meta
184
+ layout: image-text
185
+ image: ./img/image.jpg
186
+ alt: "Höhenlinien wie auf einer Landkarte"
187
+ time: 45s
188
+ :::
189
+ # Ein Bild neben deinen Worten
190
+
191
+ ```markdown
192
+ :::meta
193
+ layout: image-text
194
+ image: ./img/image.jpg
195
+ alt: "Höhenlinien"
196
+ :::
197
+ ```
198
+
199
+ `alt` beschreibt das Bild für Menschen, die es nicht sehen können.
200
+
201
+ :::notes
202
+ Bilder liegen am besten in einem Ordner neben den Folien, hier `img/`. Die nächste Folie zeigt dasselbe Bild mit `layout: full-bleed-image`.
203
+ :::
204
+
205
+ ---
206
+ :::meta
207
+ layout: full-bleed-image
208
+ image: ./img/image.jpg
209
+ alt: "Höhenlinien wie auf einer Landkarte"
210
+ overlay: true
211
+ time: 30s
212
+ :::
213
+ # Oder das Bild füllt die ganze Folie.
214
+
215
+ :::notes
216
+ Diese Folie ist so geschrieben:
217
+
218
+ ```markdown
219
+ :::meta
220
+ layout: full-bleed-image
221
+ image: ./img/image.jpg
222
+ overlay: true
223
+ :::
224
+ # Oder das Bild füllt die ganze Folie.
225
+ ```
226
+
227
+ `overlay: true` dunkelt das Bild ab, damit die Überschrift lesbar bleibt.
228
+ :::
229
+
230
+ ---
231
+ :::meta
232
+ layout: split
233
+ time: 1m30s
234
+ :::
235
+ # Code, der läuft
236
+ :::slot left
237
+ ````markdown
238
+ ```python live editable
239
+ squares = [x**2 for x in range(1, 6)]
240
+ print(squares)
241
+ ```
242
+ ````
243
+ :::
244
+ :::slot right
245
+ ```python live editable
246
+ squares = [x**2 for x in range(1, 6)]
247
+ print(squares)
248
+ ```
249
+ :::
250
+
251
+ :::notes
252
+ Drück auf Run. `live` fügt den Knopf hinzu, mit `editable` lässt sich der Code während des Vortrags ändern, `copy` fügt einen Kopierknopf hinzu. JavaScript funktioniert genauso.
253
+
254
+ Live-Python lädt seine Laufzeitumgebung beim ersten Mal herunter und braucht dafür eine Internetverbindung.
255
+ :::
256
+
257
+ ---
258
+ :::meta
259
+ layout: split
260
+ time: 45s
261
+ :::
262
+ # Tabellen und Formeln
263
+ :::slot left
264
+ ```markdown
265
+ | Ebene | Wem sie gehört |
266
+ |---|---|
267
+ | Worte | Dir |
268
+ | Aussehen | Dem Theme |
269
+
270
+ $$
271
+ A = \pi r^2
272
+ $$
273
+ ```
274
+ :::
275
+ :::slot right
276
+ | Ebene | Wem sie gehört |
277
+ |---|---|
278
+ | Worte | Dir |
279
+ | Aussehen | Dem Theme |
280
+
281
+ $$
282
+ A = \pi r^2
283
+ $$
284
+ :::
285
+
286
+ :::notes
287
+ Formeln werden in LaTeX geschrieben. Einfache Dollarzeichen setzen eine Formel in einen Satz; doppelte Dollarzeichen darüber und darunter stellen sie auf eine eigene Zeile.
288
+ :::
289
+
290
+ ---
291
+ :::meta
292
+ layout: split
293
+ time: 45s
294
+ :::
295
+ # Tipps und Warnungen
296
+ :::slot left
297
+ ```markdown
298
+ :::tip
299
+ Ein Tipp pro Folie reicht.
300
+ :::
301
+
302
+ :::warning
303
+ Prüf den Beamer im Raum.
304
+ :::
305
+ ```
306
+ :::
307
+ :::slot right
308
+ :::tip
309
+ Ein Tipp pro Folie reicht.
310
+ :::
311
+
312
+ :::warning
313
+ Prüf den Beamer im Raum.
314
+ :::
315
+ :::
316
+
317
+ :::notes
318
+ Die übrigen Hinweiskästen sind `note`, `important` und `caution`. Eine eigene Beschriftung kommt hinter den Typ, zum Beispiel `:::tip Vor dem Vortrag`.
319
+ :::
320
+
321
+ ---
322
+ :::meta
323
+ layout: split
324
+ time: 1m
325
+ :::
326
+ # Quellen zitieren
327
+ :::slot left
328
+ ```markdown
329
+ ---
330
+ bibliography: refs.bib
331
+ ---
332
+
333
+ Abrufen schlägt Wiederlesen
334
+ [@roediger2006].
335
+ ```
336
+ :::
337
+ :::slot right
338
+ Abrufen schlägt Wiederlesen [@roediger2006].
339
+
340
+ Vorlesungen mit aktivem Lernen senken die Durchfallquote um ein Drittel [@freeman2014].
341
+ :::
342
+
343
+ :::notes
344
+ `refs.bib` ist eine BibTeX-Datei, wie Zotero sie exportiert; CSL-JSON und Hayagriva gehen auch. Jede Folie führt ihre eigenen Quellen über der Fusszeile auf, und `<bibliography />` auf einer Folie listet alle auf. `csl: vancouver` stellt auf Nummern um.
345
+ :::
346
+
347
+ ---
348
+ :::meta
349
+ layout: chapter
350
+ number: 3
351
+ part: Präsentieren
352
+ description: Notizen für dich, Zeichnen auf den Folien und Fragen an den Raum.
353
+ id: give-the-talk
354
+ time: 15s
355
+ :::
356
+ # Vortragen.
357
+
358
+ ---
359
+ :::meta
360
+ layout: split
361
+ time: 1m
362
+ :::
363
+ # Notizen nur für dich
364
+ :::slot left
365
+ ```markdown
366
+ :::notes
367
+ Hier Pause. Fragen, wer das
368
+ schon ausprobiert hat.
369
+ :::
370
+ ```
371
+ :::
372
+ :::slot right
373
+ Notizen stehen unter dem Inhalt der Folie. Sie erscheinen in der **Referentenansicht**, nie auf dem Beamer.
374
+
375
+ Öffne sie über die Startseite und zieh das **Publikumsfenster** auf den Beamer. Die beiden folgen einander.
376
+ :::
377
+
378
+ :::notes
379
+ Hier Pause. Fragen, wer das schon ausprobiert hat.
380
+
381
+ So zeigt die Referentenansicht diese Folie. Ihre Kopfzeile zeigt auch, was verbunden ist: weitere Referentenansichten, Publikumsfenster und Handys.
382
+ :::
383
+
384
+ ---
385
+ :::meta
386
+ id: draw-on-any-slide
387
+ time: 1m
388
+ :::
389
+ # Auf jeder Folie zeichnen
390
+
391
+ Drück jetzt **D** oder den Stift-Knopf. Zeichne mit Stift, Textmarker oder einem Marker, der nach einem Moment verblasst. **Escape** beendet das Zeichnen.
392
+
393
+ Zeichnungen landen in einer `.drawings.json`-Datei neben den Folien und erscheinen im PDF.
394
+
395
+ :::notes
396
+ Unterstreichung und Kreis auf dieser Folie wurden mit dem Stift gezeichnet und gespeichert; sie erscheinen in jeder Ansicht und im PDF.
397
+
398
+ Ein iPad koppelst du über die Startseite: Dort zeichnest und steuerst du, während der Laptop den Beamer bedient.
399
+ :::
400
+
401
+ ---
402
+ :::meta
403
+ layout: split
404
+ hotspots: auto
405
+ id: zoom-in-on-a-part
406
+ time: 1m30s
407
+ :::
408
+ # In einen Teil hineinzoomen
409
+ :::slot left
410
+ ```markdown
411
+ :::meta
412
+ hotspots: auto
413
+ :::
414
+ ```
415
+
416
+ Drück in der Referentenansicht eine **Zahl**, um in diesen Teil zu zoomen. Dieselbe Zahl, **0** oder **Escape** führt zurück.
417
+ :::
418
+ :::slot right
419
+ | Ebene | Wem sie gehört |
420
+ |---|---|
421
+ | Worte | Dir |
422
+ | Aussehen | Dem Theme |
423
+
424
+ $$
425
+ A = \pi r^2
426
+ $$
427
+ :::
428
+
429
+ :::notes
430
+ Die Zifferntasten erscheinen auf dieser Folie nur hier in der Referentenansicht, nie auf dem Beamer. Drück 2 für die Tabelle, 3 für die Formel; das Publikumsfenster fliegt mit. Die Pfeiltasten verlassen den Zoom und blättern mit einem Druck weiter.
431
+
432
+ `hotspots: auto` findet Bilder, Code, Tabellen, Formeln und Hinweiskästen. In den Deck-Einstellungen ganz oben gibt es Tasten auf jeder Folie; `marked` vergibt Tasten nur an Teile mit `data-hotspot`. H schaltet die Tasten während des Vortrags aus und ein.
433
+ :::
434
+
435
+ ---
436
+ :::meta
437
+ layout: split
438
+ time: 1m
439
+ :::
440
+ # Den Vortrag timen
441
+ :::slot left
442
+ ```markdown
443
+ :::meta
444
+ time: 1m
445
+ :::
446
+ ```
447
+ :::
448
+ :::slot right
449
+ Gib jeder Folie eine **Zeit**. Die Referentenansicht zählt sie herunter und zeigt, ob du vor oder hinter dem Plan liegst.
450
+
451
+ Mit `mdeck rehearse slides.md` misst du die Folien beim Üben und speicherst die Zeiten in der Datei.
452
+ :::
453
+
454
+ :::notes
455
+ Jede Folie dieser Tour hat eine Zeit, insgesamt 21 Minuten. Drück T in der Referentenansicht, um den Timer zu starten: Darunter siehst du, wie viel von dieser Folie übrig ist und wo der Vortrag steht.
456
+
457
+ Eine Probe misst die Zeiten für dich. Am Ende bietet sie sie auf 15 Sekunden gerundet an; ändere beliebige davon, bevor du speicherst.
458
+ :::
459
+
460
+ ---
461
+ :::meta
462
+ time: 1m30s
463
+ :::
464
+ # Was probierst du zuerst aus?
465
+
466
+ <poll room="tour" options="Schreiben|Layouts|Zeichnen|Umfragen" />
467
+
468
+ :::notes
469
+ Eine Zeile ergibt eine Umfrage; die Überschrift ist die Frage:
470
+
471
+ `<poll room="tour" options="Schreiben|Layouts|Zeichnen|Umfragen" />`
472
+
473
+ Drück **J**, dann erscheint der Beitrittscode über der Folie; Handys scannen ihn und bleiben für alle weiteren Fragen dabei. Sie erreichen diesen Computer, wenn du `mdeck run slides.md --network` startest.
474
+ :::
475
+
476
+ ---
477
+ :::meta
478
+ layout: split
479
+ time: 1m
480
+ :::
481
+ # Ein Wort von allen
482
+ :::slot left
483
+ ```markdown
484
+ <wordcloud room="mood" />
485
+
486
+ <scale room="pace" min="1" max="5"
487
+ low="Zu langsam" high="Zu schnell" />
488
+
489
+ <question room="ask" />
490
+ ```
491
+ :::
492
+ :::slot right
493
+ <wordcloud room="mood" placeholder="Ein Wort" />
494
+ :::
495
+
496
+ :::notes
497
+ Handys, die bei der Umfrage beigetreten sind, bleiben dabei; **J** zeigt den Beitrittscode für Nachzügler noch einmal. Antworten erscheinen, sobald sie eintreffen. Diese Tour setzt `reactions: true`, darum haben die Handys auch Knöpfe 👍 👏 ❤️ 😮 🤔 🐢: Antippen lässt sie in deiner Referentenansicht aufsteigen, nie auf dem Beamer.
498
+
499
+ Neben Umfragen und Wortwolken gibt es Bewertungen (`<scale>`), Zahlen mit richtiger Antwort (`<numeric>`) und offene Fragen (`<question>`). Bei mehreren davon zeigt `<qrcode join />` auf einer frühen Folie den Code einmal. `mdeck run` speichert die Antworten in `slides.results.json` neben dem Deck.
500
+ :::
501
+
502
+ ---
503
+ :::meta
504
+ layout: chapter
505
+ number: 4
506
+ part: Teilen
507
+ description: Eine Datei zum Verschicken, ein PDF oder ein Ordner für eine Website.
508
+ time: 15s
509
+ :::
510
+ # Teilen.
511
+
512
+ ---
513
+ :::meta
514
+ layout: split
515
+ time: 45s
516
+ :::
517
+ # Das ganze Aussehen ändern
518
+ :::slot left
519
+ ```markdown
520
+ ---
521
+ theme: work
522
+ palette: lagoon
523
+ ---
524
+ ```
525
+ :::
526
+ :::slot right
527
+ Zwei Zeilen am Anfang der Datei wählen Theme und Farben für alle Folien auf einmal.
528
+
529
+ Zum Ausprobieren, ohne die Datei zu ändern: die **Leseansicht** öffnen und **Look** wählen.
530
+ :::
531
+
532
+ :::notes
533
+ mdeck hat vier eingebaute Themes und fünf Paletten, jeweils hell oder dunkel. `mdeck list` zeigt sie alle, auch solche in einem Ordner `extensions` neben dem Deck. `mdeck themes search` findet weitere im Theme-Repository.
534
+ :::
535
+
536
+ ---
537
+ :::meta
538
+ layout: split
539
+ time: 45s
540
+ :::
541
+ # Verschicken, drucken, hosten
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` erzeugt eine HTML-Datei ohne deine Notizen, mit einem PDF darin. Man öffnet sie im Browser.
551
+
552
+ `pdf` erzeugt eine Seite pro Folie. `build` erzeugt einen Ordner für einen Webserver.
553
+ :::
554
+
555
+ ---
556
+ :::meta
557
+ layout: title
558
+ time: 1m
559
+ :::
560
+ # Jetzt bist du dran.
561
+ ## Gib deine Folien, Dokumente oder Notizen einem *KI-Assistenten*.
562
+
563
+ :::notes
564
+ `mdeck skill --install claude` (oder codex, cursor, copilot, gemini) installiert den Skill `write-slides`, der dem Assistenten mdeck beibringt. Dann verweist du ihn auf dein Material: „Bau lecture-03.pptx als 20-minütigen Vortrag neu.“
565
+
566
+ Ohne Assistent stellt `mdeck new` ein paar Fragen und legt ein Deck an.
567
+ :::
@@ -0,0 +1,57 @@
1
+ {
2
+ "version": 1,
3
+ "rooms": {
4
+ "tour": {
5
+ "savedAt": "2026-10-12T21:17:14.623Z",
6
+ "closed": false,
7
+ "answers": [
8
+ {
9
+ "phone": 1,
10
+ "at": "2026-10-12T21:01:59.353Z",
11
+ "value": "Umfragen"
12
+ }
13
+ ]
14
+ },
15
+ "mood": {
16
+ "savedAt": "2026-10-12T21:18:16.405Z",
17
+ "closed": false,
18
+ "answers": [
19
+ {
20
+ "phone": 1,
21
+ "at": "2026-10-12T21:17:34.435Z",
22
+ "value": "Bonj"
23
+ },
24
+ {
25
+ "phone": 1,
26
+ "at": "2026-10-12T21:17:38.153Z",
27
+ "value": "Banjf"
28
+ },
29
+ {
30
+ "phone": 1,
31
+ "at": "2026-10-12T21:17:43.867Z",
32
+ "value": "Hallo Herr Doktor Müller"
33
+ },
34
+ {
35
+ "phone": 1,
36
+ "at": "2026-10-12T21:17:49.791Z",
37
+ "value": "Hallo Herr"
38
+ },
39
+ {
40
+ "phone": 1,
41
+ "at": "2026-10-12T21:17:57.260Z",
42
+ "value": "Hallo Herr Doktor Müller"
43
+ },
44
+ {
45
+ "phone": 1,
46
+ "at": "2026-10-12T21:18:03.177Z",
47
+ "value": "Ja 👍 und die sind"
48
+ },
49
+ {
50
+ "phone": 1,
51
+ "at": "2026-10-12T21:18:15.378Z",
52
+ "value": "Hallo Herr Müller"
53
+ }
54
+ ]
55
+ }
56
+ }
57
+ }
@@ -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":[[136,464,0.45],[151,466,0.48],[166,468,0.52],[181,469,0.55],[196,470,0.58],[211,471,0.61],[226,471,0.64],[241,470,0.66],[256,469,0.68],[271,467,0.7],[286,466,0.72],[301,464,0.73],[316,462,0.74],[331,461,0.75],[346,460,0.75],[361,460,0.75],[376,461,0.74],[391,462,0.73],[406,463,0.72],[421,465,0.71],[436,467,0.69],[451,469,0.67],[466,471,0.64],[481,472,0.62],[496,473,0.59],[511,474,0.56],[526,474,0.53],[541,473,0.49],[556,472,0.46],[571,470,0.43],[586,469,0.39],[601,467,0.36],[616,466,0.33],[631,464,0.3],[646,464,0.27],[661,463,0.25],[676,464,0.22],[691,464,0.2],[706,466,0.19],[721,468,0.17],[736,470,0.16]]},
8
+ {"id":"tour:circle","tool":"pen","color":"#e11d48","size":6,"points":[[252,495,0.5],[256,495,0.54],[261,495,0.57],[265,496,0.6],[269,498,0.64],[273,501,0.66],[276,504,0.69],[278,508,0.71],[280,512,0.73],[281,516,0.74],[282,520,0.75],[281,524,0.75],[280,528,0.75],[278,532,0.74],[276,536,0.73],[273,538,0.71],[270,541,0.69],[266,543,0.66],[263,545,0.63],[259,546,0.6],[255,547,0.57],[251,547,0.54],[247,547,0.5],[243,547,0.46],[239,545,0.43],[235,544,0.4],[232,542,0.36],[229,539,0.34],[226,535,0.31],[224,532,0.29],[222,527,0.27],[222,523,0.26],[222,519,0.25],[223,514,0.25],[225,510,0.25],[227,507,0.26],[230,504,0.27],[233,501,0.29],[237,499,0.31],[241,498,0.34],[245,497,0.37],[249,497,0.4],[253,497,0.43],[257,497,0.47],[261,499,0.5],[265,500,0.54]]}
9
+ ]
10
+ }
11
+ }