scribble-enhanced/collects/scribble/html/main.rkt
Eli Barzilay 688bb59c1a Move the #%top' binding that makes foo:' keywords self evaluating from
`scribble/html/lang' to `scribble/html'.

Since `foo:' keywords are very common in any code that uses
`scribble/html', it is much more convenient to have it provide the
custom `#%top'.  It simplifies code that uses it, for example, files in
`meta/web/common' now use

  #lang at-exp racket/base
  (require scribble/html)

instead of the (only-in scribble/html/lang #%top) which it used before,
or instead of explicitly quoting all `foo:'s.

original commit: 58febe21a02ff7c7447ee75bf5edd34c99ee6f1c
2010-10-28 17:31:22 -04:00

18 lines
498 B
Racket

#lang racket/base
(require "xml.rkt" "html.rkt" "resource.rkt"
;; includes all of the scribble/text utilities
scribble/text)
(provide (all-from-out "xml.rkt" "html.rkt" "resource.rkt" scribble/text)
(rename-out [top #%top]))
(require (for-syntax racket/base))
(define-syntax (top stx)
(syntax-case stx ()
[(_ . x)
(let ([x* (syntax-e #'x)])
(if (and (symbol? x*) (regexp-match? #rx":$" (symbol->string x*)))
#''x
#'(#%top . x)))]))