Commit Graph

20 Commits

Author SHA1 Message Date
Ty Clifford 798ea7c649 - I removed the visible helper copy from the CMS:
Search fields now show only Search, with aria-label="Search posts and 
pages" for screen readers.
Social links now show only GitHub, Mastodon, RSS, with “opens in a new 
tab” moved into aria-label.
Removed the now-unused .sr-only CSS rule.
Changed 
[layout.php](/Users/tyemeclifford/Documents/GH/blog/themes/neon/layout.php) 
and 
[style.css](/Users/tyemeclifford/Documents/GH/blog/themes/neon/assets/style.css).
2026-07-05 23:43:26 -04:00
Ty Clifford 75d38d4eb8 - I made both surfaces friendlier to screen readers.
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.
2026-07-05 23:36:27 -04:00
Ty Clifford 0b28e719ee - Readme 2026-07-05 21:34:14 -04:00
Ty Clifford df56bfd57c - Added native confirmation sheets in the Mac client.
Manual content actions now confirm clearly:
Draft shows “Draft Saved”
Publish shows “Published”
Update shows “Updated”
Delete first asks “Delete Post/Page?” and then shows “Deleted” after the 
API succeeds
Autosave stays quiet so it does not spam popups.
Updated:
[macclient/AppKitClient/main.m](/Users/tyemeclifford/Documents/GH/blog/macclient/AppKitClient/main.m)
[macclient/README.md](/Users/tyemeclifford/Documents/GH/blog/macclient/README.md)
[CHANGELOG.md](/Users/tyemeclifford/Documents/GH/blog/CHANGELOG.md)
2026-07-05 21:22:17 -04:00
Ty Clifford 3e7cea4491 - The public blog theme now has a post lightbox slideshow.
Changed:
[themes/neon/assets/app.js](/Users/tyemeclifford/Documents/GH/blog/themes/neon/assets/app.js)
Scans each single post’s .markdown content.
Collects images, native videos, shortcode/video iframes, and direct 
image/video links.
Opens media in a lightbox with Previous/Next, count, caption, Escape 
close, and arrow-key navigation.
Clicking a displayed image advances to the next item.

[themes/neon/assets/style.css](/Users/tyemeclifford/Documents/GH/blog/themes/neon/assets/style.css)
Added clickable media styling, embed “View” buttons, and responsive 
lightbox layout.
Works in dark and light modes.

[CHANGELOG.md](/Users/tyemeclifford/Documents/GH/blog/CHANGELOG.md)
Added the feature note.
2026-07-05 18:43:51 -04:00
Ty Clifford d0496c93f3 - The Mac client’s Media tab now has pagination and a preview/play area.
What changed in 
[main.m](/Users/tyemeclifford/Documents/GH/blog/macclient/AppKitClient/main.m):
Media list now paginates with Previous/Next and 10/25/50/100 per page.
Selecting an image loads an inline preview.
Selecting audio/video loads an AVPlayerView with native playback 
controls.
Added an Open button and double-click support to open media in the 
default Mac app.
Media file sizes now display as readable values like 1.4 MB.
I also updated 
[build-app.sh](/Users/tyemeclifford/Documents/GH/blog/macclient/build-app.sh) 
to link AVKit and AVFoundation, and to honor the app’s 
CFBundleExecutable from Info.plist so the rebuilt bundle launches with 
the expected TCMS executable.
2026-07-05 18:32:07 -04:00
Ty Clifford c391feb450 - Update now reads the live editor text from NSTextStorage instead of relying on any stale editor state, sends it as markdown plus compatibility aliases, and refuses to overwrite the editor with stale Markdown if the server response doesn’t echo the new content.
I also updated [api.php](/Users/tyemeclifford/Documents/GH/blog/api.php) 
so content.save accepts markdown, content, or body for post/page 
content.
2026-07-05 17:15:33 -04:00
Ty Clifford ddaefbcc27 - auth / Mac app rebuild 2026-07-05 16:23:17 -04:00
Ty Clifford 729b29276f - API, Mac client 2026-07-05 15:58:51 -04:00
Ty Clifford 9dbd29d8aa - Shortcodes 2026-07-04 21:53:18 -04:00
Ty Clifford bb93bf58fe - Parser additions, pagination 2026-07-04 20:29:34 -04:00
Ty Clifford c4c10c256c - branding 2026-07-04 20:19:56 -04:00
Ty Clifford bd0bfdc09f - Import 2026-07-04 20:14:52 -04:00
Ty Clifford 94aea8501f - Fixed the subdirectory loading issue.
Changed:
[app/View.php](/Users/tyemeclifford/Documents/GH/blog/app/View.php): 
generated URLs now honor a base path like /blog.
[app/Config.php](/Users/tyemeclifford/Documents/GH/blog/app/Config.php): 
added base_path support and derives it from base_url or SCRIPT_NAME.
[app/App.php](/Users/tyemeclifford/Documents/GH/blog/app/App.php): route 
parsing strips the base path, and PHP can safely serve theme/upload 
assets for virtual subdirectory previews.
[.htaccess](/Users/tyemeclifford/Documents/GH/blog/.htaccess): removed 
hardcoded RewriteBase /.
[themes/neon/layout.php](/Users/tyemeclifford/Documents/GH/blog/themes/neon/layout.php): 
root-relative social links like /feed.xml now become /blog/feed.xml.
[README.md](/Users/tyemeclifford/Documents/GH/blog/README.md): 
documented subdirectory setup.
2026-07-04 19:54:54 -04:00
Ty Clifford 782b983bf4 - new blog cms 2026-07-04 19:41:44 -04:00
Ty Clifford 64cb76a846 - Rewrote the search internals in [plugin.php](/Users/tyemeclifford/Documents/GH/blog/bl-plugins/search/plugin.php).
What changed:
Replaced the cache/search/scoring flow with a simpler weighted search.
Search cache now stores only plain page fields: title, description, raw 
content, tags, category.
Removed the persisted normalized search payloads and legacy helper 
paths.
Search renders through normal listing templates for theme compatibility.
Added fail-open behavior: unexpected search errors log and return no 
results instead of blanking the page.
Kept excerpts and highlighting, but made them plain-text based and 
safer.
2026-07-03 09:43:18 -04:00
Ty Clifford d149a0bf8f - Fixed the cross-theme blank search issue in [plugin.php](/Users/tyemeclifford/Documents/GH/blog/bl-plugins/search/plugin.php).
The important change: search still intercepts the route early, but 
before themes render it now feeds results through the normal 
home/listing state. That avoids themes going blank when they do not know 
how to render a custom search state.
I also made search safer:
Indexes raw page text instead of fully rendered content.
Uses raw content for excerpts.
Guards the search call so exceptions do not white-screen the page.
Updated Dark Neon so it still detects search pages correctly after this 
compatibility change.
2026-07-03 09:34:49 -04:00
Ty Clifford 9d9790976a - I patched the likely search blank-page cause in [plugin.php](/Users/tyemeclifford/Documents/GH/blog/bl-plugins/search/plugin.php).
What changed:
Removed the enlarged nested search cache fields I had added, which could 
push larger sites into memory/time failures.
Added a self-heal so existing oversized search caches regenerate into 
the smaller format.
Stopped fuzzy matching against full body content; it now only fuzzes 
title/tags/category/description.
Hardened search-term splitting and malformed input handling.
2026-07-03 09:29:37 -04:00
Ty Clifford efcde2a393 - 2026-07-03 09:19:23 -04:00
Ty Clifford cebb0d3af1 - 2026-07-03 07:31:09 -04:00