june-docs

Documentation Platform Architecture

The June documentation platform (docs.june.4ofl.dev) is engineered as a decoupled static documentation site powered by VitePress 1.6, GitHub Actions, and an automated synchronization pipeline.


Decoupled Architecture

To protect proprietary operational workflows, private administrator tooling, and internal infrastructure secrets, the documentation product is decoupled into two repositories:

flowchart LR
    subgraph Private ["Private Monorepo (4ofl/june)"]
        Src["Bot Source Code (src/)"]
        OpsDoc["Internal Runbooks (ops/)"]
        PublicDocs["Public Docs Directory (docs/)"]
        GenScript["scripts/generate-docs.js"]
    end

    subgraph CI ["GitHub Actions CI/CD"]
        SyncWF["sync-docs.yml (Automated Sync)"]
        DeployWF["deploy.yml (GitHub Pages Build)"]
    end

    subgraph Public ["Public Docs Repo (4ofl/june-docs)"]
        DocsSite["VitePress Source & Theme"]
        GHMerged["Main Branch"]
    end

    subgraph CDN ["Production Edge"]
        Pages["GitHub Pages CDN\n(docs.june.4ofl.dev)"]
    end

    Src --> GenScript
    GenScript --> PublicDocs
    PublicDocs --> SyncWF
    SyncWF -->|Push to 4ofl/june-docs| GHMerged
    GHMerged --> DeployWF
    DeployWF --> Pages

1. 4ofl/june (Private Engine)

2. 4ofl/june-docs (Public Documentation Platform)


Static Site Generation & Theming

1. Engine: VitePress 1.6

June’s documentation runs on VitePress, Vue 3, and Vite. VitePress provides:

2. Obsidian Design System

The visual presentation mirrors June’s Discord embed aesthetic and dashboard styling:


Dynamic Vector Diagramming (Mermaid)

VitePress renders standard code blocks by default. June integrates an SSR-safe, client-side dynamic Mermaid diagramming engine in docs/.vitepress/theme/Layout.vue:

flowchart TD
    MD["Markdown with ```mermaid Fence"] --> HTML["Pre-rendered HTML Code Block"]
    HTML --> Mount["Vue Layout onMounted() Hook"]
    Mount --> Import["Dynamic Import: await import('mermaid')"]
    Import --> Init["Initialize with Obsidian Theme Tokens"]
    Init --> Render["mermaid.run(): Render Vector SVG in DOM"]

Every page on docs.june.4ofl.dev automatically generates comprehensive search engine metadata: