---
title: Fluxuri de Execuție & Diagrame de Secvență
description: Diagrame de secvență pas cu pas care descriu rutarea, descărcarea resurselor, middleware-ul pipeline și indexarea pentru căutare.
tags: [vertiwiki, fluxuri, diagrama-secventa, rutare, pipeline, executie, romana]
---

# Fluxuri de Execuție

> For the complete documentation index and agent navigation, see [llms.txt](/llms.txt).

Acest document descrie traseele interne de execuție din VertiWiki ca diagrame Mermaid de tip `sequenceDiagram`, corespunzând modulelor TypeScript din codul sursă.

---

## 🌊 Fluxul 1: Cererea Documentului & Pipeline-ul de Randare

Această secvență detaliază modul în care schimbarea unei rute hash (`window.location.hash = '#/concepts/architecture.md'`) este transformată într-un articol randat pe ecran:

```mermaid
sequenceDiagram
    autonumber
    actor User as Utilizator / Browser
    participant Router as Router (src/core/router.ts)
    participant Fetcher as Motor Fetch (src/main.ts)
    participant Cache as Cache în Memorie (Map)
    participant Pipeline as Pipeline (src/core/pipeline.ts)
    participant Parser as MarkdownParser (src/core/parser.ts)
    participant DOMPurify as Igienizator DOMPurify
    participant Layout as LayoutManager (src/ui/layout.ts)
    participant Plugins as Plugin-uri Post-Randare

    User->>Router: Navigare la #/concepts/architecture.md
    Router->>Router: parseHash(window.location.hash)
    Router->>Fetcher: loadPage('concepts/architecture.md')
    
    alt Conținut aflat în Cache
        Fetcher->>Cache: get('concepts/architecture.md')
        Cache-->>Fetcher: Returnează Markdown brut
    else Conținut neaflat în Cache
        Fetcher->>User: HTTP GET /docs/concepts/architecture.md
        User-->>Fetcher: 200 OK (text Markdown)
        Fetcher->>Cache: set('concepts/architecture.md', rawMarkdown)
    end

    Fetcher->>Pipeline: runBeforeParse(rawMarkdown, context)
    Pipeline-->>Fetcher: Markdown transformat (wikilinks, tabs)

    Fetcher->>Parser: parse(transformedMarkdown)
    Parser->>Parser: Extragere YAML frontmatter & autoCloseFences
    Parser->>Parser: marked.parse(body)
    Parser->>DOMPurify: sanitize(html, allowedTags)
    DOMPurify-->>Parser: Șir HTML curat și sigur
    Parser-->>Fetcher: Obiect ParsedMarkdown

    Fetcher->>Pipeline: runAfterParse(cleanHtml, context)
    Pipeline-->>Fetcher: Șir HTML final

    Fetcher->>Layout: renderArticle(finalHtml, frontmatter)
    Layout->>Layout: Montare în DOM (.verti-article)
    Layout->>Layout: Generare TOC & actualizare link activ în meniu

    Fetcher->>Pipeline: runAfterRender(context)
    Pipeline->>Plugins: Execuție Prism, Mermaid, KaTeX
    Plugins-->>User: Articol interactiv complet randat
```

---

## 🌐 Fluxul 2: Comutatorul de Limbi & Rezoluția Prefixelor

Când un cititor comută limba, VertiWiki recalculează calea activă fără a reîncărca pagina completă:

```mermaid
sequenceDiagram
    autonumber
    actor User as Cititor
    participant LangChooser as LanguageChooser (src/ui/language-chooser.ts)
    participant Router as Router (src/core/router.ts)
    participant NavManager as NavigationTree (src/core/crawl-tree.ts)
    participant Fetcher as Motor Fetch (src/main.ts)

    User->>LangChooser: Selectare "Română (ro)" din meniu
    LangChooser->>Router: switchLocale('ro')
    Router->>Router: Eliminare prefix curent
    Router->>Router: Adăugare prefix țintă ('ro/concepts/architecture.md')
    Router->>Router: Actualizare window.location.hash = '#/ro/concepts/architecture.md'

    Router->>Fetcher: Declanșare reîncărcare rută
    par Descărcare Concomitentă Resurse Localizate
        Fetcher->>NavManager: Preluare ro/navigation.md
        NavManager-->>Fetcher: Arbore de navigare localizat
    and Descărcare Document Localizat
        Fetcher->>User: HTTP GET /docs/ro/concepts/architecture.md
        User-->>Fetcher: Text Markdown localizat
    end

    Fetcher->>NavManager: Reconstruire bară laterală cu meniul în română
    Fetcher->>Fetcher: Execuție pipeline de randare pe conținutul în română
```

---

## 🔍 Fluxul 3: Căutare Full-Text & Indexare MiniSearch

VertiWiki indexează toate documentele pe partea de client folosind MiniSearch:

```mermaid
sequenceDiagram
    autonumber
    actor User as Cititor
    participant Modal as SearchModal (src/ui/search-modal.ts)
    participant Search as SearchEngine (src/plugins/search.ts)
    participant MiniSearch as Index MiniSearch
    participant Router as Router (src/core/router.ts)

    Note over Search,MiniSearch: Indexare Asincronă în Fundal la Pornire
    Search->>MiniSearch: Adăugare document {id, title, path, content, locale}

    User->>Modal: Apăsare ⌘K sau /
    Modal->>Modal: Deschidere dialog modal & focalizare câmp text
    User->>Modal: Introducere interogare "sanitizer"
    
    Modal->>Search: search("sanitizer", {locale: "ro"})
    Search->>MiniSearch: Căutare în index cu toleranță la erori (fuzzy)
    MiniSearch-->>Search: Returnare rezultate cu scoruri
    Search->>Search: Extragere fragmente de previzualizare evidențiate
    Search-->>Modal: Vector de SearchResultItem
    Modal->>Modal: Randare listă de rezultate

    User->>Modal: Clic pe un rezultat
    Modal->>Modal: Închidere fereastră modală
    Modal->>Router: navigateTo(result.path)
```

---

## 🔗 Pașii Următori

- Descoperiți modulele de bază în [Arhitectura Nucleului](core-architecture.md).
- Vedeți cum se adaptează interfața în [Motorul UI & Teme](ui-and-theming.md).
- Înțelegeți interfețele de extensie în [Plugin-uri & Extensii](plugins-and-extensions.md).
