Skip to content

Commit df027f6

Browse files
Added several files. Updated templates and added templating skeleton. Added reloader so template files can be updated without recompiling.
1 parent 2db3252 commit df027f6

16 files changed

+415
-82
lines changed

controllers/auth.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package controllers
22

33
import (
4-
"fmt"
54
"net/http"
65
)
76

7+
/* LoginHandler serves the login page */
88
func LoginHandler(w http.ResponseWriter, r *http.Request) {
9-
fmt.Fprintf(w, "<h1>Blast Beats and Code :: Login</h1>"+
10-
"<p>The strange endeavors of a nerdy developer who also likes really bad music.</p>")
9+
err := tpl.Get("login").ExecuteTemplate(w, "base-tpl", nil)
10+
checkErr(err)
1111
}

controllers/blog.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package controllers
22

33
import (
4-
"fmt"
54
"net/http"
65
)
76

7+
/* BlogHandler serves the blog page */
88
func BlogHandler(w http.ResponseWriter, r *http.Request) {
9-
fmt.Fprintf(w, "<h1>Blast Beats and Code :: Blog</h1>"+
10-
"<p>The strange endeavors of a nerdy developer who also likes really bad music.</p>")
9+
err := tpl.Get("blog").ExecuteTemplate(w, "base-tpl", nil)
10+
checkErr(err)
1111
}

controllers/contact.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package controllers
22

33
import (
4-
"fmt"
54
"net/http"
65
)
76

7+
/* ContactHandler serves the contact page */
88
func ContactHandler(w http.ResponseWriter, r *http.Request) {
9-
fmt.Fprintf(w, "<h1>Blast Beats and Code :: Contact</h1>"+
10-
"<p>The strange endeavors of a nerdy developer who also likes really bad music.</p>")
9+
err := tpl.Get("contact").ExecuteTemplate(w, "base-tpl", nil)
10+
checkErr(err)
1111
}

controllers/controllers.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package controllers
2+
3+
import "github.com/blastbeatsandcode/blastbeatsandcode-website/templates"
4+
5+
// Create global reloader
6+
var tpl templates.Reloader
7+
8+
/* Grab templates from public folder and start watching them */
9+
func init() {
10+
tpl = templates.GetTemplates()
11+
tpl.Watch()
12+
}
13+
14+
/* Generic error checking handler */
15+
func checkErr(err error) {
16+
if err != nil {
17+
panic(err)
18+
}
19+
}

controllers/home.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package controllers
22

33
import (
4-
"html/template"
54
"net/http"
65
)
76

7+
/* HomeHandler serves the index page */
88
func HomeHandler(w http.ResponseWriter, r *http.Request) {
9-
tmpl := template.Must(template.ParseFiles("templates/index.gohtml"))
10-
tmpl.Execute(w, nil)
9+
err := tpl.Get("index").ExecuteTemplate(w, "base-tpl", nil)
10+
checkErr(err)
1111
}

controllers/projects.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package controllers
22

33
import (
4-
"fmt"
54
"net/http"
65
)
76

7+
/* ProjectsHandler serves the projects page */
88
func ProjectsHandler(w http.ResponseWriter, r *http.Request) {
9-
fmt.Fprintf(w, "<h1>Blast Beats and Code :: Projects</h1>"+
10-
"<p>The strange endeavors of a nerdy developer who also likes really bad music.</p>")
9+
err := tpl.Get("projects").ExecuteTemplate(w, "base-tpl", nil)
10+
checkErr(err)
1111
}

public/css/base.css

+31-7
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,29 @@ footer {
4242
}
4343

4444
footer a {
45-
color: white;
45+
color: rgb(166, 126, 13);
4646
}
4747

4848
h1, h2, h3 {
4949
font-family: 'Abel', serif;
5050
}
5151

52-
/*
53-
nav {
54-
background-color: rgb(44, 93, 97);
55-
padding: 25px;
56-
}
57-
*/
5852

5953
.nav-link {
54+
font-size: 1.5rem;
55+
font-family: 'Abel', serif;
6056
text-transform: uppercase;
57+
margin-left: 1rem;
58+
}
59+
60+
.nav-link:hover {
61+
color: rgb(166, 126, 13) !important;
62+
height: 3.3rem;
63+
background-color: #272727;
64+
}
65+
66+
.navbar-brand {
67+
font-size: 1.5rem;
6168
}
6269

