47 lines
1.4 KiB
Scheme
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))
|