Replace textarea with CodeMirror 6 editor

- Add CodeMirror 6 with oneDark theme and markdown language support
- Bundle via esbuild into public/vendor/ (built on deploy, not committed)
- Add codemirror-entry.mjs as bundle entry point
- Fix SPA fallback to only serve index.html for /, not all paths
- Fix mime type handling by mutating mime-types registry
- Add Write/Preview tabs; preview renders on tab switch only
- Multi-cursor via Shift+Alt+Up/Down; Alt+Click adds cursor
- gitignore package-lock.json and public/vendor/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 15:08:36 +00:00
parent dbef6605c9
commit 6058c22b6c
8 changed files with 100 additions and 897 deletions

View File

@@ -9,7 +9,17 @@
"start": "node server.mjs"
},
"dependencies": {
"@codemirror/commands": "^6.10.3",
"@codemirror/lang-markdown": "^6.5.0",
"@codemirror/language": "^6.12.3",
"@codemirror/state": "^6.6.0",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.43.0",
"@lezer/highlight": "^1.2.3",
"express": "^5.2.1",
"yaml-js": "^0.3.1"
},
"devDependencies": {
"esbuild": "^0.28.0"
}
}