diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml
index ce5ce2ca..3ebb1551 100644
--- a/.github/workflows/jekyll.yml
+++ b/.github/workflows/jekyll.yml
@@ -20,19 +20,6 @@ jobs:
- name: Run tests
run: ./run-tests.sh || exit 1
- internal-links:
- name: "Absolute Internal Links"
- needs: build
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - uses: ./.github/workflows/site-workflow
-
- - name: Check for internal absolute links
- run: bash -c "! grep -REi 'https?://(www.)?opentabletdriver.net' site/_site || exit 1"
-
html-validation:
name: "Validate HTML"
needs: build
diff --git a/site/_layouts/default.html b/site/_layouts/default.html
index 4c8aaf0b..1372f687 100644
--- a/site/_layouts/default.html
+++ b/site/_layouts/default.html
@@ -9,6 +9,7 @@
{{ site.title }}
{%- endif -%}
{% include styles.html %}
+
diff --git a/site/sitemap.xml b/site/sitemap.xml
new file mode 100644
index 00000000..f555811c
--- /dev/null
+++ b/site/sitemap.xml
@@ -0,0 +1,25 @@
+---
+layout:
+---
+
+
+
+ {%- for page in site.pages -%}
+ {%- if page.url contains '.xml' or page.url contains 'assets' %}{%- else %}
+
+ {{ site.url }}{{ page.url }}
+
+ {%- endif -%}
+ {% endfor %}
+ {%- for page in site.sections -%}
+ {%- if page.layout == "redirect" -%}{%- continue -%}{%- endif %}
+
+ {{ site.url }}{{ page.url | replace: 'index.html', '' }}
+
+ {%- endfor -%}
+ {%- for page in site.wiki %}
+
+ {{ site.url }}{{ page.url | replace: 'index.html', '' }}
+
+ {%- endfor %}
+
diff --git a/tests/check-for-internal-absolute-links/check-for-internal-absolute-links.sh b/tests/check-for-internal-absolute-links/check-for-internal-absolute-links.sh
new file mode 100755
index 00000000..ec15088b
--- /dev/null
+++ b/tests/check-for-internal-absolute-links/check-for-internal-absolute-links.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# usage:
+# ./$0 "jekyll root" "html root"
+#
+# for use in CI to ensure absolute links aren't being written to html files
+#
+set -e # exit on any error
+
+if [[ -z "$1" ]]; then
+ echo "Usage: $0 HTML_ROOT"
+ exit 127
+fi
+
+HTML_ROOT="$1"
+
+! grep -REi 'https?://(www.)?opentabletdriver.net' \
+ --exclude=sitemap.xml \
+ "${HTML_ROOT}" \
+ | grep -vE 'canonical'
+
+rv="$?"
+
+if [ "$rv" -eq 0 ]; then
+ echo "OK"
+else
+ echo "FAIL"
+fi