After 2,086 days, 1,632 commits, and 75 releases I'm pleased to share that...
league/commonmark has been downloaded over 10 million times! 🎉🎉🎉
Not only that, but as of today league/commonmark is also the fastest-growing PHP Markdown parser based on monthly Packagist installs:
We couldn't have hit these milestones without help from the community. A special thanks to:
- The 61+ contributors who offered feedback, reported issues, and contributed other enhancements.
- Projects like Laravel, Cachet, and others for integrating this library into their projects.
- The PHP League for giving this project a home
- The entire PHP community for sharing thoughts, knowledge, and code with others, as well as spreading the word about this package
- My wife for putting up with the long hours I put into this project each week 😅
Future Roadmap
I'm also excited to share that we've set a roadmap for the new two releases:
Version 1.5
Development on the 1.5 branch is underway! This next minor release will be packed with new features, including:
-
Three new extensions in core!
- Support for footnotes via the
FootnotesExtension
(ported fromrezozero/commonmark-ext-footnotes
) - Ability to define custom HTML attributes from within the Markdown courtesy of the
AttributeExtension
(ported fromwebuni/commonmark-attributes-extension
) - A dynamic
MentionParser
to allow for easy custom "mentions" without writing any parser logic
- Support for footnotes via the
- The ability to place Table of Contents anywhere within the document
- Additional customization options
- As much forward-compatibility as we can squeeze in for 2.x!
Version 2.0
That's right, we're also working on a 2.0 release! The internal bits are getting a major overhaul to correct some deficiencies with our current architecture and pave the way for the next generation of custom extensions. Features and highlights will include:
- Backward-compatibility with the most commonly used external-facing classes and methods
- A 30-40% boost in performance
- A YAML frontmatter extension (that even lets you set configuration options on-the-fly!)
- Parsing that is fully decoupled from AST elements and which supports nested parsers
- A significantly simplified rendering process
- Better configuration support
- Improvements to the AST and event implementations
- Purity markers and types everywhere
- And much more!
If you'd like to support the development of these next two releases, please consider becoming a sponsor:
Support My Open-Source Development
You can now sponsor me on GitHub to support my open-source development and contributions! All contributions will be matched by GitHub.