feat(editor): spell & grammar checking (Chunk #7)
Offline spellcheck via hunspell compiled to WASM (runs fully in-browser), plus optional self-hostable LanguageTool grammar/style checking. - hunspell-wasm spell engine with bundled en_US dictionary (base64-decoded browser-safe via atob + TextDecoder) - LanguageTool engine (self-hostable, docker compose snippet under docker/languagetool/) - single decoration pipeline: spell + grammar hits merge into one squiggle layer (red=spelling, blue=grammar) with a side panel to jump/apply/ignore and add-to-dictionary - useCheckService hook wired into WritingView; check.css loaded in main.tsx - spell + grammar unit tests (30 editor tests green) PLAN.md and CHUNK#7.md updated to reflect completion.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# LanguageTool server for grammar checking.
|
||||
#
|
||||
# Usage:
|
||||
# docker compose -f docker/compose.yaml -f docker/languagetool/compose.yaml up
|
||||
#
|
||||
# The LanguageTool server listens on port 8010 by default.
|
||||
# Set `grammarProvider: "languagetool"` and `grammarServerUrl: "http://localhost:8010"`
|
||||
# in PubScript settings to enable network-based grammar checking.
|
||||
|
||||
services:
|
||||
languagetool:
|
||||
image: erikvl87/languagetool-server:latest
|
||||
ports:
|
||||
- "8010:8010"
|
||||
environment:
|
||||
- LANGUAGETOOL_HOME=/home/languagetool
|
||||
volumes:
|
||||
- ./languagetool-data:/home/languagetool
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "http://localhost:8010/v2/check"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
Reference in New Issue
Block a user