In-browser editor for Armenian Bible translation work, with side-by-side multilingual text, local JSON persistence, and drag-and-drop organization tools.
data/ as the source of truth (one file per book).Cmd/Ctrl+Z, Cmd/Ctrl+Shift+Z).english, armenian, classical locale files).data/*.json)scripts/import_docx.py)bun install
bun run dev
Open http://localhost:5173.
bun run dev - Start Vite dev server.bun run build - Build production assets to dist/.bun run preview - Preview the production build with Vite.bun run serve - Start Bun production server on http://localhost:3000.bun run check - Run svelte-check type and Svelte diagnostics.bun run import - Run one-time DOCX to JSON import script.Each book is stored at data/<book-id>.json.
{
"id": "genesis",
"name": {
"english": "Genesis",
"armenian": "Ծննդոց",
"classical": ""
},
"chapters": [
{
"number": 1,
"content": [
{
"kind": "heading",
"armenian": "...",
"english": "...",
"classical": ""
},
{
"kind": "verse",
"number": 1,
"armenian": "...",
"english": "...",
"classical": "",
"footnotes": {
"armenian": [],
"english": [],
"classical": []
},
"indentLevel": 1
}
]
}
]
}
Notes:
indentLevel is optional and used for poetry indentation overrides.{ "id": "note-id", "text": "note text", "anchorWord": 3 }Both dev and production expose the same JSON API:
GET /api/books - list book summaries.GET /api/books/:id - read full book JSON.PUT /api/books/:id - overwrite book JSON.POST /api/books - create new book file (id must match ^[a-z0-9_-]+$).data/ JSON source-of-truth files
scripts/ import tooling (DOCX -> JSON)
src/
components/ Svelte UI components
lib/
api.ts fetch helpers with retry
stores.ts state, mutations, autosave, undo wiring
undoStack.ts snapshot-based undo/redo
locales/ localized UI strings
server.ts Bun production server
vite.config.ts Vite config + dev API middleware
memory-bank/ project context documentation
src/lib/locales/.src/lib/stores.ts to preserve undo/autosave behavior.Attribution is appreciated for both code and translation/editorial work, but it is not required by the content license used here.
If you reuse this project, a suggested courtesy credit is:
This repository uses split licensing:
src/, server.ts, vite.config.ts, tooling scripts unless noted): MIT License.data/, prose docs): CC0 1.0 Universal (public domain dedication).Important:
Some source DOCX content has known omissions/mismatches (for example, missing verses in specific books and merged content anomalies). These are source-data issues, not editor rendering bugs.