---
title: Subsistemul de Plugin-uri & Extensii
description: Arhitectura sistemului de plugin-uri VertiWiki și extensiile incluse: MiniSearch, Mermaid, KaTeX, Callouts și Lightbox.
tags: [vertiwiki, pluginuri, extensii, minisearch, mermaid, katex, callouts, romana]
---

# Subsistemul de Plugin-uri & Extensii

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

Capabilitățile VertiWiki sunt extinse printr-o arhitectură modulară de plugin-uri înregistrate în `Pipeline`-ul de bază. Fiecare plugin poate interveni în etapele `beforeParse`, `afterParse` și `afterRender`.

---

## 🔌 Catalogul Plugin-urilor Incluse

| Plugin | Etapă Ciclul de Viață | Descriere |
| :--- | :--- | :--- |
| **Search (`search.ts`)** | `afterRender` | Indexare full-text în memorie bazată pe biblioteca MiniSearch. |
| **Mermaid (`mermaid.ts`)** | `afterRender` | Randare diagrame de flux, diagrame de secvență și modele C4. |
| **Math (`math.ts`)** | `afterRender` | Formatare formule matematice LaTeX prin KaTeX. |
| **Callouts (`callouts.ts`)** | `beforeParse` | Conversie alerte `> [!NOTE]` în casete vizuale colorate. |
| **Tabs (`tabs.ts`)** | `beforeParse` | Comutatoare de cod multi-limbaj sincronizate (`::: tabs`). |
| **Details (`details.ts`)** | `beforeParse` | Secțiuni pliabile tip acordeon (`::: details`). |
| **Lightbox (`lightbox.ts`)** | `afterRender` | Vizualizare pe tot ecranul pentru imagini și diagrame. |
| **AEO (`aeo.ts`)** | `afterRender` | Injectare microdate Schema.org JSON-LD și antete de descoperire AI. |
| **Analytics (`analytics.ts`)** | `afterRender` | Telemetrie de trafic axată pe confidențialitate. |

---

## 🔍 1. Motorul de Căutare Client (`src/plugins/search.ts`)

Fără dependență de servere externe sau fișiere JSON masive:
1. **Indexare în Fundal**: Pe măsură ce paginile sunt vizitate, `SearchEngine` introduce textul curat într-o instanță `MiniSearch` în memorie.
2. **Limitare la Limba Activă**: Căutările sunt filtrate automat după limba selectată (`en`, `ro`, `fr`), prevenind amestecarea rezultatelor.
3. **Căutare Fuzzy & Fragmente**: Permite mici greșeli de tipar și extrage fragmente de text relevante în jurul cuvintelor căutate.

```typescript
export class SearchEngine {
  public addDocument(doc: SearchDocument): void;
  public search(query: string, options?: { locale?: string }): SearchResultItem[];
}
```

---

## 📊 2. Diagrame & Matematică LaTeX

### Motorul Mermaid (`src/plugins/mermaid.ts`)
- Inițializare automată cu temă întunecată sau luminoasă sincronizată cu `--verti-bg-base`.
- Igienizare SVG prin DOMPurify păstrând nodurile `<foreignObject>` și `<style>` pentru etichetele nodurilor.

### Randare KaTeX (`src/plugins/math.ts`)
- Suport pentru formule inline `\( ... \)` sau `$...$` (cu delimitare strictă fără spații alăturate pentru a preveni coliziunea cu valorile monetare) și blocuri `\[ ... \]` sau `$$...$$`.
- Fonturi WOFF2 optimizate pentru o dimensiune minimă a pachetului.
- Evitarea interferențelor modulului de evidențiere sintaxă pe blocurile de matematică.

### Lightbox pentru Imagini (`src/plugins/lightbox.ts`)
- Oferă afișare modală mărită pentru diagrame și capturi de ecran din documentație.
- Exclude automat imaginile integrate în hiperlink-uri active (`img:not(a img)`), păstrând funcționalitatea bannere-lor și a badge-urilor.

---

## 📑 3. Componente Interactive de Conținut

### Casete de Notificare (Callouts) (`src/plugins/callouts.ts`)
Transformă sintaxa standard de citat în panouri vizuale:
```markdown
> [!NOTE]
> Notă informativă.

> [!TIP]
> Recomandare de bune practici sau optimizare.

> [!IMPORTANT]
> Pas esențial sau cerință preliminară.

> [!WARNING]
> Problemă potențială sau capcană de evitat.

> [!CAUTION]
> Acțiune cu risc ridicat care poate cauza pierderi de date.
```

### Tab-uri Sincronizate de Cod (`src/plugins/tabs.ts`)
Permite comutarea între limbaje de programare pe întreaga pagină cu sincronizare în `localStorage`:
````markdown
::: tabs
== cURL
```bash
curl -X GET https://api.example.com/health
```
== Python
```python
import requests
requests.get("https://api.example.com/health")
```
:::
````

---

## 🤖 4. Optimizare pentru Motoare de Răspuns AI (AEO) (`src/plugins/aeo.ts`)

Pregătește documentația pentru asistenți AI autonomi de codare:
- **Etichete de Descoperire**: Injectează `<link rel="help" href="llms.txt">` în antet.
- **Grafuri Schema.org**: Generează microdate semantice `TechArticle` și `BreadcrumbList` cu detectarea dinamică a limbii active (`inLanguage`).
- **Copiere pentru AI**: Adaugă buton de copiere directă a Markdown-ului pentru prompturi LLM.

---

## 🔗 Pașii Următori

- Consultați designul sistemului în [Arhitectura Sistemului](architecture.md).
- Explorați parametrii în [Prezentare Configurare](../configuration/overview.md).
- Vedeți definițiile de hook-uri în [Catalog API TypeScript](../reference/api.md).
