Beam

Implementations

There are implementations in C and Rust. You can track their development at the following links:

Specifications

The spec is not finalized and anything can change at this point.

Slides

Special characters

You can also use % to act as a comment, since it’s also a comment in LaTeX. Be careful not to start a new slide by accident though.

An Example

^ \documentclass[12pt]{beamer}
^ \title{beam}
^ \author{Dennis Chen}

\titlepage

# Introduction

~ What is beam?
- beam is a file format to write presentations with
- beam is a program that converts beam files into beamer

~ Why?
beam does for beamer what Markdown does for HTML
- beamer takes far too long to write.
- We only need a subset of beamer's features

# Features

~ Frametitles
Use the \textasciitilde character to set the frametitle.

~ Bullet points
- You've already seen it in this presentation.
- Bullet points invoke the \emph{itemize} environment.

~ Block
> How to make a block
> This symbol makes a block.

~ Exampleblock
< How to make an exampleblock
< This symbol makes an exampleblock.

~ Alertblock
! How to make an alertblock
! This symbol makes an alertblock.

~ Images
Use the @ character to set a background image.

~
@beach.jpg

~
You can also use the $\ast$ character to include an image in the slide.
*beach.jpg

# Miscellaneous

~ Stylization
beam should be written in all lowercase, even at the start of a sentence.

Why not pandoc?

For those of you who don’t already know that pandoc exists, it’s the mainstream solution for the problem that beam solves. It uses the much more ubiquitous Markdown format as well. Why would I ever make beam then? Pandoc is actually a really good solution, but here are a couple reasons: