diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml
new file mode 100644
index 00000000..27a61fc9
--- /dev/null
+++ b/.github/workflows/gh-pages.yml
@@ -0,0 +1,28 @@
+name: GitHub Pages
+
+on:
+  push:
+    branches:
+      - master # Set a branch name to trigger deployment
+
+jobs:
+  deploy:
+    runs-on: ubuntu-18.04
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v2
+      - name: Create output directory
+        run: |
+          mkdir output
+      - name: Build HTML file
+        uses: docker://pandoc/latex:2.14.1
+        with:
+          args: >-
+            --standalone lkmpg.tex
+            --output=output/index.html
+      - name: Deploy to gh-pages branch
+        uses: peaceiris/actions-gh-pages@v3
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          publish_dir: ./output
+          publish_branch: gh-pages
diff --git a/.gitignore b/.gitignore
index 555e937a..7fc578ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,6 @@ _minted-lkmpg
 *.out
 lkmpg.pdf
 *.toc
+
+# Pandoc
+lkmpg.html
diff --git a/Makefile b/Makefile
index 4b68c2e8..307c8b91 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,9 @@
 all: lkmpg.tex
 	pdflatex -shell-escap lkmpg.tex
 
+html:
+	pandoc -s lkmpg.tex -o lkmpg.html
+
 clean:
-	rm -f *.dvi *.aux *.log *.ps *.pdf *.out lkmpg.bbl lkmpg.blg lkmpg.lof lkmpg.toc
+	rm -f *.dvi *.aux *.log *.ps *.pdf *.out lkmpg.bbl lkmpg.blg lkmpg.lof lkmpg.toc lkmpg.html
 	rm -rf _minted-lkmpg