src/view/common.lisp
(defpackage murja.view.common
(:use :cl :binding-arrows :spinneret :cl-hash-util :murja.model.settings)
(:export :with-page))
(in-package :murja.view.common)
;; <link href="/resources/murja.css" rel="stylesheet" type="text/css">
;; <script src="https://unpkg.com/ace-custom-element@latest/dist/index.min.js" type="module"></script>
;; <meta charset="UTF-8" />
;; <script src="/resources/murja.js"></script>
(defun header ()
(with-keys ("blog-title") (get-settings)
(with-html
(:header
;; TODO should :href to blog home be parametrizable
(:a :href "/" blog-title)))))
(defmacro with-page (title &body body)
`(format nil "<!DOCTYPE html>~%~a"
(with-html-string
(:html
(:head
(:title ,title)
(:link :href "/resources/murja.css" :rel "stylesheet" :type "text/css")
(:meta :charset "UTF-8")
(:script :src "/resources/murja.js"))
(:body
(header)
,@body)))))