---
title: Référence API TypeScript & Spécifications
description: Catalogue exhaustif des API typées, signatures de méthodes, tableaux de paramètres et types de retour de VertiWiki.
tags: [vertiwiki, api, reference, typescript, types, interfaces, francais]
---

# Référence API TypeScript

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

Ce document propose des spécifications conformes à 100% à l'AST du code source TypeScript de VertiWiki.

---

## 🧭 Sous-Système Routeur (`src/core/router.ts`)

### `normalizePath(path: string): string`
Normalise les chemins de fichiers en remplaçant les antislashes, en éliminant les slashes superflus et en résolvant les segments `.` et `..`.

```typescript
export function normalizePath(path: string): string;
```

#### Paramètres :
| Paramètre | Type | Requis | Description |
| :--- | :--- | :--- | :--- |
| `path` | `string` | Oui | Chemin de fichier ou d'URL brut à normaliser. |

#### Retour :
`string` — Chemin nettoyé sans slash initial ni préfixe `./`.

---

### `getBaseDirectory(): string`
Détermine le chemin de base effectif de l'application, gérant les sous-dossiers et l'omission du slash final.

```typescript
export function getBaseDirectory(): string;
```

---

### `resolveResourceUrl(relativePath: string): string`
Résout les chemins de fichiers Markdown et d'actifs par rapport au répertoire de base calculé.

```typescript
export function resolveResourceUrl(relativePath: string): string;
```

---

## 🔌 Sous-Système Pipeline (`src/core/pipeline.ts`)

### `class Pipeline`
Bus d'exécution central orchestrant les middlewares de plugins.

```typescript
export class Pipeline {
  public registerPlugin(plugin: VertiWikiPlugin): void;
  public runBeforeParse(markdown: string, context: PluginContext): Promise<string>;
  public runAfterParse(html: string, context: PluginContext): Promise<string>;
  public runAfterRender(context: PluginContext): Promise<void>;
}
```

#### Interfaces de Contexte Cœur :
```typescript
export interface PluginContext {
  filePath: string;
  config: VertiWikiConfig;
  container: HTMLElement;
  rawMarkdown?: string;
}

export interface RenderContext {
  currentPath: string;
  rawMarkdown: string;
  htmlContent: string;
  config: VertiWikiConfig;
}
```

---

## 📝 Analyseur Markdown (`src/core/parser.ts`)

### `parseFrontmatter(markdown: string)`
Extrait les métadonnées YAML au début d'un document Markdown.

```typescript
export function parseFrontmatter(markdown: string): { 
  frontmatter: Record<string, string>; 
  body: string 
};
```

---

### `cleanTitle(raw: string): string`
Nettoie les titres de documents pour les onglets du navigateur et le sommaire en retirant les balises HTML et les directives de badges.

```typescript
export function cleanTitle(raw: string): string;
```

---

### `slugify(text: string): string`
Produit un slug d'ancrage d'URL sans conflit à partir d'un texte de titre.

```typescript
export function slugify(text: string): string;
```

---

## 🎨 Gestionnaire de Thèmes (`src/ui/theme.ts`)

### `class ThemeManager`
Supervise les thèmes, les variables CSS personnalisées et l'alternance entre modes sombre et clair.

```typescript
export class ThemeManager {
  constructor(
    defaultMode?: 'auto' | 'light' | 'dark',
    defaultPreset?: string,
    customThemes?: (ThemePreset | CustomThemeDefinition)[],
    enableThemeChooser?: boolean
  );
  public setMode(mode: 'auto' | 'light' | 'dark'): void;
  public setPreset(presetId: string): void;
  public registerTheme(theme: ThemePreset | CustomThemeDefinition): ThemePreset;
  public getThemes(): ThemePreset[];
}
```

---

## 🔍 Moteur de Recherche (`src/plugins/search.ts`)

### `class SearchEngine`
Module encapsulant MiniSearch pour la recherche plein texte côté client.

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