Skip to content

Terminal-based presentations from Markdown files using PowerShell.

License

Notifications You must be signed in to change notification settings

jakehildreth/Deck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deck Logo

Deck

Terminal-based presentations from Markdown files using PowerShell.

Installation

Install-Module Deck -Scope CurrentUser

Or clone from GitHub:

git clone https://github.com/jakehildreth/Deck.git
Import-Module ./Deck/Deck.psd1

Quick Start

Create a Markdown file:

---
background: Black
foreground: Cyan1
border: Blue
---

# My Presentation

---

## Section Title

---

### Slide Content

Your content here with **bold** and *italic* text.

* Progressive bullets
* Reveal one at a time

Run the presentation:

Show-Deck -Path ./presentation.md

Or load directly from a web URL:

Show-Deck -Path https://raw.githubusercontent.com/jakehildreth/Deck/main/Examples/ExampleDeck.md

Validate content before presenting:

Show-Deck -Path ./presentation.md -Strict

The -Strict parameter validates:

  • Content height doesn't exceed viewport
  • Image files exist
  • Reports all errors before starting

Features

Slide Types

  • Title Slides - Single # heading with large figlet text
  • Section Slides - Single ## heading with medium figlet text
  • Content Slides - ### heading with body content
  • Image Slides - Two-panel layout with content left (60%), image right (40%)
  • Multi-Column Slides - Split content with ||| delimiter

Image Slides

Create side-by-side layouts with text and images:

### Slide Title

Text content on the left.

* Progressive bullets supported
* Auto-sized images

![Alt Text](image.png){width=80}

Images are auto-detected. Use relative or absolute paths. Optional {width=N} sets max width.

Web images are supported:

![Logo](https://example.com/logo.png)
### About Our Brand
Content appears here

Bullet Points

  • Progressive bullets using * (reveal one at a time)
  • Static bullets using - (all visible at once)

Inline Formatting

  • **bold** or __bold__
  • *italic* or _italic_
  • `code`
  • ~~strikethrough~~
  • <colorname>text</colorname> or <span style="color:colorname">text</span> for colors

Color Examples

This text has <red>red</red>, <blue>blue</blue>, and <green>green</green> colors.

You can use standard HTML: <span style="color:yellow">yellow text</span>

Mix with formatting: **<red>bold red text</red>** or *<blue>italic blue</blue>*

Supports all Spectre.Console color names.

Navigation

  • Forward: Right, Down, Space, Enter, n, Page Down
  • Backward: Left, Up, Backspace, p, Page Up
  • Exit: Esc, Ctrl+C, q
  • Help: ?

Customization

Configure in YAML frontmatter:

---
background: black          # Background color
foreground: white          # Text color
border: magenta            # Border color
borderStyle: rounded       # rounded, square, double, heavy, none
pagination: false          # Show slide numbers
paginationStyle: minimal   # minimal, fraction, text, progress, dots
h1: default                # Figlet font for # titles (aliases: titleFont, h1Font)
h2: default                # Figlet font for ## sections (aliases: sectionFont, h2Font)
h3: default                # Figlet font for ### headers (aliases: headerFont, h3Font)
h1Color: null              # Color for # titles (aliases: titleColor, h1FontColor)
h2Color: null              # Color for ## sections (aliases: sectionColor, h2FontColor)
h3Color: null              # Color for ### headers (aliases: headerColor, h3FontColor)
---

Heading Colors

Heading colors can be specified three ways:

  1. Inline HTML tags (highest priority):
# <red>Red Title</red>
## <cyan>Cyan Section</cyan>
### <green>Green Header</green>
  1. Frontmatter settings:
h1Color: red
h2Color: cyan
h3Color: green
  1. Foreground fallback (if neither above is specified)

Both <colorname>text</colorname> and <span style="color:colorname">text</span> syntax are supported.

Examples

See Examples/ExampleDeck.md for a comprehensive demo:

Show-Deck -Path ./Examples/ExampleDeck.md

Additional examples:

Requirements

License

MIT

Built With

Made with 💜 by Jake Hildreth

About

Terminal-based presentations from Markdown files using PowerShell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published