Leandro Pereira
banner
leandrocp.bsky.social
Leandro Pereira
@leandrocp.bsky.social
Pinned
New MDEx (Markdown for Elixir) version is ๐Ÿ”ฅ

๐Ÿ‘‡
MDEx v0.11.1 is out ๐Ÿ”ฅ

- Sigil docs fix by Ievgen Pyrogov
- Optional rustler dep by @halostatue.ca
- Accept :plugins opt by Sonny Scroggin
- HEEx guide hexdocs.pm/mdex/heex.html
- New to_heex/2 function
And more: github.com/leandrocp/md...

Thanks to all contributors!

#MyElixirStatus
Release v0.11.1 ยท leandrocp/mdex
0.11.1 - 2026-01-19 Changed Add use MDEx macro to set up MDEx in a module (optional) [HEEx] Add to_heex/2 and to_heex!/2 macros to convert Markdown, MDEx.Document, or HTML to HEEx with Phoenix com...
github.com
January 19, 2026 at 6:17 PM
I'm introducing a Sponsors section (github.com/leandrocp/md...) so if you or your company has been using MDEx, please consider sponsoring the project to help me ship new features, that would be MUCH appreciated ๐Ÿ˜€
GitHub - leandrocp/mdex: Fast and Extensible Markdown for Elixir. Compliant with CommonMark spec. Formats to HTML, JSON, and XML. Built on top of comrak, ammonia, and autumnus.
Fast and Extensible Markdown for Elixir. Compliant with CommonMark spec. Formats to HTML, JSON, and XML. Built on top of comrak, ammonia, and autumnus. - leandrocp/mdex
github.com
January 12, 2026 at 5:07 PM
2) Syntax Highlighter with Light/Dark themes

hexdocs.pm/mdex/light_d...
January 12, 2026 at 5:07 PM
) Initial support for Phoenix Components

Yep, LiveView and Markdown working together.

hexdocs.pm/mdex/phoenix...
January 12, 2026 at 5:07 PM
MDEx v0.11 is out celebrating 500k downloads with a new website mdelixir.dev - thanks y'all for the support!

Some exciting new features in this version. See below ๐Ÿ‘€

#MyElixirStatus
MDEx - Fast Markdown for Elixir
Fast and Extensible Markdown for Elixir with native Phoenix LiveView HEEx integration.
mdelixir.dev
January 12, 2026 at 5:07 PM
Spread the word! Btw working on that feature to release in the next few days ๐Ÿ‘€
January 7, 2026 at 7:04 PM
Hey Brian, attribution was present until v0.6.x (May/June I believe). I only removed it because I wasn't sure about using DockYard trademarks, but I'd gladly add it back again with your approval.
November 27, 2025 at 7:04 PM
Soon in MDEx โžก๏ธ Phoenix Components!

Yes, MDEx will support embedding HEEx templates inside Markdown. Components and Elixir empressions.

hex.pm/packages/mdex

#MyElixirStatus
November 26, 2025 at 2:14 PM
I'm glad it's useful. Enjoy!
October 4, 2025 at 9:43 PM
All the MDEx.Document handling is done in Elixir including buffering and completing markdown chunks (using nimble_parsec). On the Rust side it "only" does parsing and rendering via crates.io/crates/comrak (an amazing project btw).
crates.io: Rust Package Registry
crates.io
October 4, 2025 at 9:39 PM
Exactly, it's not event based. MDEx doesn't care how or how often you push chunks into the Document. So you can keep a Document in a LiveView and keep pushing into it and render when needed. There's an example here github.com/leandrocp/md...
mdex/examples/streaming.exs at main ยท leandrocp/mdex
Fast and Extensible Markdown for Elixir. Compliant with CommonMark spec. Formats to HTML, JSON, and XML. Built on top of comrak, ammonia, and autumnus. - leandrocp/mdex
github.com
October 4, 2025 at 9:36 PM
It can afford to re-render as many times as needed because it's very efficient, although I'm expecting to gather some feedback and adjust if needed. One of the reasons this is considered experimental yet.
October 4, 2025 at 7:33 PM
This approach is similar to streamdown.ai but using nimble_parsec. A more optimized approach would require rewriting the parser from scratch like github.com/thetarnav/st... is doing but that's not on my plans.
Streamdown
A drop-in replacement for react-markdown, designed for AI-powered streaming.
streamdown.ai
October 4, 2025 at 7:31 PM
Fragments are buffered until a render or parser is requested (when `MDEx.to_html` or `Document.run` or others are called). At this moment the buffer tail is completed if needed (**text -> **text**) then appended to the rest of the document and re-rendered (that's where Rustler is called). 1/n
October 4, 2025 at 7:31 PM
And more detailed in the CHANGELOG at hexdocs.pm/mdex/changel...
Changelog โ€” MDEx v0.9.3
hexdocs.pm
October 4, 2025 at 1:07 PM
4. `MDEx.Pipe` is gone. Now all operations are centralized into `MDEx.Document`. Yes that's a **breaking** change but it's worth it.

Pipelines are as simple as adding steps into the document:
October 4, 2025 at 1:07 PM
3. The Document struct is now displayed in a tree format for better visualization with each node indexed:
October 4, 2025 at 1:07 PM
Here's a short demo of Markdown streaming in MDEx ๐Ÿ‘€

Note it's still experimental and disabled by default.
October 4, 2025 at 1:07 PM
2. Streaming! Now it does complete and render incomplete chunks of Markdown for you:

hexdocs.pm/mdex/MDEx.Do...
October 4, 2025 at 1:07 PM
Thanks to @jskalc.bsky.social we now support converting Markdown to quilljs.com/docs/delta
October 4, 2025 at 1:07 PM
New MDEx (Markdown for Elixir) version is ๐Ÿ”ฅ

๐Ÿ‘‡
October 4, 2025 at 1:07 PM
Reposted by Leandro Pereira
Hi Bsky hivemind, is anyone looking for seasoned #ElixirLang developer? EMEA-based, fully remote.

Either consulting or full-time.
August 28, 2025 at 4:32 PM
Reposted by Leandro Pereira
Hello friends, I am back on the job market and looking for Elixir opportunities..if your company is hiring or you come accross opportunities please DM me.

Retweets appreciated ๐Ÿ™

#elixirlang #elixir
August 4, 2025 at 8:00 PM
Hey @thinkingelixir.com thanks for covering MDEx updates (again)!

Here's the updated link to code block decorators guide hexdocs.pm/mdex/code_bl... - and there's more coming soon!
August 5, 2025 at 4:25 PM
The difference between `Keyword.get(opts, :foo, :default)` and `opts[:foo] || :default` when opts[:foo] is nil. Not a big deal but easy to miss.
August 5, 2025 at 4:07 PM