Micro-application JavaScript légère (~245KB, ~85KB gzippé) pour sites statiques avec support multilingue, coloration syntaxique, formules mathématiques et diagrammes.
Fonctionnalités
- Traitement Markdown: Analyse et rendu Markdown avec support alignements tableaux
- Formules mathématiques: Support KaTeX (LaTeX) pour équations inline et en bloc
- Coloration syntaxique: Blocs de code avec highlight.js (multi-langages)
- Support Multilingue: Internationalisation (i18n) intégrée avec détection automatique langue
- Diagrammes Mermaid: Rendu de flowcharts, sequence, class diagrams en SVG inline
- Support PlantUML: Diagrammes UML via Kroki.io avec rendu SVG inline
- Fichiers .puml: Chargement direct de fichiers PlantUML
- Cache SVG Intelligent: Cache in-memory avec TTL 5min pour performance optimale
- Modes d’Affichage: Normal, Split View (source + rendu), Source-only
- Routing SPA: Navigation hash-based sans rechargement de page
- Léger: ~245KB minifié (~85KB gzippé), aucune dépendance runtime
- Configuration Simple: Script à intégrer avec initialisation automatique
🧪 Démonstrations Interactives
Explorez OntoWave v1.0.25 à travers des démos interactives et testées :
✨ Capacités de Base (sans configuration)
⚙️ Configurations Avancées
📋 Voir toutes les démos dans le catalogue →
Utilisation
<!DOCTYPE html>
<html>
<head>
<title>Mon Site avec OntoWave</title>
</head>
<body>
<!-- CDN -->
<script src="https://cdn.jsdelivr.net/npm/ontowave@latest/dist/ontowave.min.js"></script>
</body>
</html>
C’est tout ! OntoWave se charge automatiquement et affiche son interface.
🏗️ Architecture OntoWave
Vue d’ensemble des composants
@startuml Vue_Ensemble
!theme plain
component "index.html" as HTML
component "ontowave.min.js" as Core
component "index.fr.md" as DocFR
component "index.en.md" as DocEN
HTML --> Core : charge
Core --> DocFR : selon locale FR
Core --> DocEN : selon locale EN
note bottom of HTML : Point d'entrée unique\nConfiguration JSON intégrée
note bottom of Core : Cœur OntoWave\n245KB minifié (~85KB gzippé)
note bottom of DocFR : Documentation française
note bottom of DocEN : Documentation anglaise
@enduml
Classes principales
@startuml Classes_Principales
!theme plain
class Loader {
+init()
+loadContent()
}
class UIManager {
+createInterface()
+handleEvents()
}
class FloatingMenu {
+show()
+hide()
+toggle()
}
class ConfigPanel {
+open()
+close()
+saveSettings()
}
class MarkdownProcessor {
+parse()
+render()
}
class I18nSystem {
+setLanguage()
+translate()
}
Loader --> UIManager : utilise
Loader --> I18nSystem : utilise
UIManager --> FloatingMenu : gère
UIManager --> ConfigPanel : gère
UIManager --> MarkdownProcessor : gère
@enduml
Système de plugins
@startuml Systeme_Plugins
!theme plain
interface SyntaxHighlighter {
+highlight()
}
interface DiagramRenderer {
+render()
}
class HljsPlugin
class MermaidPlugin
class PlantUMLPlugin
SyntaxHighlighter <|.. HljsPlugin
DiagramRenderer <|.. MermaidPlugin
DiagramRenderer <|.. PlantUMLPlugin
class MarkdownProcessor {
+parse()
+render()
}
MarkdownProcessor --> HljsPlugin : utilise
MarkdownProcessor --> MermaidPlugin : utilise
MarkdownProcessor --> PlantUMLPlugin : utilise
@enduml
Licence
Stéphane Denis
OntoWave est publié sous licence CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike).
Ce logiciel est fourni “tel quel”, sans garantie d’aucune sorte, expresse ou implicite. En aucun cas les auteurs ne seront responsables de réclamations, dommages ou autres responsabilités.
Code source : GitHub - OntoWave
Lightweight JavaScript micro-application (~245KB, ~85KB gzipped) for static sites with multilingual support, syntax highlighting, math formulas and diagrams.
Features
- Markdown Processing: Parse and render Markdown with table alignments support
- Math Formulas: KaTeX (LaTeX) support for inline and block equations
- Syntax Highlighting: Code blocks with highlight.js (multi-language)
- Multilingual Support: Built-in internationalization (i18n) with auto language detection
- Mermaid Diagrams: Render flowcharts, sequence diagrams, class diagrams as inline SVG
- PlantUML Support: UML diagrams via Kroki.io with inline SVG rendering
- .puml Files: Direct PlantUML file loading
- Smart SVG Cache: In-memory cache with 5min TTL for optimal performance
- View Modes: Normal, Split View (source + render), Source-only
- SPA Routing: Hash-based navigation without page reload
- Lightweight: ~245KB minified (~85KB gzipped), no runtime dependencies
- Simple Configuration: Drop-in script with automatic initialization
🧪 Interactive Demonstrations
Explore OntoWave v1.0.25 through interactive and tested demos:
✨ Base Capabilities (no configuration needed)
⚙️ Advanced Configurations
📋 See all demos in the catalog →
Usage
<!DOCTYPE html>
<html>
<head>
<title>My Site with OntoWave</title>
</head>
<body>
<!-- CDN -->
<script src="https://cdn.jsdelivr.net/npm/ontowave@latest/dist/ontowave.min.js"></script>
</body>
</html>
That’s it! OntoWave loads automatically and displays its interface.
🏗️ OntoWave Architecture
Component Overview
@startuml Component_Overview
!theme plain
component "index.html" as HTML
component "ontowave.min.js" as Core
component "index.fr.md" as DocFR
component "index.en.md" as DocEN
HTML --> Core : loads
Core --> DocFR : by locale FR
Core --> DocEN : by locale EN
note bottom of HTML : Single entry point\nIntegrated JSON configuration
note bottom of Core : OntoWave Core\n245KB minified (~85KB gzipped)
note bottom of DocFR : French documentation
note bottom of DocEN : English documentation
@enduml
Main Classes
@startuml Main_Classes
!theme plain
class Loader {
+init()
+loadContent()
}
class UIManager {
+createInterface()
+handleEvents()
}
class FloatingMenu {
+show()
+hide()
+toggle()
}
class ConfigPanel {
+open()
+close()
+saveSettings()
}
class MarkdownProcessor {
+parse()
+render()
}
class I18nSystem {
+setLanguage()
+translate()
}
Loader --> UIManager : uses
Loader --> I18nSystem : uses
UIManager --> FloatingMenu : manages
UIManager --> ConfigPanel : manages
UIManager --> MarkdownProcessor : manages
@enduml
Plugin System
@startuml Plugin_System
!theme plain
interface SyntaxHighlighter {
+highlight()
}
interface DiagramRenderer {
+render()
}
class HljsPlugin
class MermaidPlugin
class PlantUMLPlugin
SyntaxHighlighter <|.. HljsPlugin
DiagramRenderer <|.. MermaidPlugin
DiagramRenderer <|.. PlantUMLPlugin
class MarkdownProcessor {
+parse()
+render()
}
MarkdownProcessor --> HljsPlugin : uses
MarkdownProcessor --> MermaidPlugin : uses
MarkdownProcessor --> PlantUMLPlugin : uses
@enduml
License
Stéphane Denis
OntoWave is released under CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike) license.
This software is provided “as is”, without warranty of any kind, express or implied. In no event shall the authors be liable for any claim, damages or other liability.
Source code: GitHub - OntoWave