diff --git a/.env.example b/.env.example index 5e1e32e..1cff520 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ HP_ENV= +HP_URL= diff --git a/src/env.lisp b/src/env.lisp index 4eec08a..0963396 100644 --- a/src/env.lisp +++ b/src/env.lisp @@ -2,7 +2,8 @@ (:use #:cl) (:import-from #:cl-dotenv #:load-env) - (:export #:hp-env)) + (:export #:hp-env + #:hp-url)) (in-package #:hp/env) (load-env (merge-pathnames "./.env")) @@ -12,3 +13,4 @@ (or (uiop:getenv ,var) ""))) (env-var hp-env "HP_ENV") +(env-var hp-url "HP_URL") diff --git a/src/renderer.lisp b/src/renderer.lisp index 53a730c..e799393 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -7,19 +7,22 @@ (:import-from #:hsx/element #:element) (:import-from #:hp/env + #:hp-url #:hp-env)) (in-package #:hp/renderer) -(defun bust-cache (url) - (format nil "~a?v=~a" url #.(get-universal-time))) +(defun path->url (path) + (concatenate 'string + (hp-url) + (and (not (string= path "/")) path))) (defparameter *metadata-template* - (list :title (lambda (title) - (format nil "~@[~a - ~]~a" title "skyizwhite.dev")) + (list :title (lambda (title) (format nil "~@[~a - ~]~a" title "skyizwhite.dev")) :description "The personal homepage of Akira Tempaku (paku) - projects, thoughts, and more." - :og-url "https://skyizwhite.dev" + :canonical #'path->url + :og-url #'path->url :og-type "website" - :og-image "https://skyizwhite.dev/img/og.jpg" + :og-image (path->url "/img/og.jpg") :og-image-width 1024 :og-image-height 1024)) @@ -31,8 +34,12 @@ (funcall template value) (or value template))))) +(defun bust-cache (url) + (format nil "~a?v=~a" url #.(get-universal-time))) + (defcomp ~document (&key title description + canonical og-url og-type og-image @@ -54,6 +61,7 @@ (meta :property "og:image" :content og-image) (meta :property "og:image:width" :content og-image-width) (meta :property "og:image:height" :content og-image-height) + (link :rel "canonical" :href canonical) (link :rel "icon" :type "image/x-icon" :href "/img/favicon.ico") (link :rel "apple-touch-icon" :href "/img/favicon.ico") (link :rel "stylesheet" :href (bust-cache "/style/dist.css"))