Compare commits

..

1 commit
main ... dev

Author SHA1 Message Date
CamZawacki
12fd3c04ca Added a basic homepage 2026-05-20 16:09:54 +01:00
113 changed files with 413 additions and 505 deletions

View file

@ -9,13 +9,13 @@ tmp_dir = "tmp"
delay = 1000 delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata", "uploads", "dbs", "public"] exclude_dir = ["assets", "tmp", "vendor", "testdata", "uploads", "dbs", "public"]
exclude_file = [] exclude_file = []
exclude_regex = ["_test.go"] exclude_regex = ["_test.go",".go~",".html~", ".gohtml~", ".#.*"]
exclude_unchanged = false exclude_unchanged = false
follow_symlink = false follow_symlink = false
full_bin = "" full_bin = ""
include_dir = [] include_dir = []
include_ext = ["go", "tpl", "tmpl", "html", "css"] include_ext = ["go", "tpl", "tmpl", "html", "css"]
include_file = [] include_file = ["static/css/tailwind.css"]
kill_delay = "0s" kill_delay = "0s"
log = "build-errors.log" log = "build-errors.log"
poll = false poll = false

View file

@ -6,8 +6,8 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
) )
// main creates a new admin user with the email passed in via the flag. // main creates a new admin user with the email passed in via the flag.

View file

