41 lines
1.0 KiB
Scheme
41 lines
1.0 KiB
Scheme
(module read-doc mzscheme
|
|
|
|
(require (lib "etc.ss"))
|
|
(require (lib "getinfo.ss" "setup"))
|
|
|
|
(require "util.ss")
|
|
(require "read-lines.ss")
|
|
(require "headelts.ss")
|
|
|
|
(provide read-doc)
|
|
|
|
; extracts help desk message
|
|
(define (get-message coll)
|
|
(with-handlers ; collection may not exist
|
|
((void (lambda _ #f)))
|
|
((get-info (list coll))
|
|
'help-desk-message
|
|
(lambda () #f))))
|
|
|
|
(define no-offset-format "file=~a&caption=~a")
|
|
(define offset-format (string-append no-offset-format "&offset=~a#temp"))
|
|
|
|
(define (build-page file caption coll offset)
|
|
(let ([msg (get-message coll)])
|
|
(if msg
|
|
`(HTML
|
|
(HEAD (TITLE "PLT Help Desk")
|
|
,hd-css)
|
|
(BODY
|
|
,(format-collection-message msg)
|
|
(HR)
|
|
,(read-lines file caption offset)))
|
|
`(HTML
|
|
(HEAD (TITLE "PLT Help Desk")
|
|
,hd-css)
|
|
,(read-lines file caption offset)))))
|
|
|
|
(define read-doc
|
|
(opt-lambda (file caption coll [offset #f])
|
|
(build-page file caption coll offset))))
|