# mgt-manuel-module Manuel d'application pour applications JavaFX : génération d'un manuel utilisateur à partir de documents Word/PowerPoint (bundle HTML + `toc.json`) et viewer JavaFX intégrable, personnalisable en charte graphique. ## Modules | Module | Rôle | |---|---| | **mgt-manuel-core** | Bibliothèque (dépendance Maven) : moteur de conversion (Apache POI), génération du bundle, viewer JavaFX (`HelpViewer`), API de thème (`ManuelTheme`). | | **mgt-manuel-studio** | Application JavaFX autonome de génération : import des documents, métadonnées, dossier de sortie, aperçu, thèmes. | ## Build ```bash ./build.sh # mvn -o install (offline) ./build.sh clean ./build.sh --online # premiere resolution des dependances si besoin ``` Prérequis : JDK 17 (SDKMAN), Maven. Le studio se lance par `mvn -o javafx:run -pl mgt-manuel-studio` ou `java -jar mgt-manuel-studio/target/mgt-manuel-studio-1.0.jar` (fat-jar mono-plateforme). ## Utiliser la lib dans une application JavaFX ```xml com.megatim.manuel mgt-manuel-core 1.0 ``` ### Générer un manuel ```java ManuelGenerator generator = new ManuelGenerator(); // theme par defaut Path manuel = generator.generate( Path.of("/opt/monapp/manuel"), // repertoire cible List.of(Path.of("Manuel utilisateur.docx")), // sources ordonnees "Mon Application", "1.0.0", "Manuel utilisateur", System.out::println); // journal ``` Le répertoire cible est remplacé atomiquement (génération dans `.tmp` puis bascule) ; les documents sources sont copiés dans `/sources/` avec un manifeste `sources.json`. ### Afficher le manuel ```java HelpViewer viewer = new HelpViewer(Path.of("/opt/monapp/manuel")); maFenetre.setCenter(viewer.build()); // Parent integrable partout ``` ### Personnaliser la charte ```java ManuelTheme theme = ManuelTheme.builder() .accentColor("#ffe3d0") // boutons primaires / hover du viewer .selectionColor("#ffd9c2") // selection du sommaire .appTitle("Mon Application") .logo(getClass().getResource("/images/logo.png")) .htmlVar("html.h1", "#7a2e00") // couleurs des pages HTML generees .extraViewerStylesheet(getClass().getResource("/styles/mon-viewer.css").toExternalForm()) .build(); new ManuelGenerator(theme).generate(...); // styles.css du bundle aux couleurs du theme new HelpViewer(dossier, theme).build(); // viewer aux couleurs du theme ``` Le thème par défaut reproduit la charte Sirius-FT. Les `styleClass` du viewer (`help-viewer`, `button-primary`, `help-left-panel`, `help-status`, ...) sont un contrat stable pour les surcharges CSS. ## Formats supportés `.docx`, `.doc`, `.pptx`, `.ppt`. Les titres Word (styles Heading/Titre 1-6) construisent le sommaire ; les paragraphes de style « légende/caption » alimentent l'onglet Illustrations ; les sections Résumé / Mots clés / Historique / Diffusion forment le Préambule.