Compare commits

..

No commits in common. "a3d91e7304844dbc93e35bbf724f93acf8cdfe96" and "45640416cd455d1fdb84f0a282c5e871445e88c1" have entirely different histories.

5 changed files with 56 additions and 64 deletions

View File

@ -1,23 +1,7 @@
package routes package routes
import ( import "net/http"
"html/template"
"net/http"
)
func ExampleHandler(w http.ResponseWriter, r *http.Request) { func ExampleHandler(w http.ResponseWriter, r *http.Request) {
data := PageData{ http.ServeFile(w, r, "web/views/example.html")
Title: "Example Page",
}
tmpl, err := template.ParseFiles("web/views/.layout.html", "web/views/example.html")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
err = tmpl.ExecuteTemplate(w, "layout", data)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
} }

View File

@ -14,14 +14,14 @@ func RootHandler(w http.ResponseWriter, r *http.Request) {
Title: "Home Page", Title: "Home Page",
} }
tmpl, err := template.ParseFiles("web/views/.layout.html", "web/views/index.html") tmpl, err := template.ParseFiles("web/views/index.html")
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
} }
err = tmpl.ExecuteTemplate(w, "layout", data) err = tmpl.Execute(w, data)
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
} }
} }

View File

@ -1,16 +0,0 @@
{{define "layout"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>GO Web App - {{.Title}}</title>
<link rel="stylesheet" href="/static/output.css" />
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon" />
<script src="/static/htmx.min.js"></script>
</head>
<body class="text-center text-blue-300 bg-gray-800">
{{template "view" .}}
</body>
</html>
{{end}}

View File

@ -1,4 +1,13 @@
{{define "view"}} <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Example Route</title>
<link rel="stylesheet" href="/static/output.css" />
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon" />
</head>
<body class="text-center text-blue-400 bg-gray-800">
<header> <header>
<h1 class="mt-8 mb-8 text-3xl font-bold text-blue-300"> <h1 class="mt-8 mb-8 text-3xl font-bold text-blue-300">
This is an additional example route This is an additional example route
@ -14,4 +23,5 @@
<footer> <footer>
<p>&copy; 2024 My Web App</p> <p>&copy; 2024 My Web App</p>
</footer> </footer>
{{end}} </body>
</html>

View File

@ -1,27 +1,41 @@
{{define "view"}} <!DOCTYPE html>
<header> <html lang="en">
<h1 class="mt-8 mb-8 text-3xl font-bold text-blue-400"> <head>
Welcome to My GO Web App Framework {{.Title}} <meta charset="UTF-8" />
</h1> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</header> <title>GO Web App</title>
<link rel="stylesheet" href="/static/output.css" />
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon" />
<script src="/static/htmx.min.js"></script>
</head>
<body class="text-center text-blue-300 bg-gray-800">
<header>
<h1 class="mt-8 mb-8 text-3xl font-bold text-blue-400">
Welcome to My GO Web App Framework {{.Title}}
</h1>
</header>
<main> <main>
<section> <section>
<button hx-get="/api/example" class="p-2 text-white bg-blue-400 rounded-md"> <button
Click Me! hx-get="/api/example"
</button> class="p-2 text-white bg-blue-400 rounded-md"
<h1 class="font-bold">API Example</h1> >
<a href="/api/example" target="_blank">Access Example API</a> Click Me!
<h2>Content Section</h2> </button>
<p> <h1 class="font-bold">API Example</h1>
This is the main content of your web app. You can add any HTML content <a href="/api/example" target="_blank">Access Example API</a>
here. <h2>Content Section</h2>
</p> <p>
<a href="/example">Another Example Route can be found here</a> This is the main content of your web app. You can add any HTML content
</section> here.
</main> </p>
<a href="/example">Another Example Route can be found here</a>
</section>
</main>
<footer> <footer>
<p>&copy; 2024 My Web App</p> <p>&copy; 2024 My Web App</p>
</footer> </footer>
{{end}} </body>
</html>