BookBrew

BookBrew

BookBrew avec wasm et typst permettant l’utilisation sur des serveurs plus simple et léger le but reste le même : Interface en ligne de mise en page avec export en PDF imposé (prêt à l’impression), pensée pour les contraintes spécifiques des mémoires et thèses en SHS.

Installer BRAT : Cliquez ici.
Ajouter notre plugin : Utilisez l’option « Add Beta plugin » avec l’URL GitHub.


📸 Aperçu

Options de mise en page Aperçu PDF
Panneau options livre dans Obsidian Aperçu PDF dans Obsidian

Application web BookBrew
Application web (React + Vite) — même pipeline WASM


📖 À propos

BookBrew (dépôt obbwasm) est un studio de composition et de préparation à l’impression, avec un pipeline 100 % WebAssembly dans le navigateur (et dans Obsidian) :

  • 📝 Conversion documentaire via Pandoc WASM
  • 📐 Composition typographique via Typst WASM
  • 👁️ Aperçu PDF via pdf.js
  • 🌐 Application web React + Vite et plugin Obsidian partageant le cœur @obbwasm/core
  • 🗄️ API utilitaire optionnelle en PHP + JSON (projets, gabarits, préréglages)

Aucune installation locale de Pandoc ou Typst n’est requise pour le flux principal.


⬇️ Plugin Obsidian (BRAT)

  1. 🔌 Installer BRAT : Obsidian — BRAT
  2. ➕ Ajouter ce dépôt avec l’option « Add Beta plugin » :
    https://github.com/Atelier-Recherche/obbwasm
    (dossier plugin : obsidian-plugin/ — voir le workflow de release pour les assets main.js, manifest.json, styles.css, WASM)

  3. 📥 Télécharger les gabarits Typst depuis les réglages du plugin (ou pointer vers un dossier typeset/ local).

💡 Compilation d’une note Markdown active → PDF intérieur, couverture, imposition ; préréglages de mise en page ; glossaire et index des noms.


⚙️ Fonctionnement

Composant Rôle
Pandoc WASM Markdown (+ bibliographie .bib / CSL) → Typst
Typst WASM Gabarits typeset/ (Garamond, imposition, couverture) → PDF
Médias Images locales, URLs distantes (WebP → PNG), images base64 extraites
Plugin Coffre Obsidian, préréglages JSON, aperçu PDF redimensionnable

📱 Le plugin cible Obsidian bureau (Windows, macOS, Linux) ; l’app web tourne dans tout navigateur récent.


💻 Développement local

Prérequis : Node.js 20+, npm 10+, PHP 8.2+ (API optionnelle).

npm install

Application web

npm run dev -w web

Frontend : http://localhost:5173 — API par défaut : http://127.0.0.1:8088/api.

# API PHP (racine du dépôt)
php -S 127.0.0.1:8088 -t app

Build production :

npm run build -w web

Plugin Obsidian

npm run build -w @obbwasm/core
npm run build -w obsidian-plugin

Copie locale vers le coffre : script deployplugin.ps1 (à adapter selon votre chemin vault).

Release plugin (semver + tag → GitHub Actions) : Release-Plugin.ps1.


📁 Structure du dépôt

obbwasm/
  packages/obbwasm-core/   # Pandoc/Typst WASM, options livre, médias
  obsidian-plugin/         # Extension Obsidian
  web/                     # Interface React
  typeset/                 # Gabarits Typst (layout, couverture, imposition)
  app/                     # API PHP + données JSON
  readme-media/            # Captures pour ce README

🚀 Déploiement

Option A (recommandée) : frontend statique (web/dist) + API PHP (app/api, app/data).

VITE_API_BASE="https://example.com/api" npm run build -w web

Option B : serveur PHP unique — copier web/dist dans app/public, servir avec php -S ou Apache/Nginx.

Déploiement gabarits + site : voir deploy.ps1 à la racine.


Conformité catalogue Obsidian (plugin)

Élément Détail
ID plugin obbwasm-book
Licence MIT — LICENSE
Réseau Oui — téléchargement optionnel de gabarits Typst depuis GitHub (configurable) ; images distantes dans les documents si présentes dans le Markdown
Fichiers hors vault accès aux fichiers du coffre Obsidian pour la composition
Télémétrie / mise à jour auto non
Release .\Release-Plugin.ps1

⚠️ Notes

  • pandoc.wasm et typst_ts_web_compiler_bg.wasm sont volumineux ; chargement à la demande.
  • Les gros documents peuvent prendre plusieurs minutes à compiler (Pandoc puis Typst) ; l’interface affiche une progression.
  • L’endpoint render-typst.php reste disponible pour du debug serveur ; le flux principal est WASM côté client.

🔗 Ressources

🌐 l’Atelier atelier.atechnologie.fr
📦 Dépôt github.com/Atelier-Recherche/obbwasm
📄 Pandoc pandoc.org
📐 Typst typst.app
🔌 Obsidian obsidian.md

🇫🇷 Français · 🇬🇧 English · 🇩🇪 Deutsch · 🇪🇸 Español · BookBrew / OBB WASM — l’Atelier