diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
new file mode 100644
index 0000000..d3aaef6
--- /dev/null
+++ b/.github/workflows/publish.yml
@@ -0,0 +1,22 @@
+name: Publish to GitHub Pages
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ publish:
+ runs-on: self-hosted
+ steps:
+ - name: Check out
+ uses: actions/checkout@v4
+
+ - name: Build the site
+ run: ./utils/build.sh
+
+ - name: Deploy
+ uses: JamesIves/github-pages-deploy-action@v4
+ with:
+ branch: gh-pages
+ folder: docs
diff --git a/docs/schedule.html b/docs/schedule.html
deleted file mode 100644
index 2482087..0000000
--- a/docs/schedule.html
+++ /dev/null
@@ -1,570 +0,0 @@
-
-
-
-
-
-
-Seminar Schedule
-
-
-
-
-
-
-
Seminar Schedule
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Date |
-Time |
-Week |
-Location |
-Speaker |
-Note |
-
-
-
-01/21/25 |
- |
-1 |
-SHH 108 |
-Yuwen |
-Lecture |
-
-
-
-01/23/25 |
- |
-1 |
-SHH 108 |
-Yuwen |
-Lecture |
-
-
-
-01/28/25 |
- |
-2 |
-SHH 108 |
-Yuwen |
-Lecture |
-
-
-
-01/30/25 |
- |
-2 |
-SHH 108 |
-Yuwen |
-Lecture |
-
-
-
-02/04/25 |
- |
-3 |
-SHH 108 |
- |
-Lecture |
-
-
-
-02/06/25 |
- |
-3 |
-SHH 108 |
- |
-Lecture |
-
-
-
-02/11/25 |
-2:00-2:25pm |
-4 |
-SHH 108 |
-Jack |
-Topic Presentation |
-
-
-
- |
-2:25-3:15pm |
- |
- |
-Yuwen |
-Lecture |
-
-
-
-02/13/25 |
-2:00-2:25pm |
-4 |
-SHH 108 |
-Leon |
-Topic Presentation |
-
-
-
- |
-2:25-2:50pm |
- |
- |
-Sebastian |
- |
-
-
-
- |
-2:50-3:15pm |
- |
- |
-Alexa |
- |
-
-
-
-02/18/25 |
-2:00-2:25pm |
-5 |
-SHH 108 |
-Julia |
-Topic Presentation |
-
-
-
- |
-2:25-2:50pm |
- |
- |
-Olivia |
- |
-
-
-
- |
-2:50-3:15pm |
- |
- |
-Emmanuel |
- |
-
-
-
-02/20/25 |
-2:00-2:25pm |
-5 |
-SHH 108 |
-Jaden |
-Topic Presentation |
-
-
-
- |
-2:25-2:50pm |
- |
- |
-Rahul |
- |
-
-
-
- |
-2:50-3:15pm |
- |
- |
-Josh |
- |
-
-
-
-02/25/25 |
-2:00-2:25pm |
-6 |
-SHH 108 |
-Stephanie |
-Topic Presentation |
-
-
-
- |
-2:25-3:15pm |
- |
- |
-Yuwen |
-Lecture |
-
-
-
-02/27/25 |
- |
-6 |
-SHH 108 |
-Ying |
-Guest Lecture |
-
-
-
-03/04/25 |
- |
-7 |
-SHH 108 |
- |
- |
-
-
-
-03/06/25 |
- |
-7 |
-SHH 108 |
-HaiYing |
-Guest Lecture |
-
-
-
-03/11/25 |
- |
-8 |
-SHH 108 |
- |
- |
-
-
-
-03/13/25 |
- |
-8 |
-SHH 108 |
- |
- |
-
-
-
-03/18/25 |
- |
-9 |
-SHH 108 |
- |
- |
-
-
-
-03/20/25 |
- |
-9 |
-SHH 108 |
- |
- |
-
-
-
-03/25/25 |
- |
-10 |
-SHH 108 |
- |
- |
-
-
-
-03/27/25 |
- |
-10 |
-SHH 108 |
- |
- |
-
-
-
-04/01/25 |
- |
-11 |
-SHH 108 |
- |
- |
-
-
-
-04/03/25 |
- |
-11 |
-SHH 108 |
- |
- |
-
-
-
-04/08/25 |
- |
-12 |
-SHH 108 |
- |
- |
-
-
-
-04/10/25 |
- |
-12 |
-SHH 108 |
- |
- |
-
-
-
-04/15/25 |
- |
-13 |
-SHH 108 |
- |
- |
-
-
-
-04/17/25 |
- |
-13 |
-SHH 108 |
- |
- |
-
-
-
-04/22/25 |
- |
-14 |
-SHH 108 |
- |
- |
-
-
-
-04/24/25 |
- |
-14 |
-SHH 108 |
- |
- |
-
-
-
-04/29/25 |
- |
-15 |
-SHH 108 |
- |
- |
-
-
-
-05/01/25 |
- |
-15 |
-SHH 108 |
- |
- |
-
-
-
-
-
-
diff --git a/utils/build-site.el b/utils/build-site.el
new file mode 100644
index 0000000..feaa3d7
--- /dev/null
+++ b/utils/build-site.el
@@ -0,0 +1,45 @@
+;; Set the package installation directory so that packages aren't stored in the
+;; ~/.emacs.d/elpa path.
+(require 'package)
+(setq package-user-dir (expand-file-name "./.packages"))
+(setq package-archives '(("melpa" . "https://melpa.org/packages/")
+ ("elpa" . "https://elpa.gnu.org/packages/")))
+
+;; Initialize the package system
+(package-initialize)
+(unless package-archive-contents
+ (package-refresh-contents))
+
+;; Install dependencies
+(package-install 'htmlize)
+
+;; Load the publishing system
+(require 'ox-publish)
+
+;; Customize the HTML output
+(setq org-html-validation-link nil ;; Don't show validation link
+ org-html-head-include-scripts nil ;; Use our own scripts
+ org-html-head-include-default-style nil ;; Use our own styles
+ org-export-with-tags nil) ;; Don't show tags in export
+
+;; Define the publishing project
+(setq org-publish-project-alist
+ (list
+ (list "org-site:main"
+ :recursive nil
+ :base-directory "."
+ :base-extension "org"
+ :exclude "README.org"
+ :publishing-function 'org-html-publish-to-html
+ :publishing-directory "./docs"
+ ;; :select-tags '("export")
+ :with-author nil ;; Don't include author name
+ :with-creator nil ;; Include Emacs and Org versions in footer
+ :with-toc nil ;; Include a table of contents
+ :section-numbers nil ;; Don't include section numbers
+ :time-stamp-file nil))) ;; Don't include time stamp in file
+
+;; Generate the site output
+(org-publish-all t)
+
+(message "Build complete!")
diff --git a/utils/build.sh b/utils/build.sh
new file mode 100755
index 0000000..a4d9a9f
--- /dev/null
+++ b/utils/build.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+emacs -Q --script utils/build-site.el