À propos du projet

markdown-viewer (nom du binaire `mdv`) est un visualiseur Markdown local et navigateur de fichiers distribué sous forme de binaire unique. Il sert un répertoire de fichiers Markdown sur une adresse HTTP locale et présente une interface à deux volets : une arborescence de fichiers persistante et extensible à gauche, et le contenu rendu à droite. Le rendu couvre GitHub Flavored Markdown avec un style proche de GitHub, des blocs de code avec coloration syntaxique et une prise en charge intégrée des diagrammes Mermaid. Tous les actifs de l'interface — CSS, JavaScript et modèles HTML — sont intégrés dans le binaire, ce qui ne nécessite aucune dépendance externe ni étape d'installation séparée. Les paramètres de sécurité par défaut incluent la protection contre la traversée de répertoires et la désinfection HTML contre les XSS. L'arrêt peut être déclenché depuis l'interface ou avec Ctrl+C. L'installation se fait en téléchargeant le binaire `mdv` pour la plateforme cible depuis la page des versions, en extrayant l'archive et en plaçant le binaire dans le PATH. La configuration peut provenir d'un fichier `config.json` ou de drapeaux en ligne de commande, avec la priorité suivante (les derniers écrasent les précédents) : valeurs par défaut intégrées, `$HOME/.config/mdv/config.json`, `config.json` dans le répertoire de travail courant, variables d'environnement préfixées par `MDV_` (par exemple `MDV_PORT=9000`), et enfin les drapeaux en ligne de commande. Un `config.json.example` est fourni comme référence. L'utilisation consiste à exécuter `mdv` depuis n'importe quel répertoire contenant des fichiers Markdown et à ouvrir `http://127.0.0.1:8080` dans un navigateur. Les drapeaux incluent `-p, --port` (par défaut 8080), `-o, --open` pour lancer automatiquement le navigateur, `-d, --dir` pour définir le répertoire racine à servir (par défaut `.`), et `--version`. La compilation depuis les sources nécessite Go 1.24 ou une version ultérieure. Les cibles Make incluent `build` pour la plateforme courante, `build-all` pour la compilation croisée, `package` pour produire des archives zip, `test` et `clean`. Les plateformes cibles sont linux/amd64, linux/arm64, darwin/arm64 et windows/amd64 ; les builds macOS sont uniquement arm64, tandis que les Mac Intel peuvent compiler depuis les sources. Le dépôt inclut également CHANGELOG.md et NOTICE.md avec les attributions de licences tierces.