diff options
| -rw-r--r-- | go.mod | 15 | ||||
| -rw-r--r-- | go.sum | 27 | ||||
| -rw-r--r-- | static/css/gruvbox-dark.css | 82 | ||||
| -rw-r--r-- | tmpl/404.html | 2 | ||||
| -rw-r--r-- | tmpl/base.html | 2 | ||||
| -rw-r--r-- | xesite/main.go | 9 |
6 files changed, 101 insertions, 36 deletions
@@ -10,7 +10,20 @@ require ( tailscale.com v1.48.1 ) -require go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect +require ( + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/prometheus/client_golang v1.15.1 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect + go4.org/netipx v0.0.0-20230728180743-ad4cb58a6516 // indirect + golang.org/x/crypto v0.11.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect +) require ( github.com/davecgh/go-spew v1.1.1 // indirect @@ -1,3 +1,7 @@ +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -8,8 +12,15 @@ github.com/dop251/goja v0.0.0-20211115154819-26ebff68a7d5/go.mod h1:R9ET47fwRVRP github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/evanw/esbuild v0.18.6 h1:lu5hNfVlPZRwyXEcFvSUOgYNyG2GQ6vqKaL8oW+0AJU= github.com/evanw/esbuild v0.18.6/go.mod h1:iINY06rn799hi48UqEnaQvVfZWe6W9bET78LbvN8VWk= +github.com/frankban/quicktest v1.14.5 h1:dfYrrRyLtiqT9GyKXgdh+k4inNeTvmGbuSgZ3lx3GhA= +github.com/frankban/quicktest v1.14.5/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -21,8 +32,18 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= 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/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -39,6 +60,7 @@ golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 h1:Di6/M8l0O2lCLc6VVRWhgCiApHV8MnQurBnFSHsQtNY= golang.org/x/exp v0.0.0-20230725093048-515e97ebf090/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= @@ -47,6 +69,11 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/static/css/gruvbox-dark.css b/static/css/gruvbox-dark.css index a902e5d..8ae8ec7 100644 --- a/static/css/gruvbox-dark.css +++ b/static/css/gruvbox-dark.css @@ -1,5 +1,5 @@ .gruvbox-dark { - background-color: #1d2021; + background-color: #1d2021; color: #f9f5d7 } @@ -9,7 +9,7 @@ .gruvbox-dark h4, .gruvbox-dark h5, .gruvbox-dark h6 { - color: #CDCD23 + color: #CDCD23 } .gruvbox-dark h1 a, @@ -153,8 +153,8 @@ } .gruvbox-dark a:visited { - color: #C1B7A9; - border-color: #a89984; + color: #C1B7A9; + border-color: #a89984; } .gruvbox-dark a:visited:hover { @@ -167,14 +167,16 @@ background-color: #f9f5d7; color: #1d2021; } - .gruvbox-dark h1, - .gruvbox-dark h2, - .gruvbox-dark h3, - .gruvbox-dark h4, - .gruvbox-dark h5, - .gruvbox-dark h6 { - color: #4F4F0D - } + + .gruvbox-dark h1, + .gruvbox-dark h2, + .gruvbox-dark h3, + .gruvbox-dark h4, + .gruvbox-dark h5, + .gruvbox-dark h6 { + color: #4F4F0D + } + .gruvbox-dark h1 a:hover, .gruvbox-dark h2 a:hover, .gruvbox-dark h3 a:hover, @@ -184,72 +186,88 @@ background-color: #d79921; color: #282828; } + .gruvbox-dark pre { background-color: #f9f5d7; padding: 0; border: none; } - .gruvbox-dark a { - color: #B80050; - border-color: #B80050; - } - .gruvbox-dark a:hover { - color: #f9f5d7; - background-color: #9E0045; - border-color: #9E0045; - } - .gruvbox-dark a:visited { - color: #53493C; - border-color: #53493C; - } - .gruvbox-dark a:visited:hover { - color: #fdf4c1; - background-color: #282828; - } + + .gruvbox-dark a { + color: #B80050; + border-color: #B80050; + } + + .gruvbox-dark a:hover { + color: #f9f5d7; + background-color: #9E0045; + border-color: #9E0045; + } + + .gruvbox-dark a:visited { + color: #53493C; + border-color: #53493C; + } + + .gruvbox-dark a:visited:hover { + color: #fdf4c1; + background-color: #282828; + } + .gruvbox-dark table { color: #1d2021; } + .gruvbox-dark .form-control, .gruvbox-dark .form-group label { color: #1d2021; border-color: #98971a } + .gruvbox-dark .form-group.form-textarea label:after { background-color: #3c3836; } + .gruvbox-dark .form-control:focus { border-color: #665c54; color: #665c54; } + .gruvbox-dark textarea.form-control { color: #282828; } + .gruvbox-dark .card .card-header { background-color: transparent; color: #282828; border-bottom: 1px solid #98971a } + .gruvbox-dark .btn.btn-ghost.btn-default:focus, .gruvbox-dark .btn.btn-ghost.btn-default:hover { z-index: 1; border-color: #3c3836; color: #3c3836; } + .gruvbox-dark .menu .menu-item { color: #282828; border-color: #98971a } + .gruvbox-dark .menu .menu-item.active, .gruvbox-dark .menu .menu-item:hover { color: #282828; border-color: #282828; } + .gruvbox-dark a:visited { - color: #4D4442; - border-color: #4D4442; + color: #4D4442; + border-color: #4D4442; } + .gruvbox-dark a:visited:hover { color: #3c3836; background-color: #bdae93; } -} +}
\ No newline at end of file diff --git a/tmpl/404.html b/tmpl/404.html index 9e2fa89..ef8dfd7 100644 --- a/tmpl/404.html +++ b/tmpl/404.html @@ -6,6 +6,6 @@ <h1 class="text-3xl mb-4">Not found</h1> <p class="text-lg mb-4">The page you're looking for (<code>{{.Page}}</code>) doesn't exist. Sorry about that. Please - consider <a class="text-blue-dark dark:text-blueDark-dark" href="https://github.com/Xe/site/issues/new">reporting + consider <a href="https://github.com/Xe/site/issues/new">reporting the issue</a> if you find this page in error.</p> {{end}}
\ No newline at end of file diff --git a/tmpl/base.html b/tmpl/base.html index 02e7eaf..5c803d8 100644 --- a/tmpl/base.html +++ b/tmpl/base.html @@ -82,7 +82,7 @@ la budza pu cusku lu <header> <nav class="flex flex-wrap items-center w-full py-4 md:py-0 px-4 text-lg text-fg-1 dark:text-fgDark-1 bg-bg-soft dark:bg-bgDark-soft"> - <div class="p-2 flex flex-wrap items-center flex-shrink-0 mr-6 hover:border-b-2"> + <div class="p-2 flex flex-wrap items-center flex-shrink-0 mr-6"> <a class="flex flex-row items-center" href="/"> <svg class="w-8 h-16" width="19in" height="32in" viewBox="0 0 1824 3071.9999" version="1.1" id="svg5"> diff --git a/xesite/main.go b/xesite/main.go index ef530e9..ca800d9 100644 --- a/xesite/main.go +++ b/xesite/main.go @@ -11,6 +11,7 @@ import ( "sync" "time" + "tailscale.com/tsweb" "xeiaso.net/v4" "xeiaso.net/v4/config" "xeiaso.net/v4/internal" @@ -89,7 +90,9 @@ func main() { var talks []*internal.Post var gallery []*internal.Post - for _, post := range posts { + postsIndex := map[string]int{} + + for i, post := range posts { switch strings.Split(post.Link, "/")[0] { case "blog": blog = append(blog, post) @@ -98,6 +101,8 @@ func main() { case "gallery": gallery = append(gallery, post) } + + postsIndex[post.Link] = i } mux.Handle("/static/", http.FileServer(http.FS(xeiaso.Static))) @@ -136,6 +141,8 @@ func main() { mux.HandleFunc("/", site.Index) mux.HandleFunc("/blog", site.BlogIndex) + mux.HandleFunc("/metrics", tsweb.VarzHandler) + slog.Info("listening", "addr", *addr) log.Fatal(http.ListenAndServe(*addr, mux)) |
