@slidev/cli 52.11.3 → 52.11.5

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 (61) hide show
  1. package/dist/{build-CBdhBv4d.mjs → build-DnSiH_hX.mjs} +1 -1
  2. package/dist/cli.mjs +3 -6
  3. package/dist/index.mjs +2 -2
  4. package/dist/{serve-jpCd8QH_.mjs → serve-imvXJyRN.mjs} +1 -1
  5. package/dist/{shared-Ba3UGXDn.mjs → shared-DHY1ulq4.mjs} +1 -1
  6. package/package.json +17 -16
  7. package/skills/GENERATION.md +227 -0
  8. package/skills/slidev/README.md +61 -0
  9. package/skills/slidev/SKILL.md +183 -0
  10. package/skills/slidev/references/animation-click-marker.md +37 -0
  11. package/skills/slidev/references/animation-drawing.md +68 -0
  12. package/skills/slidev/references/animation-rough-marker.md +53 -0
  13. package/skills/slidev/references/api-slide-hooks.md +37 -0
  14. package/skills/slidev/references/build-og-image.md +36 -0
  15. package/skills/slidev/references/build-pdf.md +40 -0
  16. package/skills/slidev/references/build-remote-assets.md +34 -0
  17. package/skills/slidev/references/build-seo-meta.md +43 -0
  18. package/skills/slidev/references/code-groups.md +64 -0
  19. package/skills/slidev/references/code-import-snippet.md +55 -0
  20. package/skills/slidev/references/code-line-highlighting.md +50 -0
  21. package/skills/slidev/references/code-line-numbers.md +46 -0
  22. package/skills/slidev/references/code-magic-move.md +57 -0
  23. package/skills/slidev/references/code-max-height.md +37 -0
  24. package/skills/slidev/references/code-twoslash.md +42 -0
  25. package/skills/slidev/references/core-animations.md +196 -0
  26. package/skills/slidev/references/core-cli.md +140 -0
  27. package/skills/slidev/references/core-components.md +197 -0
  28. package/skills/slidev/references/core-exporting.md +148 -0
  29. package/skills/slidev/references/core-frontmatter.md +195 -0
  30. package/skills/slidev/references/core-global-context.md +155 -0
  31. package/skills/slidev/references/core-headmatter.md +188 -0
  32. package/skills/slidev/references/core-hosting.md +152 -0
  33. package/skills/slidev/references/core-layouts.md +286 -0
  34. package/skills/slidev/references/core-syntax.md +155 -0
  35. package/skills/slidev/references/diagram-latex.md +55 -0
  36. package/skills/slidev/references/diagram-mermaid.md +44 -0
  37. package/skills/slidev/references/diagram-plantuml.md +45 -0
  38. package/skills/slidev/references/editor-monaco-run.md +44 -0
  39. package/skills/slidev/references/editor-monaco-write.md +24 -0
  40. package/skills/slidev/references/editor-monaco.md +50 -0
  41. package/skills/slidev/references/editor-prettier.md +40 -0
  42. package/skills/slidev/references/editor-side.md +23 -0
  43. package/skills/slidev/references/editor-vscode.md +55 -0
  44. package/skills/slidev/references/layout-canvas-size.md +25 -0
  45. package/skills/slidev/references/layout-draggable.md +57 -0
  46. package/skills/slidev/references/layout-global-layers.md +50 -0
  47. package/skills/slidev/references/layout-slots.md +75 -0
  48. package/skills/slidev/references/layout-transform.md +33 -0
  49. package/skills/slidev/references/layout-zoom.md +39 -0
  50. package/skills/slidev/references/presenter-notes-ruby.md +35 -0
  51. package/skills/slidev/references/presenter-recording.md +30 -0
  52. package/skills/slidev/references/presenter-remote.md +40 -0
  53. package/skills/slidev/references/presenter-timer.md +34 -0
  54. package/skills/slidev/references/style-direction.md +34 -0
  55. package/skills/slidev/references/style-icons.md +46 -0
  56. package/skills/slidev/references/style-scoped.md +50 -0
  57. package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  58. package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  59. package/skills/slidev/references/syntax-importing-slides.md +60 -0
  60. package/skills/slidev/references/syntax-mdc.md +51 -0
  61. package/skills/slidev/references/tool-eject-theme.md +27 -0
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: prettier-plugin
3
+ description: Format Slidev markdown files correctly
4
+ ---
5
+
6
+ # Prettier Plugin
7
+
8
+ Format Slidev markdown files correctly.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ pnpm i -D prettier prettier-plugin-slidev
14
+ ```
15
+
16
+ ## Configuration
17
+
18
+ Create/modify `.prettierrc`:
19
+
20
+ ```json
21
+ {
22
+ "overrides": [
23
+ {
24
+ "files": ["slides.md", "pages/*.md"],
25
+ "options": {
26
+ "parser": "slidev",
27
+ "plugins": ["prettier-plugin-slidev"]
28
+ }
29
+ }
30
+ ]
31
+ }
32
+ ```
33
+
34
+ ## Why Needed
35
+
36
+ Slidev's syntax (frontmatter, code blocks) may conflict with default Markdown formatting. This plugin understands Slidev-specific syntax.
37
+
38
+ ## Note
39
+
40
+ Must specify files via `overrides` since Slidev and regular Markdown share `.md` extension.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: side-editor
3
+ description: Edit slides source alongside the presentation
4
+ ---
5
+
6
+ # Integrated Editor
7
+
8
+ Edit slides source alongside the presentation.
9
+
10
+ ## Open Editor
11
+
12
+ Click the edit icon in the navigation panel.
13
+
14
+ ## Features
15
+
16
+ - Live reload on changes
17
+ - Auto-save to file
18
+ - Side-by-side editing
19
+ - Syntax highlighting
20
+
21
+ ## Use Case
22
+
23
+ Make quick edits during presentation preparation without switching applications.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: vscode-extension
3
+ description: Manage slides visually in VS Code
4
+ ---
5
+
6
+ # VS Code Extension
7
+
8
+ Manage slides visually in VS Code.
9
+
10
+ ## Installation
11
+
12
+ Install from VS Code Marketplace: `antfu.slidev`
13
+
14
+ ## Features
15
+
16
+ - Preview slides in side panel
17
+ - Slides tree view
18
+ - Drag and drop to reorder slides
19
+ - Folding for slide blocks
20
+ - Multiple project support
21
+ - One-click dev server start
22
+
23
+ ## Usage
24
+
25
+ 1. Click `Slidev` icon in activity bar
26
+ 2. Projects tree shows all Slidev projects in workspace
27
+ 3. Slides tree shows slides in active project
28
+ 4. Preview panel shows live preview
29
+
30
+ ## Commands
31
+
32
+ Type `Slidev` in command palette to see available commands.
33
+
34
+ ## Configuration
35
+
36
+ Include specific files as Slidev entries:
37
+
38
+ ```json
39
+ {
40
+ "slidev.include": ["**/presentation.md"]
41
+ }
42
+ ```
43
+
44
+ Custom dev command:
45
+
46
+ ```json
47
+ {
48
+ "slidev.dev-command": "pnpm slidev ${args}"
49
+ }
50
+ ```
51
+
52
+ ## Placeholders
53
+
54
+ - `${args}` - All CLI arguments
55
+ - `${port}` - Port number
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: canvas-size
3
+ description: Configure slide canvas dimensions and aspect ratio
4
+ ---
5
+
6
+ # Slide Canvas Size
7
+
8
+ Set the canvas dimensions for all slides.
9
+
10
+ ## Configuration
11
+
12
+ ```md
13
+ ---
14
+ aspectRatio: 16/9
15
+ canvasWidth: 980
16
+ ---
17
+ ```
18
+
19
+ - `aspectRatio`: Ratio of width to height (default: `16/9`)
20
+ - `canvasWidth`: Canvas width in pixels (default: `980`)
21
+
22
+ ## Related Features
23
+
24
+ - Scale individual slides: use `zoom` frontmatter option
25
+ - Scale elements: use `<Transform>` component
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: draggable-elements
3
+ description: Move, resize, and rotate elements by dragging during presentation
4
+ ---
5
+
6
+ # Draggable Elements
7
+
8
+ Move, resize, and rotate elements by dragging during presentation.
9
+
10
+ ## Directive Usage
11
+
12
+ ### With Frontmatter Position
13
+
14
+ ```md
15
+ ---
16
+ dragPos:
17
+ square: Left,Top,Width,Height,Rotate
18
+ ---
19
+
20
+ <img v-drag="'square'" src="https://sli.dev/logo.png">
21
+ ```
22
+
23
+ ### Inline Position
24
+
25
+ ```md
26
+ <img v-drag="[Left,Top,Width,Height,Rotate]" src="https://sli.dev/logo.png">
27
+ ```
28
+
29
+ ## Component Usage
30
+
31
+ ```md
32
+ ---
33
+ dragPos:
34
+ foo: Left,Top,Width,Height,Rotate
35
+ ---
36
+
37
+ <v-drag pos="foo" text-3xl>
38
+ Draggable content
39
+ </v-drag>
40
+ ```
41
+
42
+ ## Draggable Arrow
43
+
44
+ ```md
45
+ <v-drag-arrow />
46
+ ```
47
+
48
+ ## Controls
49
+
50
+ - Double-click: Start dragging
51
+ - Arrow keys: Move element
52
+ - Shift + drag: Preserve aspect ratio
53
+ - Click outside: Stop dragging
54
+
55
+ ## Auto Height
56
+
57
+ Set Height to `NaN` or `_` for auto height based on content.
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: global-layers
3
+ description: Create components that persist across slides like footers and backgrounds
4
+ ---
5
+
6
+ # Global Layers
7
+
8
+ Create components that persist across slides.
9
+
10
+ ## Layer Files
11
+
12
+ Create in project root:
13
+ - `global-top.vue` - Above all slides (single instance)
14
+ - `global-bottom.vue` - Below all slides (single instance)
15
+ - `slide-top.vue` - Above each slide (per-slide instance)
16
+ - `slide-bottom.vue` - Below each slide (per-slide instance)
17
+ - `custom-nav-controls.vue` - Custom navigation controls
18
+
19
+ ## Z-Order (top to bottom)
20
+
21
+ 1. NavControls / custom-nav-controls.vue
22
+ 2. global-top.vue
23
+ 3. slide-top.vue
24
+ 4. Slide Content
25
+ 5. slide-bottom.vue
26
+ 6. global-bottom.vue
27
+
28
+ ## Example: Footer
29
+
30
+ ```html
31
+ <!-- global-bottom.vue -->
32
+ <template>
33
+ <footer class="absolute bottom-0 left-0 right-0 p-2">Your Name</footer>
34
+ </template>
35
+ ```
36
+
37
+ ## Conditional Rendering
38
+
39
+ ```html
40
+ <!-- Hide on cover layout -->
41
+ <template>
42
+ <footer v-if="$nav.currentLayout !== 'cover'" class="absolute bottom-0 p-2">
43
+ {{ $nav.currentPage }} / {{ $nav.total }}
44
+ </footer>
45
+ </template>
46
+ ```
47
+
48
+ ## Export Note
49
+
50
+ Use `--per-slide` export option when global layers depend on navigation state.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: slot-sugar
3
+ description: Shorthand syntax for layout named slots in multi-column layouts
4
+ ---
5
+
6
+ # Slot Sugar for Layouts
7
+
8
+ Shorthand syntax for layout named slots.
9
+
10
+ ## Standard Vue Slot Syntax
11
+
12
+ ```md
13
+ ---
14
+ layout: two-cols
15
+ ---
16
+
17
+ <template v-slot:default>
18
+
19
+ # Left
20
+
21
+ This shows on the left
22
+
23
+ </template>
24
+ <template v-slot:right>
25
+
26
+ # Right
27
+
28
+ This shows on the right
29
+
30
+ </template>
31
+ ```
32
+
33
+ ## Shorthand Syntax
34
+
35
+ ```md
36
+ ---
37
+ layout: two-cols
38
+ ---
39
+
40
+ # Left
41
+
42
+ This shows on the left
43
+
44
+ ::right::
45
+
46
+ # Right
47
+
48
+ This shows on the right
49
+ ```
50
+
51
+ ## Explicit Default Slot
52
+
53
+ ```md
54
+ ---
55
+ layout: two-cols
56
+ ---
57
+
58
+ ::right::
59
+
60
+ # Right
61
+
62
+ This shows on the right
63
+
64
+ ::default::
65
+
66
+ # Left
67
+
68
+ This shows on the left
69
+ ```
70
+
71
+ ## Common Layouts with Slots
72
+
73
+ - `two-cols`: `default` (left) and `right`
74
+ - `two-cols-header`: `default`, `left`, `right`
75
+ - `image-left/right`: `default` for content
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: transform-component
3
+ description: Scale elements without affecting slide layout using the Transform component
4
+ ---
5
+
6
+ # Transform Component
7
+
8
+ Scale elements without affecting slide layout.
9
+
10
+ ## Usage
11
+
12
+ ```md
13
+ <Transform :scale="0.5" origin="top center">
14
+ <YourElements />
15
+ </Transform>
16
+ ```
17
+
18
+ ## Props
19
+
20
+ - `scale`: Scale factor (0.5 = 50%, 2 = 200%)
21
+ - `origin`: Transform origin (CSS transform-origin value)
22
+
23
+ ## Use Cases
24
+
25
+ - Shrink large diagrams
26
+ - Scale code blocks
27
+ - Fit oversized content
28
+ - Create emphasis effects
29
+
30
+ ## Related Features
31
+
32
+ - Scale all slides: Use `canvasWidth` / `aspectRatio` in headmatter
33
+ - Scale individual slides: Use `zoom` frontmatter option
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: zoom-slides
3
+ description: Scale individual slide content using the zoom frontmatter option
4
+ ---
5
+
6
+ # Zoom Slides
7
+
8
+ Scale individual slide content.
9
+
10
+ ## Usage
11
+
12
+ ```md
13
+ ---
14
+ zoom: 0.8
15
+ ---
16
+
17
+ # A Slide with lots of content
18
+
19
+ ---
20
+
21
+ # Other slides aren't affected
22
+ ```
23
+
24
+ ## Values
25
+
26
+ - `zoom: 0.8` - 80% size (fits more content)
27
+ - `zoom: 1.2` - 120% size (larger, less content)
28
+ - `zoom: 1` - Normal (default)
29
+
30
+ ## Use Cases
31
+
32
+ - Fit dense content on one slide
33
+ - Make text more readable
34
+ - Adjust for different content densities
35
+
36
+ ## Related Features
37
+
38
+ - Scale all slides: Use `canvasWidth` / `aspectRatio` in headmatter
39
+ - Scale elements: Use `<Transform>` component
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: notes-auto-ruby
3
+ description: Automatically add ruby text (pronunciation guides) to presenter notes
4
+ ---
5
+
6
+ # Notes Auto Ruby
7
+
8
+ Automatically add ruby text (pronunciation guides) to presenter notes.
9
+
10
+ ## Configuration
11
+
12
+ ```md
13
+ ---
14
+ notesAutoRuby:
15
+ 日本語: ni hon go
16
+ 勉強: べんきょう
17
+ ---
18
+ ```
19
+
20
+ ## Example
21
+
22
+ Notes:
23
+ ```md
24
+ <!--
25
+ 私は日本語を勉強しています。
26
+ -->
27
+ ```
28
+
29
+ Renders with ruby annotations above the matched words.
30
+
31
+ ## Use Case
32
+
33
+ - Language learning presentations
34
+ - Pronunciation guides for technical terms
35
+ - Reading assistance for non-native text
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: recording
3
+ description: Record presentations with camera and screen capture
4
+ ---
5
+
6
+ # Recording
7
+
8
+ Record presentations with built-in camera and screen capture.
9
+
10
+ ## Camera View
11
+
12
+ Click the camera icon in navigation bar to show camera overlay.
13
+
14
+ - Drag to move
15
+ - Resize from bottom-right corner
16
+ - Position persists across reloads
17
+
18
+ ## Start Recording
19
+
20
+ Click the video icon in navigation bar.
21
+
22
+ Options:
23
+ - Camera embedded in slides
24
+ - Separate video files for camera and slides
25
+
26
+ Saves as WebM video.
27
+
28
+ ## Technology
29
+
30
+ Powered by RecordRTC and WebRTC API.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: remote-access
3
+ description: Share presentation across network or internet
4
+ ---
5
+
6
+ # Remote Access
7
+
8
+ Share presentation across network or internet.
9
+
10
+ ## Enable Remote Access
11
+
12
+ ```bash
13
+ slidev --remote
14
+ ```
15
+
16
+ ## Password Protection
17
+
18
+ ```bash
19
+ slidev --remote=your_password
20
+ ```
21
+
22
+ Password required for presenter mode access.
23
+
24
+ ## Remote Tunnel
25
+
26
+ Expose to internet via Cloudflare Quick Tunnels:
27
+
28
+ ```bash
29
+ slidev --remote --tunnel
30
+ ```
31
+
32
+ Creates public URL for sharing without server setup.
33
+
34
+ ## Use Cases
35
+
36
+ - Control presentation from phone/tablet
37
+ - Multiple presenters
38
+ - Remote presentations
39
+ - Live streaming
40
+ - Audience viewing on their devices
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: presenter-timer
3
+ description: Timer and progress bar in presenter mode
4
+ ---
5
+
6
+ # Presenter Timer
7
+
8
+ Timer and progress bar in presenter mode.
9
+
10
+ ## Configuration
11
+
12
+ ```yaml
13
+ ---
14
+ duration: 30min
15
+ timer: stopwatch
16
+ ---
17
+ ```
18
+
19
+ ## Options
20
+
21
+ - `duration`: Presentation length (default: `30min`)
22
+ - `timer`: Mode - `stopwatch` or `countdown` (default: `stopwatch`)
23
+
24
+ ## Features
25
+
26
+ - Start, pause, reset controls
27
+ - Progress bar showing time elapsed/remaining
28
+ - Visible only in presenter mode
29
+
30
+ ## Duration Format
31
+
32
+ - `30min` - 30 minutes
33
+ - `1h` - 1 hour
34
+ - `45min` - 45 minutes
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: direction
3
+ description: Navigation direction-based styling
4
+ ---
5
+
6
+ # Navigation Direction Variants
7
+
8
+ Apply different styles based on navigation direction (forward/backward).
9
+
10
+ ## CSS Classes
11
+
12
+ ```css
13
+ /* Delay only when navigating forward */
14
+ .slidev-nav-go-forward .slidev-vclick-target {
15
+ transition-delay: 500ms;
16
+ }
17
+ .slidev-nav-go-backward .slidev-vclick-target {
18
+ transition-delay: 0;
19
+ }
20
+ ```
21
+
22
+ ## UnoCSS Variants
23
+
24
+ Use `forward:` or `backward:` prefix:
25
+
26
+ ```html
27
+ <div v-click class="transition forward:delay-300">Element</div>
28
+ ```
29
+
30
+ Animation is only delayed when navigating forward, not when going back.
31
+
32
+ ## Use Case
33
+
34
+ Create asymmetric animations where entering a slide feels different from leaving it.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: icons
3
+ description: Using open-source icons in slides
4
+ ---
5
+
6
+ # Icons
7
+
8
+ Use any open-source icon directly in markdown. Powered by unplugin-icons and Iconify.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ pnpm add @iconify-json/[collection-name]
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ Use component syntax `<collection-icon-name />`:
19
+
20
+ ```md
21
+ <mdi-account-circle />
22
+ <carbon-badge />
23
+ <uim-rocket />
24
+ <logos-vue />
25
+ ```
26
+
27
+ ## Popular Collections
28
+
29
+ - `@iconify-json/mdi` - Material Design Icons
30
+ - `@iconify-json/carbon` - Carbon Design
31
+ - `@iconify-json/logos` - SVG Logos
32
+ - `@iconify-json/twemoji` - Twitter Emoji
33
+
34
+ ## Styling
35
+
36
+ Style like any HTML element:
37
+
38
+ ```html
39
+ <uim-rocket class="text-3xl text-red-400 mx-2" />
40
+ <uim-rocket class="text-3xl text-orange-400 animate-ping" />
41
+ ```
42
+
43
+ ## Browse Icons
44
+
45
+ - https://icones.js.org/
46
+ - https://icon-sets.iconify.design/
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: scoped
3
+ description: Slide-scoped CSS styles
4
+ ---
5
+
6
+ # Slide Scope Styles
7
+
8
+ Define CSS that applies only to the current slide.
9
+
10
+ ## Usage
11
+
12
+ ```md
13
+ # This is Red
14
+
15
+ <style>
16
+ h1 {
17
+ color: red;
18
+ }
19
+ </style>
20
+
21
+ ---
22
+
23
+ # Other slides are not affected
24
+ ```
25
+
26
+ ## Scoped by Default
27
+
28
+ All `<style>` tags in slides are automatically scoped.
29
+
30
+ Child combinators (`.a > .b`) don't work as expected due to scoping.
31
+
32
+ ## Nested CSS with UnoCSS
33
+
34
+ ```md
35
+ # Slidev
36
+
37
+ > Hello **world**
38
+
39
+ <style>
40
+ blockquote {
41
+ strong {
42
+ --uno: 'text-teal-500 dark:text-teal-400';
43
+ }
44
+ }
45
+ </style>
46
+ ```
47
+
48
+ ## Global Styles
49
+
50
+ For global styles, use `styles/index.css` in your project.