Version: 4.2.1

Scribble: PLT Documentation Tool

Matthew Flatt
and Eli Barzilay

Scribble is a collection of tools for creating prose documents, especially those that document libraries, and especially for HTML and PDF (via LaTeX) output. More generally, it is useful for cases where you need to deal with Scheme code that is rich in textual content: it has a syntactic extension for writing almost free-form text and a tool for using the scribble syntax for preprocessing text files with embedded Scheme code.

This document itself is written using Scribble. At the time that it was written, its source was available at http://svn.plt-scheme.org/plt/trunk/collects/scribblings/scribble/ starting with the "scribble.scrbl" file.

    1 How to Scribble Documentation

      1.1 Getting Started

      1.2 Document Syntax

      1.3 Scheme Typesetting and Hyperlinks

      1.4 Section Hyperlinks

      1.5 Defining Scheme Bindings

      1.6 Showing Scheme Examples

      1.7 Splitting the Document Source

      1.8 Multi-Page Sections

      1.9 Style Guide

        1.9.1 Prose and Terminology

        1.9.2 Typesetting Code

        1.9.3 Typesetting Prose

        1.9.4 Section Titles

    2 Scribble Layers

      2.1 Typical Composition

      2.2 Layer Roadmap

    3 @-Reader

      3.1 Concrete Syntax

        3.1.1 The Scribble Syntax at a Glance

        3.1.2 The Command Part

        3.1.3 The Datum Part

        3.1.4 The Body Part

      3.2 Syntax Properties

      3.3 Adding @-expressions to a Language

      3.4 Interface

    4 Structures And Processing

      4.1 Parts

      4.2 Tags

      4.3 Collected and Resolved Information

      4.4 Structure Reference

    5 Renderer

      5.1 Base Renderer

      5.2 Text Renderer

      5.3 HTML Renderer

      5.4 Latex Renderer

    6 Decoding Text

    7 Document Language

    8 Document Reader

    9 Basic Document Forms

      9.1 Document Structure

      9.2 Text Styles

      9.3 Indexing

      9.4 Tables of Contents

    10 Scheme

    11 Manual Forms

      11.1 Typesetting Code

        11.1.1 Typesetting Comments

      11.2 Documenting Modules

      11.3 Documenting Forms, Functions, Structure Types, and Values

      11.4 Documenting Classes and Interfaces

      11.5 Documenting Signatures

      11.6 Various String Forms

      11.7 Links

      11.8 Indexing

      11.9 Images

      11.10 Bibliography

      11.11 Miscellaneous

      11.12 Index-Entry Descriptions

    12 Evaluation and Examples

    13 In-Source Documentation

      13.1 Source Annotations for Documentation

      13.2 Extracting Documentation from Source

    14 BNF Grammars

    15 Literate Programming

      15.1 scribble/lp Language

      15.2 scribble/lp-include Module

    16 Cross-Reference Utilities

    17 Text Preprocessor

      17.1 Writing Preprocessor Files

      17.2 Defining Functions and More

      17.3 Using Printouts

      17.4 Indentation in Preprocessed output

      17.5 Using External Files

    18 Extending and Configuring Scribble Output

      18.1 Adding a Style

      18.2 Configuring Output

    Index