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

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 For whom is Camp?

    2 Quick Start

      2.1 Installation

      2.2 Creating a Site

      2.3 Building and Previewing

      2.4 Package Integration

      2.5 Next Steps

    3 Basic Camp Concepts

      3.1 Source files

      3.2 The build process

        3.2.1 The collect pass

        3.2.2 The build pass

    4 Building a Camp Site

      4.1 Clear a spot to work in

      4.2 Installing as a Racket package

      4.3 Configure your site

      4.4 First post

      4.5 Add a render function

      4.6 Adding Static Assets

      4.7 Building Your Site

      4.8 Add a home page

      4.9 Add a meta-language

      4.10 Add a feed

      4.11 What’s next

    5 Tutorial: Navigation and Cross-References

      5.1 Previous and Next Links

      5.2 Taxonomies

        5.2.1 Navigating Within Taxonomies

      5.3 Term Definitions and References

        5.3.1 Term Normalization

      5.4 Page References

      5.5 Custom Navigation

      5.6 Putting It Together

    6 Tutorial: Listing and Index Pages

      6.1 The Problem with Prose-First Pages

      6.2 Your First camp/page Document

      6.3 How camp/page Works

      6.4 Integrating with Render Functions

      6.5 Paginated Listings

      6.6 Archive Pages

      6.7 When to Use Each Approach

    7 Tutorial: Creating a Book from Your Blog

      7.1 How Book Publishing Works

      7.2 Creating the Book Configuration

      7.3 Writing a Render Function

      7.4 Writing a Typst Template

      7.5 Organizing Your Book

        7.5.1 Filtering Content

      7.6 Building the Book

      7.7 Handling Custom Elements

      7.8 Tips for Book Production

    8 Camp Computer: the GUI client for Camp

      8.1 User interface

        8.1.1 Site Management

    9 Library Reference

      9.1 Site Configuration Language

      9.2 Cross-Reference System

      9.3 Rendering and Context

      9.4 Structural Page Language

      9.5 Book Configuration Language

      9.6 Command-Line Interface

      9.7 Low-Level API

        9.7.1 Collecting and Building

        9.7.2 Development Server

        9.7.3 Logging

    10 License, Acknowledgments

      10.1 Story time