Slides Example

mbr

Markdown Browser

Browse, preview, and publish your markdown — instantly

Welcome everyone! Today I’m introducing mbr, a tool that makes working with markdown collections effortless.


The Problem

Most tools either require you to restructure your notes or don’t provide good navigation. mbr solves this.


The Solution: mbr

Zero configuration markdown browsing

# Preview a file
mbr README.md

# Start a server
mbr -s ~/notes

# Build a static site
mbr -b ~/docs --output ./public

Just point mbr at any folder. No config files, no special directory structure, no frontmatter required.


Key Goals

GoalWhy It Matters
SpeedSub-second rendering
No lock-inWorks with any markdown
CustomizableOverride anything via .mbr/
Rich contentVideos, audio, diagrams
Zero dependenciesSingle binary

These goals drive every decision. Performance is critical — this tool may be used on repos with tens of thousands of files.


Rich Markdown Extensions

All standard pulldown-cmark extensions plus our own additions like marginalia and section attributes.


Code Highlighting

fn main() {
    // Start the server
    let config = Config::default();
    let server = Server::new(config);

    server.serve("./docs").await?;
}
# Or use it from Python
import subprocess
subprocess.run(["mbr", "-s", "./notes"])

Syntax highlighting works automatically with highlight.js. Over 180 languages supported.


Mermaid Diagrams

graph LR
    A[Markdown Files] --> B[mbr]
    B --> C{Mode?}
    C -->|Server| D[Live Preview]
    C -->|Build| E[Static Site]
    C -->|GUI| F[Native Window]

Diagrams render automatically. No configuration needed.


Media Embeds

Standard image syntax works with any media:

![Video](./demo.mp4)
![Audio](./podcast.mp3)
![Document](./paper.pdf)

Videos use HTML5 video with full controls.

The magic is in making the simple syntax “just work” for all media types.


Customization

Override anything in .mbr/:

your-repo/
├── .mbr/
│   ├── config.toml    # Settings
│   ├── theme.css      # Colors
│   ├── user.css       # Your styles
│   └── index.html     # Templates
└── docs/
    └── *.md

Users can customize everything without forking. The .mbr/ folder travels with your repo.


Speaker Notes

Use triple blockquotes for presenter notes:

## My Slide

Content the audience sees.

>>> Notes only the presenter sees.
>>> Press 'S' to open the speaker view!

Like these notes you’re reading right now! Press ‘S’ to see them in a separate window.


Slide Attributes

Add custom attributes to any slide:

--- {#intro .dark-bg data-transition="zoom"}

This slide has custom ID, class, and transition.

Useful for styling and Reveal.js transitions (though it dirties up your nice markdown).

Section attributes work for both slides and regular documents.


Getting Started

# Install (coming soon to package managers)
cargo install mbr

# Browse your notes
mbr -s ~/notes

# Build for deployment
mbr -b ~/docs --output ./site

That’s it! No npm, no config files, no build steps. Just run it.


Thank You!

mbr — Markdown, browsed right.

Thank you for your attention! Questions?