diff --git a/collects/games/chat-noir/chat-noir-doc.ss b/collects/games/chat-noir/chat-noir-doc.ss index 2a484a6b22..ccbe5ad660 100644 --- a/collects/games/chat-noir/chat-noir-doc.ss +++ b/collects/games/chat-noir/chat-noir-doc.ss @@ -1,16 +1,3 @@ #lang scribble/doc - -@(begin - -(require scribble/manual scribble/decode scheme/include) - -;; define `chunk' as a macro that typesets the code -(define-syntax-rule (chunk name expr ...) - (make-splice (list (emph (scheme name) " ::=") - (schemeblock expr ...)))) - -(define-syntax module - (syntax-rules () [(module name base body ...) (begin body ...)])) -(include "chat-noir-literate.ss") - -) +@(require "literate-doc-wrapper.ss") +@(include "chat-noir-literate.ss") diff --git a/collects/games/chat-noir/literate-doc-wrapper.ss b/collects/games/chat-noir/literate-doc-wrapper.ss new file mode 100644 index 0000000000..5c59a784ae --- /dev/null +++ b/collects/games/chat-noir/literate-doc-wrapper.ss @@ -0,0 +1,20 @@ +#lang scheme/base + +;; Use this module to create literate doc wrappers -- files that require the +;; literate code in a way that makes it a scribble file. + +(provide include chunk + (all-from-out scribble/manual)) + +(require scribble/manual scribble/decode scheme/include) + +;; define `chunk' as a macro that typesets the code +(define-syntax-rule (chunk name expr ...) + (make-splice (list (emph (scheme name) " ::=") + (schemeblock expr ...)))) + +;; HACK: provide a fake `module', which makes it possible to include a module +;; and get only its code in. +(provide module) +(define-syntax module + (syntax-rules () [(module name base body ...) (begin body ...)]))