Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Nevar pievienot vairāk kā 25 tēmas
Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
|
- (in-package :cl-user)
-
- (defpackage #:cl-deck-builder2.view
- (:use #:cl)
- (:import-from #:cl-deck-builder2.config
- #:*template-directory*)
- (:import-from #:cl-deck-builder2.i18n
- #:with-locale)
- (:import-from #:caveman2
- #:*response*
- #:response-headers)
- (:import-from #:djula
- #:add-template-directory
- #:compile-template*
- #:render-template*
- #:*djula-execute-package*)
- (:import-from #:datafly
- #:encode-json)
- (:export #:render
- #:render-json)
- (:documentation "The VIEW package.
-
- We just use the defaults generated by Caveman2.
-
- It provides rendering functions for web view.
-
- Additionally, we have i18n support with gettext."))
-
- (in-package :cl-deck-builder2.view)
-
- (djula:add-template-directory *template-directory*)
-
- (defparameter *template-registry* (make-hash-table :test 'equal)
- "Hash table of registered templates. Used for caching.")
-
- (defun render (template-path &optional env (lang "en_US"))
- "Use Djula to render a template."
- (let ((template (gethash template-path *template-registry*)))
- (unless template
- (setf template (djula:compile-template* (princ-to-string template-path)))
- (setf (gethash template-path *template-registry*) template))
- (with-locale (lang)
- (apply #'djula:render-template* template nil env))))
-
- (defun render-json (object)
- "Use Datafly to render a JSON object."
- (setf (getf (response-headers *response*) :content-type) "application/json")
- (encode-json object))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;
- ;; Execute package definition
-
- (defpackage #:cl-deck-builder2.djula
- (:use :cl)
- (:import-from :cl-deck-builder2.config
- :config
- :appenv
- :developmentp
- :productionp)
- (:import-from :caveman2
- :url-for)
- (:documentation "The package in which template expressions are evaluated.
-
- SEE <https://quickref.common-lisp.net/djula.html#g_t_276866_2769>"))
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (setf djula:*djula-execute-package* (find-package :cl-deck-builder2.djula))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (in-package #:djula)
-
- (djula:def-filter :describe (it)
- (with-output-to-string (s) (describe it s)))
|