Design

Architecture

Design philosophy and technical architecture of Lithos.
Properties3
Is BaseNo
Iconi-lucide-layers
Order1

Lithos is designed to bridge the gap between a Personal Knowledge Base (PKB) and a Public Documentation Site.

Core Philosophy

  1. Vault as Source of Truth: The Obsidian vault is never modified by the build process. All transformations happen in memory or at build time.
  2. Obsidian-First: If it works in Obsidian, it should work in Lithos. We aim for 1:1 parity in syntax support.
  3. Modern Web Stack: We use Nuxt 4 and Docus to provide a fast, SEO-optimized, and accessible reading experience.

Lithos uses a symlink strategy to map the user's vault to the Nuxt Content directory.

User Vault  <====(symlink)====>  Lithos/content

This allows Nuxt Content to "see" the vault files as if they were inside the project, while keeping the actual files in their original location (or independent vault/ directory).

Transformation Pipeline

  1. Read: Nuxt Content reads a markdown file.
  2. Hook content:file:beforeParse:
    • obsidian-transform intercepts the raw string.
    • Regex replacements convert [[links]] and ![[embeds]].
    • obsidian-ordering injects sort order.
  3. Parse: Nuxt Content parses the markdown into AST.
  4. Hook content:file:afterParse:
    • Metadata extraction (titles, dates).
    • Link graph construction.
  5. Render: Vue components (NoteEmbed, ForceGraph) render the enhanced content.