Okay nevermind
This commit is contained in:
parent
95fecdb9db
commit
53ff85cb15
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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)
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
|
@ -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 }}
|
|
Loading…
Reference in New Issue