mdeck 3.10.1 → 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 (60) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +13 -2
  3. package/assets/base.css +4 -1
  4. package/docs/reference/authoring.md +65 -4
  5. package/docs/site/assets/site.css +2 -0
  6. package/docs/site/content/commands.md +3 -1
  7. package/docs/site/content/drawing.md +1 -1
  8. package/docs/site/content/install.md +47 -0
  9. package/docs/site/content/media.md +20 -1
  10. package/docs/site/content/presenting.md +39 -2
  11. package/docs/site/content/sharing.md +1 -0
  12. package/docs/site/content/welcome.md +21 -1
  13. package/docs/site/images/features/hotspots.webp +0 -0
  14. package/docs/site/images/features/languages.webp +0 -0
  15. package/docs/site/pages.js +1 -0
  16. package/examples/custom-layouts/slides.md +21 -9
  17. package/examples/showcase/refs.bib +21 -0
  18. package/examples/showcase/slides.ar.drawings.json +11 -0
  19. package/examples/showcase/slides.ar.md +567 -0
  20. package/examples/showcase/slides.de.drawings.json +11 -0
  21. package/examples/showcase/slides.de.md +567 -0
  22. package/examples/showcase/slides.en.drawings.json +11 -0
  23. package/examples/showcase/{slides.md → slides.en.md} +112 -5
  24. package/package.json +1 -1
  25. package/skills/write-slides/SKILL.md +10 -1
  26. package/src/build/check.js +7 -1
  27. package/src/build/config.js +2 -0
  28. package/src/build/slidesPlugin.js +6 -6
  29. package/src/build/svgCheck.js +65 -0
  30. package/src/build/timingPlugin.js +80 -0
  31. package/src/cli/args.js +4 -3
  32. package/src/cli/index.js +34 -11
  33. package/src/components/VideoPlayer.jsx +6 -1
  34. package/src/core/editDeck.js +44 -7
  35. package/src/core/icons.js +3 -0
  36. package/src/core/labels.js +75 -0
  37. package/src/core/parseSlides.js +3 -3
  38. package/src/core/timing.js +83 -0
  39. package/src/core/validateDeck.js +5 -0
  40. package/src/editor/components/DeckSettings.jsx +1 -0
  41. package/src/editor/components/MetaFields.jsx +1 -0
  42. package/src/home/Home.jsx +1 -0
  43. package/src/layouts/layoutApi.jsx +51 -8
  44. package/src/runtime/RehearsalSummary.jsx +129 -0
  45. package/src/runtime/component.js +27 -0
  46. package/src/runtime/deck-stage.js +49 -20
  47. package/src/runtime/ink/bus.js +13 -5
  48. package/src/runtime/ink/outbox.js +27 -0
  49. package/src/runtime/ink/room.js +31 -6
  50. package/src/runtime/ink/segments.js +21 -0
  51. package/src/runtime/main.jsx +157 -28
  52. package/src/runtime/shared.js +77 -0
  53. package/src/runtime/steps.js +36 -0
  54. package/src/runtime/useTalkTimer.js +65 -0
  55. package/examples/citations/refs.bib +0 -30
  56. package/examples/citations/refs.yml +0 -21
  57. package/examples/citations/slides.md +0 -43
  58. package/examples/citations/slides.pdf +0 -0
  59. package/examples/poll/slides.md +0 -127
  60. package/examples/showcase/slides.drawings.json +0 -11
