Embed templates and static files

This commit is contained in:
Maximilian Friedersdorff 2025-06-25 22:43:34 +01:00
parent 868d2a7bbd
commit 8edd857d22
11 changed files with 31 additions and 17 deletions

View file

@ -0,0 +1,36 @@
{{define "base"}}
<!doctype html>
<html lang='en'>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{template "title" .}}</title>
<link href="/static/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-sm bg-body-tertiary mb-3">
<div class="container-fluid">
<a class="navbar-brand" href="#">GoNotes</a>
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="/notes/">All Notes</a>
</li>
</ul>
</div>
</nav>
<div class="container">
<div class="row justify-content-md-center">
<div class="col-md-6">
<h1>{{template "title" .}}</h1>
<main>
{{template "main" .}}
</main>
</div>
</div>
</div>
</body>
</html>
{{end}}

View file

@ -0,0 +1,32 @@
{{define "title"}}Edit {{.note.Title}}{{end}}
{{define "main"}}
<form action="{{.urlSave}}" method="POST">
<div class="mb-3">
<input type="text" class="form-control" id="noteTitleInput" name="title" aria-described-by="titleHelp" value="{{.note.Title}}"/>
<div id="titleHelp" class="form-text">Enter your note title</div>
</div>
<div class="mb-3">
<div class="border rounded rounded-1">
<div id="toolbar"></div>
<textarea class="form-control" id="noteBodyInput" name="body" aria-described-by="bodyHelp">{{.text}}</textarea>
</div>
<div id="bodyHelp" class="form-text">Enter your note content in markdown</div>
</div>
<button class="btn btn-primary" type="submit">Save</button>
</form>
<script src="/static/js/tiny-mde.min.js"></script>
<link
rel="stylesheet"
type="text/css"
href="/static/css/tiny-mde.min.css"
/>
<script type="text/javascript">
var tinyMDE = new TinyMDE.Editor({ textarea: "noteBodyInput" });
var commandBar = new TinyMDE.CommandBar({
element: "toolbar",
editor: tinyMDE,
});
</script>
{{end}}

View file

@ -0,0 +1,12 @@
{{define "title"}}All Notes{{end}}
{{define "main"}}
<div class="list-group list-group-flush">
{{range $title := .titles}}
<a class="list-group-item list-group-item-action d-flex justify-content-between"
href="{{$title}}/">
<span>{{$title}}</span>
<img src="/static/icons/eye.svg" alt="Edit">
</a>
{{end}}
</div>
{{end}}

View file

@ -0,0 +1,11 @@
{{define "title"}}{{.note.Title}}{{end}}
{{define "main"}}
<div>
{{.note.BodyRendered}}
</div>
<div class="d-flex justify-content-between">
<a class="btn btn-primary" href="{{.urlEdit}}">Edit</a>
<a class="btn btn-danger" href="{{.urlDelete}}">Delete</a>
</div>
{{end}}