;;; -*- mode: lisp; coding: utf-8; -*- ;;; Generate the index.html file (ql:quickload :dev.metalisp.sbt) (defpackage :website (:use :cl #:ml-sbt) (:import-from #:ml-sbt/section #:with-section #:with-section-row #:with-section-col #:with-title-bar) (:import-from #:ml-sbt/navbar #:with-navbar) (:import-from #:ml-sbt/list-group #:with-list-group) (:import-from #:ml-sbt/card #:with-card*) (:import-from #:ml-sbt/btn #:btn)) (in-package :website) (setf ml-sbt/navbar:*brand-name* "metalisp") (with-open-file (ofile #P"index.html" :direction :output :if-exists :supersede) (let ((html (with-page (:title "metalisp.dev projects") (body-header nil "Crafting Software with the Power of Lisp and Scheme" (with-navbar nil nil "Home" "/")) (body-main nil (with-section (with-title-bar "About metalisp") (:p "Hi, I'm Marcus, and metalisp.dev is where I share my passion for software development in Common Lisp, Emacs Lisp, and Guile Scheme. This site features a variety of projects that demonstrate the unique capabilities of these languages.")) (with-section (with-title-bar "Active Projects") (with-section-row (with-card* :card-header "ml-sbt" :card-items '("Library of Common Lisp Macros to generate HTML using Bootstrap CSS." "In Active Development") :card-body (btn (:url "https://code.metalisp.dev/marcuskammer/dev.metalisp.sbt") (t9n "view-details"))) (with-card* :card-header "ml-survey" :card-items '("Create questionnaires and analyze the results." "In Active Development") :card-body (btn (:url "https://code.metalisp.dev/marcuskammer/dev.metalisp.survey") (t9n "view-details"))) (with-card* :card-header "ml-qmetrics" :card-items '("Calculation engine for questionnaires." "In Active Development") :card-body (btn (:url "https://code.metalisp.dev/marcuskammer/dev.metalisp.qmetrics") (t9n "view-details"))) (with-card* :card-header "ml-activitystreams" :card-items '("ActivityStreams 2 library" "In Active Development") :card-body (btn (:url "https://code.metalisp.dev/marcuskammer/dev.metalisp.activitystreams") (t9n "view-details"))) (with-card* :card-header "emacs dot files" :card-items '("Personal emacs dot files." "In Active Development") :card-body (btn (:url "https://code.metalisp.dev/marcuskammer/emacs.d") (t9n "view-details"))))) (with-section (with-title-bar "Contact") (:a :rel "me" :href "https://fosstodon.org/@metalisp" :class "hidden" "Mastodon")))))) (princ html ofile)))