# Fonctionnalités Cette page liste l'ensemble des fonctionnalités visibles par l'utilisateur, regroupées par thème. ## 1. Ouverture de documents ### Ouvrir un fichier Markdown - Bouton **« Ouvrir un fichier Markdown »** sur l'écran d'accueil. - Ouvre un sélecteur de fichiers natif, filtré sur l'extension `.md`. - Une fois le fichier ouvert, la barre latérale liste **tous les `.md` du dossier parent**, ce qui permet de basculer entre fichiers voisins. ### Ouvrir un dossier wiki - Bouton **« Ouvrir un dossier wiki »** sur l'écran d'accueil. - Ouvre un sélecteur de dossier natif. - Tous les fichiers `.md` du dossier **et de ses sous-dossiers** sont listés (récursivement). - Les fichiers et dossiers cachés (commençant par `.`) sont ignorés. - Si un fichier `Home.md` ou `home.md` est présent à la racine, il est affiché en premier ; sinon, c'est le premier fichier par ordre alphabétique. ## 2. Documents récents - L'écran d'accueil affiche une section **« Récents »** (masquée si vide). - Chaque entrée affiche une icône (📁 pour un dossier, 📄 pour un fichier), le nom et le chemin parent. - Un clic réouvre directement le fichier ou le dossier. - Jusqu'à **8 entrées** sont conservées, sans doublon, dans le stockage local (localStorage, clé `pena_recents`). ## 3. Navigation dans la documentation ### Barre latérale en arborescence - Affiche la structure complète du dossier ouvert sous forme d'arbre. - Les dossiers sont des sections repliables/dépliables (chevron). - Fichiers et dossiers sont triés par **ordre naturel** : les préfixes numériques sont comparés comme des nombres (`10` vient après `9`, et non après `1`). - Dossiers et fichiers partagent la **même typographie** (taille et graisse) ; seul le chevron ▶ distingue visuellement un dossier. - Si un dossier contient un `home.md`, son nom devient un lien cliquable. - Le document actuellement affiché est **surligné**, et les dossiers parents sont automatiquement dépliés. - Plusieurs niveaux de profondeur sont gérés avec une indentation progressive. ### Liens entre documents - Les **liens Markdown relatifs** vers d'autres fichiers `.md` (ex. `[autre page](../section/page.md)`) sont fonctionnels : un clic charge le document cible dans Pena, sans quitter l'application. Les chemins relatifs (`../`, `./`) sont résolus correctement. - Les **liens externes** (`http://`, `https://`) s'ouvrent dans le navigateur par défaut (nouvel onglet, avec `rel="noopener noreferrer"`). - Les **ancres internes** (`#section`) restent des ancres de page. ## 4. Rendu Markdown Le rendu prend en charge le standard **CommonMark** ainsi que les extensions suivantes : | Extension | Exemple | |---|---| | Tableaux | `\| col A \| col B \|` | | Texte barré | `~~barré~~` | | Liens automatiques | une URL nue devient un lien cliquable | | Listes de tâches | `- [ ] à faire` / `- [x] fait` | Autres éléments rendus : titres `h1`–`h6`, code inline, blocs de code, citations (blockquotes), listes, images (largeur adaptée), et liens. ## 5. Coloration syntaxique du code - Les blocs de code délimités par triple backtick sont **colorés syntaxiquement** via `syntect`. - Le thème de coloration intégré est **`base16-ocean.dark`**. - La syntaxe **TypeScript** est fournie en plus des syntaxes par défaut. ### Bouton « Copier » sur les blocs de code - Chaque bloc de code affiche un bouton **« Copier »** en haut à droite. - Un clic copie le contenu du bloc dans le presse-papiers. - Un retour visuel temporaire (« Copié ! ») confirme l'action. ## 6. Personnalisation de l'apparence Voir la page dédiée [Thèmes et personnalisation](1.4-Themes-et-personnalisation.md). En résumé : - **6 thèmes rapides** prêts à l'emploi (Défaut, Mode sombre, Sépia, Grand texte, Accent émeraude, Shell Indigo). - Un **éditeur CSS** intégré, organisé en 4 onglets thématiques, permettant d'écrire son propre CSS appliqué au rendu. - Les choix sont **persistés** localement et réappliqués au démarrage suivant. ## 7. Fenêtre et barre de titre personnalisée - L'application utilise une **barre de titre maison** (la décoration native est désactivée). - Elle affiche le titre du document courant et propose les boutons **réduire**, **agrandir / restaurer** et **fermer**. - La fenêtre se déplace en glissant la barre de titre. ## 8. Rechargement automatique (live-reload) - À l'ouverture d'un fichier ou d'un dossier, l'application **surveille** en continu son contenu sur le disque. - Quand le **document affiché** est modifié (par un éditeur externe, un `git pull`, etc.), il est **rechargé automatiquement** — plus besoin de revenir à l'accueil et de rouvrir le dossier. - Quand un fichier `.md` est **ajouté ou supprimé** dans le dossier ouvert, la **sidebar** se met à jour automatiquement pour refléter la nouvelle arborescence (le dossier du document courant reste déplié). - La surveillance s'arrête au retour à l'accueil et se réinitialise à chaque nouvelle ouverture. Détails techniques : [Surveillance de fichiers](../2-technique/2.2-Commandes-Tauri.md#surveillance-de-fichiers-watch). ## Voir aussi - [Interface](1.3-Interface.md) - [Thèmes et personnalisation](1.4-Themes-et-personnalisation.md) - [Vue d'ensemble](1.1-Vue-d-ensemble.md)