Enhance blog features and improve backend functionality
- Added a VS Code-style editor with YAML frontmatter support and live preview. - Implemented force reparse functionality for immediate updates of posts. - Improved directory scanning with error handling and automatic directory creation. - Introduced new CLI commands for cache management: `reinterpret-all` and `reparse-post`. - Enhanced logging for better debugging and monitoring of the Rust backend. - Updated README to reflect new features and improvements.
This commit is contained in:
107
README.md
107
README.md
@@ -20,6 +20,9 @@ A modern, feature-rich blog system built with **Next.js 14**, **TypeScript**, **
|
||||
- **🎯 Content Management**: Drag & drop file uploads, post editing, and deletion
|
||||
- **📦 Export Functionality**: Export all posts as tar.gz archive (Docker only)
|
||||
- **💾 Smart Caching**: RAM-based caching system for instant post retrieval
|
||||
- **🔧 VS Code-Style Editor**: Monaco editor with YAML frontmatter support and live preview
|
||||
- **🔄 Force Reparse**: Manual cache clearing and post reparsing for immediate updates
|
||||
- **📁 Reliable Directory Scanning**: Robust file system traversal with error handling
|
||||
|
||||
---
|
||||
|
||||
@@ -43,13 +46,15 @@ A modern, feature-rich blog system built with **Next.js 14**, **TypeScript**, **
|
||||
markdownblog/
|
||||
├── markdown_backend/ # Rust backend for markdown processing
|
||||
│ ├── src/
|
||||
│ │ ├── main.rs # CLI interface and command handling
|
||||
│ │ └── markdown.rs # Markdown parsing, caching, and file watching
|
||||
│ ├── Cargo.toml # Rust dependencies and configuration
|
||||
│ └── target/ # Compiled Rust binaries
|
||||
│ │ ├── main.rs # CLI interface and command handling
|
||||
│ │ └── markdown.rs # Markdown parsing, caching, and file watching
|
||||
│ ├── Cargo.toml # Rust dependencies and configuration
|
||||
│ └── target/ # Compiled Rust binaries
|
||||
├── src/
|
||||
│ ├── app/ # Next.js 14 App Router
|
||||
│ ├── app/ # Next.js 14 App Router
|
||||
│ │ ├── admin/ # Admin dashboard pages
|
||||
│ │ │ ├── editor/ # VS Code-style editor
|
||||
│ │ │ │ └── page.tsx # Markdown editor with Monaco
|
||||
│ │ │ ├── manage/ # Content management interface
|
||||
│ │ │ │ ├── page.tsx # Manage posts and folders
|
||||
│ │ │ │ └── rust-status/ # Rust backend monitoring
|
||||
@@ -84,8 +89,12 @@ markdownblog/
|
||||
│ │ │ └── posts/ # Public post API
|
||||
│ │ │ ├── [slug]/ # Dynamic post API routes
|
||||
│ │ │ │ └── route.ts
|
||||
│ │ │ ├── preview/ # Markdown preview API
|
||||
│ │ │ │ └── route.ts
|
||||
│ │ │ ├── stream/ # Server-Sent Events for real-time updates
|
||||
│ │ │ │ └── route.ts
|
||||
│ │ │ ├── webhook/ # Webhook endpoint
|
||||
│ │ │ │ └── route.ts
|
||||
│ │ │ └── route.ts # List all posts
|
||||
│ │ ├── posts/ # Blog post pages
|
||||
│ │ │ └── [...slug]/ # Dynamic post routing (catch-all)
|
||||
@@ -97,15 +106,15 @@ markdownblog/
|
||||
│ │ ├── highlight-github.css # Code syntax highlighting styles
|
||||
│ │ ├── layout.tsx # Root layout with metadata
|
||||
│ │ ├── MobileNav.tsx # Mobile navigation component
|
||||
│ │ ├── monaco-vim.d.ts # Monaco Vim typings
|
||||
│ │ └── page.tsx # Homepage with post listing
|
||||
│ └── lib/ # Utility libraries
|
||||
│ └── postsDirectory.ts # Post directory management and Rust integration
|
||||
├── posts/ # Markdown blog posts storage
|
||||
│ ├── pinned.json # Pinned posts configuration
|
||||
│ ├── welcome.md # Welcome post with frontmatter
|
||||
│ ├── mdtest.md # Test post with various markdown features
|
||||
│ ├── anchor-test.md # Test post for anchor linking
|
||||
│ └── ii/ # Example nested folder structure
|
||||
│ ├── about.md
|
||||
│ ├── welcome.md
|
||||
│ └── assets/
|
||||
│ └── peta.png
|
||||
├── public/ # Static assets
|
||||
│ ├── android-chrome-192x192.png
|
||||
│ ├── android-chrome-512x512.png
|
||||
@@ -115,19 +124,19 @@ markdownblog/
|
||||
│ ├── favicon.ico
|
||||
│ └── site.webmanifest
|
||||
├── electron/ # Desktop application
|
||||
│ └── main.js # Electron main process configuration
|
||||
│ └── main.js # Electron main process configuration
|
||||
├── Dockerfile # Docker container configuration
|
||||
├── docker.sh # Docker deployment script
|
||||
├── entrypoint.sh # Container entrypoint script
|
||||
├── run-local-backend.sh # Local Rust backend runner
|
||||
├── next-env.d.ts # Next.js TypeScript definitions
|
||||
├── next.config.js # Next.js configuration
|
||||
├── package-lock.json # npm lock file
|
||||
├── package.json # Dependencies and scripts
|
||||
├── postcss.config.js # PostCSS configuration
|
||||
├── tailwind.config.js # Tailwind CSS configuration
|
||||
├── tsconfig.json # TypeScript configuration
|
||||
└── LICENSE # MIT License
|
||||
├── entrypoint.sh # Container entrypoint script
|
||||
├── run-local-backend.sh # Local Rust backend runner
|
||||
├── next-env.d.ts # Next.js TypeScript definitions
|
||||
├── next.config.js # Next.js configuration
|
||||
├── package-lock.json # npm lock file
|
||||
├── package.json # Dependencies and scripts
|
||||
├── postcss.config.js # PostCSS configuration
|
||||
├── tailwind.config.js # Tailwind CSS configuration
|
||||
├── tsconfig.json # TypeScript configuration
|
||||
└── LICENSE # MIT License
|
||||
```
|
||||
|
||||
### Key Components
|
||||
@@ -329,6 +338,9 @@ console.log("Hello, World!");
|
||||
- **📦 Export Posts**: Download all posts as archive (Docker only)
|
||||
- **📊 Rust Status**: Monitor parser performance, logs, and health
|
||||
- **🔍 Log Management**: View, filter, and clear parser logs
|
||||
- **🔧 VS Code Editor**: Monaco-based editor with YAML frontmatter preservation
|
||||
- **🔄 Force Reparse**: Manual cache clearing and post reparsing
|
||||
- **📁 Reliable Scanning**: Enhanced directory traversal with error recovery
|
||||
|
||||
### Security
|
||||
|
||||
@@ -350,6 +362,9 @@ console.log("Hello, World!");
|
||||
- **📁 Recursive Scanning**: Efficient folder traversal and file discovery
|
||||
- **💾 Smart Caching**: RAM-based caching with disk persistence
|
||||
- **📊 Performance Monitoring**: Real-time metrics and logging
|
||||
- **🔄 Force Reparse**: Manual cache invalidation and post reparsing
|
||||
- **📁 Reliable Directory Scanning**: Robust error handling and recovery
|
||||
- **🔧 Single Post Reparse**: Efficient individual post cache clearing
|
||||
|
||||
### Real-Time Updates
|
||||
|
||||
@@ -358,6 +373,16 @@ console.log("Hello, World!");
|
||||
- **⚡ Instant Updates**: Sub-second response to file modifications
|
||||
- **🔄 Fallback Polling**: Graceful degradation if SSE fails
|
||||
|
||||
### VS Code-Style Editor
|
||||
|
||||
- **🔧 Monaco Editor**: Professional code editor with syntax highlighting
|
||||
- **📄 YAML Frontmatter**: Preserved and editable at the top of files
|
||||
- **👁️ Live Preview**: Real-time Markdown rendering
|
||||
- **💾 Save & Reparse**: Automatic cache clearing and post reparsing
|
||||
- **⌨️ Vim Mode**: Optional Vim keybindings for power users
|
||||
- **📱 Responsive Design**: Works on desktop and mobile devices
|
||||
- **🎨 Custom Styling**: JetBrains Mono font and VS Code-like appearance
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Customization
|
||||
@@ -398,6 +423,8 @@ cargo build --release # Build optimized binary
|
||||
cargo run -- watch # Watch for file changes
|
||||
cargo run -- logs # View parser logs
|
||||
cargo run -- checkhealth # Check backend health
|
||||
cargo run -- reinterpret-all # Force reparse all posts
|
||||
cargo run -- reparse-post <slug> # Force reparse single post
|
||||
```
|
||||
|
||||
---
|
||||
@@ -434,7 +461,43 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
||||
- **File watching issues**: Check file permissions and inotify limits
|
||||
- **Performance issues**: Monitor logs via admin interface
|
||||
- **Cache problems**: Clear cache via admin interface or restart
|
||||
- **Directory scanning errors**: Check file permissions and hidden files
|
||||
- **Reparse failures**: Verify post slugs and file existence
|
||||
- **Memory issues**: Monitor cache size and clear if necessary
|
||||
|
||||
### Support
|
||||
|
||||
For issues and questions, please check the project structure and API documentation in the codebase. The admin interface includes comprehensive monitoring tools for the Rust backend.
|
||||
For issues and questions, please check the project structure and API documentation in the codebase. The admin interface includes comprehensive monitoring tools for the Rust backend.
|
||||
|
||||
---
|
||||
|
||||
## 🆕 Recent Improvements (Latest)
|
||||
|
||||
### Rust Backend Enhancements
|
||||
|
||||
- **🔄 Force Reparse Commands**: New CLI commands for manual cache invalidation
|
||||
- `reinterpret-all`: Clear all caches and reparse every post
|
||||
- `reparse-post <slug>`: Clear cache for specific post and reparse
|
||||
- **📁 Reliable Directory Scanning**: Enhanced file system traversal with:
|
||||
- Hidden file filtering (skips `.` files)
|
||||
- Graceful error recovery for inaccessible files
|
||||
- Detailed logging of scanning process
|
||||
- Automatic directory creation if missing
|
||||
- **💾 Improved Cache Management**: Better cache directory handling and persistence
|
||||
- **📊 Enhanced Logging**: Comprehensive logging for debugging and monitoring
|
||||
|
||||
### Editor Improvements
|
||||
|
||||
- **🔧 VS Code-Style Interface**: Monaco editor with professional features
|
||||
- **📄 YAML Frontmatter Preservation**: Frontmatter stays at top and remains editable
|
||||
- **💾 Save & Reparse Integration**: Automatic Rust backend integration on save
|
||||
- **👁️ Live Preview**: Real-time Markdown rendering without frontmatter
|
||||
- **⌨️ Vim Mode Support**: Optional Vim keybindings for power users
|
||||
- **📱 Mobile Responsive**: Works seamlessly on all device sizes
|
||||
|
||||
### Admin Panel Enhancements
|
||||
|
||||
- **🔄 Force Reparse Button**: One-click cache clearing and post reparsing
|
||||
- **📊 Enhanced Rust Status**: Real-time parser performance monitoring
|
||||
- **🔍 Improved Log Management**: Better filtering and search capabilities
|
||||
- **📁 Directory Health Monitoring**: Comprehensive file system diagnostics
|
||||
Reference in New Issue
Block a user