MarpToPptx 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global MarpToPptx --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local MarpToPptx --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=MarpToPptx&version=0.1.0
                    
nuke :add-package MarpToPptx --version 0.1.0
                    

MarpToPptx

MarpToPptx is a .NET 10 CLI and library for compiling Marp-flavored Markdown into editable PowerPoint presentations.

Current Structure

  • src/MarpToPptx.Core: semantic slide model, Markdown parsing, theme parsing, layout planning
  • src/MarpToPptx.Pptx: Open XML PPTX rendering and template-aware presentation generation
  • src/MarpToPptx.Cli: marp2pptx command-line entrypoint
  • tests/MarpToPptx.Tests: xUnit v3 tests running on Microsoft Testing Platform

Usage

dotnet run --project src/MarpToPptx.Cli -- input.md -o output.pptx
dotnet run --project src/MarpToPptx.Cli -- input.md --template theme.pptx
dotnet run --project src/MarpToPptx.Cli -- input.md --theme-css theme.css

Local Tool And Dnx

Build a local tool package:

dotnet pack src/MarpToPptx.Cli -c Release

That produces a tool package under artifacts/nupkg/ with package ID MarpToPptx and command name marp2pptx.

Run it with dnx from the local package source:

dnx MarpToPptx --add-source ./artifacts/nupkg sample.md -o sample.pptx

You can also install it as a local tool from the package output:

dotnet new tool-manifest
dotnet tool install MarpToPptx --add-source ./artifacts/nupkg
dotnet tool run marp2pptx sample.md -o sample.pptx

Public dnx MarpToPptx ... usage depends on publishing the package to a NuGet feed. That follow-up is tracked as a separate GitHub issue.

Releases

NuGet publishing is handled by .github/workflows/publish.yml using nuget.org Trusted Publishing with GitHub OIDC.

  • Versioning is tag-based via MinVer.
  • Stable release tags should use the form v1.2.3.
  • The publish workflow builds, tests, packs, and then pushes the tool package from artifacts/nupkg/.

Before the first publish, configure nuget.org Trusted Publishing for:

  • Owner: jongalloway
  • Repository: MarpToPptx
  • Workflow file: publish.yml

The workflow also expects a repository secret named NUGET_USER containing the nuget.org profile name used for Trusted Publishing.

To cut a release:

git tag v1.2.3
git push origin v1.2.3

After the workflow finishes and NuGet indexing completes, install or run the published tool with:

dotnet tool install MarpToPptx --global
dnx MarpToPptx sample.md -o sample.pptx

Repository Conventions

  • Solution format: MarpToPptx.slnx
  • Centralized package management: Directory.Packages.props
  • Test framework: xUnit v3
  • Test runner: Microsoft Testing Platform via global.json
  • CLI packaging direction: marp2pptx as a .NET tool, while preserving single-file publish as a deployment mode

Current Milestone

  • Marp-style front matter and directive parsing
  • Slide splitting on ---
  • Semantic slide model independent from PPTX
  • Basic theme extraction for font families, font sizes, colors, and padding
  • PPTX generation for headings, paragraphs, bullet lists, images, and code blocks
  • Table content fallback rendered as editable text while native PPTX table generation remains a product requirement
  • Template-copy workflow for reusing an existing .pptx theme/master

Steering Decisions

  • ImageSharp is intentionally not used for image sizing unless it is explicitly re-approved after licensing review
  • Intrinsic image sizing should prefer built-in platform capabilities or a minimal in-project metadata reader
  • Remaining roadmap work should be evaluated against the current implemented baseline rather than an empty starting point

Roadmap

  • Improve CSS coverage for more Marp theme features
  • Refine layout heuristics for denser or highly designed decks
  • Expand template integration to map multiple layouts intelligently
  • Add native PPTX table generation and richer table styling
  • Add code block syntax highlighting
  • Support remote assets and additional image formats
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.2.0 140 3/17/2026
1.1.0 109 3/13/2026
1.0.1 103 3/8/2026
1.0.0 99 3/6/2026
0.2.0 107 3/4/2026
0.1.1 108 3/4/2026
0.1.0 103 3/3/2026