Flexible Lisp Blogware. Fork for personal use. Mirrored from https://github.com/kingcons/coleslaw originally.

coleslaw.lisp 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. (in-package :coleslaw)
  2. (defvar *site-root* nil
  3. "A string representing the base URL of the site,
  4. e.g. \"http://blog.redlinernotes.com\".")
  5. (defvar *site-title* nil
  6. "A string containing the title of the site,
  7. e.g. \"Improved Means for Achieving Deterioriated Ends\".")
  8. (defvar *site-credits* nil
  9. "A string containing the credits of the site,
  10. e.g. \"Brit Butler (year)\".")
  11. (defvar *site-license* nil
  12. "A string containing the (optional) license of the site,
  13. e.g. \"CC-BY-SA\". Otherwise, standard copyright is assumed.")
  14. (defvar *output-directory* nil
  15. "The path where the compiled coleslaw site will be output.")
  16. (defvar *input-directory* nil
  17. "The directory which will be watched for new posts.")
  18. (defun static-init ()
  19. (setf *storage* (make-hash-table))
  20. (loop for table in '(:authors :comments :posts :indices :credentials)
  21. do (unless (gethash table *storage*)
  22. (setf (gethash table *storage*) (make-hash-table)))))
  23. (defmethod start-coleslaw (&rest options)
  24. )
  25. (defmethod stop-coleslaw (&rest options)
  26. )
  27. (defmethod get-credentials (name)
  28. (gethash name (gethash :credentials *storage*)))
  29. (defmethod set-credentials (name credentials)
  30. (setf (gethash name (gethash :credentials *storage*)) credentials))
  31. (defmethod render-page (content)
  32. (let ((result (funcall (find-symbol "BASE" (theme-package))
  33. (list :title *site-title*
  34. :siteroot *site-root*
  35. :head-inject nil
  36. :navigation nil
  37. :content content
  38. :body-inject nil
  39. :license *site-license*
  40. :credits *site-credits*))))
  41. result))