broken but cool htmx! also improved templating
Signed-off-by: ari melody <ari@arimelody.me>
This commit is contained in:
parent
5c59348362
commit
c1ff03c4e5
18 changed files with 297 additions and 97 deletions
40
main.go
40
main.go
|
@ -1,20 +1,21 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"arimelody.me/arimelody.me/api/v1/music"
|
||||
"arimelody.me/arimelody.me/api/v1/music"
|
||||
|
||||
"github.com/gomarkdown/markdown"
|
||||
"github.com/gomarkdown/markdown/html"
|
||||
"github.com/gomarkdown/markdown/parser"
|
||||
"github.com/gomarkdown/markdown"
|
||||
"github.com/gomarkdown/markdown/html"
|
||||
"github.com/gomarkdown/markdown/parser"
|
||||
)
|
||||
|
||||
const PORT int = 8080
|
||||
|
@ -34,6 +35,7 @@ var base_template = template.Must(template.ParseFiles(
|
|||
"views/base.html",
|
||||
"views/header.html",
|
||||
"views/footer.html",
|
||||
"views/prideflag.html",
|
||||
))
|
||||
var htmx_template = template.Must(template.New("root").Parse(`<head>{{block "head" .}}{{end}}</head>{{block "content" .}}{{end}}`))
|
||||
|
||||
|
@ -59,11 +61,21 @@ func handle_request(writer http.ResponseWriter, req *http.Request) {
|
|||
uri := req.URL.Path
|
||||
start_time := time.Now()
|
||||
|
||||
hx_boosted := len(req.Header["Hx-Boosted"]) > 0 && req.Header["Hx-Boosted"][0] == "true"
|
||||
hx_request := len(req.Header["Hx-Request"]) > 0 && req.Header["Hx-Request"][0] == "true"
|
||||
|
||||
// don't bother fulfilling requests to a page that's already loaded on the client!
|
||||
if hx_request && len(req.Header["Referer"]) > 0 && len(req.Header["Hx-Current-Url"]) > 0 {
|
||||
regex := regexp.MustCompile(`https?:\/\/[^\/]+`)
|
||||
current_location := regex.ReplaceAllString(req.Header["Hx-Current-Url"][0], "")
|
||||
if current_location == req.URL.Path {
|
||||
writer.WriteHeader(204);
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
code := func(writer http.ResponseWriter, req *http.Request) int {
|
||||
var root *template.Template
|
||||
if hx_boosted {
|
||||
if hx_request {
|
||||
root = template.Must(htmx_template.Clone())
|
||||
} else {
|
||||
root = template.Must(base_template.Clone())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue