Dagger
Search

slidev

slides.md (+ optional style.css) without keeping generated artifacts in git.

Installation

dagger install github.com/stuttgart-things/dagger/slidev@v0.115.2

Entrypoint

Return Type
Slidev
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
func (m *MyModule) Example() *dagger.Slidev  {
	return dag.
			Slidev()
}
@function
def example() -> dagger.Slidev:
	return (
		dag.slidev()
	)
@func()
example(): Slidev {
	return dag
		.slidev()
}

Types

Slidev 🔗

baseImage() 🔗

Return Type
String !
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
 base-image
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Slidev().
			BaseImage(ctx)
}
@function
async def example() -> str:
	return await (
		dag.slidev()
		.base_image()
	)
@func()
async example(): Promise<string> {
	return dag
		.slidev()
		.baseImage()
}

build() 🔗

Build runs slidev build and returns the generated dist/ directory ready to be served by any static host (nginx, MinIO, S3, GitHub Pages, …).

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
slidesFile !-No description provided
styleFile -No description provided
themeString "@slidev/theme-default"No description provided
addons[String ! ] -No description provided
extrasDirectory -No description provided
baseString "/"No description provided
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
 build --slides file:path
func (m *MyModule) Example(slides *dagger.File) *dagger.Directory  {
	return dag.
			Slidev().
			Build(slides)
}
@function
def example(slides: dagger.File) -> dagger.Directory:
	return (
		dag.slidev()
		.build(slides)
	)
@func()
example(slides: File): Directory {
	return dag
		.slidev()
		.build(slides)
}

export() 🔗

Export runs slidev export to produce a printable artifact from the deck: a single PDF (default), a PPTX file, or a directory of PNGs (one per slide).

Export needs Playwright + headless Chromium, which is not officially supported on Alpine. To keep the rest of the module on the lightweight node:22-alpine base, Export builds its own Debian-based container (node:22-bookworm-slim) with the Chromium system deps and lets Playwright install its bundled browser via pnpm exec playwright install chromium.

Returns the directory holding the export output: a single slides-export.<format> file for pdf/pptx, or one <n>.png per slide for png.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
slidesFile !-No description provided
styleFile -No description provided
themeString "@slidev/theme-default"No description provided
addons[String ! ] -No description provided
extrasDirectory -No description provided
formatString "pdf"No description provided
withClicksBoolean -No description provided
darkBoolean -No description provided
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
 export --slides file:path
func (m *MyModule) Example(slides *dagger.File) *dagger.Directory  {
	return dag.
			Slidev().
			Export(slides)
}
@function
def example(slides: dagger.File) -> dagger.Directory:
	return (
		dag.slidev()
		.export(slides)
	)
@func()
example(slides: File): Directory {
	return dag
		.slidev()
		.export(slides)
}

initDeck() 🔗

InitDeck scaffolds a Slidev project from a single slides.md (style.css), installs @slidev/cli plus the chosen theme and any addons, and returns the populated /deck directory.

extras is an optional directory overlaid on /deck/ between dependency install and the final slides.md/style.css writes. Use it to ship additional files the deck needs at runtime — e.g. partials referenced via src: ./slides/... includes, components/, public/ assets, or setup/. The explicit slides and style files always win over what the overlay brings.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
slidesFile !-No description provided
styleFile -No description provided
themeString "@slidev/theme-default"No description provided
addons[String ! ] -No description provided
extrasDirectory -No description provided
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
 init-deck --slides file:path
func (m *MyModule) Example(slides *dagger.File) *dagger.Directory  {
	return dag.
			Slidev().
			InitDeck(slides)
}
@function
def example(slides: dagger.File) -> dagger.Directory:
	return (
		dag.slidev()
		.init_deck(slides)
	)
@func()
example(slides: File): Directory {
	return dag
		.slidev()
		.initDeck(slides)
}

serve() 🔗

Serve runs slidev as a long-lived service bound to 0.0.0.0 on the given port. Inputs mirror InitDeck so the caller only ships markdown

Return Type
Service !
Arguments
NameTypeDefault ValueDescription
slidesFile !-No description provided
styleFile -No description provided
themeString "@slidev/theme-default"No description provided
addons[String ! ] -No description provided
extrasDirectory -No description provided
portString "3030"No description provided
Example
dagger -m github.com/stuttgart-things/dagger/slidev@69f4e4a1ea181d8ad19210e354c6749cfb3be69f call \
 serve --slides file:path
func (m *MyModule) Example(slides *dagger.File) *dagger.Service  {
	return dag.
			Slidev().
			Serve(slides)
}
@function
def example(slides: dagger.File) -> dagger.Service:
	return (
		dag.slidev()
		.serve(slides)
	)
@func()
example(slides: File): Service {
	return dag
		.slidev()
		.serve(slides)
}