feat(rich): crate fractal-rich — RichParser + RichBlock + FxWidget (#29, #36) #139

Closed
charles wants to merge 3 commits from feat/36-fractal-rich into main
Owner

Résumé

  • #36 Crate fractal-rich : parser HTML → RichBlock enum avec fallback texte brut
  • #29 RichMessageParser (impl RichParser) : détecte et extrait les blocs data-fx-* du HTML

Fichiers

  • crates/fractal-rich/src/block.rsRichBlock enum, FxWidget, RenderLevel
  • crates/fractal-rich/src/parser.rsRichParser : parsing HTML + extraction data-fx-*
  • crates/fractal-rich/src/lib.rs — exports publics

Plan de test

  • cargo check -p fractal-rich
  • cargo test -p fractal-rich
  • Parser HTML avec data-fx-chartRichBlock::Widget(FxWidget::Chart { ... })
  • HTML sans balises fxRichBlock::Html(raw) (fallback)

Closes #29
Closes #36

## Résumé - **#36** Crate `fractal-rich` : parser HTML → `RichBlock` enum avec fallback texte brut - **#29** `RichMessageParser` (impl `RichParser`) : détecte et extrait les blocs `data-fx-*` du HTML ## Fichiers - `crates/fractal-rich/src/block.rs` — `RichBlock` enum, `FxWidget`, `RenderLevel` - `crates/fractal-rich/src/parser.rs` — `RichParser` : parsing HTML + extraction `data-fx-*` - `crates/fractal-rich/src/lib.rs` — exports publics ## Plan de test - [ ] `cargo check -p fractal-rich` - [ ] `cargo test -p fractal-rich` - [ ] Parser HTML avec `data-fx-chart` → `RichBlock::Widget(FxWidget::Chart { ... })` - [ ] HTML sans balises `fx` → `RichBlock::Html(raw)` (fallback) Closes #29 Closes #36
feat(rich): expose block and parser modules
Some checks failed
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
6a77d0bc0e
charles closed this pull request 2026-04-06 02:21:50 +00:00
Some checks are pending
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
qa
Required

Pull request closed

Sign in to join this conversation.
No description provided.