Arkitektur¶
Applikationen är ett React/Vite-projekt skrivet i TypeScript. Den centrala modellen är att original-DOCX behålls som ZIP-bytes samtidigt som appen bygger en separat dokumentmodell för visning och taggning.
Lager¶
| Lager | Exempel | Ansvar |
|---|---|---|
| UI | src/components, src/editor, src/geometry |
React-komponenter, paneler och interaktion. |
| State | src/store/useDocumentStore.ts |
Dokument, taggar, geometrier, urval, undo/redo och persistens. |
| DOCX | src/docx |
Import, export, OOXML, custom XML och Planbeskrivning XML. |
| Geometri | src/geometry |
Detaljplan-JSON, GML, kartvisning och geometri-länkning. |
| Persistens | src/db, src/project |
IndexedDB och .pbproject. |
Runtime-flöde¶
- En DOCX läses in som ZIP.
DocxParserbyggerDocModeloch läser eventuella inbäddade taggar eller Planbeskrivning-data.- React-vyn renderar dokumentmodellen i TipTap.
- Användaren skapar taggar och geometri-länkar i Zustand-storen.
- Exporter bygger nya XML-delar utan att konvertera hela dokumentet fram och tillbaka.
Designprincip¶
Appen undviker att göra DOCX till HTML och tillbaka. Den visuella dokumentvyn är ett arbetsgränssnitt, medan exporten skriver tillbaka metadata i OOXML-strukturen.