diff --git a/index.lisp b/index.lisp new file mode 100644 index 0000000..f38979b --- /dev/null +++ b/index.lisp @@ -0,0 +1,73 @@ +;;; -*- 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)))