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

47 lines
1.4 KiB
Scheme

(define-module (guile-docs html templates)
#:use-module (guile-docs docs))
(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))