diff --git a/dist/blog/index.html b/dist/blog/index.html
index 881c8f8..0cda6b0 100644
--- a/dist/blog/index.html
+++ b/dist/blog/index.html
@@ -61,6 +61,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code
diff --git a/dist/index.html b/dist/index.html
index 67e26dd..c32bd80 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -709,6 +709,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code
diff --git a/dist/presentations/index.html b/dist/presentations/index.html
index d79f735..e65de7b 100644
--- a/dist/presentations/index.html
+++ b/dist/presentations/index.html
@@ -123,6 +123,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code
diff --git a/dist/projects/index.html b/dist/projects/index.html
index c10931a..94d3c1c 100644
--- a/dist/projects/index.html
+++ b/dist/projects/index.html
@@ -171,6 +171,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code
diff --git a/dist/publications/index.html b/dist/publications/index.html
index 174fa32..97ca580 100644
--- a/dist/publications/index.html
+++ b/dist/publications/index.html
@@ -457,6 +457,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code
diff --git a/sync.sh b/sync.sh
index 66d6ab4..5f690ae 100644
--- a/sync.sh
+++ b/sync.sh
@@ -1,4 +1,12 @@
+#!/bin/bash
+
+REMOTE_HOST=hetzner
+
python parser/md.py
python generate.py
-rsync -avP --delete ./dist/ hetzner:~/homepage/dist
-rsync -avP ./docker-compose.yml hetzner:~/homepage/
\ No newline at end of file
+rsync -avP --delete ./dist/ ${REMOTE_HOST}:/root/homepage/dist
+rsync -avP ./docker-compose.yml ${REMOTE_HOST}:/root/homepage/
+
+if [ "$1" = "--restart" ]; then
+ ssh ${REMOTE_HOST} "cd /root/homepage && docker-compose down && docker-compose up -d"
+fi
diff --git a/templates/base.html b/templates/base.html
index fb80af9..1e1aa72 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -50,6 +50,8 @@
Copyright © 2025. Designed and implemented by Yan Lin.
+ |
+ Source Code