#lang scribble/doc @(require "common.ss") @title[#:tag "end"]{Conclusion} Much about Scribble's design seems obvious: the idea that documents should be programs, the choice of core structures for a document, and the use of HTML and @|latex| as back-end targets. Other engineering details seem more likely to be useful to future tool designers: the rationale and mechanics of the @lit["@"] notation, the split between surface parsing and (relatively ad hoc) ASCII decoding, and the way that PLT Scheme documentation is distributed and installed along with its libraries. More significantly, we see Scribble as a demonstration of language extensibility in PLT Scheme and, in particular, how that extensibility goes beyond S-expressions and traditional Lisp-style macros. Many programming environments have been created, and many documentation tools have been written; few documentation tools automatically apply to themselves within a programming environment as a result of the way that the tool is constructed. DrScheme's online help, in contrast, automatically works on Scribble documents, connecting uses of functions and syntax to documentation in the Scribble manual. Programmers are free to evolve PLT Scheme as a programming language, and the documentation system can keep up. @'nbsp To install an HTML version of this document where Scheme and Scribble identifiers are hyperlinked to their documentation: @itemize{ @item{Install PLT Scheme v3.99.x from @verbatim[#:indent 2]{http://pre.plt-scheme.org/installers/}} @item{Start DrScheme, enter the program @code-block{ #lang scheme (require (planet mflatt/scribble-paper)) } and click @onscreen{Run}. Running the program installs the paper and directs your browser to the starting page. To view the document source, click @onscreen{Check Syntax} and right-click on @scheme[mflatt/scribble-paper] to open its source.} }