summaryrefslogtreecommitdiffstats
path: root/src/view/main.phel
blob: 1be62264b2ddd83985be6e99d12d9f745b68293f (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
(ns lezer.view.main
  (:require phel.html :refer [html doctype])
  (:require phel.pdo)
  (:require phel.string :as str))

(def- head
  [:head
   [:meta {:charset "utf-8"}]
   [:meta {:name "viewport" :content "width=device-width, initial-scale=1"}]
   [:link {:rel "stylesheet" :href "./css/style.css"}]
   [:link {:rel "icon" :type "image/png" :href "./images/favicon-32.png"}]
   [:title "Lezer"]])

(def- logo
  [:div {:class "logo"}
   [:img {:src "./images/logo.svg" :width "360"}]])

(def- links
  [:div {:class "links"}
   [:a {:href "https://phel-lang.org/"} "Homepage"]
   [:a {:href "https://phel-lang.org/documentation/getting-started/"} "Getting started"]
   [:a {:href "https://github.com/phel-lang/phel-lang"} "GitHub"]
   [:a {:href "https://gitter.im/phel-lang/community"} "Community"]])

(defn content [books]
  (html
   (doctype :html5)
   [:html
    head
    [:body
     [:ul
      (for [b :in books]
        (let [authors (:authors b)
              book (:book b)]
          [:li (:title book)
           (if (not (empty? authors))
             (str " by "
                  (str/join ", " (map :name authors))))]))]
     [:div {:class "flex-center position-ref full-height"}
      [:form {:action "/book" :method "POST"}
       [:label {:for "title"} "Title: "]
       [:input {:type "text" :name "title"}]
       [:br]
       [:label {:for "author"} "Author: "]
       [:input {:type "text" :name "author"}]
       [:input {:type "submit"}]]]]]))

(defn index-html [books]
  (content books))