Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

Architecture

Updated

For the high-level lifecycle (Acquire → Import → Enrich → Maintain → Share), see Ontology lifecycle — the core architectural model that everything else maps to.

graph TD
    A[Source File<br>CSV / XLSX / JSON] --> B[Parser]
    B --> C[ParsedData<br>columns + rows]
    C --> D[Column Analysis<br>type detection]
    D --> E[User Configuration<br>wizard steps 2-3]
    E --> F[CrosswalkerConfig]
    F --> G[Generation Engine]
    G --> H[Obsidian Vault<br>folders + notes]
  • Import wizard — 4-step modal UI built on Obsidian’s Modal class
  • CSV parser — PapaParse with streaming for files >5MB
  • XLSX parser — Planned (xlsx package installed)
  • JSON parser — Planned
  • Creates folder hierarchy from hierarchy columns
  • Generates markdown notes with YAML frontmatter
  • Handles key naming transforms (snake_case, camelCase, etc.)
  • Tracks imports via _crosswalker metadata
  • Config manager — Save, load, fingerprint, and match configurations
  • Config browser — Modal UI for browsing and managing saved configs
  • Plugin settings with defaults
  • Settings tab UI with progressive disclosure
src/
├── main.ts                      # Plugin entry, registers commands
├── import/
│   ├── import-wizard.ts         # 4-step modal workflow
│   └── parsers/
│       └── csv-parser.ts        # PapaParse streaming parser
├── generation/
│   └── generation-engine.ts     # Folder + note creation
├── config/
│   ├── config-manager.ts        # Save/load/match configs
│   └── config-browser-modal.ts  # Browse/select/delete UI
├── settings/
│   ├── settings-data.ts         # Interface + defaults
│   └── settings-tab.ts          # Settings UI
├── types/
│   └── config.ts                # TypeScript interfaces
└── utils/
    └── debug.ts                 # Debug logging