75d38d4eb8
CMS changes landed in [layout.php](/Users/tyemeclifford/Documents/GH/blog/themes/neon/layout.php), [style.css](/Users/tyemeclifford/Documents/GH/blog/themes/neon/assets/style.css), [app.js](/Users/tyemeclifford/Documents/GH/blog/themes/neon/assets/app.js), and [lone-embed.php](/Users/tyemeclifford/Documents/GH/blog/lone-embed.php): skip link, named search/forms, current page state, live notices/empty states, labelled media/embed controls, visible focus states, theme control pressed states, and a focus-trapped/lightbox dialog with proper ARIA. Mac app changes landed in [main.m](/Users/tyemeclifford/Documents/GH/blog/macclient/AppKitClient/main.m), and I rebuilt [TCMS](/Users/tyemeclifford/Documents/GH/blog/macclient/TCMS.app/Contents/MacOS/TCMS): AppKit controls/tables/fields/previews now get accessibility labels/help/value text, workspace sections are named, media/comment tables expose useful context, and status messages are announced via macOS accessibility notifications.
TCMS
Native AppKit macOS 12+ client for Ty Clifford's Content Management System.
Run
cd macclient
./build-app.sh
open TCMS.app
The built app bundle is written to macclient/TCMS.app.
Connect
Point the client at any TCMS install URL, such as:
https://example.com/blog
http://127.0.0.1:8097
The client automatically calls api.php under that URL. Enter the username/password stored in the site's .env.
Features
- Create, edit, update, draft, publish, and delete posts and pages.
- Page through large post/page lists with configurable per-page counts.
- Toggle spell check and auto-correct in the Markdown editor.
- Use standard Mac shortcuts, including Command-S for Update, Command-Comma for Settings, and Command-Q for Quit.
- Confirm successful draft, publish, update, and delete actions with native sheets.
- Upload media to
bl-content/uploads. - Page through media, preview images, play audio/video, and open files in the default Mac app.
- Upload media from the editor and insert the correct Markdown image, video shortcode, audio tag, or link automatically.
- Right-click media to copy its URL or a ready-to-paste Markdown embed.
- List and moderate comments.
- Local autosave to Application Support.
- Optional remote autosave as draft.
- Configurable autosave interval.