Skip to content

sherp is a CLI for building presentations from Markdown/MDX. Instant dev server, multiple themes, keyboard navigation, and PDF export.

License

Notifications You must be signed in to change notification settings

skeptrunedev/sherp

Sherp

A CLI for building presentations from Markdown/MDX. Instant dev server, multiple themes, keyboard navigation, and PDF export.

npm install -g @skeptrunedev/sherp-cli

🎨 Themes

Sherp comes with four built-in themes to get you started:

Terminal
Green-on-black hacker aesthetic
Paper
Sepia/cream academic style
Corporate
Professional navy/blue tones
Default
Minimal, no custom styles

Select a theme during project creation:

sherp init my-presentation --theme terminal

Or choose interactively when running sherp init.

πŸ“¦ Monorepo Structure

This is a monorepo containing two packages:

✨ Features

  • πŸ“ Write in Markdown/MDX - Focus on content, not code
  • 🎯 Zero config - Works out of the box
  • ⌨️ Keyboard navigation - Arrow keys, spacebar, and shortcuts
  • πŸ“± Mobile responsive - 16:9 aspect ratio that scales perfectly
  • πŸŽͺ Overview mode - Press 'O' to see all slides
  • πŸ”§ Fully customizable - Add your own CSS, JS, and React components
  • πŸš€ Fast dev experience - Instant hot reload
  • 🎨 Built-in themes - Choose from multiple pre-built themes

πŸš€ Quick Start

Installation

npm install -g @skeptrunedev/sherp-cli

Create a new presentation

sherp init my-presentation
cd my-presentation
sherp dev

That's it! Your presentation is now running at http://localhost:4321

πŸ“ Project Structure

my-presentation/
β”œβ”€β”€ presentations/           # Your MDX presentation files
β”‚   └── example.mdx
β”œβ”€β”€ styles/                  # Custom CSS (optional)
β”‚   └── custom.css
β”œβ”€β”€ scripts/                 # Custom JavaScript (optional)
β”‚   └── custom.js
β”œβ”€β”€ components/              # Custom React components (optional)
└── sherp.config.json       # Configuration

πŸ“ Writing Presentations

Create MDX files in the presentations/ folder:

---
title: 'My Awesome Talk'
author: 'Your Name'
paginate: true
---

# Welcome! πŸ‘‹

This is my first slide

---

## Features

- Easy to write
- Beautiful output
- Keyboard navigation

---

# Questions?

Thanks for watching!

Slides are separated by --- (horizontal rules).

βš™οΈ Configuration

Edit sherp.config.json to customize your presentation:

{
  "title": "My Presentation",
  "author": "Your Name",
  "presentations": "./presentations",
  "customStyles": "./styles/custom.css",
  "customScripts": "./scripts/custom.js",
  "components": "./components"
}

🎯 Commands

Command Description
sherp init <name> Create a new presentation project
sherp dev Start development server
sherp build Build for production
sherp preview Preview production build

⌨️ Keyboard Shortcuts

  • Arrow keys / Space - Navigate slides
  • Home / End - First / Last slide
  • O - Overview mode
  • F - Fullscreen (in browser)

🎨 Custom Styling

Add custom CSS in styles/custom.css:

/* Custom heading color */
.slide h1 {
  color: #ff6b6b;
}

/* Custom background for slide 1 */
.slide[data-slide='1'] {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}

πŸ“œ Custom Scripts

Add custom JavaScript in scripts/custom.js:

document.addEventListener('DOMContentLoaded', () => {
  console.log('Presentation loaded!');
  // Add custom interactions
});

🧩 Custom Components

Create React/JSX components in components/ and use them in your MDX:

// components/CustomButton.jsx
export default function CustomButton({ children }) {
  return <button className="custom-btn">{children}</button>;
}
import CustomButton from './components/CustomButton.jsx';

# My Slide

<CustomButton>Click me!</CustomButton>

🚒 Deployment

Build your presentation:

sherp build

Deploy the dist/ folder to:

  • Netlify - Drag and drop
  • Vercel - vercel --prod
  • GitHub Pages - Push to gh-pages branch
  • Any static hosting service

πŸ› οΈ Development

This project uses npm workspaces. To develop locally:

# Install all dependencies
npm install

# Work on the CLI package
cd packages/cli

# Work on the Astro package
cd packages/astro

🀝 Contributing

Contributions welcome! Visit github.com/skeptrunedev/sherp

πŸ“„ License

MIT

πŸ™ Acknowledgments

Inspired by Marp - Made with Astro

About

sherp is a CLI for building presentations from Markdown/MDX. Instant dev server, multiple themes, keyboard navigation, and PDF export.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •