diff --git a/Makefile b/Makefile
index 61df8351f7c79059ecf9ef2db0351c527b37e023..53b076749dac0fd0399fed31a3857ea3c338db01 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,10 @@
-build: sass tmpl
- go build -o bin/cerrado
+COMMIT := $(shell git rev-parse --short HEAD)
+LDFLAGS := "-X 'git.gabrielgio.me/cerrado/templates.Slug=.$(COMMIT)' -s -w"
+
+build: sass-slug tmpl
+ go build \
+ -ldflags=$(LDFLAGS) \
+ -o bin/cerrado
run: sass tmpl
go run .
@@ -7,8 +12,13 @@
test:
go test -v --tags=unit ./...
+sass-slug:
+ mkdir -p static
+ sassc \
+ -I scss scss/main.scss static/main.$(COMMIT).css
+
sass:
- @mkdir -p static
+ mkdir -p static
sassc \
-I scss scss/main.scss static/main.css
diff --git a/templates/base.qtpl b/templates/base.qtpl
index 444afc639b5d8bc1c520d7b62edfe341c7d1bc06..d8d1d344fcc5a6f70683c0c3fd95494ec6055322 100644
--- a/templates/base.qtpl
+++ b/templates/base.qtpl
@@ -19,6 +19,9 @@ return ""
}
%}
+{% code
+ var Slug = ""
+%}
Page prints a page implementing Page interface.
{% func PageTemplate(p Page) %}
@@ -27,7 +30,7 @@ <head>
<meta charset="utf-8">
<link rel="icon" href="data:,">
<title>cerrado | {%= p.Title() %}</title>
- <link rel="stylesheet" href="/static/main.css">
+ <link rel="stylesheet" href="/static/main{%s Slug%}.css">
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
diff --git a/templates/base.qtpl.go b/templates/base.qtpl.go
index 1d30cd8e314963b6c91ca782b6d32948044283ee..15c9e4f0ae2b83b1bb86993cb9e15a280a821318 100644
--- a/templates/base.qtpl.go
+++ b/templates/base.qtpl.go
@@ -54,22 +54,29 @@ }
return ""
}
+//line base.qtpl:23
+var Slug = ""
+
// Page prints a page implementing Page interface.
-//line base.qtpl:24
+//line base.qtpl:27
func StreamPageTemplate(qw422016 *qt422016.Writer, p Page) {
-//line base.qtpl:24
+//line base.qtpl:27
qw422016.N().S(`
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="icon" href="data:,">
<title>cerrado | `)
-//line base.qtpl:29
+//line base.qtpl:32
p.StreamTitle(qw422016)
-//line base.qtpl:29
+//line base.qtpl:32
qw422016.N().S(`</title>
- <link rel="stylesheet" href="/static/main.css">
+ <link rel="stylesheet" href="/static/main`)
+//line base.qtpl:33
+ qw422016.E().S(Slug)
+//line base.qtpl:33
+ qw422016.N().S(`.css">
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
@@ -83,144 +90,144 @@ </div>
</nav>
<div class="container">
`)
-//line base.qtpl:43
+//line base.qtpl:46
p.StreamContent(qw422016)
-//line base.qtpl:43
+//line base.qtpl:46
qw422016.N().S(`
</div>
</body>
`)
-//line base.qtpl:46
+//line base.qtpl:49
p.StreamScript(qw422016)
-//line base.qtpl:46
+//line base.qtpl:49
qw422016.N().S(`
</html>
`)
-//line base.qtpl:48
+//line base.qtpl:51
}
-//line base.qtpl:48
+//line base.qtpl:51
func WritePageTemplate(qq422016 qtio422016.Writer, p Page) {
-//line base.qtpl:48
+//line base.qtpl:51
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:48
+//line base.qtpl:51
StreamPageTemplate(qw422016, p)
-//line base.qtpl:48
+//line base.qtpl:51
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:48
+//line base.qtpl:51
}
-//line base.qtpl:48
+//line base.qtpl:51
func PageTemplate(p Page) string {
-//line base.qtpl:48
+//line base.qtpl:51
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:48
+//line base.qtpl:51
WritePageTemplate(qb422016, p)
-//line base.qtpl:48
+//line base.qtpl:51
qs422016 := string(qb422016.B)
-//line base.qtpl:48
+//line base.qtpl:51
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:48
+//line base.qtpl:51
return qs422016
-//line base.qtpl:48
+//line base.qtpl:51
}
-//line base.qtpl:50
+//line base.qtpl:53
type BasePage struct{}
-//line base.qtpl:51
+//line base.qtpl:54
func (p *BasePage) StreamTitle(qw422016 *qt422016.Writer) {
-//line base.qtpl:51
+//line base.qtpl:54
qw422016.N().S(`Empty`)
-//line base.qtpl:51
+//line base.qtpl:54
}
-//line base.qtpl:51
+//line base.qtpl:54
func (p *BasePage) WriteTitle(qq422016 qtio422016.Writer) {
-//line base.qtpl:51
+//line base.qtpl:54
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:51
+//line base.qtpl:54
p.StreamTitle(qw422016)
-//line base.qtpl:51
+//line base.qtpl:54
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:51
+//line base.qtpl:54
}
-//line base.qtpl:51
+//line base.qtpl:54
func (p *BasePage) Title() string {
-//line base.qtpl:51
+//line base.qtpl:54
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:51
+//line base.qtpl:54
p.WriteTitle(qb422016)
-//line base.qtpl:51
+//line base.qtpl:54
qs422016 := string(qb422016.B)
-//line base.qtpl:51
+//line base.qtpl:54
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:51
+//line base.qtpl:54
return qs422016
-//line base.qtpl:51
+//line base.qtpl:54
}
-//line base.qtpl:52
+//line base.qtpl:55
func (p *BasePage) StreamBody(qw422016 *qt422016.Writer) {
-//line base.qtpl:52
+//line base.qtpl:55
qw422016.N().S(`HelloWorld`)
-//line base.qtpl:52
+//line base.qtpl:55
}
-//line base.qtpl:52
+//line base.qtpl:55
func (p *BasePage) WriteBody(qq422016 qtio422016.Writer) {
-//line base.qtpl:52
+//line base.qtpl:55
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:52
+//line base.qtpl:55
p.StreamBody(qw422016)
-//line base.qtpl:52
+//line base.qtpl:55
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:52
+//line base.qtpl:55
}
-//line base.qtpl:52
+//line base.qtpl:55
func (p *BasePage) Body() string {
-//line base.qtpl:52
+//line base.qtpl:55
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:52
+//line base.qtpl:55
p.WriteBody(qb422016)
-//line base.qtpl:52
+//line base.qtpl:55
qs422016 := string(qb422016.B)
-//line base.qtpl:52
+//line base.qtpl:55
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:52
+//line base.qtpl:55
return qs422016
-//line base.qtpl:52
+//line base.qtpl:55
}
-//line base.qtpl:53
+//line base.qtpl:56
func (p *BasePage) StreamScript(qw422016 *qt422016.Writer) {
-//line base.qtpl:53
+//line base.qtpl:56
}
-//line base.qtpl:53
+//line base.qtpl:56
func (p *BasePage) WriteScript(qq422016 qtio422016.Writer) {
-//line base.qtpl:53
+//line base.qtpl:56
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:53
+//line base.qtpl:56
p.StreamScript(qw422016)
-//line base.qtpl:53
+//line base.qtpl:56
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:53
+//line base.qtpl:56
}
-//line base.qtpl:53
+//line base.qtpl:56
func (p *BasePage) Script() string {
-//line base.qtpl:53
+//line base.qtpl:56
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:53
+//line base.qtpl:56
p.WriteScript(qb422016)
-//line base.qtpl:53
+//line base.qtpl:56
qs422016 := string(qb422016.B)
-//line base.qtpl:53
+//line base.qtpl:56
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:53
+//line base.qtpl:56
return qs422016
-//line base.qtpl:53
+//line base.qtpl:56
}