marpteam/marp-cli

By marpteam

Updated 16 days ago

A CLI interface for Marp and Marpit based converters

Image
23

100K+

@marp-team/marp-cli

A CLI interface, for Marp (using @marp-team/marp-core) and any slide deck converter based on Marpit framework.

It can convert Marp / Marpit Markdown files into static HTML / CSS, PDF, PPTX, and image(s).

Usage
# Convert slide deck into HTML
docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli slide-deck.md

# Convert slide deck into PDF (using Chromium in Docker)
docker run --rm --init -v $PWD:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli slide-deck.md --pdf

# Convert slide deck into PPTX (using Chromium in Docker)
docker run --rm --init -v $PWD:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli slide-deck.md --pptx

# Watch mode
docker run --rm --init -v $PWD:/home/marp/app/ -e LANG=$LANG -p 37717:37717 marpteam/marp-cli -w slide-deck.md

# Server mode (Serve current directory in http://localhost:8080/)
docker run --rm --init -v $PWD:/home/marp/app -e LANG=$LANG -p 8080:8080 -p 37717:37717 marpteam/marp-cli -s .

Refer to GitHub repository for details of usage.

Troubleshooting

If you are using Docker on Linux distribution, you might see file permission error on the mounted local directory. For preventing this trouble, Marp CLI image supports setting an explicit UID/GID by passing MARP_USER env. See also: https://github.com/marp-team/marp-cli/pull/334

Try to add following arguments into CLI commands:

-e MARP_USER="$(id -u):$(id -g)"

Example:

docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG -e MARP_USER="$(id -u):$(id -g)" marpteam/marp-cli slide-deck.md

Docker for Windows and macOS should not be required to set MARP_USER env.

Docker Pull Command

docker pull marpteam/marp-cli