diff --git a/assets/icons/bitcoin.svg b/assets/icons/bitcoin.svg new file mode 100644 index 0000000..d725844 --- /dev/null +++ b/assets/icons/bitcoin.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/chat.svg b/assets/icons/chat.svg new file mode 100644 index 0000000..7610c97 --- /dev/null +++ b/assets/icons/chat.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/key.svg b/assets/icons/key.svg new file mode 100644 index 0000000..9cfbf9e --- /dev/null +++ b/assets/icons/key.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/mail.svg b/assets/icons/mail.svg new file mode 100644 index 0000000..e694124 --- /dev/null +++ b/assets/icons/mail.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/nostr.svg b/assets/icons/nostr.svg new file mode 100644 index 0000000..083cff9 --- /dev/null +++ b/assets/icons/nostr.svg @@ -0,0 +1,4 @@ + + + + diff --git a/internal/handlers/about.go b/internal/handlers/about.go new file mode 100644 index 0000000..d0d9a0f --- /dev/null +++ b/internal/handlers/about.go @@ -0,0 +1,34 @@ +package handlers + +type About struct { + Id string + Value string + Url string + Icon string +} + +var about = []About{ + { + Id: "PGP", + Url: "/static/pgp.txt", + Icon: "key", + }, + { + Id: "Matrix", + Value: "@tijl:tijl.dev", + Url: "https://matrix.to/#/@tijl:tijl.dev", + Icon: "chat", + }, + { + Id: "Bitcoin", + Value: "bc1q4gp5yvskr4qk52ysztzanr696m3wvak52py4sq", + Url: "bitcoin:bc1q4gp5yvskr4qk52ysztzanr696m3wvak52py4sq", + Icon: "bitcoin", + }, + { + Id: "Mail", + Value: "contact@tijl.dev", + Url: "mailto:contact@tijl.dev", + Icon: "mail", + }, +} diff --git a/internal/handlers/routes.go b/internal/handlers/routes.go index e1d4cca..4ac4964 100644 --- a/internal/handlers/routes.go +++ b/internal/handlers/routes.go @@ -36,6 +36,7 @@ func routes(app *fiber.App) { app.Get("/about", func(c *fiber.Ctx) error { data := *web.Common(c) data["Title"] = i18n.Translate(c, "about") + data["About"] = about return c.Render("about", data, "layouts/base") }) app.Get("/services", servicesHandler) diff --git a/internal/service/main.go b/internal/service/main.go index edf4920..42ab71b 100644 --- a/internal/service/main.go +++ b/internal/service/main.go @@ -3,6 +3,7 @@ package service import ( "context" "fmt" + "html/template" "math" "net/http" "time" @@ -65,6 +66,12 @@ func Listen() { engine.AddFunc("formatdate", func(t time.Time) string { return t.Format("2 Jan 2006") }) + engine.AddFunc("safe", func(s string) template.HTML { + return template.HTML(s) + }) + engine.AddFunc("safeurl", func(s string) template.URL { + return template.URL(s) + }) // Init fiber app := fiber.New(fiber.Config{ diff --git a/locales/en.json b/locales/en.json index ac81b6d..195522a 100644 --- a/locales/en.json +++ b/locales/en.json @@ -13,5 +13,6 @@ "page_not_found": "Page not found", "logged_in": "You are now logged in!", "services": "Services", - "error_long": "Something went wrong" + "error_long": "Something went wrong", + "copy": "Copy" } diff --git a/locales/nl.json b/locales/nl.json index c331f1c..a9c2550 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -13,5 +13,6 @@ "page_not_found": "Pagina niet gevonden", "logged_in": "Je bent nu ingelogd!", "services": "Services", - "error_long": "Er ging iets fout" + "error_long": "Er ging iets fout", + "copy": "Copy" } diff --git a/main b/main new file mode 100755 index 0000000..67e4ac7 Binary files /dev/null and b/main differ diff --git a/web/lib/main.css b/web/lib/main.css index 09c0bad..52722fc 100644 --- a/web/lib/main.css +++ b/web/lib/main.css @@ -3,6 +3,14 @@ @import "tailwindcss/utilities"; @layer components { + .htmx-indicator { + display: none; + } + + .htmx-request .htmx-indicator { + display: inline-block; + } + .btn:not(.btn-ghost) { @apply border-base-300 border-2; } diff --git a/web/static/assets/services.js b/web/static/assets/services.js deleted file mode 100644 index 1ac74b4..0000000 --- a/web/static/assets/services.js +++ /dev/null @@ -1 +0,0 @@ -console.log("hi") diff --git a/web/static/pgp.txt b/web/static/pgp.txt new file mode 100644 index 0000000..05dba65 --- /dev/null +++ b/web/static/pgp.txt @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=vRQX +-----END PGP PUBLIC KEY BLOCK----- diff --git a/web/static/ssh.txt b/web/static/ssh.txt new file mode 100644 index 0000000..771bb74 --- /dev/null +++ b/web/static/ssh.txt @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDO15fjqrevkUhy73i4G79WerHyOR3P3tjQYgmDpooJ4pDsibhU/334ncCmGdWvjVTGf3J2oFy0ku90bCKgEVqC8N0a7loGOiCNn7mDYw4QUWBRKCMqFVwpwFQKZzkEg2dChdqZANH5uhd1+X4X2ZsbhH2eEtUTL9Q65Wk1is3jWEO6Sk/UvqM7PLk7qB71sZJlvSSbnl6ldm3oPpmKFz8Y4YGRXe1SyKenZkUAyMVe4EXEwMOuLXYucNWcamdQ/iiMvH9QHpulzCFWbgYCm8aqyArcAo78Ub0c9ucpJog7Ut2LDAsGgjEc0C02Mz85bj6Ukt0ecS0AxAnNWljrJn/Zjytwy2O/XorNWjFkl9c4SWZx0moeccgEQypnskHrdyyq4v2NyawYaLc16BT7fRkL3cbrVQehG17SzSoyTCryCv7oDnXiM8oVndJltmGS0v3DMzMf2wOrvCMRa96Eo61m/6r6W52wd+fZXfbIGs8SkIxOkDgEQ/UF8IRjv/DVkuXvqzHpz5wCfRMoRHyItKowvzTMTrGTvsIzifQKWtQTMwNQqkcRGc6Ugr9hT7q5LNzyjhh9j/CgTc/0JPo/vMjCB4RU2JH8tj5EMIcnAfYbHgtBMZ+T//sVuJtqJebk82b9exlYy3fqmDlw7psylxw029oYnRmNxlQcfENAD5EJEQ== tijl@tijl-desktop diff --git a/web/views/about.html b/web/views/about.html index e32d589..3f4e68b 100644 --- a/web/views/about.html +++ b/web/views/about.html @@ -1,63 +1,36 @@ -
- HELLO??? -
Bitcoin Paynym - PM8TJh8YdsX67AWUFoHjEQUJ5amsBbWq1XqcygbVCPkEnwXw8b61z4JDFTLUaPKcnLwdwE9353f1YaAHgQVtXs8ZZ1SS3GqdsRvduYEUwB385BS7KcfD -
-
Bitcoin bc1q4gp5yvskr4qk52ysztzanr696m3wvak52py4sq
-
Email contact@tijl.dev
-
Matrix tijl@tijl.dev
-
PGP
-----BEGIN PGP PUBLIC KEY BLOCK----- +
- mQINBGXthmQBEADpzVYTH0+3kKwa5ZCAsW6cRpsC7HY7TwRjHg1quW1T6NpyPgrh - 2WtOXprG86A2k5IK/McnmqlC1cgDkLRq98NP0LSX0OhrWkJXteBcFjrV5N1D8PZM - tAkvhuqE3bDnlEcbKfiNTYYgMXak8EhAGuzmKnBkysT99SJNbU9gAamSNQIyyg3a - 5B64wooEqY/YL91YCNPBFpDo/+2sOR5l/KdpbOE/KqOYn/4y3X/vyB723zIuUmzm - uiu9bWJhjtwiaS06G23bWDC/h8VEepKogT4So2iRPNlGO0YPnfDGV+slwoeaTuFn - 3VzB1c0MhZToGNCZczpkz7+iey0WBtGmVCt+YcMkeUu296C4jUIEaQyk+hA1Og6H - T4wvLU0eNnglu/Nsm80mKyyzL/Je8qw5yrI0xAHTqzwZ8SibOXWKAfqlJeChayjo - eby1038If7ubwBXudwvnDwXkr/HSb3YbBOPrcgx2QNkxP1DE0hQLSbi4eOZxd0YH - zIXMWuFPy84W8rFDArDVrUHIJXQDY65v7MoH0x9ewytlzmzC7aH26TpkF48mnii2 - wvNQl9AE/e6ijNAv0zZOlq79WcW6kqUUjSkmnBajrKHunOjWvhydxsfhNTtYQcnU - uO6k8z9C78iLCufEx00XlkvGqkM1Qal17whImdYUwjQiVLyQCg9xjbM84wARAQAB - tCFUaWpsIFRpbGxlbWFucyA8Y29udGFjdEB0aWpsLmRldj6JAlEEEwEIADsWIQTG - AhDG5zO6tylGkh3a4kv81yLwUwUCZe2GZAIbAwULCQgHAgIiAgYVCgkICwIEFgID - AQIeBwIXgAAKCRDa4kv81yLwU68CD/wNflpTh7tW3pK4tE5sMw+xM8FSOscUWTdq - qsG0oRjnMDvKkgu9UR37ZCN4dglbhPWuXIuKvVoNrXXNIDw00l7oZC9Pl/nfAw/0 - N8wr5pLWXUZv0DcWY0Ye2t8UFIdwwdHFZYRLfJ7FRVdBRc7L+ZajbNmXQVhF6kOy - 1nfZY/OPPdBH0kdaWaFOw1bMPKrHv++wHoXAb6IHdpPZsOT7U1DgRryMfSmvdFJ7 - grOlfqrdoS3V70udPSTDCe1H4Mgysh7hLpCKY20yk2xZIzPmRtnr6Tho0cyZpruP - 4/9qYedae74zNAGjv7edRMhrHRhFrWAV0Ajh8uKTdnq7SXB43pbHjNcfPBDvMexM - vwE1aTe3hIrCEmvot4hS3fYKVud0sMFjtGilGHB4hLLdt7TTsFe8JpyU4SK1vl55 - Y8rwBwkK2q/mtbNHwcU+bhqDAFJCuMmd6XZmk4qDVCN4I03Vfh57gEjEJ2NG8Dtn - 8I1O8Wb8OEwVteC5pBOl8wkiJCXYHrhV2wAzS+kZ+LJRUqSiJPZlSZuGAM2kzzsN - 5UpIYDVdXh+6QbFxKprSut2BalnSAXTQ02YIT5rucaFUsCVUQF2iJygbR1ZKYukJ - 3BzIKVSWkBc1Q2EBhJqOaMAAGMQ3UDXKcqeNoRF8x9ZHyb0Rv+I1ZfkPrr3A8oeq - Y7CB88vJwrkCDQRl7YZkARAA3xbB1UrflgKIHg+QH+/24+rHPCwqYCM5cQwhM6gz - cpD4U2Bm6pqEYj07p/QkbE1mEZu0Kv36rhS/loAYg5g0YflCUIJQyMIqmkFblUK/ - /2/Yqy5WZXGeaXpdSH7EHky0TieDprwzzgzdQEpG06rYEtkh6YmpZgN3FfpWfeRM - xSIcV2aiGrzOLyXEU3CDDM1L+q+b2O/tYf4PeO2VVSEJwkR680ucLGBKexUllua1 - Gx8OS3iIZNVzr3NfC0nxYaLxKFnzTMr/hzD2wd/HMlQyLyqQcBT8ew//ZHhyTqo7 - tl7a0cP7YmaOXgD3XBVIo4gpmDIRqbMavUgs/ik/UYmAr/FiL7Nr73isRTv3bNUD - ll8+oNT4Vx4L7JzosoiwPEk44hFSPmxfDnNY5VnrQpg7KIvfYTwQtrELIAEwfWPo - DQJN1n21nAssvfcnhaOmGJvmQSc70Y0daLSQPLAg7CnYzTLEt72X03C0OcuF/uqq - 6e+CEqJt5kElm8HdwsQ1LsixCRiI4TisFXbklQJohK3kb70pyvV5ecGrAVhRufOL - 8+rAyy9sFTxi81rGx9z0BMnkTA62MWnw240CcrtNddoUYvr8oqWN3zQ/B5Y7652f - 6/Udn0u4YMFfrOdfnZyrPCUd951oG/nj/IdI4X6jIPp+LxGCbUFLE54fJsjZcDYa - 9jsAEQEAAYkCNgQYAQgAIBYhBMYCEMbnM7q3KUaSHdriS/zXIvBTBQJl7YZkAhsM - AAoJENriS/zXIvBTKWIQAJyibja4jqwGNmt+yjHQROzZLQQT7Bkr8VnwqbrhCn0c - WEjKb+dJpoYFU734S/zRD82RNm3Eay7SEHT3/Ls4FkvR1EBDaT3e95eX9NjDuGGr - ARz2J8IvxjEEtfq21hbM5OTAWNxJRsZ9Gqp7RJXwN6AqSwEk2wAzDAWNz2kbVuHi - fUhY53F/eP4qvJcy9l9iRGeIJcyhq8tt9N0gh9k0ybKAmpDv1YLYa2nTn+WhW3OK - oRTJgKCpIcMvmoVSr9uXnZDjuM+r1eAebq54D9YjbjQ4gOKJoNxQnx0l8EkwR90h - XFS/zhkQQjlGgdxNFdszdpehUh4DRhlOGWf58gWBdrq5RfJpKiCjxisoAmtIwEzb - H62IWN78wmYaOxBcPoRjSTgJmOS6UQqtSNX9IX9V+N3wmKW+zjEsp015lvAQfgdD - UYOWjzMACxdb5JtDJH5GdxC63lyaXHmcotzWhCJVV+Zuc1L6Ol/pYfDrcU3D1g2N - eSlTXpbmnjByzlSWJHjwEv1fTl5WWxZKLLZNu+laAIrLEcCqhMcJh3mq5U5MjkF6 - u3yyREtqwZK2Mmvgw0lXFR+ohXNe/WQqKptUZgmDv/idvKOUYP5AM9n5GtJ3I9OD - ty2562y/llSf6ZJv6cGlczI5yc2MXoj3AtDpHs/Sz/VKBioSpfcmoOD+AoslXoM9 - =vRQX - -----END PGP PUBLIC KEY BLOCK----- + {{range .About}} + + + + -
+ + + {{end}} +
+ + diff --git a/web/views/apps/uploader/index.html b/web/views/apps/uploader/index.html index c624b86..8f444bb 100644 --- a/web/views/apps/uploader/index.html +++ b/web/views/apps/uploader/index.html @@ -1,4 +1,4 @@ -
+
- +
diff --git a/web/views/donate.html b/web/views/donate.html index e69de29..73c7a55 100644 --- a/web/views/donate.html +++ b/web/views/donate.html @@ -0,0 +1,5 @@ +
Krita
+
Kdenlive
+
Immich
+
KDE Plasma
+
GNOME
diff --git a/web/views/layouts/base.html b/web/views/layouts/base.html index e7a4341..30b6d3a 100644 --- a/web/views/layouts/base.html +++ b/web/views/layouts/base.html @@ -19,6 +19,11 @@
{{embed}}
+ diff --git a/web/views/partials/menu.html b/web/views/partials/menu.html index 052a460..e122a2f 100644 --- a/web/views/partials/menu.html +++ b/web/views/partials/menu.html @@ -13,7 +13,7 @@