research-copilot 0.2.20 → 0.2.21
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.md +1 -1
- package/app/out/main/index.mjs +2585 -48
- package/app/out/renderer/assets/{MilkdownMarkdownEditor-CCdZ2mtg.css → MilkdownMarkdownEditor-BW0Pt28W.css} +16 -1
- package/app/out/renderer/assets/{MilkdownMarkdownEditor-Bj7JSjF5.js → MilkdownMarkdownEditor-OhCrq3X0.js} +56 -51
- package/app/out/renderer/assets/{arc-CPL9nDFE.js → arc-DLr0RP8F.js} +1 -1
- package/app/out/renderer/assets/{blockDiagram-c4efeb88-BFOajDNs.js → blockDiagram-c4efeb88-XhKChw2n.js} +8 -8
- package/app/out/renderer/assets/{c4Diagram-c83219d4-LeqnQ2-5.js → c4Diagram-c83219d4-DDoJmoIQ.js} +3 -3
- package/app/out/renderer/assets/{channel-jk5Np8ud.js → channel-CJCgJSqV.js} +1 -1
- package/app/out/renderer/assets/{classDiagram-beda092f-CxOqB6OU.js → classDiagram-beda092f-CAmimZpz.js} +6 -6
- package/app/out/renderer/assets/{classDiagram-v2-2358418a-CyP_5qLa.js → classDiagram-v2-2358418a-Bma4E_Eg.js} +10 -10
- package/app/out/renderer/assets/{clone-PHFwh58n.js → clone-C338dmoI.js} +1 -1
- package/app/out/renderer/assets/{createText-1719965b-CE_0jsfj.js → createText-1719965b-_up4NJqB.js} +2 -2
- package/app/out/renderer/assets/{edges-96097737-DBk1JhZS.js → edges-96097737-Bpp6hVLn.js} +3 -3
- package/app/out/renderer/assets/{erDiagram-0228fc6a-DnR_LkSB.js → erDiagram-0228fc6a-bjTh_7ap.js} +5 -5
- package/app/out/renderer/assets/{flowDb-c6c81e3f-CJrZUKlS.js → flowDb-c6c81e3f-BjVV4DVk.js} +1 -1
- package/app/out/renderer/assets/{flowDiagram-50d868cf-CfNfrt17.js → flowDiagram-50d868cf-gmeaaZ6z.js} +12 -12
- package/app/out/renderer/assets/{flowDiagram-v2-4f6560a1-BGQtiK3j.js → flowDiagram-v2-4f6560a1-nem5zs2M.js} +12 -12
- package/app/out/renderer/assets/{flowchart-elk-definition-6af322e1-BXLraghz.js → flowchart-elk-definition-6af322e1-DPaGAYRw.js} +6 -6
- package/app/out/renderer/assets/{ganttDiagram-a2739b55-CAwaEMMm.js → ganttDiagram-a2739b55-CnAti19E.js} +3 -3
- package/app/out/renderer/assets/{gitGraphDiagram-82fe8481-vuSEC6ny.js → gitGraphDiagram-82fe8481-DQWHD3SJ.js} +2 -2
- package/app/out/renderer/assets/{graph-CZfltE7S.js → graph-DKiKgH8m.js} +1 -1
- package/app/out/renderer/assets/{index-DIZJXKQ6.js → index-4s-c5d65.js} +3 -3
- package/app/out/renderer/assets/{index-5325376f-DWTrHDEo.js → index-5325376f-G-0aO-2i.js} +6 -6
- package/app/out/renderer/assets/{index-CwPfquqm.js → index-9q_P5ULR.js} +4 -4
- package/app/out/renderer/assets/{index-EaGZvaBp.js → index-B1A3JxQj.js} +3 -3
- package/app/out/renderer/assets/{index-C2tqvXjC.js → index-BBUrmGmY.js} +6 -6
- package/app/out/renderer/assets/{index-D_7yOLk3.js → index-BQho5LH-.js} +6 -6
- package/app/out/renderer/assets/{index-B6f2bVW_.js → index-BUVlmsgO.js} +3 -3
- package/app/out/renderer/assets/{index-DpXI4mHb.js → index-BzEthrJ4.js} +3 -3
- package/app/out/renderer/assets/{index-CUsEKU8Q.js → index-C1YzkB4z.js} +93 -36
- package/app/out/renderer/assets/{index-CMfKxpBP.js → index-CGo665vD.js} +3 -3
- package/app/out/renderer/assets/{index-B5Mkpo9f.js → index-CPZaxR35.js} +3 -3
- package/app/out/renderer/assets/{index-BpdWQuss.js → index-CSyD1mbL.js} +3 -3
- package/app/out/renderer/assets/{index-DB8ImtMy.js → index-Cf7vlFSn.js} +3 -3
- package/app/out/renderer/assets/{index-CyDfvefg.js → index-CluH1o2q.js} +6 -6
- package/app/out/renderer/assets/{index-7dcVwInU.js → index-Cw1n3klA.js} +5 -5
- package/app/out/renderer/assets/{index-Ul-Kq9b2.js → index-DFzvntIw.js} +3 -3
- package/app/out/renderer/assets/{index-t0-md-MG.js → index-DHzyAhWM.js} +4 -4
- package/app/out/renderer/assets/{index-Cc9coKGN.js → index-DhliHfCM.js} +6 -6
- package/app/out/renderer/assets/{index-K0o5fHYG.js → index-DkVFbCxC.js} +3 -3
- package/app/out/renderer/assets/{index-DiCqe1UR.js → index-DpZJP5MT.js} +6 -6
- package/app/out/renderer/assets/{index-CaYWMBXT.js → index-Gfd_DiMG.js} +3 -3
- package/app/out/renderer/assets/{index-Di3HmXc-.js → index-jOvNAYyP.js} +3 -3
- package/app/out/renderer/assets/{index-B4V7cFWJ.js → index-rrJkk8KV.js} +6 -6
- package/app/out/renderer/assets/{index-BgAs-p8D.js → index-vfSerSmF.js} +1 -1
- package/app/out/renderer/assets/{infoDiagram-8eee0895-BmPESCfj.js → infoDiagram-8eee0895-BCnBkXXS.js} +2 -2
- package/app/out/renderer/assets/{journeyDiagram-c64418c1-BGsCbfr_.js → journeyDiagram-c64418c1-Bq2wSX3k.js} +4 -4
- package/app/out/renderer/assets/{layout-5MwFTPs7.js → layout-BvkumzoT.js} +2 -2
- package/app/out/renderer/assets/{line-D0U74KO0.js → line-eU4el-G4.js} +1 -1
- package/app/out/renderer/assets/{linear-BclyBoiT.js → linear-DlBjMBEa.js} +1 -1
- package/app/out/renderer/assets/{mindmap-definition-8da855dc-un1bPKBj.js → mindmap-definition-8da855dc-CzLBu7ao.js} +3 -3
- package/app/out/renderer/assets/{pieDiagram-a8764435-B7KM3duv.js → pieDiagram-a8764435--olrXFr_.js} +3 -3
- package/app/out/renderer/assets/{quadrantDiagram-1e28029f-C8i5m3Os.js → quadrantDiagram-1e28029f-BnpnBBgc.js} +3 -3
- package/app/out/renderer/assets/{requirementDiagram-08caed73-FjqENNN5.js → requirementDiagram-08caed73-6O9WS7hn.js} +5 -5
- package/app/out/renderer/assets/{sankeyDiagram-a04cb91d-BKV22yuJ.js → sankeyDiagram-a04cb91d-D-iJnK91.js} +2 -2
- package/app/out/renderer/assets/{sequenceDiagram-c5b8d532-DWO-Z2i3.js → sequenceDiagram-c5b8d532-DBlK15cV.js} +3 -3
- package/app/out/renderer/assets/{stateDiagram-1ecb1508-BqohgALA.js → stateDiagram-1ecb1508-DKXKPYuk.js} +6 -6
- package/app/out/renderer/assets/{stateDiagram-v2-c2b004d7-B3sEkrB8.js → stateDiagram-v2-c2b004d7-DY288Eo5.js} +10 -10
- package/app/out/renderer/assets/{styles-b4e223ce-BGytHk8n.js → styles-b4e223ce-CRJ_xgJ-.js} +1 -1
- package/app/out/renderer/assets/{styles-ca3715f6-B0PvBknL.js → styles-ca3715f6-Bp_k5KLD.js} +1 -1
- package/app/out/renderer/assets/{styles-d45a18b0-C6F384ai.js → styles-d45a18b0-DLA8Gg6D.js} +4 -4
- package/app/out/renderer/assets/{svgDrawCommon-b86b1483-BXgThwM_.js → svgDrawCommon-b86b1483-Dm5CK2gQ.js} +1 -1
- package/app/out/renderer/assets/{timeline-definition-faaaa080-iNn5igPR.js → timeline-definition-faaaa080-D-m9BHUg.js} +3 -3
- package/app/out/renderer/assets/{xychartDiagram-f5964ef8-oF_gxlk1.js → xychartDiagram-f5964ef8-Drn4Rqev.js} +5 -5
- package/app/out/renderer/index.html +1 -1
- package/lib/skills/builtin/academic-marp-slides/SKILL.md +933 -0
- package/lib/skills/builtin/research-grants/SKILL.md +15 -11
- package/lib/skills/builtin/scholar-evaluation/SKILL.md +12 -11
- package/lib/skills/builtin/scientific-schematics/SKILL.md +463 -560
- package/lib/skills/builtin/teaching-marp-slides/SKILL.md +1218 -0
- package/package.json +1 -1
- package/scripts/audit-diagram-prompts.mjs +67 -0
- package/scripts/test-skill-routing.mjs +238 -0
- package/lib/skills/builtin/marp-slides/SKILL.md +0 -642
- package/lib/skills/builtin/scientific-schematics/references/QUICK_REFERENCE.md +0 -182
- package/lib/skills/builtin/scientific-schematics/references/README.md +0 -292
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic_ai.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/example_usage.sh +0 -85
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic.py +0 -141
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic_ai.py +0 -910
|
@@ -1,642 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: marp-slides
|
|
3
|
-
description: "Create polished research presentation slides in Markdown using Marp. Use when the user needs conference talk slides, lab meeting decks, thesis defense presentations, research seminars, or poster-style overviews. Converts research artifacts (papers, notes, data) into visual narratives. For written documents use paper-writing or scientific-writing; for individual figures use scientific-visualization."
|
|
4
|
-
category: Presentation
|
|
5
|
-
tags: [Marp, Slides, Presentation, Conference Talk, Lab Meeting, Thesis Defense, Seminar, Research Talk, Markdown Slides, 做PPT, 演示文稿, 学术报告, 幻灯片]
|
|
6
|
-
triggers: [make slides, create presentation, conference talk, lab meeting slides, thesis defense, research presentation, seminar slides, marp, slide deck, 做幻灯片, 做报告, 学术演讲, PPT]
|
|
7
|
-
depends: [scientific-visualization]
|
|
8
|
-
license: MIT
|
|
9
|
-
metadata:
|
|
10
|
-
skill-author: K-Dense Inc.
|
|
11
|
-
based-on: robonuggets/marp-slides
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Research Presentation Slides with Marp
|
|
15
|
-
|
|
16
|
-
Expert guidance for creating effective research presentation slides using **Marp** — a Markdown-to-slides pipeline that exports to HTML, PDF, and PPTX. This skill focuses on academic and research contexts: conference talks, lab meetings, thesis defenses, seminars, and internal research reviews.
|
|
17
|
-
|
|
18
|
-
## Overview
|
|
19
|
-
|
|
20
|
-
Marp converts standard Markdown files into presentation slides. You write Markdown, separate slides with `---`, control appearance through YAML directives, and export via CLI. This skill provides research-specific design systems, slide templates, and composition strategies that turn complex research into clear visual narratives.
|
|
21
|
-
|
|
22
|
-
**Philosophy**: Research slides are not documents. They are visual aids for a spoken narrative. Every slide should answer one question, support one claim, or show one result. If a slide requires more than 15 seconds to parse visually, it has too much content.
|
|
23
|
-
|
|
24
|
-
## When to Use This Skill
|
|
25
|
-
|
|
26
|
-
- The user needs slides for a conference talk, invited talk, or workshop presentation.
|
|
27
|
-
- The user wants to present research findings at a lab meeting, group meeting, or seminar.
|
|
28
|
-
- The user is preparing a thesis defense or qualifying exam presentation.
|
|
29
|
-
- The user wants to convert a paper draft or research artifacts into a slide deck.
|
|
30
|
-
- The user explicitly asks for Marp slides or a Markdown presentation.
|
|
31
|
-
|
|
32
|
-
## When NOT to Use This Skill
|
|
33
|
-
|
|
34
|
-
- The user needs a **written document** (paper, report, grant proposal) — use `paper-writing`, `scientific-writing`, or `research-grants`.
|
|
35
|
-
- The user needs a **single publication figure** — use `scientific-visualization`, `matplotlib`, or `seaborn`.
|
|
36
|
-
- The user needs a **diagram or schematic** only — use `scientific-schematics`.
|
|
37
|
-
- The user needs a **poster** (static large-format) — while Marp can produce poster-like outputs, dedicated poster tools are better. Ask the user before proceeding.
|
|
38
|
-
- The user is still **running experiments** — finish the research first, then present it.
|
|
39
|
-
|
|
40
|
-
### Differentiation from Other Skills
|
|
41
|
-
|
|
42
|
-
| Need | Use This Skill | Use Instead |
|
|
43
|
-
|------|---------------|-------------|
|
|
44
|
-
| Conference talk slides | **marp-slides** | — |
|
|
45
|
-
| Written conference paper | — | `paper-writing` |
|
|
46
|
-
| Journal manuscript | — | `scientific-writing` |
|
|
47
|
-
| Individual data figure | — | `scientific-visualization` |
|
|
48
|
-
| Diagram / flowchart | — | `scientific-schematics` |
|
|
49
|
-
| Grant proposal | — | `research-grants` |
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Marp Syntax Quick Reference
|
|
54
|
-
|
|
55
|
-
### Document Structure
|
|
56
|
-
|
|
57
|
-
Every Marp file starts with YAML front matter and uses `---` to separate slides:
|
|
58
|
-
|
|
59
|
-
```markdown
|
|
60
|
-
---
|
|
61
|
-
marp: true
|
|
62
|
-
theme: default
|
|
63
|
-
paginate: true
|
|
64
|
-
style: |
|
|
65
|
-
/* CSS customizations here */
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
# Slide 1: Title
|
|
69
|
-
|
|
70
|
-
Content here.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
# Slide 2: Next Topic
|
|
75
|
-
|
|
76
|
-
More content.
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Essential Directives
|
|
80
|
-
|
|
81
|
-
**Global** (front matter — apply to entire deck):
|
|
82
|
-
|
|
83
|
-
| Directive | Purpose | Example |
|
|
84
|
-
|-----------|---------|---------|
|
|
85
|
-
| `marp: true` | Enable Marp rendering | Required |
|
|
86
|
-
| `theme` | Base theme | `default`, `gaia`, `uncover` |
|
|
87
|
-
| `paginate: true` | Show slide numbers | Usually enabled |
|
|
88
|
-
| `style` | Custom CSS block | See theme section below |
|
|
89
|
-
| `math: mathjax` | Enable math typesetting | For equations |
|
|
90
|
-
| `headingDivider: 2` | Auto-split at h2 headings | Useful for long content |
|
|
91
|
-
| `size: 16:9` | Slide aspect ratio | Default is 16:9 (1280x720) |
|
|
92
|
-
|
|
93
|
-
**Per-slide** (in HTML comments — inherited by subsequent slides):
|
|
94
|
-
|
|
95
|
-
```markdown
|
|
96
|
-
<!-- backgroundColor: #1a1a2e -->
|
|
97
|
-
<!-- color: #e0e0e0 -->
|
|
98
|
-
<!-- class: lead -->
|
|
99
|
-
<!-- header: "Section Name" -->
|
|
100
|
-
<!-- footer: "Author — Conference 2026" -->
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**Single-slide only** (underscore prefix — no inheritance):
|
|
104
|
-
|
|
105
|
-
```markdown
|
|
106
|
-
<!-- _paginate: false -->
|
|
107
|
-
<!-- _backgroundColor: #000 -->
|
|
108
|
-
<!-- _header: "" -->
|
|
109
|
-
<!-- _class: lead -->
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Image Syntax
|
|
113
|
-
|
|
114
|
-
```markdown
|
|
115
|
-
 <!-- fixed width -->
