On this page:
Camp:   Static Site Generation for Racket
9.1

Camp: Static Site Generation for Racket🔗ℹ

Joel Dueck

Camp is a static site generator built on Racket. I made it for myself, but if you enjoy the craft and activity of web and print publishing, you might like it too. It gives you tools and techniques for building a site or blog that is personal, programmable and permanent.

Camp builds on Punct, a Racket DSL that lets you extend Markdown with Racket code, and output to HTML or Typst.

  • Camp provides facilities for navigation between posts, cross references and taxonomies (such as tags or series).

  • You can use Camp via the CLI, or via Camp Computer: the GUI client for Camp.

  • Camp helps you convert collections of posts into print-ready book PDFs via Typst.

  • Camp produces spec-compliant RSS/Atom feeds. And though many may not notice, it also produces HTML that is line-wrapped and indented for high readability.

    1 Quick Start

      1.1 Installation

      1.2 Creating a Site

      1.3 Building and Previewing

      1.4 Package Integration

      1.5 Next Steps

    2 Basic Camp Concepts

      2.1 Source files

      2.2 The build process

        2.2.1 The collect pass

        2.2.2 The build pass

    3 Building a Camp Site

      3.1 Clear a spot to work in

      3.2 Installing as a Racket package

      3.3 Configure your site

      3.4 First post

      3.5 Add a render function

      3.6 Adding Static Assets

      3.7 Building Your Site

      3.8 Add a home page

      3.9 Add a meta-language

      3.10 Add a feed

      3.11 What’s next

    4 Tutorial: Navigation and Cross-References

      4.1 Previous and Next Links

      4.2 Taxonomies

        4.2.1 Navigating Within Taxonomies

      4.3 Term Definitions and References

        4.3.1 Term Normalization

      4.4 Page References

      4.5 Custom Navigation

      4.6 Putting It Together

    5 Tutorial: Listing and Index Pages

      5.1 The Problem with Prose-First Pages

      5.2 Your First camp/page Document

      5.3 How camp/page Works

      5.4 Integrating with Render Functions

      5.5 Paginated Listings

      5.6 Archive Pages

      5.7 When to Use Each Approach

    6 Tutorial: Creating a Book from Your Blog

      6.1 How Book Publishing Works

      6.2 Creating the Book Configuration

      6.3 Writing a Render Function

      6.4 Writing a Typst Template

      6.5 Organizing Your Book

        6.5.1 Filtering Content

      6.6 Building the Book

      6.7 Handling Custom Elements

      6.8 Tips for Book Production

    7 Camp Computer: the GUI client for Camp

      7.1 User interface

        7.1.1 Site Management

    8 Library Reference

      8.1 Site Configuration Language

      8.2 Cross-Reference System

      8.3 Rendering and Context

      8.4 Structural Page Language

      8.5 Book Configuration Language

      8.6 Command-Line Interface

      8.7 Low-Level API

        8.7.1 Collecting and Building

        8.7.2 Development Server

        8.7.3 Logging

    9 License, Acknowledgments