blob: 71112eb73b95d17e4502b84fc074d5e85130fe11 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
(define-module (web view doc)
#:use-module (json)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (ice-9 iconv)
#:use-module (ice-9 receive)
#:use-module (ice-9 string-fun)
#:use-module (sxml simple)
#:use-module (web sxml)
#:export (view-doc))
(define (parse-html buf)
(car (cdr (xml->sxml buf))))
(define* (layout #:key
(head '())
(body '())
(title "GeneNetwork.org API")
(info "")
(meta "")
(data "")
(back "")
)
`((doctype "html")
(html (@ (lang "en"))
(head
(title ,title)
(meta (@ (http-equiv "Content-Type") (content "text/html; charset=UTF-8")))
(meta (@ (name "author") (content "GeneNetwork team")))
(meta (@ (name "viewport")
(content "width=device-width, initial-scale=1")))
(link
(@ (rel "stylesheet")
(media "screen")
(type "text/css")
(href "./css/gn-doc.css")))
,@head)
(body (h1 ,title)
(p ,info)
(p "JSON API: " (a (@ (href ,meta)) "meta") " | "
(a (@ (href ,data)) "data") " | "
(a (@ (href ,back)) "back"))
(pre
,(scm->json-string body #:pretty #t))
; (p ,(parse-html "<b>some raw really <i>text</i> here</b>"))
(footer
(p "Copyright © 2005—2023 by the GeneNetwork community with a touch of " (span (@ (class "lambda")) "λ") "!")
(p "This is free software. Download the "
(a (@ (href "https://ci.genenetwork.org/"))
"source code") "."))
))))
(define* (view-doc path page #:optional rec)
(layout #:title page #:info (assoc-ref rec "info") #:meta (assoc-ref rec "meta") #:data (assoc-ref rec "data") #:back (assoc-ref rec "up") #:body rec))
|