ontowave
v1.0.76
Published
Lightweight JavaScript library for creating interactive documentation from Markdown with multilingual support, Prism syntax highlighting, Mermaid diagrams, and PlantUML rendering
Maintainers
Readme
OntoWave
Noyau de navigation (~100KB, zéro dépendance) pour sites statiques et applications web.
OntoWave transforme des fichiers Markdown en documentation interactive dans le navigateur. Routing SPA basé sur le hash URL, multilingue natif, extensions chargées à la demande (Mermaid, KaTeX, PlantUML, SVG inline).
Installation
npm install ontowaveOu via CDN (recommandé pour les sites statiques) :
<script src="https://unpkg.com/ontowave/dist/ontowave.min.js"></script>Utilisation
La page HTML est quasi-vide. OntoWave crée tout le DOM.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mon site</title>
</head>
<body>
<script src="https://unpkg.com/ontowave/dist/ontowave.min.js"></script>
</body>
</html>Configuration optionnelle (avant le <script>) :
<script>
window.ontoWaveConfig = {
roots: [
{ base: 'fr', root: 'content/fr/' },
{ base: 'en', root: 'content/en/' }
],
i18n: { default: 'fr', supported: ['fr', 'en'] }
};
</script>
<script src="https://unpkg.com/ontowave/dist/ontowave.min.js"></script>Fonctionnalités
- Routing SPA basé sur le hash URL (
#/chemin/vers/page) - Multilingue natif (
*.fr.md,*.en.md) - Rendu Markdown complet avec tableaux alignés
- KaTeX pour les formules mathématiques
- Mermaid pour les diagrammes
- PlantUML via Kroki
- SVG inline
- Menu de navigation flottant
Architecture
Le noyau (dist/ontowave.js, ≤ 200KB) est sans dépendances. Les moteurs lourds sont des extensions chargées à la demande selon le contenu de la page :
dist/ontowave.js ← noyau (zéro dépendance)
dist/extensions/
├── markdown.js ← chargé par défaut
├── mermaid.js ← chargé si bloc ```mermaid détecté
├── katex.js
└── ...Note : l'architecture modulaire est en cours de développement (v2.0). La version actuelle distribue un bundle unique.
Développement
npm install
npm test # tests unitaires (Vitest)
npm run test:e2e # tests E2E (Playwright, nécessite npm run dev:docs)
npm run check # lint + type-check + tests + build
npm run build:package # build la librairieStructure du projet :
src/
core/ # logique pure sans dépendances navigateur
adapters/ # implémentations navigateur
main.ts # bootstrapDom(), point d'entrée
router.ts # routing hash-based
docs/ # site public (ontowave.org) + galerie de démos
tests/ # vitest (unit) + playwright (E2E)Contribuer
Les contributions passent par des issues GitHub. Voir .github/copilot-instructions.md pour les conventions de travail et le workflow.
Spécifications :
- docs/specs/architecture.fr.md — architecture modulaire
- docs/specs/interface.fr.md — spécification visuelle
- docs/specs/roadmap.fr.md — roadmap v1.1 / v2.0
- docs/specs/programmation-extensions.fr.md — guide programmation + extensions (état actuel et cible v2)
Licence
CC-BY-NC-SA-4.0 — Copyright (c) 2025 Stéphane Denis
Voir LICENSE pour les détails.
