Skip to content

Conversation

@AlbanSdl
Copy link
Member

@AlbanSdl AlbanSdl commented Oct 22, 2025

Generates HTML (for email embedding cf. daymail) from lexical rich-content.
This should support all nodes implemented and render the html as displayed in the frontend rich text editor.

Of course, emails have a lack of features and the rendered result won't be exactly the same as original web presentation (eg. the font won't be the same as we cannot safely import a font, etc)

This branch is based on feat/asso/edit


Fonctionnalités manquantes :

  • Gestion des CheckList (style, ajout d'élément pour remplacer le ::before css)
  • Tweak des listes imbriquées (remplacement d'un selecteur css pour masquer le marker)
  • Suppression des marges des paragraphes pour rendre comme sur le front
  • Suppression des marges des listes
  • Conserver le centrage par défaut des headers des tableaux
  • Trouver une façon d'afficher correctement les images quand trop grandes (enlever les pptés width/height pour les mettre dans le style ?)
  • Fix la validation du type 'image'
  • Modifier le texte des tests pour qu'il soit dans le format validé par l'api

Outils manquants :

  • Documentation
  • Tests unitaires : impossibles à faire pour l'instant (jest ne permet pas l'import de happy-dom reéalisé par lexical/headless)

Comment on lines +106 to +108
return html
.replaceAll('class=""', '')
.replaceAll(/(?<=<[^>]+)(?<!\w|")\s+(?=[^>]*>)|(?<=<[^>]*(?:\w|"))\s+(?=>)/g, '');

Check failure

Code scanning / CodeQL

Incomplete multi-character sanitization High

This string may still contain
<script
, which may cause an HTML element injection vulnerability.
This string may still contain
<script
, which may cause an HTML element injection vulnerability.
Copy link
Member Author

@AlbanSdl AlbanSdl Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ça tombe bien, c'est pas ce que je veux faire 😋
Et l'input est trusted puisque c'est ce que je génère avec lexical... (qui sanitize déjà le contenu utilisateur)

@AlbanSdl AlbanSdl force-pushed the feat/lexical-generator branch from 0314dc0 to f99ae4d Compare October 22, 2025 02:40
@codecov
Copy link

codecov bot commented Oct 22, 2025

Codecov Report

❌ Patch coverage is 74.41860% with 77 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.65%. Comparing base (c0f3d81) to head (2cf66cf).

Files with missing lines Patch % Lines
src/lexical/nodes/NodeStyleInjector.ts 25.00% 27 Missing ⚠️
src/assos/assos.service.ts 61.53% 2 Missing and 8 partials ⚠️
src/lexical/nodes/ImageNode.ts 56.52% 10 Missing ⚠️
src/lexical/lexical.module.ts 70.96% 9 Missing ⚠️
src/lexical/nodes/ColorTextNode.ts 66.66% 5 Missing and 1 partial ⚠️
src/media/image/imagemedia.service.ts 86.04% 4 Missing and 2 partials ⚠️
src/auth/guard/jwt.guard.ts 77.77% 1 Missing and 1 partial ⚠️
src/users/users.controller.ts 0.00% 0 Missing and 2 partials ⚠️
src/users/users.service.ts 33.33% 0 Missing and 2 partials ⚠️
src/assos/assos.controller.ts 95.23% 0 Missing and 1 partial ⚠️
... and 2 more
Additional details and impacted files
@@            Coverage Diff             @@
##              dev      #97      +/-   ##
==========================================
- Coverage   83.19%   79.65%   -3.54%     
==========================================
  Files         140      118      -22     
  Lines        2398     2335      -63     
  Branches      470      387      -83     
==========================================
- Hits         1995     1860     -135     
+ Misses        398      397       -1     
- Partials        5       78      +73     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@AlbanSdl AlbanSdl marked this pull request as ready for review October 23, 2025 19:27
@AlbanSdl AlbanSdl mentioned this pull request Oct 24, 2025
@AlbanSdl AlbanSdl mentioned this pull request Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants