Skip to content

BenedictHW/project-isidore

Repository files navigation

Project Isidore


https://github.com/BenedictHW/project-isidore/actions/workflows/CICD.yml/badge.svg?branch=master

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.

Development Quick Start

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)
  1. Clone the repository,
    $ git clone https://github.com/BenedictHW/project-isidore.git /home/$USER/quicklisp/local-projects/
        
  2. 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.
  3. 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)
        
  4. 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.

  5. 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.

https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg