24 lines
714 B
Common Lisp
24 lines
714 B
Common Lisp
(defpackage :coleslaw-static-pages
|
|
(:use :cl)
|
|
(:export #:enable)
|
|
(:import-from :coleslaw #:content
|
|
#:page-url
|
|
#:find-all
|
|
#:render
|
|
#:publish))
|
|
|
|
(in-package :coleslaw-static-pages)
|
|
|
|
(defclass page (content)
|
|
((:url :initarg :url :reader page-url)))
|
|
|
|
(defmethod render ((object page))
|
|
;; For now, we'll re-use the normal post theme.
|
|
(funcall (theme-fn 'post) (list :config *config*
|
|
:post object)))
|
|
|
|
(defmethod publish ((doc-type (eql (find-class 'page))))
|
|
(dolist (page (find-all 'page))
|
|
(write-file (page-path page) (render-page page nil))))
|
|
|
|
(defun enable ())
|