36 lines
1.3 KiB
Racket
36 lines
1.3 KiB
Racket
#lang racket/base
|
|
|
|
;; Use text renderer to check some Scribble functionality
|
|
|
|
;; ----------------------------------------
|
|
|
|
(require scribble/base-render
|
|
racket/file
|
|
racket/class
|
|
(prefix-in text: scribble/text-render))
|
|
|
|
(define (build-text-doc src-file dest-file)
|
|
(define dir (find-system-path 'temp-dir))
|
|
(let ([renderer (new (text:render-mixin render%)
|
|
[dest-dir dir])])
|
|
(let* ([docs (list (dynamic-require `(file ,src-file) 'doc))]
|
|
[fns (list (build-path dir dest-file))]
|
|
[fp (send renderer traverse docs fns)]
|
|
[info (send renderer collect docs fns fp)])
|
|
(let ([r-info (send renderer resolve docs fns info)])
|
|
(send renderer render docs fns r-info)))))
|
|
|
|
(define (check-text-build name)
|
|
(define src-file (string-append "docs/" name ".scrbl"))
|
|
(define expect-file (string-append "docs/" name ".txt"))
|
|
(build-text-doc src-file "gen.txt")
|
|
(unless (string=? (file->string expect-file)
|
|
(file->string (build-path (find-system-path 'temp-dir)
|
|
"gen.txt")))
|
|
(error 'check-text-build "mismatch from: ~e expected: ~e"
|
|
src-file expect-file)))
|
|
|
|
;; ----------------------------------------
|
|
|
|
(check-text-build "print-lines")
|