Implement automated scheduled publishing for blog

- Enhanced blog library to read from both posts/ and scheduled/ directories
- Added publishDate filtering with real-time checking (no cron jobs needed)
- Support for draft posts and recursive directory scanning
- Posts automatically appear when publishDate is reached
- Containerized solution that works without external scheduling
- Added publishDate field to blog types and updated existing scheduled post

Tested and verified:
 Past-dated posts appear automatically
 Future-dated posts remain hidden until publish time
 Draft posts are excluded regardless of date
 Maintains existing functionality for regular posts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-08-28 02:09:38 +10:00
parent 91c1cb9e5b
commit 5e53840371
12 changed files with 347 additions and 130 deletions

View File

@@ -23,7 +23,7 @@ export default function BlogHeader() {
? 'bg-white/80 dark:bg-carbon-950/80 backdrop-blur-md border-b border-carbon-200/50 dark:border-carbon-800/50'
: 'bg-white/20 dark:bg-carbon-950/20 backdrop-blur-sm'
}`}>
<nav className="blog-container py-4">
<nav className="blog-container py-chorus-lg">
<div className="flex items-center justify-between">
<Link href="/" className="flex items-center space-x-3 group">
<div className="w-14 h-14 group-hover:scale-110 transition-transform">
@@ -35,25 +35,29 @@ export default function BlogHeader() {
</div>
</Link>
<div className="hidden md:flex items-center space-x-8">
<Link
href="https://chorus.services"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-semibold"
>
Home
</Link>
<Link
href="/"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-medium"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-semibold"
>
All Posts
</Link>
<Link
{/* <Link
href="/tags"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-medium"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-semibold"
>
Topics
</Link>
<Link
href="https://chorus.services"
className="text-carbon-600 dark:text-carbon-300 hover:text-carbon-900 dark:hover:text-carbon-100 transition-colors font-medium"
>
About CHORUS
</Link>
</Link> */}
</div>
<div className="flex items-center space-x-4">