aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--main.go10
-rw-r--r--scss/main.scss10
-rw-r--r--templates/base.qtpl14
-rw-r--r--templates/base.qtpl.go138
5 files changed, 110 insertions, 70 deletions
diff --git a/Makefile b/Makefile
index 38db3a9..61df835 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,3 @@
-.ONESHELL:
-
build: sass tmpl
go build -o bin/cerrado
@@ -10,10 +8,12 @@ test:
go test -v --tags=unit ./...
sass:
- @make -p static
+ @mkdir -p static
sassc \
-I scss scss/main.scss static/main.css
tmpl:
- cd ./templates
+ cd ./templates && \
qtc *
+
+.PHONY: sass
diff --git a/main.go b/main.go
index 3d6411d..d2452e8 100644
--- a/main.go
+++ b/main.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/json"
"flag"
+ "io/fs"
"log/slog"
"net/http"
"os"
@@ -17,6 +18,7 @@ import (
"git.gabrielgio.me/cerrado/pkg/config"
"git.gabrielgio.me/cerrado/pkg/worker"
+ "git.gabrielgio.me/cerrado/static"
"git.gabrielgio.me/cerrado/templates"
)
@@ -25,6 +27,7 @@ func main() {
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill)
defer stop()
if err := run(ctx); err != nil {
+ slog.Error("Error", "error", err)
os.Exit(1)
}
}
@@ -37,6 +40,13 @@ func run(ctx context.Context) error {
flag.Parse()
mux := http.NewServeMux()
+
+ staticFs, err := fs.Sub(static.Static, ".")
+ if err != nil {
+ return err
+ }
+
+ mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticFs))))
mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
slog.Info("Handling index")
diff --git a/scss/main.scss b/scss/main.scss
index ae49385..7273c9f 100644
--- a/scss/main.scss
+++ b/scss/main.scss
@@ -1,3 +1,4 @@
+
@import "bootstrap/scss/_functions.scss";
@import "bootstrap/scss/_variables.scss";
@import "bootstrap/scss/_variables-dark.scss";
@@ -7,3 +8,12 @@
@import "bootstrap/scss/_root.scss";
+@import "bootstrap/scss/_containers.scss";
+@import "bootstrap/scss/_nav.scss";
+@import "bootstrap/scss/_navbar.scss";
+
+
+body {
+ font-family: $font-family-monospace;
+
+}
diff --git a/templates/base.qtpl b/templates/base.qtpl
index 1683981..6bef986 100644
--- a/templates/base.qtpl
+++ b/templates/base.qtpl
@@ -25,12 +25,22 @@ Page prints a page implementing Page interface.
<html lang="en">
<head>
<meta charset="utf-8">
- <title>img | {%= p.Title() %}</title>
+ <title>cerrado | {%= p.Title() %}</title>
<link rel="stylesheet" href="/static/main.css">
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
- <div>
+ <nav class="navbar navbar-expand bg-body-tertiary">
+ <div class="container-fluid">
+ <div class="collapse navbar-collapse">
+ <div class="navbar-nav">
+ <a class="nav-link" href="/git">git</a>
+ <a class="nav-link" href="/list">list</a>
+ </div>
+ </div>
+ </div>
+ </nav>
+ <div class="container">
{%= p.Content() %}
</div>
</body>
diff --git a/templates/base.qtpl.go b/templates/base.qtpl.go
index 8d93fa8..ffee940 100644
--- a/templates/base.qtpl.go
+++ b/templates/base.qtpl.go
@@ -63,7 +63,7 @@ func StreamPageTemplate(qw422016 *qt422016.Writer, p Page) {
<html lang="en">
<head>
<meta charset="utf-8">
- <title>img | `)
+ <title>cerrado | `)
//line base.qtpl:28
p.StreamTitle(qw422016)
//line base.qtpl:28
@@ -72,146 +72,156 @@ func StreamPageTemplate(qw422016 *qt422016.Writer, p Page) {
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
- <div>
+ <nav class="navbar navbar-expand bg-body-tertiary">
+ <div class="container-fluid">
+ <div class="collapse navbar-collapse">
+ <div class="navbar-nav">
+ <a class="nav-link" href="/git">git</a>
+ <a class="nav-link" href="/list">list</a>
+ </div>
+ </div>
+ </div>
+ </nav>
+ <div class="container">
`)
-//line base.qtpl:34
+//line base.qtpl:44
p.StreamContent(qw422016)
-//line base.qtpl:34
+//line base.qtpl:44
qw422016.N().S(`
</div>
</body>
`)
-//line base.qtpl:37
+//line base.qtpl:47
p.StreamScript(qw422016)
-//line base.qtpl:37
+//line base.qtpl:47
qw422016.N().S(`
</html>
`)
-//line base.qtpl:39
+//line base.qtpl:49
}
-//line base.qtpl:39
+//line base.qtpl:49
func WritePageTemplate(qq422016 qtio422016.Writer, p Page) {
-//line base.qtpl:39
+//line base.qtpl:49
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:39
+//line base.qtpl:49
StreamPageTemplate(qw422016, p)
-//line base.qtpl:39
+//line base.qtpl:49
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:39
+//line base.qtpl:49
}
-//line base.qtpl:39
+//line base.qtpl:49
func PageTemplate(p Page) string {
-//line base.qtpl:39
+//line base.qtpl:49
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:39
+//line base.qtpl:49
WritePageTemplate(qb422016, p)
-//line base.qtpl:39
+//line base.qtpl:49
qs422016 := string(qb422016.B)
-//line base.qtpl:39
+//line base.qtpl:49
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:39
+//line base.qtpl:49
return qs422016
-//line base.qtpl:39
+//line base.qtpl:49
}
-//line base.qtpl:41
+//line base.qtpl:51
type BasePage struct{}
-//line base.qtpl:42
+//line base.qtpl:52
func (p *BasePage) StreamTitle(qw422016 *qt422016.Writer) {
-//line base.qtpl:42
+//line base.qtpl:52
qw422016.N().S(`Empty`)
-//line base.qtpl:42
+//line base.qtpl:52
}
-//line base.qtpl:42
+//line base.qtpl:52
func (p *BasePage) WriteTitle(qq422016 qtio422016.Writer) {
-//line base.qtpl:42
+//line base.qtpl:52
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:42
+//line base.qtpl:52
p.StreamTitle(qw422016)
-//line base.qtpl:42
+//line base.qtpl:52
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:42
+//line base.qtpl:52
}
-//line base.qtpl:42
+//line base.qtpl:52
func (p *BasePage) Title() string {
-//line base.qtpl:42
+//line base.qtpl:52
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:42
+//line base.qtpl:52
p.WriteTitle(qb422016)
-//line base.qtpl:42
+//line base.qtpl:52
qs422016 := string(qb422016.B)
-//line base.qtpl:42
+//line base.qtpl:52
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:42
+//line base.qtpl:52
return qs422016
-//line base.qtpl:42
+//line base.qtpl:52
}
-//line base.qtpl:43
+//line base.qtpl:53
func (p *BasePage) StreamBody(qw422016 *qt422016.Writer) {
-//line base.qtpl:43
+//line base.qtpl:53
qw422016.N().S(`HelloWorld`)
-//line base.qtpl:43
+//line base.qtpl:53
}
-//line base.qtpl:43
+//line base.qtpl:53
func (p *BasePage) WriteBody(qq422016 qtio422016.Writer) {
-//line base.qtpl:43
+//line base.qtpl:53
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:43
+//line base.qtpl:53
p.StreamBody(qw422016)
-//line base.qtpl:43
+//line base.qtpl:53
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:43
+//line base.qtpl:53
}
-//line base.qtpl:43
+//line base.qtpl:53
func (p *BasePage) Body() string {
-//line base.qtpl:43
+//line base.qtpl:53
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:43
+//line base.qtpl:53
p.WriteBody(qb422016)
-//line base.qtpl:43
+//line base.qtpl:53
qs422016 := string(qb422016.B)
-//line base.qtpl:43
+//line base.qtpl:53
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:43
+//line base.qtpl:53
return qs422016
-//line base.qtpl:43
+//line base.qtpl:53
}
-//line base.qtpl:44
+//line base.qtpl:54
func (p *BasePage) StreamScript(qw422016 *qt422016.Writer) {
-//line base.qtpl:44
+//line base.qtpl:54
}
-//line base.qtpl:44
+//line base.qtpl:54
func (p *BasePage) WriteScript(qq422016 qtio422016.Writer) {
-//line base.qtpl:44
+//line base.qtpl:54
qw422016 := qt422016.AcquireWriter(qq422016)
-//line base.qtpl:44
+//line base.qtpl:54
p.StreamScript(qw422016)
-//line base.qtpl:44
+//line base.qtpl:54
qt422016.ReleaseWriter(qw422016)
-//line base.qtpl:44
+//line base.qtpl:54
}
-//line base.qtpl:44
+//line base.qtpl:54
func (p *BasePage) Script() string {
-//line base.qtpl:44
+//line base.qtpl:54
qb422016 := qt422016.AcquireByteBuffer()
-//line base.qtpl:44
+//line base.qtpl:54
p.WriteScript(qb422016)
-//line base.qtpl:44
+//line base.qtpl:54
qs422016 := string(qb422016.B)
-//line base.qtpl:44
+//line base.qtpl:54
qt422016.ReleaseByteBuffer(qb422016)
-//line base.qtpl:44
+//line base.qtpl:54
return qs422016
-//line base.qtpl:44
+//line base.qtpl:54
}