diff options
author | Colin Okay <cbeok@protonmail.com> | 2020-06-24 10:02:42 -0500 |
---|---|---|
committer | Colin Okay <cbeok@protonmail.com> | 2020-06-24 10:02:42 -0500 |
commit | d9d1d8368c787cff991be91432cc559042ea05e0 (patch) | |
tree | 7c5086a54065c4724768837e090d297037fff1b5 /fs-serve.lisp | |
parent | b7010dfa6574984a5045aa35f7f540efac77e8db (diff) |
mimetype registry, serve-directory
Diffstat (limited to 'fs-serve.lisp')
-rw-r--r-- | fs-serve.lisp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/fs-serve.lisp b/fs-serve.lisp new file mode 100644 index 0000000..3519cb8 --- /dev/null +++ b/fs-serve.lisp @@ -0,0 +1,40 @@ +(in-package #:lazybones.fs-serve) + +(defun register-many (mime-prefix config &optional (reader 'read-file-into-string)) + (dolist (entry config) + (if (stringp entry) + (register-file-handler-config entry + (concatenate 'string mime-prefix entry) + reader) + (let ((mtype (concatenate 'string mime-prefix (car entry)))) + (dolist (ext (cdr entry)) + (register-file-handler-config ext mtype reader)))))) + +(defparameter +image-mimetypes+ + '("png" + "bmp" + ("jpeg" "jpeg" "jpg" "jfif" "pjpeg" "pjp") + "apng" + "gif" + ("x-icon" "ico" "cur") + ("svg+xml" "svg") + ("tiff" "tiff" "tif") + "webp" + ) + "Each entry in the list is either a string EXT that will be used to + insert image/EXT mimetype for file extension EXT, or, is a + list (IMGTYPE . EXTENSIONS) and will prodeuce a separate entry for + each of the list EXTENSIONS") + +(register-many "image/" +image-mimetypes+ 'read-file-into-byte-vector) + +(defparameter +text-mimetypes+ + '(("plain" "txt" "csv" "tsv" "org" "md") + "css" + ("html" "html" "htm") + ("javascript" "js"))) + +(register-many "text/" +text-mimetypes+) + + + |