summaryrefslogtreecommitdiff
path: root/templates/_defs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'templates/_defs.scm')
-rw-r--r--templates/_defs.scm99
1 files changed, 99 insertions, 0 deletions
diff --git a/templates/_defs.scm b/templates/_defs.scm
new file mode 100644
index 0000000..ed145b4
--- /dev/null
+++ b/templates/_defs.scm
@@ -0,0 +1,99 @@
+; Global to the file, use (set! lang "lang") to configure in languages
+(define lang "en")
+
+; UTILS -----------------------------------------------------------------------
+(define (anchored-h level title id)
+ `(,(string->symbol (string-append "h" (number->string level)))
+ (@ (id ,id))
+ ,title
+ (a (@ (href ,(string-append "#" id)) (class "anchor")) " ΒΆ" )))
+
+
+(define (absurl-to-lang url)
+ (string-append "/" lang url))
+
+(define (header-link lr text title link active)
+ `(a (@ (class ,(string-append (if active "active " " ")
+ "navbar-link link-" lr))
+ (href ,link)
+ (title ,title))
+ ,text))
+
+(define (style href)
+ "Make <link> tags to add CSS"
+ `(link (@ (rel "stylesheet")
+ (href ,href))))
+
+(define (md markdown-text)
+ `(@raw ,(md-to-html markdown-text)))
+
+(define (logo-title) `(h1 (@raw ,(file->string "templates/_logo.svg"))))
+
+; BASE ------------------------------------------------------------------------
+(define (base title body)
+ `(html
+ (@ (lang ,lang))
+ (head
+ (meta (@ (charset "utf-8")))
+ (meta (@ (name "viewport")
+ (content "width=device-width, initial-scale=1")))
+ ,(style "/static/css/normalize.css")
+ ,(style "/static/css/style.css")
+ ,(style "/static/css/fonts.css")
+ ,(style "/static/css/extra-style.css")
+ ,(style "/static/css/publishing.css")
+ (title ,title))
+ (body ,body)))
+
+
+; HEADER-----------------------------------------------------------------------
+(define (nav-link l)
+ (header-link "left"
+ (cdr (assq 'name l))
+ (cdr (assq 'title l))
+ (cdr (assq 'absurl l))
+ (or (assq 'active l) #f)))
+
+(define (lang-link l)
+ (header-link "right"
+ (cdr (assq 'name l))
+ (cdr (assq 'title l))
+ (cdr (assq 'absurl l))
+ (or (assq 'active l) #f)))
+
+(define (header links langs)
+ `(header
+ (@ (class mainheader))
+ (div (@ (class container))
+ (nav (@ (class navbar))
+ (label (@ (id hamburger-label)
+ (for "hamburger")
+ (class "navbar-link link-left")) (@raw "&#9776;"))
+ (input (@ (id "hamburger") (type checkbox)))
+
+ (div (@ (class navbar-contents))
+ (div (@ (class navbar-left))
+ ,(map nav-link links))
+
+ (div (@ (class "navbar-right"))
+ ,(map lang-link langs)))))))
+
+
+(define (book thickness cover-url extra-classes)
+ `(div (@ (class "book-container")
+ (tabindex "0"))
+ (div (@ (class ,(string-join (append '("book") extra-classes) " "))
+ (style ,(string-append
+ "--book-cover: url(" cover-url ");"
+ "--book-thickness: " thickness ";")))
+ (div (@ (class "_side")))
+ (div (@ (class "_side")))
+ (div (@ (class "_side")))
+ (div (@ (class "_side")))
+ (div (@ (class "_side")))
+ (div (@ (class "_side"))))))
+
+(define (link-with-title title url)
+ `(a (@ (title ,title)
+ (href ,url))
+ ,title))