diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 0000000..9f6d775
--- /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 -D -F --gc --minify -d public
+ - 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 74fe057..202fee8 100644
--- a/assets/sass/main.scss
+++ b/assets/sass/main.scss
@@ -284,3 +284,42 @@ a code {
color: #e3116c;
}
+/* RSS Feed Link */
+.rss-feed-link {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ font-size: 14px;
+ font-weight: 600;
+ color: var(--link-color-on-white-bg);
+ text-decoration: none;
+ transition: color 150ms;
+
+ &:hover {
+ color: var(--teal-color);
+ text-decoration: none;
+ }
+
+ &--dark {
+ color: var(--teal-color);
+
+ &:hover {
+ color: var(--aquamarine-color);
+ }
+ }
+
+ .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;
+ }
+}
+
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..c430ad9
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,18 @@
+
{{ i18n "subscribe_rss" . | safeHTML }}
{{ end }}