guile-docs/guile-docs/html/templates.scm

51 lines
1.5 KiB
Scheme

(define-module (guile-docs html templates)
#:use-module (guile-docs docs)
#:export (index-page
render-doc
render-module
overall-wrapper))
(define (overall-wrapper content)
`(html
(link (@ (rel "stylesheet")
(type "text/css")
(href "style.css")))
(head (title "Welcome to GuileDocs"))
(body
(div (@ (id "overall-wrapper"))
(header (h3 "🚀GuileDocs")
(input (@ (type "text")
(placeholder "Search (ctrl-s)")))
(menu (li "Core Library")
(li "Quick Ref")))
(nav (section (h4 "Navigation")
(menu (li "Top")
(li "Examples")
(li "See Also")))
(section (h4 "Namespace")
(menu (li "guile")
(li "srfi"))))
,content
(footer (p (i "powered by solarpunks.")))))))
(define index-page
(overall-wrapper
'(main
(h1 "Welcome")
(p "This is GuileDocs."))))
(define (render-doc doc)
`((hgroup
(h1 ,(doc-symbol doc))
(p "In " ,(doc-module doc)))
(p ,(or (doc-documentation doc) ""))))
(define (render-module module)
(let ((docs (docs-in-module module)))
(overall-wrapper
`(main ,(map render-doc docs)))))
(define test-module (resolve-interface '(srfi srfi-9)))
(define (test-rendering)
(render-module test-module))