aboutsummaryrefslogtreecommitdiff
path: root/web/view/doc.scm
blob: 1125147d176abdb00d98a7d74be653feae788f31 (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
(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"))
  `((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 ,body)
           ; ,body
           ; (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)
  (layout #:body page))