git.fiddlerwoaroof.com
Browse code

feat(blog): update layout

Edward authored on 17/04/2021 05:51:06
Showing 1 changed files
... ...
@@ -73,15 +73,85 @@
73 73
 (defmethod controller ((route post-route) params &key)
74 74
   (post route))
75 75
 
76
-(defmethod view ((name post-route) (post macropost))
76
+(defmethod view ((_ blog-route) post)
77
+  '(404 (:content-type "text/plain") ("FAIL!")))
78
+
79
+(defun layout (f)
77 80
   (spinneret:with-html-string
81
+    (:style
82
+     ":root {
83
+        --zenburn-fg-plus-2: #FFFFEF; --zenburn-fg-plus-1: #F5F5D6;
84
+        --zenburn-fg: #DCDCCC; --zenburn-fg-1: #A6A689;
85
+        --zenburn-fg-2: #656555; --zenburn-black: #000000;
86
+        --zenburn-bg-2: #000000; --zenburn-bg-1: #111112;
87
+        --zenburn-bg-05: #383838; --zenburn-bg: #2A2B2E;
88
+        --zenburn-bg-plus-05: #494949; --zenburn-bg-plus-1: #4F4F4F;
89
+        --zenburn-bg-plus-2: #5F5F5F; --zenburn-bg-plus-3: #6F6F6F;
90
+        --zenburn-red-plus-2: #ECB3B3; --zenburn-red-plus-1: #DCA3A3;
91
+        --zenburn-red: #CC9393; --zenburn-red-1: #BC8383;
92
+        --zenburn-red-2: #AC7373; --zenburn-red-3: #9C6363;
93
+        --zenburn-red-4: #8C5353; --zenburn-red-5: #7C4343;
94
+        --zenburn-red-6: #6C3333; --zenburn-orange: #DFAF8F;
95
+        --zenburn-yellow: #F0DFAF; --zenburn-yellow-1: #E0CF9F;
96
+        --zenburn-yellow-2: #D0BF8F; --zenburn-green-5: #2F4F2F;
97
+        --zenburn-green-4: #3F5F3F; --zenburn-green-3: #4F6F4F;
98
+        --zenburn-green-2: #5F7F5F; --zenburn-green-1: #6F8F6F;
99
+        --zenburn-green: #7F9F7F; --zenburn-green-plus-1: #8FB28F;
100
+        --zenburn-green-plus-2: #9FC59F; --zenburn-green-plus-3: #AFD8AF;
101
+        --zenburn-green-plus-4: #BFEBBF; --zenburn-cyan: #93E0E3;
102
+        --zenburn-blue-plus-3: #BDE0F3; --zenburn-blue-plus-2: #ACE0E3;
103
+        --zenburn-blue-plus-1: #94BFF3; --zenburn-blue: #8CD0D3;
104
+        --zenburn-blue-1: #7CB8BB; --zenburn-blue-2: #6CA0A3;
105
+        --zenburn-blue-3: #5C888B; --zenburn-blue-4: #4C7073;
106
+        --zenburn-blue-5: #366060; --zenburn-magenta: #DC8CC3;}"
107
+     (lass:compile-and-write
108
+      `(* :box-sizing border-box)
109
+      `((:or html body)
110
+        :margin 0
111
+        :padding 0
112
+        :color (var "--zenburn-fg")
113
+        :background (var "--zenburn-bg")
114
+        :font-family sans-serif
115
+        :font-size 16px
116
+        :display grid
117
+        :grid-template-areas "\"top     top     top\"
118
+                             \"left     main     main\"
119
+                             \"left     main     main\"")
120
+      `((:or a)
121
+        :margin 0
122
+        :padding 0
123
+        :color (var "--zenburn-blue")
124
+        )
125
+      `((:or h1 h2 h3 h4 h5 h6)
126
+        :font-size 1.1rem
127
+        :margin 0
128
+        :padding 0)
129
+      `((:and a :hover)
130
+        :color (var "--zenburn-blue-1"))
131
+      `(h1 :grid-area "top" :padding 2rem :font-size 3rem)
132
+      `(nav :grid-area "left" :padding 2rem)
133
+      `(main :grid-area "main" :padding 2rem 0 0 0)))
134
+    (:h* "the site!")
135
+    (:nav "aside")
136
+    (:main (funcall f))))
137
+
138
+(defvar *layout-done* nil)
139
+(defmethod view :around ((_ blog-route) post)
140
+  (if *layout-done*
141
+      (call-next-method)
142
+      (let ((*layout-done* t))
143
+        (layout #'call-next-method))))
144
+
145
+(defmethod view ((name post-route) (post macropost))
146
+  (spinneret:with-html
78 147
     (:section
79 148
      (:h* (title post))
80 149
      (:div
81 150
       (content post)))))
82 151
 
83 152
 (defmethod view ((name index-route) posts)
84
-  (spinneret:with-html-string
153
+  (format *standard-output* "~&~S~%" posts)
154
+  (spinneret:with-html
85 155
     (:section
86 156
      (:h* "Blog Index")
87 157
      (:div