feat: implement WYSIWYG markdown editor
Add complete markdown editor with Go backend and React/TypeScript frontend. Backend: - Cobra CLI with configurable host, port, data-dir, static-dir flags - REST API for CRUD operations on markdown files (GET, POST, PUT, DELETE) - File storage with flat .md structure - Comprehensive Logrus logging for all operations - Static asset serving for frontend Frontend: - React 18 + TypeScript + Tailwind CSS - Live markdown editor with GFM preview (react-markdown) - File management UI (list, create, open, save, delete) - Theme system (Light/Dark/System) with localStorage persistence - Responsive design (320px - 1920px+) Testing: - 6 backend tests covering CRUD round-trip, validation, error handling - 19 frontend tests covering API, theme system, and UI components - All tests passing with single 'make test' command Build: - Frontend compiles to optimized assets in dist/ - Backend can serve frontend via --static-dir flag
This commit is contained in:
24
backend/internal/config/config.go
Normal file
24
backend/internal/config/config.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package config
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Config holds the server configuration
|
||||
type Config struct {
|
||||
DataDir string
|
||||
Port string
|
||||
Host string
|
||||
}
|
||||
|
||||
// Default returns the default configuration
|
||||
func Default() *Config {
|
||||
return &Config{
|
||||
DataDir: "./data",
|
||||
Port: "8080",
|
||||
Host: "127.0.0.1",
|
||||
}
|
||||
}
|
||||
|
||||
// Addr returns the full address to bind to
|
||||
func (c *Config) Addr() string {
|
||||
return fmt.Sprintf("%s:%s", c.Host, c.Port)
|
||||
}
|
||||
Reference in New Issue
Block a user