Add 'universe/' from commit '8ad51b24dd'
git-subtree-dir: universe git-subtree-mainline:15110e6de9git-subtree-split:8ad51b24dd
This commit is contained in:
commit
fb9380ba26
131 changed files with 13792 additions and 0 deletions
49
universe/blog/src/server.lisp
Normal file
49
universe/blog/src/server.lisp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
(in-package #:cl-user)
|
||||
(defpackage #:server
|
||||
(:documentation "Robot condemned to a life of admin work for my blog.")
|
||||
(:use #:cl)
|
||||
(:import-from #:cl-arrows #:->>)
|
||||
(:export :main))
|
||||
(in-package #:server)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Nix-injected dependencies
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; TODO: Wrap this in an assert or ensure that there's a trailing slash so it's
|
||||
;; treated as a directory.
|
||||
(defvar *path-to-posts* "/tmp/"
|
||||
"File path pointing to the posts directory.")
|
||||
|
||||
(defvar *pandoc-bin* "/usr/bin/pandoc")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Library
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defun render-post (path)
|
||||
"Render the markdown file stored at PATH to HTML using pandoc."
|
||||
(uiop:run-program (list *pandoc-bin* path "--to" "html")
|
||||
:output :string))
|
||||
|
||||
;; TODO: Figure out how to handle this with Nix.
|
||||
(defvar *posts* (uiop:directory-files *path-to-posts*)
|
||||
"List of the paths to the blog posts.")
|
||||
|
||||
(hunchentoot:define-easy-handler
|
||||
(get-latest :uri "/latest") ()
|
||||
(render-post (concatenate 'string *path-to-posts* "/" "test.md")))
|
||||
|
||||
(hunchentoot:define-easy-handler
|
||||
(get-posts :uri "/posts") ()
|
||||
"Working!")
|
||||
|
||||
(defun main ()
|
||||
"This is the main entrypoint for our application."
|
||||
(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242))
|
||||
(print "Listing on port 4242...")
|
||||
(sb-thread:join-thread
|
||||
(find-if (lambda (th)
|
||||
(string= (sb-thread:thread-name th)
|
||||
"hunchentoot-listener-*:4242"))
|
||||
(sb-thread:list-all-threads))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue