2017-12-14 20:48:41 +08:00
|
|
|
«««
|
|
|
|
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.
|
|
|
|
|
2018-10-17 08:13:24 +08:00
|
|
|
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***.
|