@ -9,10 +9,10 @@ import (
"os" "os"
"os/signal" "os/signal"
"github.com/camzawacki/personal-site/pkg/handlers" "github.com/camzawacki/personal-site/internal/handlers"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/tasks" "github.com/camzawacki/personal-site/internal/tasks"
) )
func main() { func main() {

View file

@ -1,6 +1,6 @@
http: http:
hostname: "" hostname: ""
port: 8000 port: 8001
readTimeout: "5s" readTimeout: "5s"
writeTimeout: "10s" writeTimeout: "10s"
idleTimeout: "2m" idleTimeout: "2m"
@ -14,7 +14,7 @@ app:
name: "Pagoda" name: "Pagoda"
# We manually set this rather than using the HTTP settings in order to build absolute URLs for users # We manually set this rather than using the HTTP settings in order to build absolute URLs for users
# since it's likely your app's HTTP settings are not identical to what is exposed by your server. # since it's likely your app's HTTP settings are not identical to what is exposed by your server.
host: "http://localhost:8000" host: "http://localhost:8001"
environment: "local" environment: "local"
# Change this on any live environments. # Change this on any live environments.
encryptionKey: "?E(G+KbPeShVmYq3t6w9z$C&F)J@McQf" encryptionKey: "?E(G+KbPeShVmYq3t6w9z$C&F)J@McQf"

View file

@ -7,7 +7,7 @@ services:
- PAGODA_APP_ENVIRONMENT=production - PAGODA_APP_ENVIRONMENT=production
- PAGODA_APP_HOST=camzalewski.com - PAGODA_APP_HOST=camzalewski.com
- PAGODA_HTTP_HOSTNAME=0.0.0.0 - PAGODA_HTTP_HOSTNAME=0.0.0.0
- PAGODA_HTTP_PORT=8000 - PAGODA_HTTP_PORT=8001
- PAGODA_APP_ENCRYPTIONKEY=${ENCRYPTION_KEY} - PAGODA_APP_ENCRYPTIONKEY=${ENCRYPTION_KEY}
volumes: volumes:
- sqlite_data:/app/dbs - sqlite_data:/app/dbs

13
go.mod
View file

@ -3,7 +3,7 @@ module github.com/camzawacki/personal-site
go 1.24.6 go 1.24.6
require ( require (
entgo.io/ent v0.14.5 entgo.io/ent v0.14.6
github.com/PuerkitoBio/goquery v1.10.3 github.com/PuerkitoBio/goquery v1.10.3
github.com/go-playground/validator/v10 v10.29.0 github.com/go-playground/validator/v10 v10.29.0
github.com/golang-jwt/jwt/v5 v5.3.0 github.com/golang-jwt/jwt/v5 v5.3.0
@ -26,8 +26,12 @@ require (
github.com/andybalholm/cascadia v1.3.3 // indirect github.com/andybalholm/cascadia v1.3.3 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/bmatcuk/doublestar v1.3.4 // indirect github.com/bmatcuk/doublestar v1.3.4 // indirect
github.com/clipperhouse/displaywidth v0.6.2 // indirect
github.com/clipperhouse/stringish v0.1.1 // indirect
github.com/clipperhouse/uax29/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dolthub/maphash v0.1.0 // indirect github.com/dolthub/maphash v0.1.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.12 // indirect github.com/gabriel-vasile/mimetype v1.4.12 // indirect
github.com/gammazero/deque v1.2.0 // indirect github.com/gammazero/deque v1.2.0 // indirect
@ -39,16 +43,23 @@ require (
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/securecookie v1.1.2 // indirect
github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/hashicorp/hcl/v2 v2.24.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/labstack/gommon v0.4.2 // indirect github.com/labstack/gommon v0.4.2 // indirect
github.com/leodido/go-urn v1.4.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
github.com/olekukonko/errors v1.1.0 // indirect
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 // indirect
github.com/olekukonko/tablewriter v1.1.3 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect
github.com/spf13/cast v1.10.0 // indirect github.com/spf13/cast v1.10.0 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect github.com/spf13/pflag v1.0.10 // indirect
github.com/subosito/gotenv v1.6.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect

27
go.sum
View file

@ -2,6 +2,8 @@ ariga.io/atlas v0.38.0 h1:MwbtwVtDWJFq+ECyeTAz2ArvewDnpeiw/t/sgNdDsdo=
ariga.io/atlas v0.38.0/go.mod h1:D7XMK6ei3GvfDqvzk+2VId78j77LdqHrqPOWamn51/s= ariga.io/atlas v0.38.0/go.mod h1:D7XMK6ei3GvfDqvzk+2VId78j77LdqHrqPOWamn51/s=
entgo.io/ent v0.14.5 h1:Rj2WOYJtCkWyFo6a+5wB3EfBRP0rnx1fMk6gGA0UUe4= entgo.io/ent v0.14.5 h1:Rj2WOYJtCkWyFo6a+5wB3EfBRP0rnx1fMk6gGA0UUe4=
entgo.io/ent v0.14.5/go.mod h1:zTzLmWtPvGpmSwtkaayM2cm5m819NdM7z7tYPq3vN0U= entgo.io/ent v0.14.5/go.mod h1:zTzLmWtPvGpmSwtkaayM2cm5m819NdM7z7tYPq3vN0U=
entgo.io/ent v0.14.6 h1:/f2696BpwuWAEEG6PVGWflg6+Inrpq4pRWuNlWz/Skk=
entgo.io/ent v0.14.6/go.mod h1:z46QBUdGC+BATwsedbDuREfSS0oSCV+csdEYlL4p73s=
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo= github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
@ -14,10 +16,19 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0= github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0=
github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
github.com/clipperhouse/displaywidth v0.6.2 h1:ZDpTkFfpHOKte4RG5O/BOyf3ysnvFswpyYrV7z2uAKo=
github.com/clipperhouse/displaywidth v0.6.2/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o=
github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4=
github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dolthub/maphash v0.1.0 h1:bsQ7JsF4FkkWyrP3oCnFJgrCUAFbFf3kOl4L/QxPDyQ= github.com/dolthub/maphash v0.1.0 h1:bsQ7JsF4FkkWyrP3oCnFJgrCUAFbFf3kOl4L/QxPDyQ=
github.com/dolthub/maphash v0.1.0/go.mod h1:gkg4Ch4CdCDu5h6PMriVLawB7koZ+5ijb9puGMV50a4= github.com/dolthub/maphash v0.1.0/go.mod h1:gkg4Ch4CdCDu5h6PMriVLawB7koZ+5ijb9puGMV50a4=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
@ -57,6 +68,8 @@ github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzq
github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik=
github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE= github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE=
github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM= github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@ -74,6 +87,8 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs= github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs=
github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/maypok86/otter v1.2.4 h1:HhW1Pq6VdJkmWwcZZq19BlEQkHtI8xgsQzBVXJU0nfc= github.com/maypok86/otter v1.2.4 h1:HhW1Pq6VdJkmWwcZZq19BlEQkHtI8xgsQzBVXJU0nfc=
@ -82,18 +97,30 @@ github.com/mikestefanello/backlite v0.6.0 h1:kpQKxR5NGHWvtAZuR0AsEZo95g967FY9fnU
github.com/mikestefanello/backlite v0.6.0/go.mod h1:gx6UKLUQY5OVXQkIm3AzNkyPn9OzoKHKuwM4JGrY4tQ= github.com/mikestefanello/backlite v0.6.0/go.mod h1:gx6UKLUQY5OVXQkIm3AzNkyPn9OzoKHKuwM4JGrY4tQ=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 h1:jrYnow5+hy3WRDCBypUFvVKNSPPCdqgSXIE9eJDD8LM=
github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA=
github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM=
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4=
github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI=
github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=
github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU=

View file

@ -2,7 +2,7 @@ package form
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
) )
// Form represents a form that can be submitted and validated. // Form represents a form that can be submitted and validated.

View file

@ -4,8 +4,8 @@ import (
"testing" "testing"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View file

@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )

View file

@ -8,7 +8,7 @@ import (
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View file

@ -11,14 +11,14 @@ import (
"github.com/mikestefanello/backlite/ui" "github.com/mikestefanello/backlite/ui"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/ent/admin" "github.com/camzawacki/personal-site/ent/admin"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/middleware" "github.com/camzawacki/personal-site/internal/middleware"
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/pager" "github.com/camzawacki/personal-site/internal/pager"
"github.com/camzawacki/personal-site/pkg/redirect" "github.com/camzawacki/personal-site/internal/redirect"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Admin struct { type Admin struct {

View file

@ -9,17 +9,17 @@ import (
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/ent/user" "github.com/camzawacki/personal-site/ent/user"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/middleware" "github.com/camzawacki/personal-site/internal/middleware"
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/redirect" "github.com/camzawacki/personal-site/internal/redirect"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/emails" "github.com/camzawacki/personal-site/internal/ui/emails"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Auth struct { type Auth struct {

View file

@ -5,11 +5,11 @@ import (
"time" "time"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Cache struct { type Cache struct {

View file

@ -5,11 +5,11 @@ import (
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Contact struct { type Contact struct {

View file

@ -4,9 +4,9 @@ import (
"net/http" "net/http"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Error struct{} type Error struct{}

View file

@ -6,11 +6,11 @@ import (
"time" "time"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/models" "github.com/camzawacki/personal-site/internal/ui/models"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
"github.com/spf13/afero" "github.com/spf13/afero"
) )

View file

@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
) )
var handlers []Handler var handlers []Handler

View file

@ -4,11 +4,11 @@ import (
"fmt" "fmt"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/pager" "github.com/camzawacki/personal-site/internal/pager"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/models" "github.com/camzawacki/personal-site/internal/ui/models"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Pages struct{} type Pages struct{}

View file

@ -4,7 +4,7 @@ import (
"net/http" "net/http"
"testing" "testing"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -7,9 +7,9 @@ import (
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
echomw "github.com/labstack/echo/v4/middleware" echomw "github.com/labstack/echo/v4/middleware"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/middleware" "github.com/camzawacki/personal-site/internal/middleware"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
files "github.com/camzawacki/personal-site/public" files "github.com/camzawacki/personal-site/public"
) )

View file

@ -9,7 +9,7 @@ import (
"testing" "testing"
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/PuerkitoBio/goquery" "github.com/PuerkitoBio/goquery"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"

View file

@ -5,10 +5,10 @@ import (
"math/rand" "math/rand"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/ui/models" "github.com/camzawacki/personal-site/internal/ui/models"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
) )
type Search struct{} type Search struct{}

View file

@ -5,16 +5,16 @@ import (
"time" "time"
"github.com/mikestefanello/backlite" "github.com/mikestefanello/backlite"
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/pages" "github.com/camzawacki/personal-site/internal/ui/pages"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/tasks" "github.com/camzawacki/personal-site/internal/tasks"
) )
type Task struct { type Task struct {

View file

@ -4,7 +4,7 @@ import (
"net/http" "net/http"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
) )
// Request headers: https://htmx.org/docs/#request-headers // Request headers: https://htmx.org/docs/#request-headers

View file

@ -4,8 +4,8 @@ import (
"net/http" "net/http"
"testing" "testing"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"

View file

@ -4,7 +4,7 @@ import (
"log/slog" "log/slog"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
) )
// Set sets a logger in the context. // Set sets a logger in the context.

View file

@ -4,7 +4,7 @@ import (
"testing" "testing"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -6,11 +6,11 @@ import (
"strconv" "strconv"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )

View file

@ -7,8 +7,8 @@ import (
"testing" "testing"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"

View file

@ -4,7 +4,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -3,7 +3,7 @@ package middleware
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
) )
// Config stores the configuration in the request so it can be accessed by the ui. // Config stores the configuration in the request so it can be accessed by the ui.

View file

@ -4,8 +4,8 @@ import (
"testing" "testing"
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View file

@ -7,7 +7,7 @@ import (
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/ent/user" "github.com/camzawacki/personal-site/ent/user"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )

View file

@ -5,8 +5,8 @@ import (
"testing" "testing"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"

View file

@ -6,7 +6,7 @@ import (
"time" "time"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
) )
// SetLogger initializes a logger for the current request and stores it in the context. // SetLogger initializes a logger for the current request and stores it in the context.

View file

@ -7,8 +7,8 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
echomw "github.com/labstack/echo/v4/middleware" echomw "github.com/labstack/echo/v4/middleware"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"

View file

@ -6,8 +6,8 @@ import (
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
) )
var ( var (

View file

@ -4,7 +4,7 @@ import (
"github.com/gorilla/context" "github.com/gorilla/context"
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/session" "github.com/camzawacki/personal-site/internal/session"
) )
// Session sets the session storage in the request context // Session sets the session storage in the request context

View file

@ -4,8 +4,8 @@ import (
"testing" "testing"
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
"github.com/camzawacki/personal-site/pkg/session" "github.com/camzawacki/personal-site/internal/session"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View file

@ -3,8 +3,8 @@ package msg
import ( import (
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/session" "github.com/camzawacki/personal-site/internal/session"
) )
// Type is a message type. // Type is a message type.

View file

@ -3,7 +3,7 @@ package msg
import ( import (
"testing" "testing"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"

View file

@ -5,7 +5,7 @@ import (
"testing" "testing"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View file

@ -7,7 +7,7 @@ import (
"net/url" "net/url"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/htmx" "github.com/camzawacki/personal-site/internal/htmx"
) )
// Redirect is a helper to perform HTTP redirects. // Redirect is a helper to perform HTTP redirects.

View file

@ -6,8 +6,8 @@ import (
"testing" "testing"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/htmx" "github.com/camzawacki/personal-site/internal/htmx"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )

View file

@ -12,8 +12,8 @@ import (
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/ent/passwordtoken" "github.com/camzawacki/personal-site/ent/passwordtoken"
"github.com/camzawacki/personal-site/ent/user" "github.com/camzawacki/personal-site/ent/user"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
"github.com/camzawacki/personal-site/pkg/session" "github.com/camzawacki/personal-site/internal/session"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"

View file

@ -15,7 +15,7 @@ import (
"github.com/mikestefanello/backlite" "github.com/mikestefanello/backlite"
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/spf13/afero" "github.com/spf13/afero"
// Required by ent. // Required by ent.

View file

@ -5,7 +5,7 @@ import (
"errors" "errors"
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"maragu.dev/gomponents" "maragu.dev/gomponents"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"

View file

@ -6,7 +6,7 @@ import (
"github.com/camzawacki/personal-site/config" "github.com/camzawacki/personal-site/config"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/tests" "github.com/camzawacki/personal-site/internal/tests"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )

View file

@ -5,7 +5,7 @@ import (
"github.com/gorilla/sessions" "github.com/gorilla/sessions"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/context" "github.com/camzawacki/personal-site/internal/context"
) )
// ErrStoreNotFound indicates that the session store was not present in the context // ErrStoreNotFound indicates that the session store was not present in the context

View file

@ -5,10 +5,10 @@ import (
"time" "time"
"github.com/mikestefanello/backlite" "github.com/mikestefanello/backlite"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
) )
// ExampleTask is an example implementation of backlite.Task. // ExampleTask is an example implementation of backlite.Task.

View file

@ -1,7 +1,7 @@
package tasks package tasks
import ( import (
"github.com/camzawacki/personal-site/pkg/services" "github.com/camzawacki/personal-site/internal/services"
) )
// Register registers all task queues with the task client. // Register registers all task queues with the task client.

View file

@ -11,7 +11,7 @@ import (
"time" "time"
"github.com/camzawacki/personal-site/ent" "github.com/camzawacki/personal-site/ent"
"github.com/camzawacki/personal-site/pkg/session" "github.com/camzawacki/personal-site/internal/session"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"

View file

@ -4,7 +4,7 @@ import (
"bytes" "bytes"
"sync" "sync"
"github.com/camzawacki/personal-site/pkg/log" "github.com/camzawacki/personal-site/internal/log"
"maragu.dev/gomponents" "maragu.dev/gomponents"
) )

View file

@ -1,9 +1,9 @@
package components package components
import ( import (
"github.com/camzawacki/personal-site/pkg/msg" "github.com/camzawacki/personal-site/internal/msg"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
"github.com/camzawacki/personal-site/pkg/ui/icons" "github.com/camzawacki/personal-site/internal/ui/icons"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -1,8 +1,8 @@
package components package components
import ( import (
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,7 +3,7 @@ package components
import ( import (
"strings" "strings"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,7 +3,7 @@ package components
import ( import (
"fmt" "fmt"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,13 +3,32 @@ package components
import ( import (
"fmt" "fmt"
"github.com/camzawacki/personal-site/pkg/pager" "github.com/camzawacki/personal-site/internal/pager"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/components" . "maragu.dev/gomponents/components"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )
func NavLink(r *ui.Request, title, routeName string, disabled bool, routeParams ...any) Node {
href := r.Path(routeName, routeParams...)
var link Node
if disabled {
link = Span(
Class("text-xl text-base-content/40"),
Text(title),
)
} else {
link = A(
Class("text-xl hover:underline cursor-pointer"),
Href(href),
Text(title),
)
}
return link
}
func MenuLink(r *ui.Request, icon Node, title, routeName string, routeParams ...any) Node { func MenuLink(r *ui.Request, icon Node, title, routeName string, routeParams ...any) Node {
href := r.Path(routeName, routeParams...) href := r.Path(routeName, routeParams...)

View file

@ -2,8 +2,8 @@ package emails
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -6,9 +6,9 @@ import (
"entgo.io/ent/schema/field" "entgo.io/ent/schema/field"
"github.com/camzawacki/personal-site/ent/admin" "github.com/camzawacki/personal-site/ent/admin"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -4,9 +4,9 @@ import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/ent/admin" "github.com/camzawacki/personal-site/ent/admin"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,10 +3,10 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,10 +3,10 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,9 +3,9 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,10 +3,10 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,10 +3,10 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,10 +3,10 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,9 +3,9 @@ package forms
import ( import (
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -4,10 +4,10 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"github.com/camzawacki/personal-site/pkg/form" "github.com/camzawacki/personal-site/internal/form"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -3,7 +3,7 @@ package icons
import ( import (
"fmt" "fmt"
"github.com/camzawacki/personal-site/pkg/ui/cache" "github.com/camzawacki/personal-site/internal/ui/cache"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -1,8 +1,8 @@
package layouts package layouts
import ( import (
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -0,0 +1,42 @@
package layouts
import (
"github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents"
. "maragu.dev/gomponents/html"
)
func Primary(r *ui.Request, content Node) Node {
return Doctype(
HTML(
Lang("en"),
Data("theme", "light"),
Head(
Metatags(r),
CSS(),
JS(),
),
Body(
Nav(
Class("navbar bg-base-100 border-b border-gray-200 p-5 justify-center"),
Div(
Class("flex items-center"),
NavLink(r, "Cam Zalewaki", routenames.Home, false),
Span(Class("divider divider-horizontal")),
NavLink(r, "Writing", routenames.About, true),
Span(Class("divider divider-horizontal")),
NavLink(r, "Projects", routenames.About, true),
Span(Class("divider divider-horizontal")),
NavLink(r, "Misc", routenames.About, true),
Span(Class("divider divider-horizontal")),
NavLink(r, "About", routenames.About, true),
),
),
content,
HtmxListeners(r),
),
),
)
}

View file

@ -3,9 +3,9 @@ package models
import ( import (
"fmt" "fmt"
"github.com/camzawacki/personal-site/pkg/pager" "github.com/camzawacki/personal-site/internal/pager"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -2,10 +2,10 @@ package pages
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
"github.com/camzawacki/personal-site/pkg/ui/cache" "github.com/camzawacki/personal-site/internal/ui/cache"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -6,11 +6,11 @@ import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/ent/admin" "github.com/camzawacki/personal-site/ent/admin"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -2,9 +2,9 @@ package pages
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -2,9 +2,9 @@ package pages
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
) )
func UpdateCache(ctx echo.Context, form *forms.Cache) error { func UpdateCache(ctx echo.Context, form *forms.Cache) error {

View file

@ -2,10 +2,10 @@ package pages
import ( import (
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
. "github.com/camzawacki/personal-site/pkg/ui/components" . "github.com/camzawacki/personal-site/internal/ui/components"
"github.com/camzawacki/personal-site/pkg/ui/forms" "github.com/camzawacki/personal-site/internal/ui/forms"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

View file

@ -4,9 +4,9 @@ import (
"net/http" "net/http"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"github.com/camzawacki/personal-site/pkg/routenames" "github.com/camzawacki/personal-site/internal/routenames"
"github.com/camzawacki/personal-site/pkg/ui" "github.com/camzawacki/personal-site/internal/ui"
"github.com/camzawacki/personal-site/pkg/ui/layouts" "github.com/camzawacki/personal-site/internal/ui/layouts"
. "maragu.dev/gomponents" . "maragu.dev/gomponents"
. "maragu.dev/gomponents/html" . "maragu.dev/gomponents/html"
) )

Some files were not shown because too many files have changed in this diff Show more