Skip to content
markdownpointPublic

About

MarkdownPoint file format

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

203 Commits

Folders and files

Repository files navigation

MarkdownPoint file format

MarkdownPoint is a presentation app for Mac and Windows: markdownpoint.com.

Each presentation is a folder with two main files:

  • slides.md contains the text, speaker notes, sections and slide order.
  • presentation.mdpoint contains the layout, objects and animation as JSON.

Themes and media are stored in subfolders. You can edit the presentation in MarkdownPoint, in a text editor or with an AI agent.

Write in Obsidian

Write your slide text and speaker notes in Obsidian with the MarkdownPoint plugin. You can edit all the slides in one document. Use the outline to add or move slides.

Open the same presentation in MarkdownPoint to work on layout, images, 3D and animation. Both apps save to the same files. You can switch between them without importing or exporting.

Keep the presentation's whole folder in your vault and open slides.md in Obsidian's Live Preview. The Markdown guide explains the workflow.

Slides and objects

Each slide has an ID. Its marker in slides.md and its entry in presentation.mdpoint use the same ID. Text blocks use the IDs of their objects. To move a slide, move its whole block in slides.md. Its ID stays the same.

Objects use the selected theme's fonts, color schemes, text styles and layouts. A slide can add objects and override properties inherited from its layout.

Text and image objects use a 2D frame for position and size. A 3D model has a position, rotation and scale. Keyframes animate object properties over time. The reference lists each property's units, defaults and allowed values.

A small presentation

The title slide, as MarkdownPoint draws it

The slide's Markdown is:

<!-- slide: title -->

<!-- text: eyebrow -->
MarkdownPoint

<!-- text: title -->
File format==.==

<!-- text: body -->
Your slides are Markdown files you own.

<!-- notes -->
Speaker notes go here. Only the presenter sees them.

The complete presentation includes the theme and JSON file.

Guides

  • The .md file: write the words, arrange slides and add speaker notes. Start here when editing a presentation by hand.
  • The .mdpoint file: place objects, set their properties and animate them.
  • Themes: share fonts, colors, text styles and layouts across slides.
  • Reference, version 1: look up a key's exact meaning, values, units and defaults.
  • Agent contract, version 1: the methods, requests and errors coding agents use with the running app.

Files and folders

My talk/
  slides.md              text, notes, sections and slide order
  presentation.mdpoint   objects, layout, styles and animation
  media/                 imported images, videos, sounds and models
  generated/             generated images, 3D text models and image generation records
  themes/<key>/          master.json, layout files, fonts and images
  versions/              saved versions, one folder each

Media and theme resources use relative paths. Move the whole folder when moving a presentation. Rename the folder to rename the presentation.

MarkdownPoint turns a picture by the orientation its file states. A JPEG takes the orientation of its first Exif segment that holds anything. A PNG takes the orientation of an eXIf chunk of any size before its image data, if the chunk's CRC holds. An AVIF takes its rotation (irot) and then its mirror (imir). A WebP and every other picture are drawn as stored. A picture's width and height in the presentation are its size as turned. A tool that draws a presentation turns each picture by this rule alone.

When you place a PNG, JPEG or WebP picture longer than 4096 pixels on a side, MarkdownPoint saves it in media/ at 4096 pixels on that side, in the same type. The saved picture keeps the original's EXIF and XMP, with its size, orientation and color space set to match the saved pixels. A saved WebP keeps its pixels as the original stored them, and the original's orientation tag. The EXIF thumbnail and a JPEG's extended XMP are left out. An animated PNG or WebP is saved whole. So is one of more than 268,435,456 pixels, or a file over 402 MB. Other types, and a file you copy into media/ yourself, stay as they are.

Keep one slides.md and one presentation.mdpoint at the folder's root. Those two names are fixed in any letter case. The folders media, generated, themes and versions are always lowercase. A folder spelled another way, such as Media, isn't part of the presentation. Mac and Windows disks still find it as media, but other disks don't. Every other file is named in the presentation as its folder lists it. MarkdownPoint won't open a folder containing duplicate copies, such as slides 2.md or a sync service's conflicted copy. Resolve any duplicates before opening the presentation.

Unrelated files in the folder are not copied by MarkdownPoint. Symbolic links and aliases aren't supported. Copy the original files into the folder. A file or folder name can't start with a dot, contain #, ?, /, \, :, *, ", <, > or |, end in a space or a dot, or be a name Windows reserves, such as CON. MarkdownPoint hides a file or folder whose name starts with a dot. It lists a file named in one of the other ways, but can't use it until you rename it.

Files and folders whose names start with .markdownpoint are MarkdownPoint's own, in the presentation's folder or beside it. They are never part of the presentation. Each example's .gitignore keeps them out of git with the line .markdownpoint*.

To start a presentation by hand, copy an example's whole folder. Its themes folder holds Basic. With MarkdownPoint running, mdpoint presentation create <folder> makes a new presentation with Basic and opens it.

Saved versions

“File › Save Version…” saves a copy of the slides, text, objects and settings. The version uses the presentation's media and the theme named in its saved file. Changes to those resources also affect the saved version.

Each version has a folder named by the time it was saved, in UTC, and a random tail, such as versions/2026-10-30T16.20.05Z-k3pz/. That name holds the version's time, and Version history lists the newest first. The folder holds copies of presentation.mdpoint and slides.md, and a version.json with the version's number and optional name. Two computers that save versions while apart keep both, even in the same second or with the same number. MarkdownPoint never opens a version's folder as a presentation of its own: open the presentation and choose the version in its Version history.

“Delete Theme” won't remove a theme used by a saved version. “File › Clean Up…” also preserves files used by versions. Deleting a file directly from the Media list removes it even if a version uses it. That version will show the file as missing.

A folder in versions/ with any other name isn't a version. A copy that Finder or File Explorer makes of a version's folder is one. Version history doesn't list it, and “Delete Theme” and Clean Up don't keep the theme or files it uses.

While a version is still arriving through a sync service, no theme can be deleted and Clean Up deletes nothing.

Include versions/ in git if you want to keep the saved versions with the presentation.

Format versions

Every file states its format version as a major and a minor in quotes: "markdownpoint": "1.0" in JSON and markdownpoint: "1.0" in the .md file's frontmatter. The quotes matter, since 1.10 and 1.1 are the same number.

MarkdownPoint 1.x opens any version 1.x file. Later minor versions can add data that an earlier reader skips. When opening such a file, MarkdownPoint shows a notice and keeps the unknown data through saves: a key, a word or an object it doesn't know stays as long as the record or the entry around it does, except in a list of values, which a save that changes it writes whole; in the .md file an unknown word form stays as written until its block is edited or the file is formatted, when it is written as words; and a slide two people duplicate before their copies sync keeps it in one copy. The reference states the rule in full. Saving does not lower the file's version number. A version 2.0 file requires MarkdownPoint 2.

The format is not final. Version 1.0 may still change before release.

License

MIT.

About

MarkdownPoint file format

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors