From 8080553db06dbca8945d84e465b0b5d0245b0b1f Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sat, 17 Mar 2018 22:03:46 +0100 Subject: [PATCH] Improved templating --- main.go | 8 +++++++- templates/_base.html | 4 ++++ templates/_footer.html | 2 ++ templates/_header.html | 7 +++++++ templates/_navigation.html | 10 +++++++++ templates/index.html | 16 ++------------- templates/me_images.html | 42 +++++++++++++++----------------------- templates/upload.html | 18 ++++------------ 8 files changed, 52 insertions(+), 55 deletions(-) create mode 100644 templates/_base.html create mode 100644 templates/_footer.html create mode 100644 templates/_header.html create mode 100644 templates/_navigation.html diff --git a/main.go b/main.go index 75b18bd..76b21a8 100644 --- a/main.go +++ b/main.go @@ -96,7 +96,13 @@ type UploadData struct { } func returnResult(w http.ResponseWriter, templateName string, data interface{}) error { - pageTemplate, err := template.New(templateName).ParseFiles(fmt.Sprintf("templates/%s", templateName)) + pageTemplate, err := template.ParseFiles( + "templates/_base.html", + "templates/_header.html", + "templates/_navigation.html", + "templates/_footer.html", + fmt.Sprintf("templates/%s", templateName), + ) if err != nil { return err } diff --git a/templates/_base.html b/templates/_base.html new file mode 100644 index 0000000..9bab238 --- /dev/null +++ b/templates/_base.html @@ -0,0 +1,4 @@ +{{template "header" .}} +{{template "navigation" .User}} +{{template "content" .}} +{{template "footer" .}} \ No newline at end of file diff --git a/templates/_footer.html b/templates/_footer.html new file mode 100644 index 0000000..c4a5da5 --- /dev/null +++ b/templates/_footer.html @@ -0,0 +1,2 @@ +{{ define "footer"}} +{{end}} \ No newline at end of file diff --git a/templates/_header.html b/templates/_header.html new file mode 100644 index 0000000..affb686 --- /dev/null +++ b/templates/_header.html @@ -0,0 +1,7 @@ +{{define "header"}} +<!DOCTYPE html> +<meta charset="utf-8"> +<title>{{ template "title" .}}</title> +<link href="/assets/css/style.css" rel="stylesheet"> +<link href="/assets/css/fonts.css" rel="stylesheet"> +{{end}} \ No newline at end of file diff --git a/templates/_navigation.html b/templates/_navigation.html new file mode 100644 index 0000000..56cebab --- /dev/null +++ b/templates/_navigation.html @@ -0,0 +1,10 @@ +{{ define "navigation" }} +{{ if .Id }} +<p>Welcome, {{ .Name }}</p> +<p> + <a href="/me/images">My Images</a> | + <a href="/me/albums">My Albums</a> | + <a href="/upload">Upload</a> +</p> +{{ end }} +{{ end}} \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 9574e78..3590730 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,14 +1,2 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>ik8r</title> -<link href="/assets/css/style.css" rel="stylesheet"> -<link href="/assets/css/fonts.css" rel="stylesheet"> - -{{ if .User.Id }} - <p>Welcome, {{ .User.Name }}</p> - <p> - <a href="/me/images">My Images</a> | - <a href="/me/albums">My Albums</a> | - <a href="/upload">Upload</a> - </p> -{{ end }} \ No newline at end of file +{{define "title"}}ik8r{{end}} +{{define "content"}}{{end}} \ No newline at end of file diff --git a/templates/me_images.html b/templates/me_images.html index 91dc7ae..ac8a629 100644 --- a/templates/me_images.html +++ b/templates/me_images.html @@ -1,27 +1,17 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>My Images | ik8r</title> -<link href="/assets/css/style.css" rel="stylesheet"> -<link href="/assets/css/fonts.css" rel="stylesheet"> - -<p>Welcome, {{ .User.Name }}</p> -<p> - <a href="/me/images">My Images</a> | - <a href="/me/albums">My Albums</a> | - <a href="/upload">Upload</a> -</p> - +{{define "title"}}My Images | ik8r{{end}} +{{define "content"}} <div class="images"> - {{ range .Images }} - <a class="image" href="/i/{{ .Id }}"> - <div class="image-container"> - <img src="/i/{{ .Id }}t" > - </div> - <div class="info"> - <p>{{ .OriginalName }}</p> - <p><time>{{ .CreatedAt.Format "2006-01-02 15:04" }}</time></p> - <p>{{ .MimeType }}</p> - </div> - </a> - {{ end }} -</div> \ No newline at end of file +{{ range .Images }} + <a class="image" href="/i/{{ .Id }}"> + <div class="image-container"> + <img src="/i/{{ .Id }}t" > + </div> + <div class="info"> + <p>{{ .OriginalName }}</p> + <p><time>{{ .CreatedAt.Format "2006-01-02 15:04" }}</time></p> + <p>{{ .MimeType }}</p> + </div> + </a> +{{ end }} +</div> +{{end}} \ No newline at end of file diff --git a/templates/upload.html b/templates/upload.html index 3663ee5..215c130 100644 --- a/templates/upload.html +++ b/templates/upload.html @@ -1,16 +1,5 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Upload | ik8r</title> -<link href="/assets/css/style.css" rel="stylesheet"> -<link href="/assets/css/fonts.css" rel="stylesheet"> - -<p>Welcome, {{ .User.Name }}</p> -<p> - <a href="/me/images">My Images</a> | - <a href="/me/albums">My Albums</a> | - <a href="/upload">Upload</a> -</p> - +{{define "title"}}Upload | ik8r{{end}} +{{define "content"}} {{ range .Results }} {{ if .Success }} <div class="info success"> @@ -29,4 +18,5 @@ <form action="/upload/" method="POST" enctype="multipart/form-data"> <input type="file" name="file" accept="image/jpeg,image/png,image/bmp,*.jpeg,*.jpg,*.png,*.bmp" multiple/> <input type="submit"/> -</form> \ No newline at end of file +</form> +{{end}} \ No newline at end of file -- GitLab