intellij-mjml-support
February 28, 2026 ยท View on GitHub
MJML support for the IntelliJ Platform.
Features
- Syntax highlighting
- Inspections for your MJML code
- Powerful Live-Preview and tooling
- Autocompletion for color codes, tags, attributes etc.
- Support for custom MJML components
Requirements
- IDEA-based IDE compatible with the plugin
Installation
- Press (Ctrl+Alt+S/โ/) to open the IDE settings and select Plugins.
- Search for
MJML Supportin the Marketplace and click Install.
You live on the edge?
There is also the channel snapshot (https://plugins.jetbrains.com/plugins/snapshot/list) available, for more details
about set up please
see JetBrains Marketplace Docs
The versioning used there is not based on semantic versioning, but rather: YYYY.MM.DD-BUILDNUM and is on
Usage
- MJML files are automatically picked, you can also find some screenshots in the marketplace.
Motivation
I wanted MJML Support for my beloved JetBrains IDEs.
Contributing
I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the configuration
- Submitting a fix
- Proposing new features
- Becoming a maintainer
To get started please read the Contribution Guidelines.
Documentation
Extending plugin functionality with additional plugins
If you want to support custom functionality or resolving maybe specific to the needs of your company, there are some entrypoints available.
Custom mjml resolution
You want to add custom mjml tags or custom resolving to match your needs?
Use the extension point de.timo_reymann.intellij-mjml-support.tagInformationProvider:
<extensions defaultExtensionNs="de.timo_reymann.intellij-mjml-support">
<tagInformationProvider implementation="my.company.OurCustomTaginformationProvider"/>
</extensions>
Custom rendering
You can provide custom rendering backend implementations following the Tutorial
Notes about implementation
- The preview editor support is adapted from the official Markdown plugin
- Preview for rendering is available
- using Node.js with bundled node_modules for MJML rendering, with the possibility to use custom mjml config and specify custom node scripts
- bundled MRML for MJML rendering, with the possibility to use custom WASI implementations
Architecture Decision Records
For architecture decision records please take a look at docs/adr; this will give you an idea why implementations are as they are.
Development
Requirements
Test
# To run unit tests
./gradlew test
# To run plugin verifier to check compability
./gradlew runPluginVerifier
Build
./gradlew buildPlugin