PHPackages                             php-collective/symfony-djot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. php-collective/symfony-djot

ActiveSymfony-bundle[Templating &amp; Views](/categories/templating)

php-collective/symfony-djot
===========================

Symfony bundle integration for php-collective/djot

0.1.0(1mo ago)05↑2900%MITPHPPHP ^8.2CI passing

Since Mar 27Pushed 1mo agoCompare

[ Source](https://github.com/php-collective/symfony-djot)[ Packagist](https://packagist.org/packages/php-collective/symfony-djot)[ Docs](https://github.com/php-collective/symfony-djot)[ RSS](/packages/php-collective-symfony-djot/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (9)Versions (2)Used By (0)

Symfony Djot Bundle
===================

[](#symfony-djot-bundle)

[![CI](https://github.com/php-collective/symfony-djot/actions/workflows/ci.yml/badge.svg)](https://github.com/php-collective/symfony-djot/actions/workflows/ci.yml)[![PHP](https://camo.githubusercontent.com/7e813998e7bd3997a3df6be43e290a88119af8b4059c7a4c2735cf1e4edd8887/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7068702d636f6c6c6563746976652f73796d666f6e792d646a6f74)](https://packagist.org/packages/php-collective/symfony-djot)[![License](https://camo.githubusercontent.com/f6d9f2ef800cd9a73419fe7a6d67b32c3f4113e1918362332047bbe5fe52312b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7068702d636f6c6c6563746976652f73796d666f6e792d646a6f74)](LICENSE)

[Djot](https://github.com/php-collective/djot-php) markup language integration for Symfony — Twig filters, services, forms, and validation.

Installation
------------

[](#installation)

```
composer require php-collective/symfony-djot
```

Usage
-----

[](#usage)

### Twig Filter

[](#twig-filter)

```
{# Filter syntax #}
{{ article.body|djot }}

{# Function syntax for inline strings #}
{{ djot('_emphasis_ and *strong*') }}

{# Plain text output #}
{{ article.body|djot_text }}
```

### Service

[](#service)

```
use PhpCollective\SymfonyDjot\Service\DjotConverterInterface;

class ArticleController
{
    public function show(DjotConverterInterface $djot): Response
    {
        $html = $djot->toHtml($article->body);
        $text = $djot->toText($article->body);
    }
}
```

Configuration
-------------

[](#configuration)

```
# config/packages/symfony_djot.yaml
symfony_djot:
    converters:
        default:
            safe_mode: false
        user_content:
            safe_mode: true
    cache:
        enabled: false
        pool: cache.app
```

### Multiple Converter Profiles

[](#multiple-converter-profiles)

Use different configurations for different contexts:

```
{{ comment.body|djot('user_content') }}
```

```
public function __construct(
    #[Autowire(service: 'symfony_djot.converter.user_content')]
    private DjotConverterInterface $safeConverter,
) {}
```

### Safe Mode

[](#safe-mode)

Enable safe mode when processing untrusted user input for XSS protection:

```
symfony_djot:
    converters:
        user_content:
            safe_mode: true
```

### Extensions

[](#extensions)

Enable [djot-php extensions](https://github.com/php-collective/djot-php) per converter:

```
symfony_djot:
    converters:
        default:
            extensions:
                - type: autolink
                - type: smart_quotes
                - type: heading_permalinks
                  symbol: '#'
                  position: after
        with_mentions:
            extensions:
                - type: mentions
                  user_url_template: 'https://github.com/{username}'
                - type: table_of_contents
```

Available extensions:

- `autolink` - Auto-convert URLs to clickable links
- `default_attributes` - Add default attributes to elements by type
- `external_links` - Configure external link behavior (target, rel)
- `frontmatter` - Parse YAML/TOML/JSON frontmatter blocks
- `heading_permalinks` - Add anchor links to headings
- `mentions` - Convert @username to profile links
- `semantic_span` - Convert spans to ``, ``, `` elements
- `smart_quotes` - Convert straight quotes to typographic quotes
- `table_of_contents` - Generate TOC from headings
- `wikilinks` - Support `[[Page Name]]` wiki-style links

See [Extensions documentation](docs/extensions.md) for detailed configuration options.

### Form Type

[](#form-type)

Use the `DjotType` for form fields that accept Djot markup:

```
use PhpCollective\SymfonyDjot\Form\Type\DjotType;

$builder->add('body', DjotType::class);
```

### Validation

[](#validation)

Validate that a field contains valid Djot markup:

```
use PhpCollective\SymfonyDjot\Validator\Constraints\ValidDjot;

class Article
{
    #[ValidDjot]
    private string $body;
}
```

Documentation
-------------

[](#documentation)

See the [docs/](docs/) folder for detailed documentation:

- [Installation](docs/installation.md)
- [Configuration](docs/configuration.md)
- [Twig Usage](docs/twig-usage.md)
- [Service Usage](docs/service-usage.md)
- [Forms](docs/forms.md)
- [Validation](docs/validation.md)
- [Safe Mode](docs/safe-mode.md)
- [Extensions](docs/extensions.md)
- [Caching](docs/caching.md)
- [Djot Syntax](docs/djot-syntax.md)

What is Djot?
-------------

[](#what-is-djot)

[Djot](https://djot.net) is a modern light markup language created by John MacFarlane (author of CommonMark/Pandoc). It offers cleaner syntax and more features than Markdown while being easier to parse.

Learn more about Djot syntax at [djot.net](https://djot.net).

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance90

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/39854?v=4)[Mark Scherer](/maintainers/dereuromark)[@dereuromark](https://github.com/dereuromark)

---

Top Contributors

[![dereuromark](https://avatars.githubusercontent.com/u/39854?v=4)](https://github.com/dereuromark "dereuromark (17 commits)")

---

Tags

bundledjotmarkupparsersymfonytwigsymfonybundletwigparsermarkupdjot

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/php-collective-symfony-djot/health.svg)

```
[![Health](https://phpackages.com/badges/php-collective-symfony-djot/health.svg)](https://phpackages.com/packages/php-collective-symfony-djot)
```

###  Alternatives

[twig/extra-bundle

A Symfony bundle for extra Twig extensions

91292.0M315](/packages/twig-extra-bundle)[lexik/translation-bundle

This bundle allows to import translation files content into the database and provide a GUI to edit translations.

4362.7M19](/packages/lexik-translation-bundle)[artgris/filemanager-bundle

FileManager is a simple Multilingual File Manager Bundle for Symfony

182420.8k9](/packages/artgris-filemanager-bundle)[yellowskies/qr-code-bundle

Symfony Barcode &amp; QR Code Generator Bundle with Twig extension

36682.9k](/packages/yellowskies-qr-code-bundle)[nucleos/antispam-bundle

This bundle provides some basic features to reduce spam in symfony forms.

52105.1k](/packages/nucleos-antispam-bundle)[boekkooi/jquery-validation-bundle

Jquery form validation bundle for symfony 2

2773.9k1](/packages/boekkooi-jquery-validation-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
