Okay nevermind

This commit is contained in:
DutchEllie 2022-03-01 14:26:39 +01:00
parent 95fecdb9db
commit 53ff85cb15
Signed by: DutchEllie
SSH Key Fingerprint: SHA256:dKq6ZSgN5E3Viqrw/+xAdf2VdR6hdRGNyrYqXXwfjTY
9 changed files with 39 additions and 187 deletions

View File

@ -1,41 +0,0 @@
package main
import (
"fmt"
"os"
"git.home.dutchellie.nl/DutchEllie/proper-website-2/internal/pages"
"git.home.dutchellie.nl/DutchEllie/proper-website-2/internal/templatelib"
"github.com/gin-gonic/gin"
)
func main() {
port := os.Getenv("SRV_PORT")
if port == "" {
msg := `Website writen in Go!
Please include all the proper environment variables:
- "SRV_PORT" <number of the exposing port>
`
fmt.Println(msg)
return
}
address := ":" + port
lib, err := templatelib.NewTemplateLibrary("../../website/templates")
if err != nil {
fmt.Println(err)
return
}
router, _ := setupRouter(lib)
router.Run(address)
}
func setupRouter(lib templatelib.TemplateLibrary) (*gin.Engine, error) {
router := gin.Default()
pages.RegisterHandlers(router.Group("/"), pages.NewService(pages.NewRepository(&lib)))
return router, nil
}

View File

@ -1,24 +0,0 @@
package pages
import (
"context"
"html/template"
"git.home.dutchellie.nl/DutchEllie/proper-website-2/internal/templatelib"
)
type Repository interface {
Page(ctx context.Context, name string) (*template.Template, error)
}
func NewRepository(lib *templatelib.TemplateLibrary) Repository {
return repository{lib}
}
type repository struct {
library *templatelib.TemplateLibrary
}
func (r repository) Page(ctx context.Context, name string) (*template.Template, error) {
return r.library.Templates[name], nil
}

View File

@ -1,26 +0,0 @@
package pages
import (
"net/http"
"github.com/gin-gonic/gin"
)
func RegisterHandlers(r *gin.RouterGroup, service Service) {
res := resource{service}
r.GET("/index", res.getindex)
}
type resource struct {
service Service
}
func (r resource) getindex(c *gin.Context) {
page, err := r.service.Page(c.Request.Context(), "index")
if err != nil {
c.AbortWithStatus(http.StatusInternalServerError)
}
page.template.Execute(c.Writer, nil)
}

View File

@ -1,31 +0,0 @@
package pages
import (
"context"
"html/template"
)
type Service interface {
Page(ctx context.Context, name string) (Page, error)
}
type Page struct {
template *template.Template
}
type service struct {
repository Repository
//logger log.Logger
}
func NewService(r Repository) Service {
return service{r}
}
func (s service) Page(ctx context.Context, name string) (Page, error) {
page, err := s.repository.Page(ctx, name)
if err != nil {
return Page{}, err
}
return Page{page}, nil
}

View File

@ -1,46 +0,0 @@
package templatelib
import (
"html/template"
"path/filepath"
)
type TemplateLibrary struct {
Templates map[string]*template.Template
}
func NewTemplateLibrary(dir string) (TemplateLibrary, error) {
t := make(map[string]*template.Template)
pages, err := filepath.Glob(filepath.Join(dir, "*.page.tmpl"))
if err != nil {
return TemplateLibrary{}, err
}
for _, page := range pages {
name := filepath.Base(page)
ts, err := template.ParseFiles(page)
if err != nil {
return TemplateLibrary{}, err
}
// Use the ParseGlob method to add any 'layout' templates to the
// template set (in our case, it's just the 'base' layout at the
// moment).
ts, err = ts.ParseGlob(filepath.Join(dir, "*.layout.tmpl"))
if err != nil {
return TemplateLibrary{}, err
}
// Use the ParseGlob method to add any 'partial' templates to the
// template set (in our case, it's just the 'footer' partial at the
// moment).
ts, err = ts.ParseGlob(filepath.Join(dir, "*.partial.tmpl"))
if err != nil {
return TemplateLibrary{}, err
}
t[name] = ts
}
return TemplateLibrary{Templates: t}, nil
}

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="static/style.css"> <link rel="stylesheet" href="static/style.css">
<link rel="stylesheet" href="anisha.css?family=anisha"> <link rel="stylesheet" href="static/anisha.css?family=anisha">
<title>Index</title> <title>Index</title>
</head> </head>
<body> <body>
@ -14,10 +14,13 @@
</div> </div>
<div class="main"> <div class="main">
<div class="navbar"> <div class="navbar">
<ul>
<li><a href="base.html">Home</a></li>
</ul>
</div> </div>
<div class="content"> <div class="content">
Dit is eigenlijk 1 van die dingen die steeds kan veranderen
Deze doet dat
</div> </div>
</div> </div>
</body> </body>

View File

@ -17,4 +17,37 @@ body {
background-color: rgb(54, 39, 48); background-color: rgb(54, 39, 48);
font-size: 5em; font-size: 5em;
font-family: anisha; font-family: anisha;
text-align: center;
}
.main {
margin-top: 5px;
}
.navbar {
border: 3px solid;
border-radius: 4px;
border-color: rgb(252, 230, 255);
background-color: rgb(54, 39, 48);
position: relative;
float:left;
width: 250px;
text-decoration: none;
list-style: none;
}
.navbar a, a:link, a:visited{
text-decoration: none;
color:rgb(252, 230, 255)
}
.content {
border: 3px solid;
border-radius: 4px;
border-color: rgb(252, 230, 255);
background-color: rgb(54, 39, 48);
position: relative;
float:right;
width: 633px;
} }

View File

@ -1,16 +0,0 @@
{{ define "base" }}
<!doctype html>
<html lang='en'>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>{{template "title" .}}</title>
</head>
<body>
<header>
<h1></h1>
</header>
</body>
</html>
{{ end }}