feat: implement WYSIWYG markdown editor with Go backend and React frontend

Implements full markdown editor application with:

Backend (Go):
- Cobra CLI with --data-dir, --port, --host flags
- REST API for CRUD operations on markdown files
- File storage on disk with flat structure
- Logrus logging for all operations
- Static asset serving for frontend
- Comprehensive tests for CRUD and static assets

Frontend (React + TypeScript + Tailwind):
- Markdown editor with live GFM preview
- File management UI (list, create, open, save, delete)
- Theme system (Dark, Light, System) with persistence
- Responsive design (320px to 1920px)
- Component tests for core functionality

Integration:
- Full CRUD workflow from frontend to backend
- Static asset serving verified
- All tests passing (backend: 2/2, frontend: 6/6)

Files added:
- Backend: API handler, logger, server, tests
- Frontend: Components, tests, config files
- Build artifacts: compiled backend binary and frontend dist
- Documentation: README and implementation summary
This commit is contained in:
2026-02-06 21:04:18 -05:00
parent 42af63fdae
commit 2a9e793971
28 changed files with 7698 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
/** @type {import('tailwindcss').Config} */
export default {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
darkMode: 'class',
theme: {
extend: {
typography: (theme) => ({
dark: {
css: {
'--tw-prose-body': theme('colors.gray.300'),
'--tw-prose-headings': theme('colors.white'),
'--tw-prose-links': theme('colors.blue.400'),
'--tw-prose-links-hover': theme('colors.blue.300'),
'--tw-prose-bold': theme('colors.white'),
'--tw-prose-counters': theme('colors.gray.400'),
'--tw-prose-bullets': theme('colors.gray.400'),
'--tw-prose-hr': theme('colors.gray.700'),
'--tw-prose-quotes': theme('colors.gray.200'),
'--tw-prose-quote-borders': theme('colors.gray.700'),
'--tw-prose-captions': theme('colors.gray.400'),
'--tw-prose-code': theme('colors.gray.200'),
'--tw-prose-pre-code': theme('colors.gray.200'),
'--tw-prose-pre-bg': theme('colors.gray.800'),
'--tw-prose-th-borders': theme('colors.gray.700'),
'--tw-prose-td-borders': theme('colors.gray.700'),
},
},
}),
},
},
plugins: [require('@tailwindcss/typography')],
}