27 lines
825 B
Scheme
27 lines
825 B
Scheme
(define-module (webui html)
|
|
#:export (build-html-page
|
|
html-h1 html-h2 html-h3 html-h4 html-h5 html-h6))
|
|
(use-modules (sxml simple))
|
|
|
|
(define (html header . body)
|
|
(let ((title (if (string? header) header (car header)))
|
|
(bodydata (if (pair? header) (cdr header) '())))
|
|
`(html (head (title ,title)
|
|
(link (@ (rel "stylesheet") (href "/style.css")))
|
|
,@bodydata)
|
|
(body ,@body))))
|
|
|
|
(define (make-simple-tag-wrapper tagname)
|
|
(lambda body
|
|
`(,tagname ,@body)))
|
|
|
|
(define html-h1 (make-simple-tag-wrapper 'h1))
|
|
(define html-h2 (make-simple-tag-wrapper 'h2))
|
|
(define html-h3 (make-simple-tag-wrapper 'h3))
|
|
(define html-h4 (make-simple-tag-wrapper 'h4))
|
|
(define html-h5 (make-simple-tag-wrapper 'h5))
|
|
(define html-h6 (make-simple-tag-wrapper 'h6))
|
|
|
|
(define (build-html-page title . body)
|
|
(html title body))
|