feat: add initial Go+HTMX web project structure
This commit is contained in:
26
cmd/web/main.go
Normal file
26
cmd/web/main.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/go-chi/chi/v5"
|
||||||
|
"github.com/go-chi/chi/v5/middleware"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
r := chi.NewRouter()
|
||||||
|
r.Use(middleware.Logger)
|
||||||
|
|
||||||
|
// Setup routes
|
||||||
|
r.Get("/", handleHome)
|
||||||
|
|
||||||
|
port := ":3000"
|
||||||
|
fmt.Printf("Starting server on %s\n", port)
|
||||||
|
err := http.ListenAndServe(port, r)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
8
go.mod
Normal file
8
go.mod
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
module myhtmxapp
|
||||||
|
|
||||||
|
go 1.21
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/go-chi/chi/v5 v5.0.12
|
||||||
|
github.com/go-chi/render v1.0.3
|
||||||
|
)
|
11
handlers/handlers.go
Normal file
11
handlers/handlers.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package handlers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"html/template"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func HandleHome(w http.ResponseWriter, r *http.Request) {
|
||||||
|
tmpl := template.Must(template.ParseFiles("templates/public/index.html"))
|
||||||
|
tmpl.Execute(w, nil)
|
||||||
|
}
|
13
templates/public/index.html
Normal file
13
templates/public/index.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>HTMX + Go Starter</title>
|
||||||
|
<script src="https://unpkg.com/htmx.org@1.9.10"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>HTMX + Go Starter</h1>
|
||||||
|
<p>Edit this HTML in templates/public/index.html</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in New Issue
Block a user