Splice ./universe directory into ./

Manually merging:
- README.md: I added the description from universe/README.md into the heading of
  dotfiles/README.md.
- .envrc: dotfiles/.envrc was a superset of universe/.envrc
- .gitignore: Adding some of the ignored patterns from universe/.gitignore to
  dotfiles/.gitignore

Everything else here should be a simple rename.
This commit is contained in:
William Carroll 2020-01-29 14:43:20 +00:00
parent fb9380ba26
commit 5c9079a410
133 changed files with 17 additions and 7979 deletions

16
blog/src/index.html Normal file
View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Showcase of AI bots at DeepMind" />
<link rel="stylesheet" href="/index.css">
<title>AI Showcase</title>
<script data-ad-client="ca-pub-6018268443649487" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<h1>Welcome</h1>
<p>To my blog!</p>
</body>
</html>

49
blog/src/server.lisp Normal file
View 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))))