showdown/blog/annoucement-showdown-2.0.md

65 lines
3.2 KiB
Markdown
Raw Normal View History

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***.