The third iteration of my personal website. It was quite fun building this with Common Lisp. Pull requests and patches – see “project-isidore.asd” for the correct mailing address – are most welcome.
Copyright (c) 2021 Benedict Hanshen Wang. Source code is under the GNU-AGPL-3.0 License. Blog content is available under the CC-BY-SA 4.0 License unless otherwise noted.
Prerequisite(s):
An ANSI Common Lisp implementation. The development platform is x86_64 Debian GNU/Linux with SBCL.
$ sudo apt install sbcl
The Quicklisp library manager to download system dependencies.
$ curl -O https://beta.quicklisp.org/quicklisp.lisp
$ sbcl --load quicklisp.lisp
* (quicklisp-quickstart:install)
* (ql:add-to-init-file)
* (quit)
- Clone the repository,
$ git clone https://github.com/BenedictHW/project-isidore.git /home/$USER/quicklisp/local-projects/
- Within Emacs, start a Common Lisp IDE (SLY) REPL buffer with
M-x sly
. Depending on the current working directory,M-x sly-mrepl-set-directory
to Project Isidore root directory may be needed. Here are some Non-Emacs Common Lisp IDE options. Or you may use the REPL inside your shell, as outlined in the Quicklisp installation steps. - Load Project Isidore & start local development server.
CL-USER> (ql:quickload "project-isidore/test") CL-USER> (asdf:test-system "project-isidore") ;; Switch to package namespace. CL-USER> (in-package :project-isidore) ;; Starts web server at http://localhost:8080. PROJECT-ISIDORE> (initialize-application) PROJECT-ISIDORE> (terminate-application)
- To build a standalone executable binary locally,
$ sbcl --load /home/$USER/quicklisp/local-projects/project-isidore/make.lisp # Run the executable. $ /home/$USER/quicklisp/local-projects/project-isidore/bin/ProjectIsidore
Or download pre-built binaries from the project release page.
- To build a docker image first create a Dockerfile at the repository root.
See .github/workflows/CICD.yml for a working Dockerfile.
$ sudo dockerd # After creating said Dockerfile. $ docker build -t project-isidore-image /home/$USER/quicklisp/local-projects/project-isidore/ $ docker run -dp 8080:8080 project-isidore-image $ docker stop $(docker ps -a -q) $ docker system prune $ sudo pkill -9 dockerd
Or download a tagged docker container image from the project packages page.
Please visit https://www.bhw.name/assets/blog/project-isidore-doc.html for online documentation.