[ ] ghCompatibleHeaderId (removal)
Will be removed and will become the default behavior.
[ ] customizedHeaderId (removal)
This option introduced non compliant syntax so it really belongs in an extension. The new listener extension system allows users to directly modify and customize the HTML and add any attributes they wish.
[ ] rawPrefixHeaderId (removal)
This option will be superseeded by the option rawHeaderId
. So basically activating rawHeaderId
will make
showdown only to replace spaces, ', ", > and < with dashes (-) from generated header ids, including prefixes.
[X] literalMidWordAsterisks (removal)
This option is weird, hard to maintain and really... makes little sense.
[ ] excludeTrailingPunctuationFromURLs (removal)
This option will be removed and will be the default behavior from now on.
[ ] strikethrough (change)
Will be enabled by default
[ ] disableForced4SpacesIndentedSublists (to think/postpone)
This was only a temporary option for backwards compatibility reason. However, most flavours support lists indented with 2 spaces, so it puts us in a tight spot, specially since some markdown beautifiers out there insist in indenting lists with 2 spaces, probably in a misguided try to follow the CommonMark spec.
The CommonMark spec is, IMHO, a bit confusing for users regarding this, since list sub-blocks (and lists) are determined by the spaces from the start of the line and the first character after the list mark. And the proof are the MD beautifiers out there, which misinterpreted the spec and made a mess
Showdown syntax is actually easier (and fully compliant with the original spec): if you indent something 4 spaces, it becomes a sub-block. Since lists are blocks, you must indent it 4 spaces for it to become a sub-block.
Regardless, we kinda have 2 solutions:
Tough choices...
[ ] simpleLineBreaks (change)
Will be removed from Github Flavor since github only does this in comments (which is weird...)
[ ] openLinksInNewWindow (removal)
Will be removed in favor of the new listener extension, which will allow users to manipulate HTML tags attributes directly.
[ ] Revamp the option system
Revamp the option system so that it becomes more simple. Right now, it's really confusing. And option names are weird too. The idea is to pass options to the constructor under an option object, that can have hierarchical structure. Ex:
var conv = new showdown.Converter({
options: {
links: {
autoLinks: true
},
headings: {
startLevel: 2
}
}
});
[ ] Legacy extension support
Old extensions that inject directly into extensions object property will no longer be supported
[ ] HTML and OUTPUT extensions
HTML and OTP extensions will be dropped in favor of Listener Extensions. We might even give them a new name
<pre><code>
This should address: