aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorgrm <grm@eyesin.space>2026-09-12 12:33:57 +0300
committergrm <grm@eyesin.space>2026-09-12 12:33:57 +0300
commitdd13e4b73a105ee416b6cfd8eb19b217622c0031 (patch)
tree93ce503a09b99115efeeee6cd1a85781c1674b02 /README.md
parent2b450b66fee4906e746f6e04a6d07a72ff2faf64 (diff)
downloadblogspace-dd13e4b73a105ee416b6cfd8eb19b217622c0031.tar.gz
blogspace-dd13e4b73a105ee416b6cfd8eb19b217622c0031.tar.bz2
blogspace-dd13e4b73a105ee416b6cfd8eb19b217622c0031.zip
Add announcements: blog-wide notices on every page and post
A blog can have any number of announcements ("sections" in the schema): a book club's next meeting, this month's pick, a holiday closure. Each has a placement (above or below the posts, or under the menu when the menu is a left sidebar), a look (highlighted, warning, plain), an order, and an on/off switch so recurring notices can be kept around while hidden. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sd8UPWrvyYCLj97JexNw3A
Diffstat (limited to 'README.md')
-rw-r--r--README.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/README.md b/README.md
index 3e0542e..6b22a4b 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,11 @@ A small multi-tenant blog host. One Go binary + Postgres. Bloggers log in at
`example.com` to manage their blog; each blog is served at `<name>.example.com`.
Server-rendered HTML, no JavaScript required, works on old browsers and phones.
-- Posts and page intros are written in **Markdown** (sanitized on save).
+- Posts and page intros are written in **Markdown** (sanitized on save). Images can be
+ inserted straight from the editor (file picker, paste or drag-and-drop; with JavaScript
+ off the file is appended on save).
+- **Announcements**: blog-wide notices (next meeting, this month's book, a closure)
+ shown above or below the posts, or under the menu; each can be hidden without deleting.
- Every blog has **pages** (Home, About, News, …); each page holds posts.
- **Design** form: background colour/image, fonts, widths, header, menu position, footer.
- Changes are live immediately: save, then refresh the blog tab.
@@ -95,7 +99,7 @@ Images live in the database, so that one dump is everything.
cmd/blogspace/ main (serve | seed | migrate)
internal/config/ environment → Config
internal/db/ pgx pool + goose migrations (embedded SQL)
-internal/store/ models and queries (users, blogs, pages, posts, images)
+internal/store/ models and queries (users, blogs, pages, posts, images, sections)
internal/auth/ bcrypt, JWT cookie sessions, CSRF tokens
internal/markdown/ goldmark + bluemonday
internal/slug/ title → slug