diff options
| author | gramanas <grm@eyesin.space> | 2026-09-12 11:24:17 +0300 |
|---|---|---|
| committer | gramanas <grm@eyesin.space> | 2026-09-12 11:24:17 +0300 |
| commit | 3eb04b1a2bdf9e53231fe862cfd76327371a9741 (patch) | |
| tree | b38b2d82a47233fd8e0bb18c59e4a8f3dd2412d7 /internal/web/templates/partials | |
| download | blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.tar.gz blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.tar.bz2 blogspace-3eb04b1a2bdf9e53231fe862cfd76327371a9741.zip | |
Initial multi-tenant blog host
Go + Postgres application serving a management dashboard on the base
domain and one public blog per subdomain. Markdown posts organised in
pages, form-based theme customisation, image uploads stored in Postgres,
JWT cookie sessions with CSRF, superadmin user management, RSS feeds.
Docker/compose deployment and a Makefile-driven dev environment with
seed data.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sd8UPWrvyYCLj97JexNw3A
Diffstat (limited to 'internal/web/templates/partials')
| -rw-r--r-- | internal/web/templates/partials/dashnav.html | 27 | ||||
| -rw-r--r-- | internal/web/templates/partials/imagepick.html | 11 | ||||
| -rw-r--r-- | internal/web/templates/partials/mdhelp.html | 9 |
3 files changed, 47 insertions, 0 deletions
diff --git a/internal/web/templates/partials/dashnav.html b/internal/web/templates/partials/dashnav.html new file mode 100644 index 0000000..13a04d0 --- /dev/null +++ b/internal/web/templates/partials/dashnav.html @@ -0,0 +1,27 @@ +{{define "dashnav"}}<div class="topbar"> + <div class="topbar-inner"> + <a class="brand" href="/">Blogspace</a> + {{if .User}} + <span class="who">{{.User.Username}}{{if .User.IsSuperadmin}} (superadmin){{end}}</span> + <span class="links"> + {{if .User.IsSuperadmin}}<a href="/admin/">Admin</a>{{end}} + <a href="/account/password">Password</a> + <form method="post" action="/logout" class="inline"><input type="hidden" name="_csrf" value="{{.CSRF}}"><button type="submit" class="linkbtn">Log out</button></form> + </span> + {{end}} + </div> +</div> +{{if .Blog}} +<div class="blogbar"> + <div class="topbar-inner"> + <strong class="blogname">{{.Blog.Title}}</strong> + <a href="/b/{{.Blog.Subdomain}}/">Overview</a> + <a href="/b/{{.Blog.Subdomain}}/posts">Posts</a> + <a href="/b/{{.Blog.Subdomain}}/pages">Pages</a> + <a href="/b/{{.Blog.Subdomain}}/design">Design</a> + <a href="/b/{{.Blog.Subdomain}}/images">Images</a> + <a href="/b/{{.Blog.Subdomain}}/settings">Settings</a> + <a class="view" href="{{.BlogURL}}" target="_blank">View blog ↗</a> + </div> +</div> +{{end}}{{end}} diff --git a/internal/web/templates/partials/imagepick.html b/internal/web/templates/partials/imagepick.html new file mode 100644 index 0000000..687c6cd --- /dev/null +++ b/internal/web/templates/partials/imagepick.html @@ -0,0 +1,11 @@ +{{define "imagepick"}}<div class="imagepick"> + <label>{{.label}}<br> + <select name="{{.name}}"> + <option value="">{{if .current}}(keep current){{else}}(none){{end}}</option> + {{range .images}}<option value="{{.ID}}"{{if eq .ID.String $.current}} selected{{end}}>{{.Filename}}</option>{{end}} + </select> + </label> + <label>…or upload a new one<br><input type="file" name="{{.name}}_file" accept="image/*"></label> + {{if .current}}<label class="check"><input type="checkbox" name="{{.name}}_remove"> Remove image</label> + <img class="preview" src="/media/{{.current}}" alt="">{{end}} +</div>{{end}} diff --git a/internal/web/templates/partials/mdhelp.html b/internal/web/templates/partials/mdhelp.html new file mode 100644 index 0000000..878130e --- /dev/null +++ b/internal/web/templates/partials/mdhelp.html @@ -0,0 +1,9 @@ +{{define "mdhelp"}}<div class="card help"> + <h3>Formatting cheat-sheet</h3> + <table class="cheat"> + <tr><td><code># Heading</code>, <code>## Smaller heading</code></td><td><code>**bold**</code>, <code>*italic*</code></td></tr> + <tr><td><code>[link text](https://example.org)</code></td><td><code></code> — copy the address from <em>Images</em></td></tr> + <tr><td><code>- list item</code> / <code>1. numbered</code></td><td><code>> quote</code>, <code>`code`</code>, <code>---</code> for a line</td></tr> + </table> + <p class="muted">Blank line = new paragraph. Press Enter once for a line break.</p> +</div>{{end}} |
