3.2 KiB
««« title: Annoucement: Showdown 2.0, author: Estevão Soares dos Santos, author_avatar: img/avatars/tivie.jpg, date: 2017-12-12, language: en, image: img/blog/2017.12.12.jpg, summary: Showdown version 1.0.0 was released almost 3 years ago, back in May 2015. Since then, it has seen a lot of improvements, with a boost to performance and a significant number of features now included in the core of the library. However, do to backwards compatibility constrains, we are still supporting a lot of legacy features, that prevent us from moving the software forward. With that in mind, it is time to start thinking about Showdown version 2.0. For the next major release of Showdown we have planned a range of significant changes and additions. »»» Showdown version 1.0.0 was released almost 3 years ago, back in May 2015. Since then, it has seen a lot of improvements, with a boost to performance and a significant number of features now included in the core of the library.
However, do to backwards compatibility constrains, we are still supporting a lot of legacy features, that prevent us from moving the software forward.
With that in mind, it is time to start thinking about Showdown version 2.0.
For the next major release of Showdown we have planned a range of significant changes and additions. Here are a few of the most important ones:
Reverse Conversion (HTML to MD)
Being a popular request by our users, we though that a new major version is the perfect opportunity to implement this feature.
This feature requires a number of changes throughout the code and API. For instance, the extension system must be redesigned to allow for extensions to hook unto both processes (HTML->MD and MD->HTML). Event and option names must also reflect this since, as they stand now, they might cause confusion.
Extensions
We are (finally) completely dropping support for legacy extensions. Although there are a couple old ones still in the wild, most of them (if not all) have already migrated to the modern extension system.
We are also revamping the extension system. For starters, we're dropping old "lang" and "output" extension in favour of event extensions.
The API of event extensions will also change in order to mimic the browser events and play nicely with other libraries and frameworks.
Subparsers
Subparsers will also see a major code refactoring, with performance improvements. Although performance is no longer an issue, mainly due to the way new browsers handle Regular Expressions, there are a couple of issues that still need to be addressed. Most of the issues can be fixed if we drop support for old browsers and old nodejs versions.
Development
Formally, Showdown 2.0 will start development in the beginning of 2018 and all development efforts will be put into it. This means Showdown 1.x will now enter maintenance mode, that is, no new features will be added and only important bugfixes will be committed.
We expect to release an alpha version of Showdown 2.0 somewhere around August 2018,
the fall of 2018. So, if you are as excited as we are, stay tuned for more information.