|
|
116
|
-
 <!-- fixed height -->
|
|
117
|
-
 <!-- full background -->
|
|
118
|
-
 <!-- split layout: image right 40% -->
|
|
119
|
-
 <!-- split layout: image left 35% -->
|
|
120
|
-
 <!-- fit without cropping -->
|
|
121
|
-
 <!-- darkened background -->
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Math
|
|
125
|
-
|
|
126
|
-
```markdown
|
|
127
|
-
Inline: $E = mc^2$
|
|
128
|
-
|
|
129
|
-
Block:
|
|
130
|
-
$$
|
|
131
|
-
\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}
|
|
132
|
-
$$
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Code Blocks
|
|
136
|
-
|
|
137
|
-
````markdown
|
|
138
|
-
```python
|
|
139
|
-
def train(model, data):
|
|
140
|
-
for batch in data:
|
|
141
|
-
loss = model(batch)
|
|
142
|
-
loss.backward()
|
|
143
|
-
```
|
|
144
|
-
````
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Design Principles for Research Slides
|
|
149
|
-
|
|
150
|
-
### Axiom: One Idea Per Slide
|
|
151
|
-
|
|
152
|
-
Marp clips overflowing content **silently** — there is no warning. If text overflows the slide boundary, the audience never sees it and you get no error. This makes "one idea per slide" not just good practice but a survival rule.
|
|
153
|
-
|
|
154
|
-
**Practical limits per slide:**
|
|
155
|
-
- Max 6 bullet points (prefer 3-4)
|
|
156
|
-
- Max 1 figure + 3 lines of explanation
|
|
157
|
-
- Max 1 table with 5 rows
|
|
158
|
-
- Max 1 code block of 12 lines
|
|
159
|
-
|
|
160
|
-
### Visual Hierarchy
|
|
161
|
-
|
|
162
|
-
| Element | Role | Styling |
|
|
163
|
-
|---------|------|---------|
|
|
164
|
-
| h1 | Slide title | Large, bold, accent or white |
|
|
165
|
-
| h2 | Subtitle or section | Lighter weight, grey |
|
|
166
|
-
| h3 | Label or category | Small, uppercase, muted |
|
|
167
|
-
| Body text | Supporting narrative | `#999` on dark, `#666` on light |
|
|
168
|
-
| Accent color | Key data, highlights | Used sparingly — 1-2 elements per slide |
|
|
169
|
-
|
|
170
|
-
### Color Discipline
|
|
171
|
-
|
|
172
|
-
- Body text should never be full black or full white — use `#999` (dark theme) or `#666` (light theme).
|
|
173
|
-
- Reserve the accent color for data highlights, key metrics, and important callouts. Not headings, not body text.
|
|
174
|
-
- Use semantic colors consistently: green for positive/improvement, red for negative/decline, yellow for caution/neutral.
|
|
175
|
-
|
|
176
|
-
### Typography for Research
|
|
177
|
-
|
|
178
|
-
Research presentations need legibility from a distance. Font size guidelines:
|
|
179
|
-
- Title: 2.5-3em
|
|
180
|
-
- Subtitle: 1.2-1.5em
|
|
181
|
-
- Body: 1-1.1em (Marp default is fine for most rooms)
|
|
182
|
-
- Code: 0.8-0.9em
|
|
183
|
-
- Footnotes/citations: 0.6-0.7em
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Theme System
|
|
188
|
-
|
|
189
|
-
### Dark Theme (Conference Talks, Invited Talks)
|
|
190
|
-
|
|
191
|
-
Dark backgrounds work well in conference halls, auditoriums, and dimmed rooms. High contrast makes figures and data pop.
|
|
192
|
-
|
|
193
|
-
```yaml
|
|
194
|
-
style: |
|
|
195
|
-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=JetBrains+Mono:wght@400&display=swap');
|
|
196
|
-
:root {
|
|
197
|
-
--accent: #60a5fa;
|
|
198
|
-
--dark: #0f172a;
|
|
199
|
-
--card: #1e293b;
|
|
200
|
-
--border: #334155;
|
|
201
|
-
--body: #94a3b8;
|
|
202
|
-
--label: #64748b;
|
|
203
|
-
--muted: #475569;
|
|
204
|
-
--light: #f1f5f9;
|
|
205
|
-
--green: #4ade80;
|
|
206
|
-
--red: #f87171;
|
|
207
|
-
--yellow: #fbbf24;
|
|
208
|
-
}
|
|
209
|
-
section {
|
|
210
|
-
background: var(--dark);
|
|
211
|
-
color: var(--light);
|
|
212
|
-
font-family: 'Inter', sans-serif;
|
|
213
|
-
font-weight: 300;
|
|
214
|
-
padding: 48px 64px;
|
|
215
|
-
}
|
|
216
|
-
section.lead {
|
|
217
|
-
display: flex;
|
|
218
|
-
flex-direction: column;
|
|
219
|
-
justify-content: center;
|
|
220
|
-
text-align: center;
|
|
221
|
-
}
|
|
222
|
-
h1 { font-weight: 700; font-size: 2.8em; color: var(--light); margin-bottom: 0.2em; }
|
|
223
|
-
h2 { font-weight: 300; font-size: 1.3em; color: var(--body); margin-top: 0; }
|
|
224
|
-
h3 { font-weight: 600; font-size: 0.75em; color: var(--label); text-transform: uppercase; letter-spacing: 0.1em; }
|
|
225
|
-
p, li { color: var(--body); line-height: 1.6; }
|
|
226
|
-
strong { color: var(--light); font-weight: 600; }
|
|
227
|
-
em { color: var(--accent); font-style: normal; }
|
|
228
|
-
code { font-family: 'JetBrains Mono', monospace; font-size: 0.85em; background: var(--card); padding: 2px 6px; border-radius: 4px; }
|
|
229
|
-
pre { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 16px; }
|
|
230
|
-
table { width: 100%; border-collapse: collapse; }
|
|
231
|
-
th { color: var(--label); font-weight: 600; text-transform: uppercase; font-size: 0.75em; letter-spacing: 0.05em; border-bottom: 1px solid var(--border); padding: 8px 12px; text-align: left; }
|
|
232
|
-
td { color: var(--body); border-bottom: 1px solid var(--border); padding: 8px 12px; }
|
|
233
|
-
a { color: var(--accent); text-decoration: none; }
|
|
234
|
-
blockquote { border-left: 3px solid var(--accent); padding-left: 16px; color: var(--muted); font-style: italic; }
|
|
235
|
-
footer { color: var(--muted); font-size: 0.6em; }
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### Light Theme (Lab Meetings, Seminars, Printed Handouts)
|
|
239
|
-
|
|
240
|
-
Light backgrounds work better in well-lit rooms, on printed handouts, and for casual internal presentations.
|
|
241
|
-
|
|
242
|
-
```yaml
|
|
243
|
-
style: |
|
|
244
|
-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=JetBrains+Mono:wght@400&display=swap');
|
|
245
|
-
:root {
|
|
246
|
-
--accent: #2563eb;
|
|
247
|
-
--dark: #f8fafc;
|
|
248
|
-
--card: #ffffff;
|
|
249
|
-
--border: #e2e8f0;
|
|
250
|
-
--body: #64748b;
|
|
251
|
-
--label: #94a3b8;
|
|
252
|
-
--muted: #cbd5e1;
|
|
253
|
-
--light: #0f172a;
|
|
254
|
-
--green: #16a34a;
|
|
255
|
-
--red: #dc2626;
|
|
256
|
-
--yellow: #ca8a04;
|
|
257
|
-
}
|
|
258
|
-
section {
|
|
259
|
-
background: var(--dark);
|
|
260
|
-
color: var(--light);
|
|
261
|
-
font-family: 'Inter', sans-serif;
|
|
262
|
-
font-weight: 300;
|
|
263
|
-
padding: 48px 64px;
|
|
264
|
-
}
|
|
265
|
-
section.lead {
|
|
266
|
-
display: flex;
|
|
267
|
-
flex-direction: column;
|
|
268
|
-
justify-content: center;
|
|
269
|
-
text-align: center;
|
|
270
|
-
}
|
|
271
|
-
h1 { font-weight: 700; font-size: 2.8em; color: var(--light); margin-bottom: 0.2em; }
|
|
272
|
-
h2 { font-weight: 300; font-size: 1.3em; color: var(--body); margin-top: 0; }
|
|
273
|
-
h3 { font-weight: 600; font-size: 0.75em; color: var(--label); text-transform: uppercase; letter-spacing: 0.1em; }
|
|
274
|
-
p, li { color: var(--body); line-height: 1.6; }
|
|
275
|
-
strong { color: var(--light); font-weight: 600; }
|
|
276
|
-
em { color: var(--accent); font-style: normal; }
|
|
277
|
-
code { font-family: 'JetBrains Mono', monospace; font-size: 0.85em; background: var(--card); padding: 2px 6px; border-radius: 4px; border: 1px solid var(--border); }
|
|
278
|
-
pre { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 16px; }
|
|
279
|
-
table { width: 100%; border-collapse: collapse; }
|
|
280
|
-
th { color: var(--label); font-weight: 600; text-transform: uppercase; font-size: 0.75em; letter-spacing: 0.05em; border-bottom: 2px solid var(--border); padding: 8px 12px; text-align: left; }
|
|
281
|
-
td { color: var(--body); border-bottom: 1px solid var(--border); padding: 8px 12px; }
|
|
282
|
-
a { color: var(--accent); text-decoration: none; }
|
|
283
|
-
blockquote { border-left: 3px solid var(--accent); padding-left: 16px; color: var(--muted); font-style: italic; }
|
|
284
|
-
footer { color: var(--label); font-size: 0.6em; }
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
### Recommended Font Pairings for Research
|
|
288
|
-
|
|
289
|
-
| Heading / Body | Best For | Notes |
|
|
290
|
-
|----------------|----------|-------|
|
|
291
|
-
| Inter 700 / Inter 300 | General research talks | Clean, highly legible, safe default |
|
|
292
|
-
| Outfit 800 / Raleway 200 | Data-heavy dashboards | High contrast weight difference |
|
|
293
|
-
| DM Serif Display / DM Sans 300 | Humanities, social science | Warmer, editorial feel |
|
|
294
|
-
| Space Grotesk 700 / IBM Plex Mono 300 | CS/Systems talks | Technical, monospace body for code-heavy content |
|
|
295
|
-
| Plus Jakarta Sans 800 / Plus Jakarta Sans 200 | Internal team presentations | Friendly, modern |
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## Workflow: From Research to Slides
|
|
300
|
-
|
|
301
|
-
### Phase 1: Outline the Narrative Arc
|
|
302
|
-
|
|
303
|
-
Before writing any slides, determine the **story** you are telling. A research presentation is not a paper read aloud — it is a narrative with tension, evidence, and resolution.
|
|
304
|
-
|
|
305
|
-
**Standard research talk structure** (20-25 minute conference talk):
|
|
306
|
-
|
|
307
|
-
| Slide Group | Slides | Purpose |
|
|
308
|
-
|-------------|--------|---------|
|
|
309
|
-
| Title + Motivation | 1-3 | Hook the audience. What problem? Why care? |
|
|
310
|
-
| Background | 2-4 | What does the audience need to know? Only essentials. |
|
|
311
|
-
| Approach / Method | 3-5 | What did you do? High-level, visual. |
|
|
312
|
-
| Results | 4-8 | What happened? One result per slide. |
|
|
313
|
-
| Analysis / Discussion | 2-3 | What does it mean? Compare, interpret. |
|
|
314
|
-
| Conclusion + Future Work | 1-2 | Takeaways. What's next? |
|
|
315
|
-
| Thank You / Questions | 1 | Contact info, key references. |
|
|
316
|
-
|
|
317
|
-
**Shorter formats:**
|
|
318
|
-
|
|
319
|
-
| Format | Duration | Total Slides | Strategy |
|
|
320
|
-
|--------|----------|-------------|----------|
|
|
321
|
-
| Lightning talk | 5 min | 5-8 | Problem → Approach → One key result → Takeaway |
|
|
322
|
-
| Short paper | 10-12 min | 10-15 | Cut background to 1 slide, 2-3 results max |
|
|
323
|
-
| Full talk | 20-25 min | 18-25 | Full arc as above |
|
|
324
|
-
| Thesis defense | 45-60 min | 35-50 | Extended motivation, comprehensive results, deeper discussion |
|
|
325
|
-
| Lab meeting | 15-30 min | 10-20 | Flexible — can include preliminary/negative results |
|
|
326
|
-
|
|
327
|
-
### Phase 2: Draft Slides
|
|
328
|
-
|
|
329
|
-
Start with the Marp file structure. Use the title slide template, then fill in each group from the outline.
|
|
330
|
-
|
|
331
|
-
**Rules during drafting:**
|
|
332
|
-
1. Write the **slide title as a claim**, not a topic label. "Our method reduces latency by 40%" beats "Latency Results".
|
|
333
|
-
2. For every data slide, state the **takeaway** in the title or as a bold line. The audience should know what to conclude without reading the axes.
|
|
334
|
-
3. Use `<!-- _class: lead -->` for section divider slides (just a centered heading).
|
|
335
|
-
4. Put figure citations in a small footer: `<!-- _footer: "Figure adapted from Smith et al., 2024" -->`.
|
|
336
|
-
5. Never put a figure on a slide without at least one sentence explaining what the audience should see.
|
|
337
|
-
|
|
338
|
-
### Phase 3: Add Figures and Data
|
|
339
|
-
|
|
340
|
-
For research figures, you have two options:
|
|
341
|
-
|
|
342
|
-
**Option A: Pre-generated figures** (recommended for publication-quality plots)
|
|
343
|
-
- Use the `scientific-visualization` skill to create figures separately.
|
|
344
|
-
- Export as PNG/SVG and embed: ``
|
|
345
|
-
- This gives full control over styling, annotations, and publication quality.
|
|
346
|
-
|
|
347
|
-
**Option B: Inline SVG** (for simple charts, diagrams, metrics)
|
|
348
|
-
- For metric cards, simple bar charts, or status indicators, inline SVG directly in the Markdown.
|
|
349
|
-
- Keeps everything in one file, no external dependencies.
|
|
350
|
-
- See the Component Library section below for reusable SVG patterns.
|
|
351
|
-
|
|
352
|
-
**For equations:**
|
|
353
|
-
- Use MathJax/KaTeX: `$\mathcal{L} = \sum_i \ell(f(x_i), y_i)$`
|
|
354
|
-
- For complex derivations, show only the key steps. Put full derivations in backup slides.
|
|
355
|
-
|
|
356
|
-
### Phase 4: Polish and Preview
|
|
357
|
-
|
|
358
|
-
1. **Preview** in VS Code with the Marp extension or convert with CLI:
|
|
359
|
-
```bash
|
|
360
|
-
npx @marp-team/marp-cli slides.md --html --allow-local-files
|
|
361
|
-
```
|
|
362
|
-
2. **Check overflow** — scan every slide visually. Marp clips silently.
|
|
363
|
-
3. **Test projector mode** — open the HTML file full-screen. Check contrast and readability.
|
|
364
|
-
4. **Add speaker notes** (HTML comments after slide content):
|
|
365
|
-
```markdown
|
|
366
|
-
<!-- This slide: emphasize the 40% improvement, mention baseline is SOTA from 2024 -->
|
|
367
|
-
```
|
|
368
|
-
5. **Export final format:**
|
|
369
|
-
```bash
|
|
370
|
-
npx @marp-team/marp-cli slides.md --pdf --allow-local-files
|
|
371
|
-
npx @marp-team/marp-cli slides.md --pptx --allow-local-files
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
|
-
## Slide Templates
|
|
377
|
-
|
|
378
|
-
### Title Slide
|
|
379
|
-
|
|
380
|
-
```markdown
|
|
381
|
-
---
|
|
382
|
-
marp: true
|
|
383
|
-
theme: default
|
|
384
|
-
paginate: true
|
|
385
|
-
math: mathjax
|
|
386
|
-
style: |
|
|
387
|
-
/* paste dark or light theme CSS here */
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
<!-- _class: lead -->
|
|
391
|
-
<!-- _paginate: false -->
|
|
392
|
-
|
|
393
|
-
# Your Paper Title Here
|
|
394
|
-
## Subtitle or Conference Name
|
|
395
|
-
|
|
396
|
-
**Author Name**, Co-Author Name
|
|
397
|
-
*University / Lab Affiliation*
|
|
398
|
-
|
|
399
|
-
Conference Name 2026
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
### Section Divider
|
|
403
|
-
|
|
404
|
-
```markdown
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
<!-- _class: lead -->
|
|
408
|
-
<!-- _paginate: false -->
|
|
409
|
-
|
|
410
|
-
# Methodology
|
|
411
|
-
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
### Key Result Slide
|
|
415
|
-
|
|
416
|
-
```markdown
|
|
417
|
-
---
|
|
418
|
-
|
|
419
|
-
# Our method achieves 40% lower latency than the baseline
|
|
420
|
-
|
|
421
|
-

