CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-slidev--cli

Modern presentation framework and CLI tool that transforms Markdown files into interactive, web-based slide presentations with built-in development server, export capabilities, and Vue.js integration

Overall
score

100%

Overview
Eval results
Files

task.mdevals/scenario-10/

Presentation Build Tool

Build a CLI tool that takes a presentation markdown file and builds it into a deployable static website with proper configuration options.

Requirements

Your tool should accept a presentation file path and build options, then produce a static website suitable for hosting. The tool must:

  1. Accept configuration for output directory, base URL, and whether to include a downloadable PDF
  2. Process the presentation file and generate optimized static assets
  3. Create deployment configuration files for SPA routing support (both GitHub Pages and Netlify)
  4. Handle custom base URLs for subdirectory deployments
  5. Support enabling/disabling PDF download in the built site

Test Cases

  • Given a presentation file slides.md and output directory dist, the tool builds the presentation to dist/index.html @test
  • When building with base URL /demo/, the built site correctly references all assets with the /demo/ prefix @test
  • When building with download option enabled, the built site includes a PDF download button @test
  • The build process creates SPA routing files: 404.html for GitHub Pages and _redirects for Netlify @test

API

/**
 * Configuration options for building presentations
 */
interface BuildOptions {
  /** Output directory for built files */
  out: string;
  /** Base URL for deployment (e.g., "/demo/") */
  base?: string;
  /** Enable PDF download in built site */
  download?: boolean;
  /** Enable inspect plugin for debugging */
  inspect: boolean;
}

/**
 * Builds a presentation into a static website
 * @param presentationPath - Path to the presentation markdown file
 * @param options - Build configuration options
 * @returns Promise that resolves when build completes
 */
export async function buildPresentation(
  presentationPath: string,
  options: BuildOptions
): Promise<void>;

Implementation

@generates

Dependencies { .dependencies }

@slidev/cli { .dependency }

Provides presentation building and static site generation functionality.

@satisfied-by

Install with Tessl CLI

npx tessl i tessl/npm-slidev--cli

tile.json