aboutsummaryrefslogtreecommitdiff
path: root/example-site/tpl
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2022-09-17 11:41:20 -0400
committerMitchell Riedstra <mitch@riedstra.dev>2022-09-17 11:41:20 -0400
commitccc26c3a0bb65ae2613e222c3ead7f6db377b483 (patch)
tree6124ae75f557fffe863134b967ee7c6bfcc87d3d /example-site/tpl
parentbf7d9c79cae53f64fcd04527248987bd4e7ca3c4 (diff)
downloadgo-website-0.0.18.tar.gz
go-website-0.0.18.tar.xz
More work on the editor and update the example site to utilize it.v0.0.18
Diffstat (limited to 'example-site/tpl')
-rw-r--r--example-site/tpl/4xx.md7
-rw-r--r--example-site/tpl/5xx.md30
-rw-r--r--example-site/tpl/base.md77
-rw-r--r--example-site/tpl/dashboard.md53
-rw-r--r--example-site/tpl/edit.md27
-rw-r--r--example-site/tpl/new-template.md55
6 files changed, 249 insertions, 0 deletions
diff --git a/example-site/tpl/4xx.md b/example-site/tpl/4xx.md
new file mode 100644
index 0000000..3b0103b
--- /dev/null
+++ b/example-site/tpl/4xx.md
@@ -0,0 +1,7 @@
+---
+title: Page not found
+description: Page not found
+|---
+# {{.Title}}
+
+That's all we know. Perhaps you'd like to go back to the [home page](/)?
diff --git a/example-site/tpl/5xx.md b/example-site/tpl/5xx.md
new file mode 100644
index 0000000..43b28b6
--- /dev/null
+++ b/example-site/tpl/5xx.md
@@ -0,0 +1,30 @@
+---
+title: Server Error
+description: Server Error
+|---
+{{if .Vars}}
+
+{{if .Vars.Error}}
+{{.Vars.Error}}
+{{else}}
+# Internal server error <!--no detailed message available -->
+{{end}}
+
+{{else}}
+# Internal server error
+{{end}}
+
+{{if .Vars}}
+
+{{if .Vars.Description}}
+{{.Vars.Description}}
+{{else}}
+That's all we know.
+<!-- No detailed description available -->
+{{end}}
+
+{{else}}
+That's all we know.
+{{end}}
+
+Perhaps you'd like to go back to the [home page](/)?
diff --git a/example-site/tpl/base.md b/example-site/tpl/base.md
new file mode 100644
index 0000000..97842c1
--- /dev/null
+++ b/example-site/tpl/base.md
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+
+ <link id="maincss" rel="stylesheet" href="/static/style.css" defer>
+
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ {{if .AuthorName }}
+ <meta name="author" content="{{.AuthorName}}">
+ {{else if .Global.App.Author.Name }}
+ <meta name="author" content="{{.Global.App.Author.Name}}">
+ {{else}}
+ {{end}}
+
+{{if .Title}}
+ <title>{{.Title}}</title>
+{{else}}
+ <title>Please change me!</title>
+{{end}}
+
+{{if .Description}}
+ <meta name="description" content="{{.Description}}">
+{{else}}
+ <meta name="description" content="Draft and or Preview page. Default Description.">
+{{end}}
+
+</head>
+
+<body>
+
+{{if .Description}}{{else}}
+ <h1>
+ <span style="color: red;">
+ This is a draft, preview or otherwise unfinished page.
+ </span>
+ </h1>
+{{end}}
+
+{{block "nav" .}}
+<nav>
+ | <a href="/">Home</a> |
+ <div style="display: block; float: right;">
+ | <a href="#">Git</a>
+ {{if .Vars.LoggedIn}}
+<span id="edit">| <a href="#" onClick="editThisPage()">Edit</a></span>
+ | <a href="/dashboard">Dashboard</a>
+ | <a href="/logout">Logout</a> |
+ {{else}}
+ | <a href="/login">Login</a>
+ {{end}}
+ </div>
+</nav>
+{{end}}
+
+{{.RenderBody}}
+
+
+{{if .Vars.LoggedIn}}
+<script>
+function editThisPage()
+{
+ if(window.location.pathname == "/") {
+ window.location = "/edit/index";
+ return;
+ }
+ if(window.location.pathname == "/dashboard") {
+ window.location = "/edit/tpl/dashboard";
+ return;
+ }
+ window.location = "/edit/" + window.location.pathname;
+}
+</script>
+{{end}}
+</body>
+
diff --git a/example-site/tpl/dashboard.md b/example-site/tpl/dashboard.md
new file mode 100644
index 0000000..9b90445
--- /dev/null
+++ b/example-site/tpl/dashboard.md
@@ -0,0 +1,53 @@
+---
+title: Website Dashboard
+description: Website dashboard
+|---
+
+# Dashboard page ( File: `tpl/dashboard.md` )
+
+Almost every page on the website can be edited by simply adding `edit/` before
+the path, for instance if we want to edit our `/reIndex` page, we simply go to
+`/edit/reIndex`
+
+There are a few pages where this is not possible, such as with the dashboard and
+other templated pages like 404's and 5xx's. That being said, you can still edit
+them by referencing their path on disk.
+
+You can create new pages that way too, the new page template is
+`tpl/new-template.md` if you wish to change what the defaults are.
+
+You'll also notice there's an `edit` button in the navbar, that's a little bit
+of Javascript trickery that you'll have to edit if you wish to change the
+template directory from `tpl` to anything else.
+
+Some useful edit links:
+
+ * 4xx page [visit](/some/path/that/does/not/exist) [edit](/edit/tpl/4xx)
+ * 5xx page [visit](/tpl/5xx) [edit](/edit/tpl/5xx)
+ * New page template [visit](/tpl/new-template) [edit](/edit/tpl/new-template)
+ * Edit page [visit](/tpl/edit) [edit](/edit/tpl/edit)
+ * Login page [visit](/login) [edit](/edit/login)
+ * Base template [edit](/edit/tpl/base)
+
+A note about the base template page, editing works, but viewing does not.
+
+Pages by tags:
+
+{{range $key, $val := .Index}}
+### {{$key}}:
+
+{{range $v2 := $val}}
+ * {{$v2.Path}} [visit](/{{$v2.Path}}) [edit](/edit/{{$v2.Path}}){{end}}
+
+
+
+{{end}}
+
+
+<script>
+/*
+window.addEventListener('load', (event) => {
+ document.querySelector("#edit").remove();
+});
+*/
+</script>
diff --git a/example-site/tpl/edit.md b/example-site/tpl/edit.md
new file mode 100644
index 0000000..4e55f82
--- /dev/null
+++ b/example-site/tpl/edit.md
@@ -0,0 +1,27 @@
+---
+title: Editing Page
+description: Editor
+|---
+
+<form action="/edit/{{.Vars.Page}}" method="POST">
+<br />
+<label for="content">Page content:</label><br />
+<br />
+
+
+<textarea id="content" name="content" rows="24" cols="80">
+{{.Vars.Content}}
+</textarea>
+
+<br />
+<input type="submit" value="save">
+</form>
+
+
+<!-- test -->
+
+<script>
+window.addEventListener('load', (event) => {
+ document.querySelector("#edit").remove();
+});
+</script>
diff --git a/example-site/tpl/new-template.md b/example-site/tpl/new-template.md
new file mode 100644
index 0000000..c4fdd95
--- /dev/null
+++ b/example-site/tpl/new-template.md
@@ -0,0 +1,55 @@
+---
+# This is the contents of the `tpl/new-template.md` file. You're likely seeing
+# This because you've created a new page, or are trying to edit a page that
+# does not exist. To save yourself some confusion in the future, if you save
+# This page it may be helpful to delete this first paragraph, as it will no
+# longer be true.
+
+# This top section is YAML, this sets up a few of the variables for rendering
+# a web page. Below is also some markdown that's executed as a go template
+# for the page's content
+
+# You can edit this page by editing `tpl/new-template` If you changed the
+# template directory, take that into account.
+
+# Controls whether or not the page is published, this includes the
+# Atom/RSS feed
+published: false
+# What tags should be applied to this page?
+# The default index/home page shows a list of published blog pages
+tags:
+ Blog:
+# This is the meta description, i.e. what you're going to seeing the little blurb
+# if you post the link to in say a discord chat. It's also what shows up in
+# Google and other search engines
+description: >-
+ This is an example description. Note that the line starts with spaces, and
+ not tabs.
+title: New page from `new-template`
+# Used for the RSS/Atom feed, you can also use it in the template below
+date: 09.11.2022 09:59:00 EDT
+
+# This line tells our server to stop parsing yaml and start processing
+# the rest of the text file as a markdown template
+|---
+
+{{/* This is a comment inside of the template */}}
+
+{{/*
+ Print out the date, format information can be found here:
+ https://pkg.go.dev/time#pkg-constants
+*/}}
+`{{.Date.Time.Format "Monday January 2 2006"}}`
+
+# {{.Title}}
+
+Some documentation on the templating language can be found [here](
+https://pkg.go.dev/text/template)
+
+
+A nice markdown reference can be found
+[here](https://www.markdownguide.org/basic-syntax/)
+
+
+Additionally <span style="color: red;">html tags</span> can be used in here as well.
+