diff --git a/main.go b/main.go index 75b18bd6de27793ee179da42aed710b932a1284c..76b21a87c8dd7e415afb03507b3647c40f28575f 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 0000000000000000000000000000000000000000..9bab238305238fd1fd8e0ee8b9228975c01f09d8 --- /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 0000000000000000000000000000000000000000..c4a5da502948e69642651c0c537856c4580ca0be --- /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 0000000000000000000000000000000000000000..affb6864f0130fe8aad8138b69c67da801aeea7b --- /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 0000000000000000000000000000000000000000..56cebab1af934a470981bc77adc7ea8724b42837 --- /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 9574e78ff1367459a0453fc84b4fc5fb83c1cf92..359073073fac13ebfe2205b92d13e20c91903ae4 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 91dc7ae307b783288b052267b6fc174dadcc34e3..ac8a629af95a6578f439e6c1b521d2aca78da2cb 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 3663ee56730dc1f4a245f4f0876ee8446ba613ae..215c1306d64b4057d6de189636cf1cfe1e67ee80 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