On this page:
Punct:   Common  Mark +   Racket
8.15

Punct: CommonMark + Racket🔗

Joel Dueck <joel@jdueck.net>

 #lang punct package: punct-lib

Punct is a programming environment for publishing things, implemented in Racket. Punct’s two basic ideas are:

  1. Markdown documents (parsed by commonmark), extensible with Racket code.

  2. Multiple output formats. A Punct program/document produces a format-independent AST.

The latest version of this documentation can be found at joeldueck.com. The source and installation instructions are at the project’s GitHub repo.

I have designed Punct for my own use and creative needs. If you would like Punct to work differently or support some new feature, I encourage you to fork it and customize it yourself.

If you decide to rely on Punct in any kind of “production” capacity, you should make sure to monitor the pull requests and Announcements areas of the GitHub repository. Any significant changes will be announced there first.

This documentation assumes you are familiar with Racket, and with X-expressions and associated terms (attributes, elements, etc).

    1 Quick start

    2 Writing Punct

      2.1 Using require

      2.2 Metadata block

      2.3 Markdown and Racket

    3 Document Structure

      3.1 Blocks and Flows

      3.2 Inline elements

      3.3 Custom elements

      3.4 Rendering custom elements

    4 Rendering Output

      4.1 Rendering HTML

      4.2 Rendering plain text

    5 Module Reference

      5.1 Core

      5.2 Fetch

      5.3 Parse

    6 Differences from Pollen