@@ -1,127 +0,0 @@
1
- ---
2
- theme: neue
3
- meta:
4
- title: "Ask the room"
5
- author: "Tilman Schieber"
6
- organization: "FHNW"
7
- date: "2026-09-30"
8
- ---
9
-
10
- ---
11
- :::meta
12
- layout: title
13
- :::
14
- # Ask the room.
15
- ## Live questions in a plain slide file.
16
-
17
- :::notes
18
- Start this deck with `mdeck run slides.md --network` so phones in the same network can answer.
19
-
20
- The deck shows every kind of question mdeck has: a poll, a scale, a word cloud and open answers. The QR code appears once, on the next slide.
21
- :::
22
-
23
- ---
24
- # Take out your phone.
25
-
26
- <qrcode join />
27
-
28
- :::notes
29
- Leave this up until most people have scanned. The code is the same for the whole talk: phones that joined now follow along, and each question appears on them when its slide comes up.
30
-
31
- Come back to this slide for latecomers, or leave the join code on the last question too.
32
- :::
33
-
34
- ---
35
- :::meta
36
- title: "Poll: how do you make slides?"
37
- :::
38
- # How do you make slides today?
39
-
40
- <poll room="tools" options="PowerPoint|Keynote|Google Slides|LaTeX Beamer|Markdown" qr="false" />
41
-
42
- :::notes
43
- A poll: one button per answer. Give people half a minute and read out the leader once the bars settle.
44
-
45
- Anyone can change their answer: only the latest vote from each phone counts.
46
-
47
- Before the talk, hover over the results and click Reset to clear test votes.
48
- :::
49
-
50
- ---
51
- :::meta
52
- title: "Scale: Markdown"
53
- :::
54
- # How well do you know Markdown?
55
-
56
- <scale room="markdown" min="1" max="5" low="Never used it" high="Every day" qr="false" />
57
-
58
- :::notes
59
- A scale: phones show the numbers from 1 to 5, the slide counts each one and shows the average.
60
-
61
- A high average means the rest of the talk can go faster.
62
- :::
63
-
64
- ---
65
- :::meta
66
- title: "Word cloud: slides"
67
- :::
68
- # One word for your last presentation?
69
-
70
- <wordcloud room="mood" placeholder="One word" qr="false" />
71
-
72
- :::notes
73
- A word cloud: people may send as many words as they like. The more often a word comes in, the larger it gets, packed around the middle; capitals do not matter.
74
-
75
- Pick out the largest word and one surprising small one.
76
- :::
77
-
78
- ---
79
- :::meta
80
- title: "Open question"
81
- :::
82
- # What would you like to ask?
83
-
84
- <question room="ask" placeholder="Your question" qr="false" />
85
-
86
- :::notes
87
- Open answers: the newest eight appear as cards, and people can send several.
88
-
89
- Answer one or two now, and promise to go through the rest afterwards; the room keeps them until you reset it.
90
- :::
91
-
92
- ---
93
- # Each question is one line.
94
-
95
- ```markdown
96
- <qrcode join />
97
- <poll room="tools" options="PowerPoint|Keynote|Markdown" />
98
- <scale room="markdown" min="1" max="5" low="Never" high="Daily" />
99
- <wordcloud room="mood" />
100
- <question room="ask" placeholder="Your question" />
101
- ```
102
-
103
- - **room** — a short name, different for every question in the deck.
104
- - **qr="false"** — leave out the code when `<qrcode join />` showed it earlier.
105
- - **question** — optional; without it, phones show the slide heading.
106
-
107
- :::notes
108
- Point at the lines that made the previous slides. That is all the author writes.
109
-
110
- The QR code takes the slide's colours, so it fits every theme; phone cameras read light-on-dark codes too.
111
- :::
112
-
113
- ---
114
- # Try it on your own computer.
115
-
116
- ```sh
117
- mdeck run slides.md --network
118
- ```
119
-
120
- - **Same network** — phones must be able to reach your computer.
121
- - **Lecture hall** — run `mdeck server` on a web server; the slides stay on your laptop.
122
-
123
- :::notes
124
- For a lecture hall, run `mdeck server` on a web server once and point the deck's `server` setting at it. The phones only talk to that server; the slides never leave this laptop. The "Ask your audience" guide has the details.
125
-
126
- Many university networks keep devices apart. If phones cannot open the page, use a phone hotspot or a server on the internet.
127
- :::
@@ -1,11 +0,0 @@
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":[[120,462,0.45],[135,464,0.48],[150,466,0.52],[165,467,0.55],[180,468,0.58],[195,469,0.61],[210,469,0.64],[225,468,0.66],[240,467,0.68],[255,465,0.7],[270,464,0.72],[285,462,0.73],[300,460,0.74],[315,459,0.75],[330,458,0.75],[345,458,0.75],[360,459,0.74],[375,460,0.73],[390,461,0.72],[405,463,0.71],[420,465,0.69],[435,467,0.67],[450,469,0.64],[465,470,0.62],[480,471,0.59],[495,472,0.56],[510,472,0.53],[525,471,0.49],[540,470,0.46],[555,468,0.43],[570,467,0.39],[585,465,0.36],[600,464,0.33],[615,462,0.3],[630,462,0.27],[645,461,0.25],[660,462,0.22],[675,462,0.2],[690,464,0.19],[705,466,0.17],[720,468,0.16]]},
8
- {"id":"tour:circle","tool":"pen","color":"#e11d48","size":6,"points":[[226,491,0.5],[230,491,0.54],[235,491,0.57],[239,492,0.6],[243,494,0.64],[247,497,0.66],[250,500,0.69],[252,504,0.71],[254,508,0.73],[255,512,0.74],[256,516,0.75],[255,520,0.75],[254,524,0.75],[252,528,0.74],[250,532,0.73],[247,534,0.71],[244,537,0.69],[240,539,0.66],[237,541,0.63],[233,542,0.6],[229,543,0.57],[225,543,0.54],[221,543,0.5],[217,543,0.46],[213,541,0.43],[209,540,0.4],[206,538,0.36],[203,535,0.34],[200,531,0.31],[198,528,0.29],[196,523,0.27],[196,519,0.26],[196,515,0.25],[197,510,0.25],[199,506,0.25],[201,503,0.26],[204,500,0.27],[207,497,0.29],[211,495,0.31],[215,494,0.34],[219,493,0.37],[223,493,0.4],[227,493,0.43],[231,493,0.47],[235,495,0.5],[239,496,0.54]]}
9
- ]
10
- }
11
- }