ch2.7
This commit is contained in:
@@ -2,6 +2,8 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
@@ -11,7 +13,22 @@ func home(w http.ResponseWriter, r *http.Request) {
|
||||
http.NotFound(w, r)
|
||||
return
|
||||
}
|
||||
w.Write([]byte("Hello from Snippetbox"))
|
||||
files := []string{
|
||||
"./ui/html/base.tmpl",
|
||||
"./ui/html/partials/nav.tmpl",
|
||||
"./ui/html/pages/home.tmpl",
|
||||
}
|
||||
ts, err := template.ParseFiles(files...)
|
||||
if err != nil {
|
||||
log.Print(err.Error())
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
err = ts.ExecuteTemplate(w, "base", nil)
|
||||
if err != nil {
|
||||
log.Print(err.Error())
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
|
||||
func snippetView(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
19
ui/html/base.tmpl
Normal file
19
ui/html/base.tmpl
Normal file
@@ -0,0 +1,19 @@
|
||||
{{define "base"}}
|
||||
<!doctype html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>{{template "title" .}} - Snippetbox</title>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href='/'>Snippetbox</a></h1>
|
||||
</header>
|
||||
{{template "nav" .}}
|
||||
<main>
|
||||
{{template "main" .}}
|
||||
</main>
|
||||
<footer>Powered by <a href='https://golang.org/'>Go</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
6
ui/html/pages/home.tmpl
Normal file
6
ui/html/pages/home.tmpl
Normal file
@@ -0,0 +1,6 @@
|
||||
{{define "title"}}Home{{end}}
|
||||
|
||||
{{define "main"}}
|
||||
<h2>Latest Snippets</h2>
|
||||
<p>There's nothing to see here yet!</p>
|
||||
{{end}}
|
||||
5
ui/html/partials/nav.tmpl
Normal file
5
ui/html/partials/nav.tmpl
Normal file
@@ -0,0 +1,5 @@
|
||||
{{define "nav"}}
|
||||
<nav>
|
||||
<a href='/'>Home</a>
|
||||
</nav>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user