|
|
422
|
-
|
|
423
|
-
- Measured on **benchmark-X** across 1000 trials
|
|
424
|
-
- Baseline: best published result from Smith et al. (2024)
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
### Comparison Slide (Two-Column)
|
|
428
|
-
|
|
429
|
-
```markdown
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
# Before vs. After: Query Processing Pipeline
|
|
433
|
-
|
|
434
|
-
<div style="display: flex; gap: 40px;">
|
|
435
|
-
<div style="flex: 1;">
|
|
436
|
-
|
|
437
|
-
### Before
|
|
438
|
-
- Sequential processing
|
|
439
|
-
- *120ms* average latency
|
|
440
|
-
- No caching layer
|
|
441
|
-
|
|
442
|
-
</div>
|
|
443
|
-
<div style="flex: 1;">
|
|
444
|
-
|
|
445
|
-
### After
|
|
446
|
-
- Parallel pipeline
|
|
447
|
-
- *72ms* average latency (40% reduction)
|
|
448
|
-
- LRU cache with 94% hit rate
|
|
449
|
-
|
|
450
|
-
</div>
|
|
451
|
-
</div>
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
### Data Table Slide
|
|
455
|
-
|
|
456
|
-
```markdown
|
|
457
|
-
---
|
|
458
|
-
|
|
459
|
-
# Comparison across all benchmarks
|
|
460
|
-
|
|
461
|
-
| Method | Accuracy | Latency (ms) | Memory (GB) |
|
|
462
|
-
|--------|----------|--------------|-------------|
|
|
463
|
-
| Baseline A | 78.2% | 120 | 4.2 |
|
|
464
|
-
| Baseline B | 81.5% | 95 | 6.1 |
|
|
465
|
-
| **Ours** | **86.3%** | **72** | **3.8** |
|
|
466
|
-
|
|
467
|
-
- Bold values indicate best in column
|
|
468
|
-
- All measurements averaged over 5 runs with std < 0.3%
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
### Equation Slide
|
|
472
|
-
|
|
473
|
-
```markdown
|
|
474
|
-
---
|
|
475
|
-
|
|
476
|
-
# Loss Function: Contrastive Objective
|
|
477
|
-
|
|
478
|
-
Our training objective combines supervised and self-supervised losses:
|
|
479
|
-
|
|
480
|
-
$$
|
|
481
|
-
\mathcal{L} = \underbrace{\mathcal{L}_{\text{CE}}(f(x), y)}_{\text{supervised}} + \lambda \underbrace{\mathcal{L}_{\text{CL}}(z_i, z_j)}_{\text{contrastive}}
|
|
482
|
-
$$
|
|
483
|
-
|
|
484
|
-
- $\lambda = 0.1$ selected via validation
|
|
485
|
-
- $z_i, z_j$ are augmented representations of the same input
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Thank You / Questions Slide
|
|
489
|
-
|
|
490
|
-
```markdown
|
|
491
|
-
---
|
|
492
|
-
|
|
493
|
-
<!-- _class: lead -->
|
|
494
|
-
<!-- _paginate: false -->
|
|
495
|
-
|
|
496
|
-
# Thank You
|
|
497
|
-
|
|
498
|
-
Questions?
|
|
499
|
-
|
|
500
|
-
**your.email@university.edu** | github.com/yourname
|
|
501
|
-
|
|
502
|
-
Paper: arxiv.org/abs/2026.xxxxx
|
|
503
|
-
Code: github.com/yourname/project
|
|
504
|
-
```
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
## Component Library
|
|
509
|
-
|
|
510
|
-
### Metric Card (Inline SVG)
|
|
511
|
-
|
|
512
|
-
Use for highlighting key results on a summary slide:
|
|
513
|
-
|
|
514
|
-
```html
|
|
515
|
-
<div style="display: flex; gap: 24px; margin-top: 24px;">
|
|
516
|
-
<div style="flex: 1; background: var(--card); border: 1px solid var(--border); border-top: 3px solid var(--accent); border-radius: 8px; padding: 20px;">
|
|
517
|
-
<div style="color: var(--label); font-size: 0.7em; text-transform: uppercase; letter-spacing: 0.1em;">Accuracy</div>
|
|
518
|
-
<div style="font-size: 2.2em; font-weight: 700; color: var(--light); margin: 4px 0;">86.3%</div>
|
|
519
|
-
<div style="color: var(--green); font-size: 0.8em;">+4.8% vs baseline</div>
|
|
520
|
-
</div>
|
|
521
|
-
<div style="flex: 1; background: var(--card); border: 1px solid var(--border); border-top: 3px solid var(--green); border-radius: 8px; padding: 20px;">
|
|
522
|
-
<div style="color: var(--label); font-size: 0.7em; text-transform: uppercase; letter-spacing: 0.1em;">Latency</div>
|
|
523
|
-
<div style="font-size: 2.2em; font-weight: 700; color: var(--light); margin: 4px 0;">72ms</div>
|
|
524
|
-
<div style="color: var(--green); font-size: 0.8em;">-40% vs baseline</div>
|
|
525
|
-
</div>
|
|
526
|
-
<div style="flex: 1; background: var(--card); border: 1px solid var(--border); border-top: 3px solid var(--yellow); border-radius: 8px; padding: 20px;">
|
|
527
|
-
<div style="color: var(--label); font-size: 0.7em; text-transform: uppercase; letter-spacing: 0.1em;">Memory</div>
|
|
528
|
-
<div style="font-size: 2.2em; font-weight: 700; color: var(--light); margin: 4px 0;">3.8GB</div>
|
|
529
|
-
<div style="color: var(--green); font-size: 0.8em;">-9.5% vs baseline</div>
|
|
530
|
-
</div>
|
|
531
|
-
</div>
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
### Simple Bar Chart (Inline SVG)
|
|
535
|
-
|
|
536
|
-
```html
|
|
537
|
-
<svg viewBox="0 0 500 200" style="width: 100%; max-width: 600px; margin: 20px auto; display: block;">
|
|
538
|
-
<!-- Axis -->
|
|
539
|
-
<line x1="60" y1="170" x2="480" y2="170" stroke="var(--border)" stroke-width="1"/>
|
|
540
|
-
<!-- Bars -->
|
|
541
|
-
<rect x="80" y="90" width="60" height="80" fill="var(--muted)" rx="4"/>
|
|
542
|
-
<rect x="180" y="60" width="60" height="110" fill="var(--muted)" rx="4"/>
|
|
543
|
-
<rect x="280" y="30" width="60" height="140" fill="var(--accent)" rx="4"/>
|
|
544
|
-
<!-- Labels -->
|
|
545
|
-
<text x="110" y="190" fill="var(--label)" font-size="12" text-anchor="middle">Baseline A</text>
|
|
546
|
-
<text x="210" y="190" fill="var(--label)" font-size="12" text-anchor="middle">Baseline B</text>
|
|
547
|
-
<text x="310" y="190" fill="var(--light)" font-size="12" text-anchor="middle" font-weight="600">Ours</text>
|
|
548
|
-
<!-- Values -->
|
|
549
|
-
<text x="110" y="82" fill="var(--body)" font-size="12" text-anchor="middle">78.2%</text>
|
|
550
|
-
<text x="210" y="52" fill="var(--body)" font-size="12" text-anchor="middle">81.5%</text>
|
|
551
|
-
<text x="310" y="22" fill="var(--accent)" font-size="13" text-anchor="middle" font-weight="600">86.3%</text>
|
|
552
|
-
</svg>
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
### Timeline / Roadmap
|
|
556
|
-
|
|
557
|
-
```html
|
|
558
|
-
<div style="display: flex; align-items: flex-start; gap: 0; margin-top: 32px;">
|
|
559
|
-
<div style="flex: 1; text-align: center; position: relative;">
|
|
560
|
-
<div style="width: 24px; height: 24px; background: var(--green); border-radius: 50%; margin: 0 auto 8px;"></div>
|
|
561
|
-
<div style="color: var(--light); font-weight: 600; font-size: 0.85em;">Phase 1</div>
|
|
562
|
-
<div style="color: var(--body); font-size: 0.75em;">Data Collection</div>
|
|
563
|
-
<div style="color: var(--green); font-size: 0.7em;">Complete</div>
|
|
564
|
-
</div>
|
|
565
|
-
<div style="flex: 1; text-align: center;">
|
|
566
|
-
<div style="width: 24px; height: 24px; background: var(--accent); border-radius: 50%; margin: 0 auto 8px;"></div>
|
|
567
|
-
<div style="color: var(--light); font-weight: 600; font-size: 0.85em;">Phase 2</div>
|
|
568
|
-
<div style="color: var(--body); font-size: 0.75em;">Model Training</div>
|
|
569
|
-
<div style="color: var(--accent); font-size: 0.7em;">In Progress</div>
|
|
570
|
-
</div>
|
|
571
|
-
<div style="flex: 1; text-align: center;">
|
|
572
|
-
<div style="width: 24px; height: 24px; background: var(--muted); border-radius: 50%; margin: 0 auto 8px;"></div>
|
|
573
|
-
<div style="color: var(--light); font-weight: 600; font-size: 0.85em;">Phase 3</div>
|
|
574
|
-
<div style="color: var(--body); font-size: 0.75em;">Evaluation</div>
|
|
575
|
-
<div style="color: var(--muted); font-size: 0.7em;">Planned</div>
|
|
576
|
-
</div>
|
|
577
|
-
</div>
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
---
|
|
581
|
-
|
|
582
|
-
## Common Issues and Solutions
|
|
583
|
-
|
|
584
|
-
### Overflow / Clipped Content
|
|
585
|
-
|
|
586
|
-
**Problem**: Text or figures extend beyond the slide boundary and are silently clipped.
|
|
587
|
-
**Solution**: Reduce content. Split into two slides. Use smaller font sizes as a last resort (never below 0.7em for body text). Always preview.
|
|
588
|
-
|
|
589
|
-
### Figures Look Blurry
|
|
590
|
-
|
|
591
|
-
**Problem**: Raster images appear pixelated on high-DPI displays or when projected.
|
|
592
|
-
**Solution**: Use SVG where possible. For raster images, export at 2x resolution (e.g., 300 DPI) and specify display size with ``.
|
|
593
|
-
|
|
594
|
-
### Math Not Rendering
|
|
595
|
-
|
|
596
|
-
**Problem**: Equations appear as raw LaTeX.
|
|
597
|
-
**Solution**: Add `math: mathjax` (or `math: katex`) to front matter. Ensure `$` delimiters are correct (no spaces after opening `$` or before closing `$`).
|
|
598
|
-
|
|
599
|
-
### Fonts Not Loading
|
|
600
|
-
|
|
601
|
-
**Problem**: Google Fonts don't appear in exported PDF.
|
|
602
|
-
**Solution**: Use `--allow-local-files` flag with marp-cli. For offline environments, download fonts and reference them locally. The `--html` flag may also be needed for custom font imports.
|
|
603
|
-
|
|
604
|
-
### Background Image Fills Wrong
|
|
605
|
-
|
|
606
|
-
**Problem**: `` stretches or mispositions the image.
|
|
607
|
-
**Solution**: Use sizing keywords: `` to fit without cropping, `` to fill with cropping, or `` for percentage scaling.
|
|
608
|
-
|
|
609
|
-
### PPTX Export Looks Different
|
|
610
|
-
|
|
611
|
-
**Problem**: Exported PPTX doesn't match HTML preview.
|
|
612
|
-
**Solution**: PPTX export has limited CSS support. Simplify layouts for PPTX — avoid complex flexbox, inline SVG, and CSS variables. PDF export is more faithful to the HTML rendering.
|
|
613
|
-
|
|
614
|
-
---
|
|
615
|
-
|
|
616
|
-
## Integration with Other Skills
|
|
617
|
-
|
|
618
|
-
| Task | Skill to Combine |
|
|
619
|
-
|------|-----------------|
|
|
620
|
-
| Generate publication-quality figures for slides | `scientific-visualization` → export PNG/SVG → embed in Marp |
|
|
621
|
-
| Create diagrams and schematics for slides | `scientific-schematics` → export SVG → embed in Marp |
|
|
622
|
-
| Convert a paper draft into a talk | `paper-writing` for structure context → `marp-slides` for slide creation |
|
|
623
|
-
| Present literature review findings | `literature-search` for gathering → `marp-slides` for presentation |
|
|
624
|
-
| Present data analysis results | `data-analyze` for computation → `marp-slides` for visualization narrative |
|
|
625
|
-
|
|
626
|
-
---
|
|
627
|
-
|
|
628
|
-
## Export Reference
|
|
629
|
-
|
|
630
|
-
```bash
|
|
631
|
-
# HTML (best fidelity, interactive)
|
|
632
|
-
npx @marp-team/marp-cli slides.md --html --allow-local-files
|
|
633
|
-
|
|
634
|
-
# PDF (for sharing, printing)
|
|
635
|
-
npx @marp-team/marp-cli slides.md --pdf --allow-local-files
|
|
636
|
-
|
|
637
|
-
# PPTX (for editing in PowerPoint)
|
|
638
|
-
npx @marp-team/marp-cli slides.md --pptx --allow-local-files
|
|
639
|
-
|
|
640
|
-
# Watch mode (live preview during authoring)
|
|
641
|
-
npx @marp-team/marp-cli slides.md --watch --html --allow-local-files
|
|
642
|
-
```
|