DEV Community

vindarel
vindarel

Posted on

Common Lisp HTML templates: using Djula in .lisp files

;;; ;;; How to use Djula templates in-file, without separate file templates. ;;; ;;; This can make it easier to ship your app as a single binary. ;;; Otherwise, see ;;; https://lisp-journey.gitlab.io/blog/lisp-for-the-web-build-standalone-binaries-foreign-libraries-templates-static-assets/#embed-html-djula-templates-in-your-binary ;;; ;;; We use two Djula functions: ;;; - compile-string ;;; - render-template* ;;; ;;; #++ (ql:quickload '("djula" "pythonic-string-reader")) (pythonic-string-reader:enable-pythonic-string-syntax) (defparameter *template-hello* """ {% if foo %} foo is true {% else %} foo is false {% endif %} """) (defun render (s &rest keys) (apply #'djula:render-template* (djula:compile-string s) nil ;; key arguments: keys )) #++ (render *template-hello* :foo t) ;; => " foo is true " 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)