Old extensions that register themselves in `showdown.extensions` can be loaded and validated using the new extension loading mechanism.
However, a warn is issued, alerting users and developers that the extension should be updated to use the new mechanism
BREAKING CHANGE: Deprecates `showdown.extensions` property. To migrate, you should use the new method `showdown.extension(<ext name>, <extension>)` to register the extension.
Passing an option to a specific converter affects other instances of the converter since options are merged into showdown's global options.
This commit fixes that.
Closes#153
If two headers have similar texts, the generated id could be equal. In order to prevent id clash:
- A unique suffix is added if a header id already exists
- Option to add a prefix to header id
- Update of correspondent tests
- (credits to nicovalencia)
Closes#81, closes#82
When the text is pulled from indented HTML elements, ex:
```
<body>
<div>
## Content to be converted
</div>
</body>
```
it no longer becomes wrapped in code/pre tags. A new option is also available (allowBlockIndents) that when set to false, reverts to the previous behavior
* `this` scope is captured as `self`, so that it can be properly passed to `Showdown.forEach(plugin(self)` otherwise,
extension plugin will end up with converter pointing to global scope.
* because Showdown is not using proper prototype chain (i.e. references to yet to be defined functions), I had to
move the extension handling below makeHtml so that it is defined and available within the plugin itself
* Arrays used as hashes replaced by object initializer `{}` and Array
constructor calls replaced with array literal `[]`
* `function char2hex(ch)` used in email obfuscation replaced with inline
call `ch.charCodeAt(0).toString(16)`
* **For clarity I edited only src/showdown.js script. There are also
copy of file in `example` directory and minified version in
`compressed` directory.**
* Arrays used as hashes replaced by object initializer `{}` and Array
constructor calls replaced with array literal `[]`
* `function char2hex(ch)` used in email obfuscation replaced with inline
call `ch.charCodeAt(0).toString(16)`
* **For clarity I edited only src/showdown.js script. There are also
copy of file in `example` directory and minified version in
`compressed` directory.**