diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 00000000..ef2bfb79
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,28 @@
+name: Test
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Hugo
+ uses: peaceiris/actions-hugo@v3
+ with:
+ # same as netlify.toml
+ hugo-version: '0.148.2'
+ extended: true
+ - name: Build
+ run: hugo --gc --minify --buildFuture
+ - name: Install xmllint
+ run: sudo apt-get install -y libxml2-utils
+ - name: Validate RSS feed
+ run: xmllint --noout public/index.xml
diff --git a/assets/sass/main.scss b/assets/sass/main.scss
index dcbb8d85..19615187 100644
--- a/assets/sass/main.scss
+++ b/assets/sass/main.scss
@@ -441,4 +441,35 @@ div[data-netlify-site-id] {
/* Netlify Collaborate Drawer */
display: none;
pointer-events: none;
+}
+
+/* RSS Feed Link */
+.rss-feed-link {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ font-size: 14px;
+ font-weight: 600;
+ color: $brand_mint;
+ text-decoration: none;
+ transition: color 150ms;
+
+ &:hover {
+ color: lighten($brand_mint, 10%);
+ text-decoration: none;
+ }
+
+ .rss-icon {
+ display: inline-block;
+ flex-shrink: 0;
+ width: 14px;
+ height: 14px;
+ background-color: currentColor;
+ -webkit-mask-image: url('/images/rss-icon.svg');
+ mask-image: url('/images/rss-icon.svg');
+ -webkit-mask-size: contain;
+ mask-size: contain;
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ }
}
\ No newline at end of file
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 00000000..c430ad91
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,18 @@
+
{{ i18n "subscribe_rss" . | safeHTML }}
{{ end }}