php-collective/symfony-djot
Symfony integration for Djot, the lightweight markup language. Provides bundle configuration, service wiring, and Twig rendering so you can parse and display Djot content in Symfony applications with minimal setup.
safe_mode: true the default is a product-level security decision. It means user-generated Djot content is XSS-protected out of the box, reducing the need for custom sanitization in comments, forums, support tickets, and other UGC surfaces. PMs should treat this as the new baseline and audit any existing content flows that previously depended on raw HTML rendering.|djot_raw filter and djot_raw() function give product teams an explicit escape hatch for trusted content such as CMS pages, internal documentation, or admin-authored announcements. This supports clearer content governance: safe by default, raw rendering only where the source is trusted.admonition, code_group, heading_level_shift, heading_reference, inline_footnotes, and tabs—expand what product teams can support without custom frontend work. These map directly to documentation sites, knowledge bases, release notes, tutorials, and long-form content experiences.safe_mode: false or djot_raw is explicitly warranted.significant_newlines, soft_break_mode, and xhtml let teams tune rendering to match editorial expectations, accessibility requirements, and downstream HTML constraints without forking the package.For executives: This package gives us a secure-by-default way to render Djot content in our Laravel application, reducing custom security work for user-generated content while unlocking richer documentation and content features. The 0.2.0 release strengthens the security baseline and adds extensions that support roadmap items like knowledge bases, tutorials, tabs, callouts, and footnotes.
For engineering: The upgrade introduces a breaking default change: safe_mode is now true, so existing trusted-content rendering may need |djot_raw, djot_raw(), or explicit safe_mode: false. In exchange, we get safer defaults, six new extensions, and converter options for line-break and XHTML behavior. The migration is manageable but should include tests around any content that previously rendered raw HTML.
How can I help you explore Laravel packages today?