src/view/common.lisp

DOWNLOAD
(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)))))