6370
.social, .social h2 {
@@ -79,6 +86,9 @@ nav {
7986
color: rgb(60, 100, 120);
8087
}
8188

89+
.spacer {
90+
height: 3.3rem;
91+
}
8292

8393
/* MOBILE STYLES */
8494

@@ -88,4 +98,18 @@ nav {
8898
font-size: 42pt;
8999
color: black;
90100
}
101+
102+
.navbar-brand {
103+
font-size: 1.2rem;
104+
}
105+
106+
.nav-link {
107+
margin: 0;
108+
}
109+
}
110+
111+
@media only screen and (min-width: 769px) {
112+
nav {
113+
height: 3.3rem;
114+
}
91115
}

templates/base.gohtml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{define "base-tpl"}}
2+
<!DOCTYPE html>
3+
<html>
4+
<head>
5+
<title>Blast Beats and Code - Developer Blog</title>
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
8+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
9+
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
10+
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
11+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
12+
<link rel="stylesheet" type="text/css" href="/public/css/base.css">
13+
<link href="https://fonts.googleapis.com/css?family=Fira+Sans|Abel|Arvo" rel="stylesheet">
14+
</head>
15+
<body>
16+
{{template "nav-tpl" .}}
17+
{{template "banner-tpl" .}}
18+
<content>
19+
<div class="container">
20+
{{template "content-tpl" .}}
21+
</div>
22+
</content>`
23+
24+
<footer>
25+
<div class="container">
26+
<p>This website is a work in progress. See the source code as I update it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">here</a>.</p>
27+
<p>Copyright &copy; 2018 Blast Beats and Code</p>
28+
</div>
29+
</footer>
30+
31+
32+
</body>
33+
</html>
34+
{{end}}

templates/blog.gohtml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{define "banner-tpl"}}
2+
<div class="banner">
3+
<div class="container">
4+
<span id="title">Blog</span>
5+
</div>
6+
</div>
7+
{{end}}
8+
9+
{{define "content-tpl"}}
10+
<content>
11+
<div class="container">
12+
<br />
13+
<h1>This website is being built</h1>
14+
<p>But I'm keeping it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">open source</a>!</p><br /><br /><br /><br />
15+
</div>
16+
<div class="social">
17+
<div class="container">
18+
<div class="row">
19+
<div class="col-sm-3 my-auto"><h1>Connect</h1></div>
20+
<div class="col-sm-3 my-auto"><a href="https://github.com/blastbeatsandcode" target="_blank"><i class="fab fa-github fa-5x"></i></a></div>
21+
<div class="col-sm-3 my-auto"><a href="https://twitter.com/blastbeatsncode" target="_blank"><i class="fab fa-twitter fa-5x"></i></a></div>
22+
<div class="col-sm-3 my-auto"><a href="https://www.discogs.com/user/blastbeatsandcode" target="_blank"><i class="fas fa-compact-disc fa-5x"></i></a></div>
23+
</div>
24+
</div>
25+
</div>
26+
</content>
27+
{{end}}

templates/contact.gohtml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
{{define "banner-tpl"}}
3+
<div class="banner">
4+
<div class="container">
5+
<span id="title">Contact</span>
6+
</div>
7+
</div>
8+
{{end}}
9+
10+
{{define "content-tpl"}}
11+
<content>
12+
<div class="container">
13+
<br />
14+
<h1>This website is being built</h1>
15+
<p>But I'm keeping it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">open source</a>!</p><br /><br /><br /><br />
16+
</div>
17+
<div class="social">
18+
<div class="container">
19+
<div class="row">
20+
<div class="col-sm-3 my-auto"><h1>Connect</h1></div>
21+
<div class="col-sm-3 my-auto"><a href="https://github.com/blastbeatsandcode" target="_blank"><i class="fab fa-github fa-5x"></i></a></div>
22+
<div class="col-sm-3 my-auto"><a href="https://twitter.com/blastbeatsncode" target="_blank"><i class="fab fa-twitter fa-5x"></i></a></div>
23+
<div class="col-sm-3 my-auto"><a href="https://www.discogs.com/user/blastbeatsandcode" target="_blank"><i class="fas fa-compact-disc fa-5x"></i></a></div>
24+
</div>
25+
</div>
26+
</div>
27+
</content>
28+
{{end}}

templates/index.gohtml

+4-60
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,5 @@
1-
<!DOCTYPE html>
2-
<html>
3-
<head>
4-
<title>Blast Beats and Code - Developer Blog</title>
5-
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
6-
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
7-
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
8-
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
9-
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
10-
<link rel="stylesheet" type="text/css" href="/public/css/base.css">
11-
<link href="https://fonts.googleapis.com/css?family=Fira+Sans|Abel|Arvo" rel="stylesheet">
12-
</head>
13-
<body>
14-
15-
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
16-
<div class="container">
17-
<!-- Brand -->
18-
<a class="navbar-brand" href="#">blastBeats&Code</a>
19-
20-
<!-- Toggler/collapsibe Button -->
21-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
22-
<span class="navbar-toggler-icon"></span>
23-
</button>
24-
25-
<!-- Navbar links -->
26-
<div class="collapse navbar-collapse" id="collapsibleNavbar">
27-
<ul class="navbar-nav ml-auto">
28-
<li class="nav-item">
29-
<a class="nav-link" href="#">Home</a>
30-
</li>
31-
<li class="nav-item">
32-
<a class="nav-link" href="#">Blog</a>
33-
</li>
34-
<li class="nav-item">
35-
<a class="nav-link" href="#">Projects</a>
36-
</li>
37-
<li class="nav-item">
38-
<a class="nav-link" href="#">Contact</a>
39-
</li>
40-
</ul>
41-
</div>
42-
</div>
43-
</nav>
44-
451

2+
{{define "banner-tpl"}}
463
<div class="banner">
474
<div class="container">
485
<a href="/">
@@ -52,10 +9,9 @@
529
<p>The strange endeavors of a nerdy developer who also likes really bad music.</p>
5310
</div>
5411
</div>
12+
{{end}}
5513

56-
57-
<content>
58-
<div class="container">
14+
{{define "content-tpl"}}
5915
<br />
6016
<h1>This website is being built</h1>
6117
<p>But I'm keeping it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">open source</a>!</p><br /><br /><br /><br />
@@ -69,16 +25,4 @@
6925
<div class="col-sm-3 my-auto"><a href="https://www.discogs.com/user/blastbeatsandcode" target="_blank"><i class="fas fa-compact-disc fa-5x"></i></a></div>
7026
</div>
7127
</div>
72-
</div>
73-
</content>
74-
75-
<footer>
76-
<div class="container">
77-
<p>This website is a work in progress. See the source code as I update it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">here</a>.</p>
78-
<p>Copyright &copy; 2018 Blast Beats and Code</p>
79-
</div>
80-
</footer>
81-
82-
83-
</body>
84-
</html>
28+
{{end}}

templates/login.gohtml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{define "banner-tpl"}}
2+
<div class="banner">
3+
<div class="container">
4+
<span id="title">Login</span>
5+
</div>
6+
</div>
7+
{{end}}
8+
9+
{{define "content-tpl"}}
10+
<content>
11+
<div class="container">
12+
<br />
13+
<h1>This website is being built</h1>
14+
<p>But I'm keeping it <a href="https://github.com/blastbeatsandcode/blastbeatsandcode-website">open source</a>!</p><br /><br /><br /><br />
15+
</div>
16+
<div class="social">
17+
<div class="container">
18+
<div class="row">
19+
<div class="col-sm-3 my-auto"><h1>Connect</h1></div>
20+
<div class="col-sm-3 my-auto"><a href="https://github.com/blastbeatsandcode" target="_blank"><i class="fab fa-github fa-5x"></i></a></div>
21+
<div class="col-sm-3 my-auto"><a href="https://twitter.com/blastbeatsncode" target="_blank"><i class="fab fa-twitter fa-5x"></i></a></div>
22+
<div class="col-sm-3 my-auto"><a href="https://www.discogs.com/user/blastbeatsandcode" target="_blank"><i class="fas fa-compact-disc fa-5x"></i></a></div>
23+
</div>
24+
</div>
25+
</div>
26+
</content>
27+
{{end}}

templates/nav.gohtml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{{define "nav-tpl"}}
2+
<nav class="navbar navbar-expand-md fixed-top bg-dark navbar-dark">
3+
<div class="container">
4+
<!-- Brand -->
5+
<a class="navbar-brand" href="/">blastBeats&Code</a>
6+
7+
<!-- Toggler/collapsibe Button -->
8+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
9+
<span class="navbar-toggler-icon"></span>
10+
</button>
11+
12+
<!-- Navbar links -->
13+
<div class="collapse navbar-collapse" id="collapsibleNavbar">
14+
<ul class="navbar-nav ml-auto">
15+
<li class="nav-item">
16+
<a class="nav-link" href="/">Home</a>
17+
</li>
18+
<li class="nav-item">
19+
<a class="nav-link" href="/blog">Blog</a>
20+
</li>
21+
<li class="nav-item">
22+
<a class="nav-link" href="/projects">Projects</a>
23+
</li>
24+
<li class="nav-item">
25+
<a class="nav-link" href="/contact">Contact</a>
26+
</li>
27+
</ul>
28+
</div>
29+
</div>
30+
</nav>
31+
<div class="spacer">
32+
</div>
33+
{{end}}

0 commit comments

Comments
 (0)